I made Dnote because even though I learn many things every day while coding, I forget most of them. The reason is that (1) I don't write them down (2) I don't revisit what I write down.<p>So I made a CLI to keep track of my engineering microlessons with minimal friction, without leaving the command line. Next step is to build automated digest email so that I actually remember my lessons.<p>I wrote more about why and how I am building it here: <a href="https://sungwoncho.io/making-dnote" rel="nofollow">https://sungwoncho.io/making-dnote</a>
<a href="https://github.com/dnote-io/cli/blob/master/main.go#L271" rel="nofollow">https://github.com/dnote-io/cli/blob/master/main.go#L271</a><p>Pinging your personal server every time someone runs your CLI tool is not something people would expect or be happy to learn about after the fact.<p>I understand you're curious how many people are using your tool, but this isn't the way to go about it.
This is cool, but why does it need to do the heartbeat with dnote.io?<p><a href="https://github.com/dnote-io/cli/blob/master/main.go#L272" rel="nofollow">https://github.com/dnote-io/cli/blob/master/main.go#L272</a><p>This looks like the only place that you're doing a network request, and it really slows down the program.
I think a quick:<p><pre><code> echo "you can write dev tools as shell functions" >>.notes
</code></pre>
Would be pretty close to the same thing?
Nice tool to scratch your own itch. I've thought of doing something similar many times, but I've found that just using Evernote or Quiver and having a reasonable search works just fine for me since I tend to write meticulous notes. Having a separate tool might be an added behavior that discourages taking notes, but depends on each person's habits I suppose.
Cool, similar to a system for line-based notes I've been using happily for about a year. I call it quickref, and the command is `qr`. This is my CLI usage:<p><pre><code> $ qr
show available quickref files (in directory $QR)
$ qr topic
show all lines from $QR/topic.txt
a "topic" can be anything, but generally something like a language (py),
program (blender), package (django), command (git). also things like audio,
pdf manipulation, CLI image editing.
$ qr topic pattern
show all lines from topic.txt that match regex pattern
$ qr topic term1 term2 ...
show all lines from topic.txt that match all terms
$ qr add topic "line with spaces"
append "line with spaces" to topic.txt
$ qr edit [topic1 [topic2 ...]]
open specified topics with $EDITOR
</code></pre>
I don't personally see much value in sharing/aggregating the note files themselves, because it's all about personalized keywords.
I just took a look at the source, and I think this is the simplest non-trivial example of a Go command-line app I've seen. It's exactly what I've been looking for to get started with a tiny little project of my own.<p>Thanks for sharing!
In the writing animation, it's strange that the notes are deleted. I expected a fake "Enter" effect so the notes scroll upward like in a cli. (You will need a few more examples so the repetition is not annoying.)
I find jrnl (<a href="http://jrnl.sh/" rel="nofollow">http://jrnl.sh/</a>) fits this a most other uses I have of text capture at the command line.
consider spaced repetition to help the developer remember them (granted, that's a big scope change, so consider trade-offs between separate app vs embedded, etc)