Hacker News new | past | comments | ask | show | jobs | submit login
Quiver: Programmer's Notebook for OS X (happenapps.com)
421 points by moonlighter on Feb 2, 2016 | hide | past | favorite | 254 comments

The more I read about different applications, the more I think you can't understand them unless you look at the underlying data format.

Here's Quiver's: https://github.com/HappenApps/Quiver/wiki/Quiver-Data-Format

It's . . . really good. Like, _really_ good.

I particularly like that they keep the metadata and the content of the note separate. This is the same thing Camlistore does, and it's nice for version control because making changes to the metadata (adding new tags or whatever) doesn't show up as a content change.

Speaking of version control, Quiver's thoughts on this are interesting:

"Since Quiver stores all the data in plain JSON files, it’s easy to put the whole library (or a specific notebook) under version control. This is another way to collaborate with your team."

Leaving version control up to the user isn't the worst, but it does mean that it won't be straightforward to put an "undo" in the GUI (if the GUI already has undo somehow I'd like to hear how they do it).

I'm also not sure whether it would be better to version the whole notebook or individual qvnotes. I have more thoughts on this (starting from a slightly different angle of how it relates to wikis) here: http://housejeffries.com/page/4.

EDIT: Something just occurred to me. If HappenApps wanted to make a machine readable schema for qvnotebook and qvnote they could use JSON Schema for the JSON part. What would they use for the directory part? Is there such a thing as a schema for directories? (e.g. this directory must contain a `content.json` file, a `meta.json` file, etc.)

The more I read about different applications, the more I think you can't understand them unless you look at the underlying data format.

"Show me your flowchart and conceal your tables, and I shall continue to be mystified. Show me your tables, and I won't usually need your flowchart; it'll be obvious."

— Fred Brooks, The Mythical Man-Month

That quote deserves to be in stone.

If we use 50 sculptors we can get it done in less than 20 minutes!

Oh man, that was a good one! Do kids these days even know about that book?

Probably not. Hell I've never even read the book. Instead I learned through experience and observation then later learning about the book and a summation of it :)

I do! (I'm 23, 18 months into my first professional engineering gig)

It should be required reading and I have it prominently displayed on my desk at work.

Small flaw though. It only runs on OS-X.

I might give it a shot if they decide to support linux.

Note: I was being sarcastic when I said small.

I use Zim on Linux. When I saw the Quiver screenshots I thought "hey, this is very similar to Zim!"

Can you compare this to org-mode? Any advantages / disadvantages?

I don't know if you can compare ANYTHING to org-mode :P

But it is a small program, gtk gui (I think), it is WYSIWYG, has lots of plugins (calendar, todo, tex equations) and it is a Wiki. Even the calendar plugin is mostly a helper to create note-pages with the date as their title.

They make their data format public, so a Linux app could be built.

Based on the fact that they are using ACE to edit code cells and MathJax to render Latex, I'm going to go out on a limb and guess that a large chunk of the app is written using web technologies, and porting to Windows/Linux should be relatively straight-forward.

It also might mean that the entire thing is relatively heavyweight.

Yes, I have a few gigs of RAM on my laptop — but this RAM is needed for other apps, too.

It starts up under 50MB with the built in notebook. Scrolling around between notes (with images) and starting a new notebook, I managed to get it up to 150MB (and then back down, so no strong evidence of memory leaks).

Not a huge deal to me for an app of this functionality at this point in time. (I do remember being able to run X11 + Netscape in 16MB, though.)

It likely does use webviews, but it seems way lighter than an Electron app. It certainly isn't packaging Chromium given the size.

I'm sold on it, but with it being OS X I cannot use it for a good while, until they port it. Hoping they do.

That honestly isn't a small flaw if you are building a note/documentation application of any kind. The ability to share it is too valuable to use anything that can't be used on all platforms.

Indeed. Why not make it web-based in the first place?

(Also, why is this specific to programmers?)

Here's a weekend project idea: Shiver, a web-based Quiver port which reads/writes in the same data format :)

Weekend? I suspect quite a few of them to produce a relatively polished app.

If it were web-based in the first place, I'd be complaining about that instead!

It's a small flaw... compared to not being on Windows.

I like the concept, but it's a non-starter while it's not available on... I don't know... the largest platform.


According to the StackOverflow survey Windows has been losing developers for the past three years (though that's obviously not a new trend). So much that those stats say that there are about 2/3rds as many developers on OSX as were on Windows 7 (I don't know when 10 came out, but it's not represented).

IME if you're on a Mac at your day-job you on-average have a lot more freedom in which tools you're using, and you're a lot more likely to spend your own money on them.

All that just to say: I'd be very surprised if releasing for OSX first wasn't the best financial move for them.

<i>I like the concept, but it's a non-starter while it's not available on... I don't know... the largest platform</i>

It is slightly unfair to complain about what platforms a developer chooses to publish his/her work on. Perhaps they have been a long term Apple user? Perhaps they don't know anything about Windows development.

Windows may be the largest, but there are so many good apps and developers making a living off the smaller platforms. This doesn't make using their apps a "non-starter".

> This doesn't make using their apps a "non-starter".

I don't think the parent meant a "non-starter" in general. This app seems really awesome, but I primarily develop on Windows, so it's a non-starter for me, which is really too bad. I was really excited looking through the page until I noticed it was only on OS X.

That and I'd prefer my electronic notebook to be available on my phone as well, so that's another reason I wouldn't use it. But if this ever comes out for Windows/Android, I'd definitely be excited to try it out.

I understand what you are saying. I re-read the parent post and it sure does seem that is exactly what the post says.

There are so many platforms available. I don't think apps would ever get released (or companies started) if for people to adopt them they had to be out for every desktop and mobile platform. That is unreasonable. Get something out there and iterate on it.

I prefer not to use my phone and tablet for stuff like this. It forces me to pay attention to it more than I wold like because I am carrying the device. I force myself to take breaks from work by not having work stuff on my phone. If one of my co-workers really wants me, they have my phone number.

No, they said "non-starter". Not non-starter for them, just non-starter.

This seems remarkably similar to the Jupyter (IPython) notebook format [0]. The only big difference I can see is the separate metadata file, which I'm not so sure is a plus (since it adds the complexity of needing each notebook to be a folder).

[0] https://ipython.org/ipython-doc/3/notebook/nbformat.html

It's a tricky situation. I'm not sure which is best. The advantage of using a directory for your format is that it's easy to use preexisting tools on the contents of a note.

Say your note looks like the Quiver example:

  ├── content.json
  ├── meta.json
  └── resources
      └── BCA3F8A8-C8CC-4FE5-AABB-C4262134B9E7.tiff
You can examine and modify the .tiff file using normal command line tools. This is nice!

Whether this adds to the complication of the project depends on your perspective. From the user's perspective this is simpler, they can now use normal tools to work on resources without having to manually extract and then reinsert the resource.

But from an overall perspective (which is probably more important), I think you're right that this is more complicated. Directories are higher level than JSON files -- we don't always have tools that can work with them. A JSON file has a both a single Unicode and byte representation, not so for directories. Losing this to make things easier on the user is no small deal.

Perhaps the right answer _is_ to put the whole note in a single JSON file. From there it can be transformed into directory with FUSE for modification by standard tools (or for export purposes if the user wants to move away from our note type). I'm still not sure about this though.

Right, but Jupyter lets you evaluate the code, which is much cooler than just editing it. On the other hand, Quive may have better search functionality.

> Leaving version control up to the user isn't the worst, but it does mean that it won't be straightforward to put an "undo" in the GUI (if the GUI already has undo somehow I'd like to hear how they do it).

The GUI does have an Undo, and it works exactly as you expect: it reverts changes made in the GUI app. If you have a note open and you make an external change, the app will at some point notice the change and ask you if you want to reload; if you say yes, it reloads from disk and throws away the undo history. I was able to get it to reload content without realizing it changed (by editing the note, then closing it in Quiver before it detected the change and reopening) and this didn't throw away the undo history, which seems like just a fairly simple bug.

Or to put it more generally, Undo works in Quiver pretty much the same way you'd expect it to work in any editor that can reload files that change on disk; the undo history simply doesn't concern itself with undoing changes made outside of the app, and in most cases reloading the file from disk throws away undo history.

Oh, that makes sense! So it's exactly like Vim (with noswapfile turned on) or any other program that tracks history at the application-level, but doesn't write it to the directory you're working in.

Sublime seems to work very well in the case you describe: The changes coming in from a reload are simply put into the undo history just like any other change. No need to throw anything away.

Smallest Federated Wiki's format is very similar:


Whoa, how have I not seen this before? Thanks for the link.

This weekend I kept thinking about wanting to make a trello like board for personal knowledge or idea tracking but keep it git version controlled, your comment reminds me that maybe others are in the same track.

I think https://gingkoapp.com might fit in that niche.

Shiny, and I love the interface/layout!

This looks a lot like the Jupyter/IPython Notebook, which is a free and open source "scientist's notebook". If you're interested in mixing LaTeX, Markdown, and code from almost any language (Python, R, and Julia are very well-supported but there's an open kernel spec), then this might be a more appropriate tool for you to use.

The Jupyter/IPython notebook default storage format is JSON, which makes it a little more friendly for text-based version control, and also enables a static HTML view of notebooks (http://nbviewer.jupyter.org/github/ketch/teaching-numerics-w...) on GitHub.

Helen Shen wrote up a great article for Nature (http://www.nature.com/news/interactive-notebooks-sharing-the...) on how scientists are using the notebook, but it also provides a good overview of how you might use it, as well as a free interactive demo.

The originator of the notebook UI is Mathematica if I recall correctly. You can try the web version at [1] - it doesn't quite have the elegance of the desktop one, but is a much better notebook than Jupyter in my experience.

[1]: https://lab.open.wolframcloud.com/app/view/newNotebook?ext=n...

I think MPW (the original Mac IDE from Apple) in 1985 can claim prior art on the notebook UI

Perhaps, but this patent (https://www.google.com/patents/US8407580) and a history of litigation (e.g. (http://bactra.org/reviews/wolfram/) may be enough of a barrier to prevent its adoption.

That patent is about a user interface for hiding/showing the code that creates particular rendered outputs, not for the general idea of a “notebook” UI.

I suspect there’s prior art (Hypercard? every spreadsheet ever? this list: https://en.wikipedia.org/wiki/List_of_graphical_user_interfa... ?), and the patent seems pretty obvious, but in any event, I don’t think other “code notebook” implementations are currently infringing this patent, and it seems relatively straightforward to work around.

Totally agree. Jupyter/IPython is an impressive tool.

I started to play with it recently and I am very happy with what it can do.

It's, also, very easy to install in a docker container: https://github.com/jupyter/docker-stacks (I haven't managed to make work the persistence part when stopping the container yet, but this is due to my inexperience with docker).

Unfortunately, I don't have Mac, but from reading of the description on Quiver, I don't see any mention of executing the code in notes.

For me that was allways the killer feature of Jupyter :-)

That looks very good, I just wish I could buy it outside of the mac app store. I really dislike buying for the app store and much prefer buying directly from the company...

Can you explain why? Curious as this differs from most people I've seen.

For me: If I have a copy of the software I have it forever. With the app store I only have it as long as Apple permits. Using an older version of OS X can create issues as well, if the developer decides not to support it. If for some reason they remove it from the store I have to hope the developers make it available outside that channel. It's certainly happened with iOS apps. I'm open to being proven wrong though.

True! A few months ago I wanted to install Aperture on a new laptop; since it's been pulled from the App store I couldn't find it anymore, and this is what customer support told me:

  I've reviewed your request, but as much I would like to restore the item for you,
  I won't be able to download "Aperture" to your account because the amount of time
  that has passed since this purchase was made prohibits us from restoring it.
Goodbye App store.

It's this kind of stuff that has me boggled that they charge the same prices for apps in the store vs. apps on media or downloaded directly. Tha app store version is more conventient, maybe, but fundamentally less featured. I'm essentially buying just a license, not the app itself.

Well, unless you just want to install Aperture to export stuff out, that's for the best.

Aperture has been EOLed -- it's not advisable to install it even if you could, as you'd be installing deprecated software that can stop working at any future OS update.

That wouldn't be much different than any software company not allowing you to download their old program anymore.

It should be up to the buyer whether or not they choose to take that risk, not to the seller to paternalistically make that decision for them.

Errr, isn't traditionally the seller that decides, if, when and for how long they want to sell their wares?

But in this case, the buyer already purchased the product.

And lost it, and was looking for a replacement.

> I wanted to install Aperture on a new laptop; since it's been pulled from the App store I couldn't find it anymore i.e., bought a license and installed the application, but wasn’t given a legal way to do the exact same thing on another computer—one of the rights Apple grants to users of the App Store; nothing lost, no replacement needed

Not quite the same. At least you'd have the option to run the old software in a virtual machine or on an old spare piece of hardware.

I have the same story - bought Sketch 2 in France for 50 euros, moved to US as they updated to version 3. Can't get the old version back (it just doesn't appear in itunes at all - tried to get this resolved with no luck) and my only option is to re-purchase the product.

My understanding is that for both the Mac and iOS app stores, the Purchases tab has all the apps you've bought, whether they're currently available on the store or not. This is how I re-download older operating systems or previous releases of apps. That said, I can imagine Apple also having a parallel system that takes the app away from there too -- but I don't think this is the default.

In that way its similar to how music used to be. Had tapes; they went away. Got the LP. Gone but not forgotten. Bought the CD. They went away. Bought the DVD. All those stores are closed. So MP3. Or streaming.

Digital music actually became more flexible when it went from DRM protected music to MP3s. At least with that I can backup and restore it as it pleases me. But I get your overall point. It just doesn't change my preference.

Even before that you had the option of buying sheet music and playing it on an instrument, but that's a significant barrier to entry. And I guess the scores would wither away in a few generations.

"Using an older version of OS X can create issues as well, if the developer decides not to support it."

I fail to see how this isn't a problem for stuff sold outside the App Store as well.

Sorry hadn't seen your message earlier. Everyone pretty much covered it but basically I have multiple reasons why:

- an app on the app store can be pulled out at any moment.

- I can't backup a specific version of the software that I like (I've seen before software become overly bloated in future versions forcing me to keep using an older version)

- I do not want to support Apple's policies on the app store and do not want to ever end up having a system that's as restricted as IOS (although if that happens I'd jump ship back to Linux so I guess my non app store purchases would become useless anyway)

- my experience with ios app store reviews told me that Apple rules are idiotic, the review experience is poorly managed and they don't give a fuck about keeping developers happy now that iphones are massively successful (very different than when they were trying to court developers back in 2005ish...). I don't want my money to help finance this with the 30% cut that Apple takes.

It all really boils to control, being able to keep backup of the software I use, having access to that software even if the developer stops selling it for whatever reason. I dislike the fact that end users have less and less control over the platform they buy and I do not want to be part of that.

I'm a tad hypocritical since I use a mac and I have an iphone lying around to test and software dev on but buying on the app store is where I draw the line.

I agree. I've downloaded the trial, and if I like what I see (and, of course, the price is right) I'll buy a copy, but only if I can buy one directly from you, not via the App store. The App store has many technical limitations, and it also means the consumer is effectively just licensing software from Apple rather than owning it outright.

> it also means the consumer is effectively just licensing software from Apple rather than owning it outright

Isn't almost all software licensed rather than ownership sold? This isn't unique to the App Store.

Sure, most (if not all) software comes with a licence. Maybe I'm not using the best terminology. Maybe I mean "subscribing to", although that implies regular payment. Either way, what I'm referring to is the fact that Apple becomes a point in the critical path to just running your software. Whether intentional, or accidental, Apple can remotely prevent you from running the software you've paid for (e.g. [1]).

And I'm not even beginning to cover the terrible App Store app itself or the enormous cut Apple takes from independent developers.

[1] http://www.theguardian.com/technology/2015/nov/12/apple-user...

As far as I know, Apple can decide to shut down any app on their appstore if they wanted. Refer to the flux incident.

So I buy an app, and they can shut down the .app program on my Mac?

Theoretically yes.

I like the ability to install apps from the Homebrew Cask Tap [1] to automate my laptop setup where possible. Apps that are only available in the App Store aren't usually installable this way.

[1] https://github.com/caskroom/homebrew-cask

True, but they're usually easy enough to install themselves.

The tutorial notebook is full of individual notes with multiple 'cells'. When creating my own note, it's not immediately obvious how I achieve this. Hitting ENTER just creates a new paragraph/line within the same cell. I've discovered, through trial and error, that hitting SHIFT+ENTER creates a new cell, but this should maybe be more easily discoverable.

Some of the UI elements are a bit out-of-place. I'm not sure if it's just because they're not native controls; I'm still running on Mavericks and it's quite possible these are El Capitan-style controls. Still, it's a tiny bit disconcerting.

On a more positive note, I think this is a wonderful concept which can potentially inform future tools for 'code management' (for want of a better term). I think there are plenty of ways in which the integration of code and other content can improve our discipline, so any work in this area is very interesting.

Actually, it says so right in the 1st note "Getting started": "Click inside a new note and start typing. Press “shift+return” (⇧⏎) to create a new cell and use “backspace” to merge cells. That’s all you need to know to start using Quiver."

>When creating my own note, it's not immediately obvious how I achieve this. Hitting ENTER just creates a new paragraph/line within the same cell. I've discovered, through trial and error, that hitting SHIFT+ENTER creates a new cell, but this should maybe be more easily discoverable.

Well, from the menubar: Cell -> New Cell. Which also shows the shortcut next to the menu option.

OK, that's quite obvious, I guess!

> I've discovered, through trial and error, that hitting SHIFT+ENTER creates a new cell, but this should maybe be more easily discoverable.

This is in the tutorial, Section 3 - Cell Operations.

That's great, the tutorial notebook is a nice addition. To its credit, the app is usable without wading through a manual first, as all software should be. I still feel a toolbar icon or a more obvious way to create a new cell would be beneficial.

I happily use a github repo for taking my 'programmer notes'. Advantages: 1. Goes well with my programming workflow: Change/Commit/Push 2. Allows me to use my preferred editor 3. No need to worry about backups: Git push and you're done 4. Accessible from anywhere, even if you don't have your computer

Is there anything that Quiver would offer that I wouldnt already have with a github repo?

I do the same, bitbucket allows you to group repo's by project or team (or both) so I always create a default docs repo.

For actual notes I just use org-mode since it can be read easily in nearly anything, supports all the bits I want and has nice html/pdf export if I need to send a todo/completed list out to anyone.

What's nice is I can keep my own meta-docs project which just links to each repo for each set of projects so I can jump around different projects transparently as well.

I do the same with plain text. I find the low tech is very durable, if not such a snazzy experience.

Yeah, I use markdown files in Dropbox with vim and some snazzy plugins. It's very effective for me.

What plugins? I use the same setup but with vanilla vim.

Plugin 'godlygeek/tabular'

Plugin 'plasticboy/vim-markdown'

Plugin 'suan/vim-instant-markdown'

Plugin 'junegunn/goyo.vim'

Plugin 'amix/vim-zenroom2'

Plugin 'junegunn/limelight.vim'

I also have quite a bit of prose-related stuff that I tend to conflate, but these are the main ones.


Private repository?

Nobody forces you to push to Github.com. Git is perfectly private.

GP explicitly talks about a "github repo".

  git init --bare repo
  git clone repo clone
  cd clone
  git add ...
  git commit ...
  git push

Yes, you can use git locally without pushing anywhere, including GitHub. But, the original commenter explicitly mentioned GitHub, presumably because GitHub allows a similar kind of browsing experience of the notes that Quiver does. Specifically, GitHub has a markdown renderer.

Feature-wise, it looks a lot like org-mode - hierarchical rich text notebooks with support for Markdown, LaTeX, and code samples. Advantage: pretty OS X application. Disadvantages: OS X only, not integrated with the full power of Emacs.

I still use vimwiki. It has a few warts, but since I'm comfortable with it (as in when you learn some of the leader commands, it becomes more powerful) and files are saved to Dropbox, it makes work and home note taking convenient.

It's particularly nice in that if you are already in vim; <leader>ww will open the wiki index.


I've also been doing some note taking with :set filetype=journal in use with junegunn's nice syntax.


I have been unable to find an advantage that vimwiki or vim outliner have over just using vim with markdown in a Dropbox directory. Folding, numbering, etc work really well for me for that. What do you like about it in particular over what I could do with markdown?

There are definite advantages to just doing what you do. I like classic markdown syntax more. Things like #foo instead of = foo =.

But I particularly like some of the ways vimwiki functions.

I like that I can type project_notes and hit <return> and it opens up a new project_notes.wiki, and then I can hit <backspace> to go back to the previous wiki.

There are more normal mode keybindings that you might find yourself using. Sometimes I remove unwanted wikis by <leader>wd, which will delete the wiki you are currently viewing (it's nice in that you can see the content then quickly delete). Renaming, too.

Maybe I can sum it up to just say I prefer the navigation and handling of new/unwanted files with vimwiki?

Directions for taking notes on a computer:

- Create a folder.

- Create notes as files named like tweets `my note #javascript #yolo.txt`.

- Write markdown in plain text files.

- Open the folder from your choice of editor.

- Distribute your notes folder using Git, Dropbox, Drive, etc.

- Enjoy your notes FOREVER.

Atom works great when you need your notes in a Desktop environment. The command line is wonderful when you are on a server. Byword is amazing on iPhone. Nothing great I've found for Android yet.

I forgot to add, use http://prose.io to access your Notes repo on Github anywhere.

Also setup somewhere https://github.com/gollum/gollum to have quick access to your notes

A few questions 1) Any plans to support Windows or Linux 2) Do you handle High-DPI screens, (vector graphics for icons?, obey screen scaling)

The author made a ShowHN post (https://news.ycombinator.com/item?id=8683597) about this previously, where they commented (https://news.ycombinator.com/item?id=8684082) that he had no plans for a Windows or Linux port - but they wouldn't mind if someone else used the same design and format to do so.

There seems to be a lot of similar interest, so maybe someone with the right skills could start a community developed open source linux and/or windows port.

This looks really awesome, will test it out. I like that they let you download the trial. Don't like you have to go into the Apple Store to buy the app.

There is an app called Dash[1] that has a lot of source code and api documentation stored offline and searchable. It also boasts that you can put your own code snippets in it. So I really wanted to use Dash to keep all my code snippets in, as well as the documentation lookup feature. But adding code snippets to Dash is a somewhat involved process, and I eventually gave up on using it as a notebook. But it might be interesting to see about converting the freely downloadable docsets into something readable by Quiver. This might not be easily doable since these docsets are in a myriad of formats, and quiver only supports markdown and latex currently. Adding reStructured text would probably open up some possibilities.


Dash is iOS/OS X only however there is the excellent Zeal* that uses the same Dash docsets.


I've been using this for a couple months after having become annoyed with Evernote always pestering me to move to their paid model.

I was able to import all my Evernote content very easily. I love the ability to use Markdown to take notes and the support for VIM commands in code blocks is nice.

The only thing I miss from Evernote is access from my iOS devices.

The author claims to be working on an native iOS app right now: "An iOS app is currently under development. A web-based viewer (read-only) is also planned, which will work on Windows, Linux, and possibly Android." http://yaoganglian.com/2015/12/06/What-is-Quiver/

Can you give a quick "steps taken" to migrate your notes? I'm gettign fed up with Evernote too, particularly the awful syncing (conflicts mainly).

I just exported an Evernote notebook in the evex format and Quiver imported it without issue. It has a specific Evernote import feature.

I haven't done exactly this myself but exporting all of your notes as HTML would be a start. The header has all of the metadata about the note.

This is something I have been looking for with this type of interface. Markdown support seems the easiest, but why not use something more robust like AsciiDoc http://asciidoc.org/ ?

It's great to see somebody caring about AsciiDoc as well, which is always getting neglected! Even GitHub supports it!

Been using this for a few weeks, and it is great! I'm sure that, compared to Evernote, it misses features that are important to some, but it adds a few of its own and is so much faster to use it's in another league entirely.

Looking forward to the upcoming iOS version. The one feature I miss the most, besides that, is something like Evernote's menu bar app, for quick entry/scratchpad.

If there is an iOS version I'll jump from NVAlt/SimpleNote to this plus dropbox and write a migrator

I would switch to Quiver in a heartbeat, but aside from iOS or at least some syncing functionality, it would have to do the following as well:

1. implement search just like nvALT does it. The particular interface to search is one of nvALT's best features, and I prefer it over the 'dropdown' interface that Quiver uses. 2. support for basic vim keybindings to switch between notes (j and k at least).

I would love to migrate away from NVAlt, really hoping that Quiver is the answer. NVAlt is great, but the combo of no tags + no iOS version has been a thorn in my side for years.

If you sync to simplenote you can use the simplenote iOS app which I've had good luck with. I'd rather use dropbox as my syncing layer though...

Last I checked NValt DOES have tags...

Can you talk about some of the pros and cons you've found compared to EverNote?

I use EverNote a lot, and have dozens of quick programming notes. The MarkDown syntax support here is very nice, but I don't think that alone is going to be enough to make me switch.

I'm not a poweruser of Evernote, and maybe not of Quiver either. The syntax highlighting and Markdown support is nice, but the main thing for me is really how quick and responsive Quiver is, compared to Evernote which is buggy, slow and clunky. All in all, I get the feeling the author looks for the same qualities in an app as I do.

I just looked in Quiver 3- if you open Quiver's preferences, the shortcuts pane has the option to assign a hotkey to open a quick entry.

this, of course, relies on you having it running already.

Yep, exactly, just having to have the menu bar app running would be even better! (Though I suppose closing the window but leaving the app running gets you close)

I've been using Quiver for the last year as a means of writing programming tutorials for beginners. Fantastic product.

I usually save the notebooks I create onto google drive, which gives me the ability to easily open each notebook on other machines. Poor man's sync.

Love Quiver. I've been using it in grad school and has made it much easier to write out any non-lab assignments that require code snippets or references to code. Haven't use the LaTex cells yet but the Markdown and Code Block cells have been great.

So perhaps I won't have to write my own app for keeping an electronics projects logbook after all. There is a scarcity of reasonably simple apps that let you mix notes with images, without lots of clickery.

I will be taking a very close look at this app!

Alas, nope. It's already too complex. There is no way to "simply drop this image in", you have to drag it to the right type of cell (only text notes support images), and if you don't have a text cell ready, tough.

Similarly to append text to a note (think of a log), you first have to click somewhere, choose a cell type…

Overall, it seems to be a nice app, but for people who enjoy spending time organizing their notes. I don't, I just want a simple way to keep my notes — so I guess it's back to writing my own app after all.

I've often thought about how different things would be if programming editors had always allowed for image integration (with hiding of course.) That would mean that every source tree would have been able to integrate explanatory graphics. And since I've probably spent 100x more time maintaining/modifying code than creating code, that would have been a big win for me and a lot of other people.

Ah, a Ulysses clone for developers.

Jupyter can do a lot, if not the same as Quiver. Jupyter is free, multiplatform, and supports 40 programming languages. I also use Emacs Orgmode, which is very powerful, but I like the look of Jupyter notebooks.

Yeah, I like that.

That's nice but costs $$. <now here comes the bit where i talk about MY solution...>

I have a markdown file in a private git repo for each month, I append a new header with the date at the start of each day and use it as a notepad, dumping whatever comes to mind. Most importantly I don't go back and revise what I've written.

As a software engineer, I'm always baffled by this reaction... It's $10, less than what I just paid for lunch. Have we completely lost the value of good software?

My wife complains when I buy a $2 app, yet we spend that on a coke from a machine without a second thought.

We've lost the value of any digital goods. People will balk at paying $.99 for a song they will one forever but won't think 2 seconds about dropping a $1 into the hat of a busker on the subway.

(Also a software engineer)

Yes, we've probably lost the value of good software a bit. The bigger issue is that I no longer judge the value of software based purely on a page (or app store description) advertising it. I need to try it out to see its value. So if the company is charging up front for the software, just about any amount seems too much.

They have a free trial available.

Org-mode is better !

It would be great if you could explain why org-mode is better. I'm not familiar with it.

Edit: Just realize that it is something specific to emacs. No further information necessary.

yep, I use org-mode for my programmers note last 15 years.

My goodness, has org-mode been around for 15 years already? I only noticed it in 2005 or 2006.

Definitely using this over Evernote. This will come in handy when writing notes for any programming courses as well.

This is quality software. I've been using the built in osx 'notes' for note taking for a while now and this is much better for my purposes. One thing I would like is to be able to run code snippets with a click of a button, I cannot seem to find that feature.

Use Automator to create a service so you could (well if you're brave) dump the code into whatever you need it to run, e.g Ruby or Swift REPL.

Let me know how it goes.

Speaking of monoculture: It is nothing wrong to start to build something on your daily platform firstly, then test if it will be accepted by users. Eventually, if it is loved by everyone, the founder should consider making it cross-platform (native, please!).

Absolutely love the interface/layout and GitHub integration! Going to try it out tomorrow for my c# programming class notes since my hand-written notes for most programming classes are lacking.

interesting... but I started playing with orgmode a few weeks ago and I'm not going anywhere else. Especially after I finally found a nice (working) workflow for literate programming.

I definitely plan on checking this out. Another nice programmer's notebook I've been using for awhile is Marxico https://marxi.co/. It's integrated with Evernote, but I think you can use it standalone.

It supports Markdown, code snippets (in markdown ```), latex and sequence/flowchart diagrams.

To me it feels a little more natural to write a markdown document rather then thinking about each block of text as "cells".

Great work! The Evernote importer will make the transition easy :)

Says it supports LaTeX, and then admits it won't do anything but math mode. That isn't LaTeX, that's TeX. The "La-" isn't there for nothing.

No, but it supports LaTeX math mode commands, such as \frac, that are not in plain TeX (in plain TeX $1 + \frac{a+b}{c+d}$ is written $1 + {{a+b} \over {c+d}}$ --but you might be able to omit one set of braces).

I don't see any reason for people to avoid the LaTeX additions to mathmode.

Quiver: A Programmer's Notebook for OSX

There, I fixed the title.

Good idea—we've changed the title to that (before seeing your comment, in fact).

Some of the complaints in this thread about the program only existing for Mac, though, are childish. It's fine to ask for another version, but to carp about it petulantly is embarrassing.


I'm late to the conversation, but I bought a copy yesterday and I just could not be happier with the product. I'm hoping to convert all of my teaching notes and use the presentation mode in class. I have been a dedicated org-mode user, but this might be the one exception to my "emacs for everything" policy.

What exactly are the limitations on the free trial?

All I am seeing is a green "Free Trial" banner in the bottom left. Is that it?

If I remember correctly (I bought Quiver a long time ago), there is no limitations except a trial period and there was an ad below the content/editor area

This looks interesting. Would replace my use of evernote for such things.

I found this bit funny, though:

"Quiver lets you sync all your notes across multiple computers via Dropbox, iCloud Drive, Google Drive, or any other file-based cloud services."

.. like .. any other application that saves files to disk into a synced folder?

I asked a question last year about whether there is an app like Evernote but more tailored to the programmer's need. Quiver's developer answered my post then but the app was lacking one major functionality - cloud sync. Let's see if it's addressed now :D

What I have been using for making programmer's notes is CatWiki[1], a very simple wiki that uses Markdown and stores its pages as text files.

1: https://github.com/cabalamat/catwiki

Not clear from the description: is there any ability to execute code directly from the notebook?

There doesn't seem to be an option for on disk encryption. I don't want to leave my notes on dropbox or another sharing service in plain text - something that Laverrna has baked in. I just wish Laverna was as polished as this app.

One of the major features of this application seems to be it's transparent, documented, and presumably stable data format. This makes it practical to run it on top of an external encryption layer. Safe[0] seems to be a good free encryption system that works on Mac and would be compatible with dropbox's synchronization system.

It might seem ugly to factor out the encryption like this, but even though it requires a little configuration, it's an example of elegant software composition. Its also good from a security perspective relative to every little notebook application containing its own encryption system.

[0] http://www.getsafe.org/about

If you're on Mac just create a sparse encrypted DMG using Disk Utility, put it into Dropbox, bam you're done. http://blog.fosketts.net/2011/07/05/mac-dropbox-encrypted-vo...

I prefer applications to focus on one thing and do it very well, and leave other orthogonal functionality to other applications or the OS to then do the other parts very well. In this respect Quiver is well designed, I tip my hat to the author.

Or a Truecrypt image across all systems.

Why exactly was this downvoted?

I suppose because, at least last I heard, Truecrypt is not actively supported anymore. Not sure if that's enough reason to downvote, but this might explain it.

Why oh why do people still write standard GUI applications in non-portable platform ?!

Its a mystery to me

You either make it look beautiful in one place, or make it look like ass in three places.

Or, option C: You use Electron, like Slack.

I keep waiting for Slack to realize that they're a big enough company now that they can afford to make native apps that look and work better than the Electron version. I'd much rather have a real native app than a webpage inside some minimal window chrome. Different strokes for different folks I guess.

The Slack client looks nice but it's incredible how inefficient it is (presumably due to being a web app in an Electron wrapper). I used it recently on a low powered laptop and keystrokes sometimes took 100-300 msec to appear on screen. No other text entry application on that computer had that problem.

What would be some of the improvements making slack native? I don't have many problems with the current one other than it is quite large.

Memory usage, CPU usage, OS integration, security.

Gotcha, thanks

Qt looks very nice to me. But then again my preferred GUI is ncurse in my terminal (urxvt) with tmux in a tiled window manager (i3).

Another option - you can do everything in a terminal. Not everyone finds minimalism beautiful, but - if you do.

It's still going to be a bit of a problem, as you have the Unix terminals (bash, zsh, fish, among others), and then you have the Windows terminals (cmd.exe and PowerShell).

There are benefits to having a pure, native app. Quiver starts literally instantaneously without any lag, partly because it's less than 5MB(!) in size. Here's a good read from the author: http://yaoganglian.com/2015/11/21/Quiver-3/

Yep. Speaking specifically about developing for OS X only vs. multiplatform, there are big tradeoffs to be made by taking multiplatform options outright. In my eyes, nothing is as great for UI-centric desktop application development as Obj-C/Swift paired with Cocoa/AppKit. It just works so well, and though Qt is probably the best of native multiplatform solutions it’s still not comparable.

Exactly. I used another note taking app, aptly named "Notebooks" (http://www.notebooksapp.com), which is built with Qt. It's cross platform, open data format, and while it sort of looks and feels almost like a native app, it just doesn't compare to a true native app like Quiver.

I was disappointed to see it was OS X only, but having written several GUIs (single and cross platform), I understand the trade off they made.

It really is one-platform or web, and web is not for everyone (least of all programmers writing notes about their code at work.)

That's my experience as well. Electron/NW.js is the best option, but 1) it's like designing a website, which can get annoying at times, and 2) the file size :(

I agree on that. Unless you are developing a platform specific utility that is not meaningful in other environments, it is not a good practice to limit yourself. It also makes sense is when you are not creating a product bust just playing with a technology.

Even Microsoft is now doing multi-platform tools for developers (https://code.visualstudio.com/).

Because otherwise they don't look or behave nicely.

Or you end up writing the same product multiple times.

Because the result is always better?

Might be a mystery but I'm really glad they keep doing it, because the alternatives are 1) all your data are belong to us, or 2) it looks terrible everywhere.

IMO there is nothing worse than a non-native app, especially if it's something designed for a web browser like NodeJS and friends.

Then solve the mistery. What use that is truly good?

Nice product. I've been using evernote for this kind of stuff for a long time.

Is there a way to scale up the fonts for the UI of the whole app? On a 27'' screen it just begs for it.

Is is possible to quickly switch a cell to a code format with a specified language? (triple backquotes? like ```python?)

You can customize the default fonts for the editor, preview and presentation via CSS, and you can theme the entire UI with different colors, but I haven't found a way to change the font size for the core controls like the left notebook bar. Add a feature request @ https://github.com/HappenApps/Quiver/issues

For cells, you can Opt+Cmd+2 to convert to a code cell, then Opt+Cmd+/ to bring up the list of languages and then type ahead. That's about as close as it gets. You can also set the default language for new code cells in preferences.

I really enjoyed starting this up out of the box. I love that I can export and that I can write in latex. I'm curious if I can set this up as a notebook for scientific simulations including plots etc.

Me too. The simplicity seems very refreshing. I've been keeping all of my main notes as separate Markdown documents for a long time. This will be a big help.

I've been looking for an Evernote replacement that was more ahem concise. I've been using Evernote to help plan experiments and track papers, but it can't seem to get out of it's way... particularly when trying to share a notebook with collaborators. Honestly, the biggest downside that I see with Quiver is that it is Mac only. This isn't an issue for me, but might be for some collaborators.

Then again, the alternative would be to use some other tool or shared Google Doc or something like that, so Quiver probably isn't too much of a hassle in that regard.

You should be able to script writing new data to a note for simulations / plots, given that the notes are JSON files. I love that the DB is an easy to read / edit / backup set of JSON files.

I've been using Alternote (alternoteapp.com) for awhile and really like it. It syncs via the Evernote API so I don't have to import anything and can access my notes on my phone with Evernote. I think they're making a mobile app to eliminate the need to use any Evernote app at all.

It seems the export note as a pdf, html or markdown option does not work in the trial version. But it is not mentioned anywhere. Is it a bug or as I mentioned - nonfunctional in the trial version?

The PDF export works fine for me - what problem do you see?

I was skeptical, but looking at the features it could replace Evernote for the way I use it. The main reason I don't use a directory full of text files is I like being able to drag in images.

What with the recent issues with Evernote, which I use heavily and the wonderful data format, I just bought this and am going to write a small program to export all my evernotes into it.

Excellent stuff!

Just as a heads up for those migrating from Evernote - Quiver imports evernote .enex files out of the box! Yay!

For a free alternative I recommend MacDown


Similar but not identical is our Developer's Daily Journal https://devarist.com

oh man, i would 1000% buy this if there was a linux version. looks great, has great functionality, but i don't use osx anymore for development :(

Question: is there a way to clip websites to it? This is a feature I use a lot in Evernote that I'd sorely miss.

This does look great! Start-up time is super fast.

Is there a way to nest notebooks? That's actually pretty important to me.

So it is pretty much evernote with different way of storing notes

it would be nice if you could customize the cursor movements. block travel is something I find essential for editing with atom/sublime.

I thought it would actually run your code.

"The Mac Programmer's Notebook"

The Apple monoculture is strong with this one. When will trendy developer startups realize other environments exist besides iOSX?

I hope people start including information on platforms when posting apps that are not cross-platform. Some hint such as 'OSX only', 'iOS only' or 'Windows only' in the title would help uninterested ones among us tone down our expectations or avoid the topic altogether.

Speaking of monoculture: people on other OS could always check out emacs org-mode! The Babel component of it allows one to similarly mix code into theirs notes. I've been getting good use out of it lately for doing presentations.

For the vimmers out there, I also suggest looking into vimwiki. Not quite the same as org mode, but a good 80% solution which is integrated nicely into vim.

What's your point? That it's not available for Windows or Linux? The developer behind Quiver is a one-man shop and happens to be an iOS, OS X and web developer. So what?

There seems to be a trend among certain groups of developers to act as if their preferred environment is the only one that exists. Calling this "The Programmer's Notebook" makes it seem like a broadly applicable tool for programmers in general, when it's actually fairly exclusive and specific. There's nothing particularly egregious about this example, but it's part of a larger pattern that is aggravating for any non-kool-aid drinkers.

Edit: to be clear, this isn't specifically about Apple's kool-aid, either. I have the same reaction when people assume every developer is or should be active on GitHub and other similar monocultures.

ReSharper and Visual Studio should be OS X compatible, it's not like every developer is using Windows. Such a monoculture.

See? It goes both ways (which, from your edit, I know you understand, but it's work a specific example). This guy's labor of love is a well crafted, thoughtful application for programmers using OS X. There is zero controversy there. Same with any other OS X-only application that Windows or (Li|U)nix users want.

When we beg for cross-platform apps from developers who don't understand all those platforms, we end up with web-browser-as-platform Electron-based apps that bundle a browser to render their UI layer. Sometimes that's done well (Visual Studio Code is quite nice) - often it's just okay bordering on slow. In fact, it's so rare that high-speed apps are available in some native form for multiple people platforms, I consider it a special gift to use one (Sublime Text comes to mind).

Let's not stifle the creativity and drive that small or single-person developer shops have by suggesting - even passively - that we are entitled to three OS-specific builds of anything they write.

If ReSharper was called "The Programmer's Refactoring Suite" or if Visual Studio were called "The Programmer's IDE" I would see your point.

I'm not simply referring to the decision to target a particular platform. That's fine. There's nothing wrong with having a narrow focus. But please stop pretending it's anything but a narrow focus.

In what way does ReSharper or Visual Studio communicate Windows only?

Neither ReSharper nor Visual Studio communicate anything about their environment. That's call setting expectations. There is no expectation of what environment it's to be used with (although ReSharper sounds like c# a lot to me).

The issue with 'The Programmer's Notebook' is that the expectation is set at something like 'This is a notebook that will be generally useful for many types of programmers'. It's like the Physician's Desktop Reference. The name implies that it will be of general usefulness to anyone in that particular field.

So when I see the title 'The Programmer's Notebook', the expectation is that it will be something useful for all types of programming (embedded, linux, bsd, web, native desktop, rtos, etc).

Then the expectation is crushed because it's only usable if you have an apple device. That means a large swath of 'programmers' (whom this notebook is apparently supposed to be for) are not going to have access to it. Thus the whole thesis of the title is invalid. It's not the programmer's notebook, because many/most programmers are not going to be able to use it.

You seem to have missed my point. It's what those names don't communicate that makes them better. They don't make it seem like they're more broadly applicable than they are.

That said, the "sharp" in "resharper" actually does hint at its Microsoft nature, as it's the same sharp in "csharp"

And just to be even clearer, I'm not begging this developer to release their product cross-platform. I'm begging everyone in the developer community to communicate in ways that are less presumptuous. The way we choose to name things is an act of communication, and it seems to have failed in this case.

If this was an actual startup, your point would make sense. But the portfolio is very obviously one guy making tools he personally thought would be useful, polishing them, and then selling them. It isn't fun to create things that you can't actually use, at least in my opinion.

I'm sure if he was making a lot more money he wouldn't hesitate to release for other platforms, because he would be able to to hire someone to do the other platforms

I think it's fun to create anything, especially if it involves programming by myself, outside of a stupid agile environment with Scrum idiots running around preaching the gospel.

That sounds like a good first person shooter interface to Scrum/Kanban.

I thought you were being overly negative but perhaps had a point about HN. But this is all over the guy's sales pitch on his product page? You're reading way too much into it. It's one thing to complain about a monoculture in a community but another thing entirely to expect a product page to laden itself with anything except for pitching a product as best it can.

Oh I see. The title of this post didn't say "for OSX" originally.

Huh? No, it's not about that. Not sure where you got this idea, given my other responses.

Actually I made the comment before that change. But I think I understand why I interpreted your statement that way. The software's page itself says "The Programmer's Notebook" as the page's subtitle and the software's tagline. Presumably whoever submitted it (unless it's the author) probably copied and pasted it. Sorry about that.

Simple solution: Make your own tool for your own preferred platform.

I didn't have to: I have emacs, and thousands of people made it for me.

I do, of course, customise it for myself.

That solution doesn't sound very simple, particularly for non-programmers.

> Quiver: The Programmer's Notebook

"Monocultures" develop because people don't want a fragmented and confusing workflow. One might use a Macbook because more useful tools are on OSX, and in turn might create more tools for OSX, enticing similar users to use OSX, and so on.

You don't have to be active on Github; maybe you can be active on Bitbucket, but you won't get a fraction of the eyes or feedback as you would on Github.

So you're defending monocultures as virtuous? OK then. Don't feel like arguing that point...

But you're also ignoring the massive amounts of money and legal effort made by, e.g. Apple, in order to guarantee that such a monoculture develops. You have to willfully ignore things (like their choice to make non-Apple text messages green instead of blue) in order to claim that it came about organically. There is a concerted effort to create an us vs. them mentality, which always sucks for "them."

Obv. the same isn't true for GitHub., but I don't want to argue the (de)merits of monocultures in general. I take for granted in this thread that they're a bad thing.

Nobody owes you anything. You want something google it, or build it yourself. Don't you dare belittle a developer for only targeting one platform.

Try reading my responses first. You completely missed my point.

I did read your responses. You're adding nothing to the conversation, other than complaining just to complain.

I think his point is that if someone writes something, he's entitled to be able to use it on his preferred platform. Or, at least, that's how it comes across.

Then you didn't read any of my follow-ups.

Thanks for saving me some time!

If it's any consolation, there are plenty of games that are available ahead of time, or only, on PC. I happen to prefer the balance afforded by running OSX, but you're entirely welcome to make that decision however you want.

How lucky you are to not remember when all software was Windows or bust. Talk about a monoculture. Users of anything that wasn't a Windows box were outcasts.

From what I see in Melbourne at least, most Devs and iOS people use OS-X, if they're not using that they're running fedora or arch. I'm yet to see anyone run Windows other than project managers in places I've worked over the last 4 or so years.

I could say the same thing for a lot of stuff that's Windows only.

Damn, you've really opened my eyes to all these other environments that exist besides iOSX. I'm crying now because you've lit the way for me, and I feel so foolish for all the work I've accomplished in my monocultural environment.


Please stop posting unsubstantive comments to Hacker News—especially about downvotes, the gold standard of unsubstantiveness.

We detached this subthread from https://news.ycombinator.com/item?id=11013113 and marked it off-topic.

Or maybe it's because your comment doesn't add anything constructive. I mean, even your username is a complaint...

looks great, but desktop app are so 2000! I would start working on a web version if I were you.

Not everyone wants to store their personal notes in the cloud.

No thanks, I'd take a native desktop app over a web app any day of the week thank you very much.

You guys should watch this repo https://github.com/niftylettuce/seuss.md (nothing yet, but just watch it ;)

Applications are open for YC Summer 2023

Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact