Hey HN! In 2020, I stumbled across a productivity method called the "Ivy Lee method" [1], and found it made me much more productive. Basically, you write down 6 tasks you need to do throughout the day, then focus solely on them. I was so impressed that I ended up writing an android app to help me follow it, which I've been using for about a year. I've spruced it up a bit, and launched it today as "Only 6".
There's a free version [2] (ad-supported), and a paid version [3].
I built it with React Native, ClojureScript, and Re-Frame. It's currently closed source, but if you'd like to see the source code just drop a comment here and I'll consider making it open source. It's Android-only at the moment, but if anyone would like to team up on an iOS version please drop me a message :)
Ah sorry, I don't know of a way of doing that in Clojure. What I usually do is figure out where the exception was thrown, wrap that form in `sc.api/spy`, and then somehow re-execute it.
Cursive's debugger doesn't, but as one of the other posters mentioned there's a library called debug-repl which gives you this: https://github.com/gfredericks/debug-repl.
However, as I mentioned in the article, I've found it's usually better to use scope-capture than a debugger that pauses execution. The main reason is that I mainly work with Kafka Streams atm, and when the debugger pauses one thread other threads start timing out and throwing exceptions.
Thanks! Perhaps the wording isn't great in that paragraph, I intended the phrase "println debugging" to mean the general style of debugging, rather than specifically using the println function.
I've heard good things about debug-repl, although I haven't used it myself. From what I understand, it fills a similar niche to scope-capture. However you do it, being able to capture the state at a certain point in the code is essential.
Assuming the crash doesn't cause the process to completely exit, you could indeed use `scope-capture` for this. This works well for local dev. In theory, you could use `sc.api/spy` in production code, and then attach a remote repl to diagnose any crashes. I wouldn't recommend this though, I think it would be best to use a good logging library like Mulog: https://github.com/BrunoBonacci/mulog
Sayid does look really powerful. However, I declared Emacs bankruptcy years ago, and switched to Cursive. If I ever have the courage to switch back, I'll give Sayid a go :P
SEEKING WORK - Functional Web Developer, UK or remote
Hi, I'm an experienced Functional Web developer. I have 8 years' experience of web development (both frontend and backend), and 5 of functional programming with Clojure.
I'm currently looking for freelance work or short term contracts.
1. Intention (https://i.ntention.app) - a todo app where your todos are arranged in a DAG.
2. JSON Viewer (https://json-viewer.io) - a simple web app for displaying JSON reports in a nice UI.
Thanks very much! I've made a few small static sites this way, and it's worked really well. However, it is missing several features that you need for larger (or more frequently changing) sites: asset minification, markdown compilation, etc.. Once these things become a pain, I'd either bring in a library like Misaki or Stasis (although I haven't actually tried either of these myself), or move to Hugo/Gatsby.
I meant this article as a "thank you" to the brave doctors and nurses putting in extra time and effort to look after everyone else. Regardless of the state of NHS funding, it's just basic human decency to say thank you to them. I didn't mean it as any kind of political statement.
Sorry about that, it should be fixed now. There isn't a paid version at the moment, but there's a web app at https://i.ntention.app . If you're on android, it should ask you if you want to add it to your home screen - if you do, it behaves very like an app.
- Is this in the list view or the graph view? I did originally have the list order reversed (i.e. root node at the bottom), but I found it very confusing. I could potentially add a setting to control the order.
- I've tried to avoid deleting nodes where possible. If you delete a parent node, its children will be automatically re-arranged rather than deleted. Could you re-name the root node instead of deleting it?
- Agreed, the graph view is very basic at the moment. I'm looking to make it much more powerful in future.
- I've intentionally ignored recurring tasks for now, because I want to get them right when I do implement them. I'm aware it'd be a nice feature, so I am looking to add it asap.
That's a really good idea, I'll add it to the roadmap. If you have any suggestions for specific templates, please send them over to me (my email's on my profile).
Haha looking forward to the competition ;). TaskDB sounds good, I'll keep an eye on it. Your approach to keeping the entire history of the graph is a good one, I'm using Datomic in Intention mainly for this reason.
I do hope DAGs become more commonplace, I think a lot of areas (e.g. project management) could benefit from using them.
There's a free version [2] (ad-supported), and a paid version [3].
I built it with React Native, ClojureScript, and Re-Frame. It's currently closed source, but if you'd like to see the source code just drop a comment here and I'll consider making it open source. It's Android-only at the moment, but if anyone would like to team up on an iOS version please drop me a message :)
Any comments or feedback are much appreciated!
[1] https://jamesclear.com/ivy-lee [2] https://play.google.com/store/apps/details?id=com.only6 [3] https://play.google.com/store/apps/details?id=com.only6.prem...