Where as a developer do like to you keep your code snippets, links, checklists, final solutions to problems etc?

I've fooled with Google Notebook, MS Onenote, TreePad, textfiles, and Evernote a bit (currently leaning toward Evernote). All have pros and cons but none seem to be really suited to developers. Is anyone super-happy with a collection / note system that's not just generic GTD, but with developer-centric utility?

+264  A: 

Start a blog. This way, not only you benefit, but so do others who may have the same problem. There are also combination blog/wiki systems, ranging from Drupal to Hiki. Also, consider that having your notes on a host (with regular back ups) will ensure that they survive you dropping your laptop down a flight of concrete stairs, and that they will be available even when you're away from your primary working machine.

Oh, and some people really like mind maps for brainstorming and such, but I'm not sure that they're that valuable for long-term note taking/storage.

UPDATE: If you don't really want to run your own site, or a blog is too much of a time investment, another option is to start posting on RefactorMyCode or Snipplr. You get a searchable database of your code snippets, plus perhaps people will comment on your code and suggest improvements. The "Code reviews on the web" thread might have more ideas over time.

This is one of the main reasons I started a blog.
I wish I could be more discipled with this though. I mean, starting a blog is one thing, but keeping it going with a constant stream of thoughts seems to take a lot of time. I'm trying though!
Scott Saad
Oh, for sure, I don't practice what I preach either; I keep meaning to start writing regularly, but it takes time and effort :)
I agree with the time factor, but just to keep little side notes. There s no reason for a Blog. If your going to keep programming notes, then the blog is the way to go, but for sidenotes, its all about EVERNOTE!
This is _THE_ only reason I started a blog.
The blog is a good idea, but I always shied away from it because of confidentiality issues. Its an extra step of mental effort to take your ramblings and 'generify' them, such that you're not actually disclosing your employer's work product on the internet.
There is a fine line on the blog though, to make it useful to you (potentially confidential code snippets), and useful to others (listing test cases, workarounds for not project relevant items). It's disadvantage is you are writing notes for someone else too - the web.
Nice, but far too time consuming
I used the blog-ish capabilities of the google intranet at my last company. Worked great - was secure, but the rest of my team had unobstructed access. And I could include a url in my comments when something needed exposition. On top of that, team members could discuss in comments or edit/add to my posts.
Ross Henderson
I actually use Stack Overflow as a way of keeping track of difficult issues I've hit. SO serves as a way to get things solve and have a record of how it was solved.
James McMahon
Yes, it's time consuming and some stuff can be confidential but the major benefit, imho, is that it's public. That means that you have to explain so that others can understand and that is a very valuable skill.
I agree with the mind map point. I can't really see mind maps as a feasible option for long term note taking and referencing.
If all you need is a note to say something like "{some construct} - unexpected bad perf; use {other construct} instead", splitting off to then write a blog is an interruption in the train of thought. If you write a lot of notes, then working out what you then need to blog about just ends up eating into otherwise productive time.
Chris J
+24  A: 

I use a password protected, private instance of Media Wiki. (It's the same backend that Wikipedia is based on).

Nice if you have the patience to set it up. I for one, do not. :p
When you say a private instance, does that mean it's running on your own server/database? Or is it running on the web, but password protected?
Mike C.
I have it sitting on a server on my LAN with no access allowed from the outside world. I also use Apache htaccess to further restrict access.
+61  A: 

Use a Wiki. I personally use ScrewTurn Wiki - Desktop Edition

David Negron
I vote for a wiki too..
I am having trouble finding a wiki I can run myself, I can secure the pages, and isn't a really big application. But I really like the idea of keeping a wiki, it's how I write other documentation.
ScrewTurn wiki is pretty sweet
Jacob T. Nielsen
WikkaWiki. Very easy to deploy and extend! Runs on LAMP stack.
I found it very TYPE-FORMAT-PREVIEW-CORRECT-PREVIEW-SAVE... I endured it for 2 months, but the operational effort reminded me why I eventually dropped the PDA: it's not nearly as fast as taking an immediate thought note (which is the goal).
I started using ScrewTurn wiki for personal documentation a few months ago, and find it extremely useful in that role. Since I use it to store important links (like to StackOverflow), I keep it open all the time. MediaWiki (Wikipedia's wiki) is great, too, but if you must use Windows/ASP.NET, might not be for you.
Yeah a ScrewTurn Desktop is pretty good. And if you have multiple computers you can sync the "public" folder using something like Windows Live Sync (previously known as FolderShare).
Self-hosted screwturn ftw. Private, as secure as you want it to be, and accessible from anywhere.
+15  A: 

I go through 100s of post-its a month.
Then I also have a WordPress blog with some code syntax hilighting plugins that is behind an .htacces password.

That's funny. I have a co-worker that uses post-its. I'm starting to do the same thing.
ROFL, I LOVE post-its, they are almost as important to me as my keyboard, I doodle on them when Im thinking, I'll write out to Database column name that I can't remember for the life of me, they are my schelduling, in general they are my LIFE SAVER.
I love then so much infact that I own shares of 3M the maker of post-it.
And how do you search them when you want to find something specific? :) I use them, and post them on a section of my wall, but I don't use it for many things, just the bare essentials.
Not much, as soon as they become obsolete they get tossed out. And if they are super important it gets added to the digital post-its on my sidebar.
+208  A: 


It's great all your notes get cross referenced.

TiddlyWiki is a single HTML file which contains all the articles ("tiddlers") for a small wiki. It also contains all the styling and javascript to make it work as a wiki (displaying / hiding articles, generating menus, etc). Fans find it a very intuitive way of constructing a document.
... although it's not just a document - one might almost say it's a tiddly wiki!

Edit (summarise comments):

The only problem is how to keep it in sync in multiple locations.
Possible solutions are:

this begs the question, how do you keep TiddlyWiki current and in sync in multiple locations?
host it somewhere you can always reach
you can run it off a flash drive
At a new job I create a new TiddlyWiki. But if it mattered to keep it in sync at home, work, etc., I'd use FolderShare.
I use it on my flash drive (for non-code notes) and it's great and useful
Rui Curado
Great stuff, gratis for the link!
Chris Ballance
I use my tiddly wiki on a daily basis. To make it accessible everywhere (when i got a computer in front of me), I check it in to my svn server. Because I do backup´s on my svn server this is included.
Anders R
td is my favorite tool for learning anything new!
wow! This was an eye-opener!
I tried this and wasn't a fan of how it's done in blocks. I do however use a personal/public wiki on my website.
This is similar to http://sourceforge.net/projects/simplecms/
That is, http://www.cmsimple.com/
There are some multiuser server side implementations of TW. http://tiddlywiki.org/wiki/Server-Side_ImplementationsI believe I've seen one that can authenticate with AD, if thats your bag.
Tiddlywiki + Mesh = win
+1 for dropbox application
http://www.tiddlybackpack.com/ is an easier to use version of TiddlyWiki
James McMahon
I prefer to use a real wiki on a webserver, I'm online 24/7 so I can always access it.
*"TiddlyWiki is a single html file which has all the characteristics of a wiki"* is a bit of a lie, it's 2 files and one is a Jar.
Chris S
@Chris S, saying it requires 2 files is also a "bit of a lie". It depends on entirely the browser you use. Firefox and IE work perfectly with just a single html file. Opera, Safari require the Tiddlysaver add-in (which is a jar, from memory).
TiddlyWiki works well with Firefox and doesn't require a .jar file. But getting Firefox to always save without that annoying warning is a bit fiddly. After saying yes to the warning at least once, you need to (1) *exit Firefox*, (2) open your prefs.js file (somewhere like C:\Users\yourUserName\AppData\Roaming\Mozilla\Firefox\Profiles). (3) Look for three lines that contain `capability.principal.codebase.p0`. (4) In the line that has `capability.principal.codebase.p0.id`, change the second argument to point to your TiddlyWiki file (e.g. "file:///C:/dir/dir2/TiddlyWiki.html"). (5) Save.
@Chris S. no, it depends completely on browser because I use OpenBSD and don't have Java installed and it works fine for me in firefox.
+21  A: 

I use Emacs, and dump everything into text files, typically in a src/snippets directory. Then I make sure that my OS provides fast full-text search. For group projects, I use MediaWiki and a searchable bug tracker.

Blog posts are great for more involved answers.

+1 for excluding Microsoft Windows there, without even mentioning windows. :)
I believe that for any string of words ending with the character "?", someone can be found whose response begins with "I use Emacs".
Dan Ray
+13  A: 

I strongly recommend FlashNote.

It is so convenient - just ALT-S and type then ALT-S away.

I find the newer version interface is the tiniest bit clunkier than the old version but it's still the smoothest note taker around.

I can't recommend this program any more - every person I've introduced to it, developer or not, loves it and uses it.

NB: Windows Only

+490  A: 

I like physical notebooks. Preferably small ones (4x6 or 5x8, not 8.5x11), permanently bound (spiral bound, book binding, etc.).

One notebook per project, typically, unless they're really small projects, in which case I reach for a partially used notebook and add to it.

I find it very helpful to grab a notebook off my shelf and re-read my maunderings from when I was thinking my way through something. Scribbling on paper lets me record partial thoughts instead of doing a 'finished' write-up. This lets me revisit my thought process in addition to the solutions I found -- and that tends to be more enlightening than merely recording a solution.

UPDATE: I'm extremely gratified at the response of my peers to this simple answer, and so I thought perhaps I should elaborate on my methods.

First off, I find the typical Moleskine notebooks to be too small, and they tend to be expensive. I usually use something like this one from Staples.

Top of each page: Project name, Page number, and Date I started writing on this page.

Daily: Draw a line across the page, and write the current date (and sometimes the time) down before adding more notes. It's helpful to see the gaps of time in working out ideas. And I often find my best ideas turn up just below one of these lines -- that is, after I've thought for a while and come up with something.

Review and Redact: If I've written out a few ideas of directions to go, and later I decide on one of them, I make sure to go back to the original list of ideas and add notes; specifically, I'll hilight the chosen solution somehow (underline, circle, etc.), and add a reference to the new page where I wrote down why I chose this solution. Also, I try to make these revision notes in a different color ink, or written at a different angle, or make them in some other way obviously not part of the old information.

Reference: If I flip back to look at something, I consider jotting down 'see pg. 13' so I don't have to go flipping around for that information again. I also never hesitate to refer to other project notebooks, noting them with 'See proj. Alpha, pg 23' or something similar. Sometimes I backlink that notebook as well, say in Alpha pg 23 a note 'Very helpful for proj Beta pg 7!'. These sorts of notes across projects are fairly rare.

I'm sure I've left out some of my other ideas and techniques. Perhaps others could add their ideas and techniques here as well? I know I'd appreciate hearing them!

Lined medium size, 250 page moleskine, FTW!
I do the same thing. Works like a charm!
Arc the daft
I agree 100%. It's also crucial to keep it all in a notebook, especially for people who have poor organization skills. How many times have I seen a coworker look desperately for a sheet of paper they wrote something important on. That being said, these people might lose the notebook altogether :D
How do you search physical notebooks? If you have collected many notebooks, >10, isn't it cumbersome to find specific things?
Definitely using the moleskine helps bring the sex appeal factor to the whole note taking thing.
Scott Saad
Same thing. I find it hilarious, actually.. We're programmers. Shouldn't we have built an amazing solution by now? It just proves.. technology can't solve everything.
Nick Stinemates
As for searching, I keep a daily log per project. That might get confusing if you have more than 1 project, though.
Nick Stinemates
I just went out and purchased my entire development team notebooks! We also have decided to have separate notebooks for *our* projects, meetings, and *personal* projects/notes. Thanks for the advice!!!
Page numbers, big thumbs up! Makes handwriting a cross reference easy, Also, when people leave, they should leave their notebooks too!
Ray Hayes
Not searchable, lame.
I number pages, and can keep an index if I need to, but generally I don't need one. I think "What was I working on where I needed to do something like this.. Right, project Foo. Flip through notebook, aha, right, I solved this by doing that, and I noted project Bar p. 73..."
Leaving notebooks behind is one thing that I haven't solved. I don't want to lose my thoughts. I've told people "You should have a copy of this. Go make one." But I generally want to keep my originals. And, by the way, a dated log book is considered a legal document, very useful in arguments.
No backup system either... :)
Steve Duitsman
I do exactly the same thing, keep it with me at all times. If you press hard enough you get a backup on the page underneath!
Would love to see a photo or scan of some of your notes. Perhaps it would make a nice 'fun' question for someone to start?
Charles Roper
Not searchable; not easy to backup; no access to them when you're not in the office... too many problems! come on, computers can help!
Since most of us probably spend far too long looking at computer screens, keeping your notes on paper also gives your eyes a break..
I can't say how many times I've uttered the words, "Man, am I glad I wrote that down last week."
Ryan Thames
The link to staples doesn't let me see your suggested notebook, unless I hack-in (lie about my postcode). Can you add an image to the answer?
Paper notes don't need power to be read - I often need the notes that I have written in order to fix the broken computer in front of me.
Shannon Nelson
+1. Steve McConnell advised physical notebooks in Code Complete 1. Excellent idea. Important stuff can go electronic later if need be
-1 Physical books sux.
This is hilarious, I use exactly the same notebooks. I also live in fear of forgetting to add a new task to fogbugz when I am without my notebook.
I've done countless projects and it always comes down to my notebook and pen. I don't know why that is, it just feels more natural to jot down thoughts in a notebook than it does on the computer...
I cant believe how eerily similar we think on this subject. I always date my pages, create new pages for meetings. I write down a lot of detail because I tend to forget 95% of everything Im told. Writing down really helps me clarify my thoughts. It amazes me how many developers do not ever pick up a pen or pad and actually handwrite their ideas first. I was taught to pseudocode before doing any development (and that was IBM mainframe development).
regarding Search: my visual memory aids me a lot. But then, When searching for a quote worth remembering I read in some book years ago, I usually remember the rough location on page (left/right, top/middle/bottom). However, visual memory works amazingly well for most people, give it a try.
+1 because if you're doing anything important and want to patent or submit it as a legal document IT MUST BE PHYSICAL. They will not accept digital work. Also drawing on a computer is still a horrible chore for all but the fanciest.
For the left handed I use the top spiral bound memo pads.
Steve Tranby
Notebooks are searchable: they can be easily indexed by date. I try as much as possible to keep a single series of notebooks for all projects. When I want to find something, I can always find a date reference from a digital source: email, SVN log, billing record, etc.
Paul Keister
Wow... Physical notebook for code snippets? And links!? Do you really copy your code from screen to paper by hand-writing? Do you really rewrite long hashes from links by hand and then type them back from paper? I find it hard to believe. I understand it for general note taking, brainstorming and sketching, but for code snippets and links?
Josef Sábl
Problem with this answer is that it answers a different question that has been asked here. You are all writing about general note taking, for which the physical notebook is quite good. But the question is about keeping: snippets, links, checklists, final solutions to problems etc. For which is the 'hardware' notebook unusable at all.
Josef Sábl
Once there's a device with e-Paper / e-Ink, featured with a touch-screen, this would be my perfect tool. Copy source-code on it and still be able to draw stuff.
It doesn't seem to have been mentioned that a notebook is also available offline...or without power...
@JBB: Do you find it funny that even when we talk about things that don't relate to computers we use the words Foo and Bar as place holders? I do it myself all the time. ;-)
Lucas McCoy
@Josef: I normally code **in paper** before I code stuff in the computer, specially when I'm having a drink in a coffee shop or in a inspiring place, even when I got my netbook with me. One thing that I don't like in notebooks / Moleskines is that I can't keep the notes organized for long, but I'm looking into making my own Moleskine-like perfect notebook now.
Alix Axel
@Alix: I understand this for designing, prototyping etc.. But writing in code? Like you take a pen and paper and start drawing letters: if (i=0; i<10; i++) ... Crazy, but if it works and suits you, who am I to judge :-)
Josef Sábl
@Josef: Yes, I really write code in notebooks. However not *all* code, just important or complex stuff. I find it that since I write slower with a pen than with a computer the time it takes allows me to better reflect what I'm doing and thus improve my real (as in digitally typed) code. It might be a little crazy but I've seen a couple of developers and even more designers do this, and they are usually quite good in what they do. The longest snippet I wrote in a notebook was a DB wrapper and it took about 120 lines.
Alix Axel
I've been writing notes down on paper for as long as I remember. My room is filled with papers and little notes. Despite my futile attempts to regularly clean my room and sort organise the notes, I cannot seem to keep it neat for long. So now I've ordered a Moleskin! Let's hope it helps me organise better.
Kevin van Zanten
-1 lame,char[10]
@temp2290: I Will print it.
+19  A: 

It's not developer centric but I find a really natural way of keeping notes is TiddlyWiki. I find the natural structure afforded by the wiki metaphor a really quick and easy way to organize notes well.

I always use it when condensing a large text about a technology into a small piece of reference material or when planning a piece of work.

There are some issues when saving locally with the Java applet though so be careful to make sure it is working before making extensive notes.

Edit: None of this is a replacement for being able to Hold a Program in One's Head.

Tom Martin
+3  A: 

Set up a wiki. Its free and easy. Check out MediaWiki, the software that powers Wikipedia. I set that up on Fedora a couple of years ago. It was pretty easy to set up and use.

At my current job we use Microsoft OneNote which is also nice, but you have to have the software installed. Its easier to author, but if you want a wide audience then a wiki might be the better solution.

Jason Jackson
+12  A: 

I find that the less time spent on the tool the better. I often have 2 files going: ideas.rtf and todo.rtf. The former is a collection of random thoughts while the latter thoughts that have a temporal nature (e.g. tasks, etc). The reason I bring up the format and not the editor is because my notes then end up being portable and editable by almost any tool .

However, if I had to name a tool I would say TextEdit on the Mac. You can't beat the cmd-+ keystroke for enlarging text. A quick way to establish structure and layout in a notes document is essential.

You seriously need to pay more attention instead of shilling Flashnote at every opportunity. I don't see a Mac version offered on the site, so it certainly isn't going to replace TextEdit for moran any time soon.
Matthew Trevor
Sometimes, the simplest approach is the best one. This is easy to use for anyone. I do this for logins and passwords for different sites...a small rtf or txt for each site. Not the most elegant, but easy to use and port and protect.
+7  A: 

I've like to evolve my notes in a wiki site (I use SharePoint but any wiki system would do) to share internally with my team members. From there, depending on the topic and how much "churn" there is with the content, I migrate notes into more formal documents that can be version controlled.

My concept is not really specific for developer-centric purposes, but the idea of a wiki works great for situations involving a team of peers.

Saul Dolgin
We do exactly this. Sharepoint wiki to make initial notes, then these may eventually become procedure documents. Of course everyday notes that don't require long-term storage just go onto post-its or into a notebook.
+13  A: 

A variety of tools depending on exactly what I'm saving. I use Evernote for saving notes, webclips, links, code snippets and the like. I really like it so far. Tasks and checklists go in Remember the Milk (though I just started trying out OmniFocus). Random ideas get written on vertically ruled index cards for the initial note and get filed away in one of the electronic systems.

Chris Upchurch
+2  A: 

Honestly I keep notes on projects, solutions and other notes in a more traditional fashion. I use a moleskine notebook, personally. I originally used a piece of personal wiki software called "Notebook". It works like just about any other wiki but it lacks image support and table support. However I found it was a hassle to add information. I'd spend way too much time formatting the information and get sidetracked from my main task. With a traditional notebook, I spent far less time formatting, and more time jotting down what I needed and resuming my work.

The main website seems to be down so I'll simply post the Wikipedia article about the software. http://en.wikipedia.org/wiki/Notebook_(software) I do highly recommend it if you do want a wiki approach with a small footprint.

Ryan Taylor
+2  A: 

I just use slickrun's jot to quickly store/read things with a quick shortcut. Probably not the best technique, but it's quicker than ^"100s if post-its", IMHO.

I've used it too. Great for short term stuff.
+1  A: 

We use Confluence (wiki) where I work: http://www.atlassian.com/software/confluence/

You have to pay for this one but there are free ones out there as others have mentioned.

we used instiki int he past: http://www.instiki.org/show/HomePage

it was pretty nice and free.

Arthur Thomas
+63  A: 

FWIW, I'm really digging Evernote right now. The searching works great making it really easy to find code snippets. The tagging is nice also. Honestly, best feature by far is having a Mac, Windows, and Web client that auto syncs. Your notes/snippets are available anywhere..

oh.. and it's free..

Unfortunately Evernote only syncs to Windows Mobile phones or the iPhone with native apps. Other mobiles you have to use a browser. If there was something like this that could also do PalmOS I'd be set.
I've tried Evernote, but quickly found it frustrating for code snippets because it completely mangles my formatting. Is there any way of preserving whitespace/syntax highlighting?
Adam Lassek
Actually the Windows Mobile isn't a sync, it still pulls up notes in a browser, I didn't like that at all.
How do you get your data if evernote goes out of business or you want to put it somewhere else?
Your data is stored locally; it doesn't exist solely in the cloud.
Charles Roper
+1  A: 

On wikis, I like Daisy. It's like a wiki on steroids, and I find it great for documentation, brainstorming and keeping notes. It's also easy to share the information with other devs too.

Dan Harper - Leopard CRM
+12  A: 

Snippley is a neat little Adobe Air app done by the guys who manage MooTools, made specifically for storing little snippets of code. You might find it useful: http://code.google.com/p/snippely/

that looks neat...
+150  A: 

An oft over-looked application is OneNote. You can share your notes on a network share, over the Internet as well as from within SharePoint or just keep them private on your own PC.

If you're a heavy Windows user, OneNote integrates with every other MS Office application. Will sync with Outlook todo lists as well as with PDA's and Smart Phones.

I've been using OneNote for at least 5 years now and would be lost without it.

Summary of Comments

  • ability to keep on a USB drive
  • live synchronization in meetings (other users see your updates as they occur)
  • integration with MSN Live Mesh
  • good for tablet pc and graphic tablets
  • searchable
  • easy back up
  • can insert previously written content from other applications
  • entries can be encrypted
  • ability to create cross-reference links between notes

Sample Usage (from comments)

I use it on a tablet, and it's great, for example, for deriving equations, as you can write the equation with the pen, and then type a paragraph of descriptive text, and insert a link from the web.

Best Comment

I wish it was available for Linux, as it's the only reason I use Windows.

Metro Smurf
Do you use it in tablet form? I found it a bit cumbersome, but I adored the fact it auto-cited anything clipped from a website...
I've always used the desktop version. Though, if I had a tablet, I'm sure I'd use it there too :)Some of the newer features are quite handy as well, like when you take a screen clipping you can copy (or even search!) the text from the image.
Metro Smurf
Shared OneNote notebooks have been a great asset in my small team. It's a great place to get ideas down before making the more "concrete" Word document version for the client or management.
I know so many Network Engineers who use OneNote for just this purpose. Likely underused by Software Engineers...
This software engineer, and many of his peers, use it. Though I'm still trying to figure out how best to use its inbuilt hierarchy scheme.
Michael Petrotta
The main benefit that I have found is that you can't forget to save.
Edward Kmett
We've just started using One Note at our company and it is very useful.
Tony Peterson
I've used it on both my desktop and tablet laptop. It's a very nice program.
+1 for OneNote, noting ability to keep on a USB drive, and live sharin in meetings (to avoid sync delay from SharePoint).
The combination of OneNote and MSN Live Mesh has become invaluable to me lately... Truly a great product from Microsoft.
What's wrong with vi?!?- Auto-saves a backup.- Very portable (ie, the files can be sent to anybody)- Works on (almost) any computer.- And you can version-control the resulting files, and see any differences!
OneNote is very good if you have a tablet pc or a graphics tablet, otherwise i find it a little cumbersome. Paper and Pen when im at work and not tablet access.
OneNote is fantastic. It's the only MS product I like, but it's great. It beats paper and pencil because 1) it can be searched, 2) it can be backed up, 3) you can insert in something you've already written, 4) sensitive entries can be encrypted, 5) one can easily make cross-reference links, etc, etc. I use it on a tablet, and it's great, for example, for deriving equations, as you can write the equation with the pen, and then type a paragraph of descriptive text, and insert a link from the web. I wish it was available for Linux, as it's the only reason I use Windows.
OneNote also lets you ocr an image and pull the text out so it becomes searchable.
Aaron Fischer
+9  A: 

I have a directory called "notes" with just three sub folders, unix, java and confs (for working config and property files). It is backed up in subversion and mirrored between my laptop, work laptop, work desktop and my server. Many of the files have names like "find-command-examples.txt" , "cusip-validate-via-regex.txt" or "jboss-jndi-with-openldap.txt"

Plain text is the way to go. And fewer folders is better since you don't waste time deciding if something should go into "unix", "shell" or "scripts"

On my Mac I use spotlight to search. On unix I use grep. On windows I use the cygwin find command.

If you need formating, consider rtf since you'll still be able to grep. Or use find with rtf2txt to keep plain text versions.

+1  A: 

I used tiddlywiki. It was easy to use and generally fits the bill for my needs. The tagging works well.

I suppose, however, that having an indexed drive would work just as well w/out having the need to use a special tool.

+4  A: 

Ok, this is a mac-centric answer...

I used to use voodoo pad, which is a desktop wiki program. It's quite nice to use because it's a fully integrated mac app. You can copy and paste rich text into it and preserve the fonts and formatting and so forth. It's really pretty nice to be able to dump procedures, notes, stuff you received in email and so forth. And it has a great search feature.

One thing I should note -- I initially bought this application because I thought I could have a nice-to-edit desktop wiki, and be able to access it remotely through a webserver/wiki type interface. It never lived up to the hype though. Maybe it's better now.

Then I used Omni Outliner. This had many of the great qualities of Voodoo pad, but would allow me to hide and rearrange things. It gave me the ability to prioritize stuff, and conversely, hide unimportant stuff. And search too.

Now, I'm using Omni Focus. The Omni Group came out with it after they came out with Omni Outliner, so I switched. It does most of the stuff Omni Outliner does, but with all the Getting Things Done (GTD) goodies that helps you manage the tasks.

To be honest, I haven't really taken advantage of the OmniFocus extras, but it's part of the plan...

I have to say, and seeing that most of the people have replied that they use notebooks, that VoodooPad is by far the best application I have ever seen for note taking. I think there is a windows prog that does the same thing, just can't remember the name of it.
Hey Mike511, I'm checking out VoodooPad right now. Could you say in what way it "never lived up to the hype?" Thank you.
+3  A: 

I ran into the same thing about 2 years ago. I wrote a little program that sits in the top right corner of my desktop that drops down and has notes and contacts. I'm not sure if the published version still works well, but the code is there so you can fix any bugs you want.

You can get it at http://desktopcontacts.sourceforge.net.

It is a little buggy. It was one of my first ventures into custom painting, but I find it useful.

+15  A: 

Personally? While I'm planning and designing, I'm a big proponent of good old fashioned pencil and paper. I have yet to encounter a diagramming tool that's as natural as sketching out the boxes and arrows myself, and during the design phase my work is equal parts pseudocode, quasi-UML, interface sketches, and checklists.

For notes that I want to share with my team, I prefer to use the wiki that's built in to Trac. It's integrated with rest of the issue-tracking environment, so you can do things like easily link to tickets, source code, revisions and changelogs. We've found it to be a great place for the kind of notes and discussions that you mention.

Ash Wilson
+1 for mentioning Trac! It's an awesome system
+1  A: 

Like previous posters, I also use TiddlyWiki for my notetaking needs. I will expound on why, from a programmer point of view.

First, note that "tiddler" is a note object in TiddlyWiki parlance.

Each medium to large project gets a TiddlyWiki file all to its own. The default tiddlers are an overall project overview, and a "master" class that links to other objects. Each object has notes about that specific class or object, things that work or don't work, etc. Most of this ends up being in classes, but as we all know, there's additional notes we take while writing code, including external libraries and supporting programs.

+30  A: 

I have just started using Evernote. Its searchable, you can publish it to the net and accessible from anywhere.

Scan in your original diagrams to go along with the code.

And its free.

just looking at this topic for the 10000th time... evernote offers ssl in their pay version.
I tried Evernote but had some problems with the formating and syncing on multiple computers. The formating of code was just wrong and gave up on it

We have a team-wide wiki to record all project details/documentation/design, everything really. Because it is just a wiki though, it requires some guidelines to make sure it remains organised. We are definitely looking out for improvements to the wiki software that allows us to organise the information better.

The important thing is the visibility the wiki provides to the team, and has become invaluable when team members move on from our company. The last thing we want to do is trawl through someones private documents to recover important information.

Make sure you think about this when writing notes: "Is this information going to be useful to anyone else other than me?".


Every good text editor (and by good I mean Emacs and TextMate) has a mode/bundle for note taking, organization, etc.

Try ORG mode on Emacs, or the notes Bundle in TextMate. I use the latter.

Vicent Marti
+1  A: 

I use The Journal found at http://www.davidrm.com/thejournal/

It's a great tool that use for keep scratch notes, my daily journal entries in date format. I keep the sources for connecting to my blog, which is nice to have an offline archive. I keep general programming notes and code snippets in a Loose Leaf format organized by language. I keep a Bug/Error Listing for those @#($&@#(*$ they didn't document THAT moments and the appropriate workarounds. There are customizable templates you can create to save time on repetitious entries. For me these are the built in headers and bullets for my revision notes, daily time logs and workout notes.

Generally I keep my other writing projects, including my novel in here too. The program is very flexible and just plain works well for how I function. I also love how I can install it on my USB Jump Drive, just like my PIM/Business mail program and keep it with me regardless of what computers/machines I am using.

To those whom have mentioned mindmaps, I use those for brainstorming primarily, but that for me needs to be a paper/whiteboard exercise. There is something about the process of creating mindmaps for me that needs to remain somewhat organic. Generally after I complete a map I will either post it on my cork board or scan it/draw it to include in whatever the map was made for. There are a few good programs out there for creating them, particularly MindJets MindManager, but I only did the trial on it and can't say for long term how useful it is.

+10  A: 

if you are working on something that may be patentable, use a hard-bound notebook with unlined pre-numbered pages. have it notarized periodically.

otherwise, notepad works for me ;-)

Steven A. Lowe
If you work in the US. If you work elsewhere, take notes on stamped envelopes pre-addressed to the local patent office.
interesting, i did not know that!
Steven A. Lowe
@Denton You need some proof of date sealed. I've always heard you should send a sealed copy of everything to yourself so you have the postage date and the sealed copy. I have a distant relative who won a patent case this way. [citation needed] :P
Nolte Burke
+67  A: 

I use Emacs Org-Mode along with Remember Mode to keep track of everything. TODOs, appointments, notes, etc. With Org mode and Remember mode integration, plus a shortcut key defined in my window manager, I can hit a shortcut key from anywhere (Win + R in my case) and pop up a new Emacs window, select which type of item I'm saving (TODO, appointment, note, etc) and then quickly type what I want and then hit C-c C-c. The note is filed away to a default location for me to organize later if I so choose. This is so simple and convenient that I don't have to interrupt my flow of thinking if I suddenly think of something I need to do or take some notes on a given task. "Just what are the steps again for setting up a remote git repo? Okay, I do this and this and this. I had better write this down before I forget."

Travis B. Hartwell
+1 I should learn Remember mode too some day :)
+22  A: 

I use a Google Notebook. I like the fact that I can access it from any computer with Internet access, and the format is simple but useful. The searchability is a big plus, and I can share it with other programmers.

We've talked about creating a team wiki, but I'm glad that my notebook only has things that are useful to me. The exercise of putting things into my notebook also helps me remember the things that I've taken the time to add.

Plus, the handy cut-and-paste. Hardbound notebooks have a real disadvantage when it comes to pasting in code snippets.

In recent months I've come to use Google Notebook for a *lot* of stuff, replacing other methods like textfiles on hard drive. Too bad they stopped development on Notebook and prevented new users signing up (http://googlenotebookblog.blogspot.com/2009/01/stopping-development-on-google-notebook.html). Hopefully they'll continue to keep it running for old users though; I for one don't find Google Docs a very good replacement.
Yep -- Scratch that. Google notebook has been discontinued.
Dan Esparza

I use the Eclipse templates feature to store my code snippets. They are easy to write and parameterize, and can be inserted into your code with an easy ctrl-space. That is, if you use Eclipse of course.

Jeff Heigl
+4  A: 

A combination of good old physical notebook and notebook in the cloud (Google docs).

Physical notebook is simply much better when I want to quickly scribble my thoughts and draw diagrams. And I can do this anywhere. Notebook in the cloud is good for copy-pasting code snippets. And it's nice because somebody else is doing the backup for me, and I can use it as long as there's internet access. I wish Google docs could do basic drawing and diagram though.

I use google docs on the Google Apps for your Domain account I created for the project. I also use the Todo widget on the Apps start page to keep track of what I'm doing day to day.
Sam Hasler
+1  A: 

I use Wikis as much as possible. I find that it helps for a number of reasons:

  1. I can take the Wiki with me from job to job.
  2. I run the wiki locally on my development PC, so it's available from anywhere on my corporate intranet.
  3. When people ask me questions I've already answered, I can just point them to the Wiki page.

I find a lot of people waste too much time on formatting in a Wiki environment and not enough time on just taking the notes. For this reason, I've found Wikit (http://www.equi4.com/starkit/wikit.html) to be the best Wiki software. It's easy to setup and run (has a built in webserver), and has enough formatting options to keep me satisfied, but not so many that I get overwhelmed.

+2  A: 


It's functional and fun to say!
I like the basic squared type with 250 pages and hardcover. If you do XP-like development you can keep your task card in a nice little pocket in the back. There's a band which keeps it closed and a bookmark to keep your current position. So yes, I'm a moleskine convert.
hoyhoy, feel free to make your answer a bit more verbose on how you use your moleskine.
+3  A: 

Ultra Recall - The most awesomest PIM / personal database / document manager evar. http://ultrarecall.com

Unfortunately it's Windows-only.

Eric P. Mangold
+2  A: 

I use a combination of a large Moleskine journal (which I break up into sections for different university courses and projects) and plain txt files (TextMate). The journal for conceptual stuff, the txt files for saving project-related emails and other text harvested from the web.

These days I'm using "Action Sheets" from Behance that I get at a local paper store for notes and diagrams in conjunction with Plain Text Wiki, a wiki plugin for TextMate, for notes and links. I backup and sync the wiki to other computers and my iPhone using Dropbox (I just keep the repository in my Dropbox folder). (Previously I used svn, but Dropbox is more automagical and works with iPhone).

(viki is a wiki alternative for vim)

+2  A: 

I use Vim and the Viki plugin - effectively a wiki using plain text and a plain text editor.

Swaroop C H
Nice. I'm using vim but I didn't know about viki. Thanks.

I usually take notes during a meeting on plain old Paper and Pen. Then I keep the paper around as long as I need it, usually only a few days. If I need to keep information for longer, I'll type it in and save it in a Word document or something.

I've played around with OneNote, but it doesn't seem to fit the need the best. Maybe I just need to find a good system for using it.

A couple people I've worked with have just used Notepad to type notes in and they save a single text file for each day of work. Then they can use something like Google Desktop Search to search through all their notes.

Chris Pietschmann
I've tried TiddlyWiki in the past, but I think I'm going to give it another shot.
Chris Pietschmann
+1  A: 

Zim Desktop Wiki is a good outliner/note taker. It runs on your desktop as a normal application (not a web app). It stores its data in plain text files with wiki markup. Supports rich text and images. I use this app all day every day.

Brendan Kidwell
Thanks for this suggestion. This turned out to be a great solution for me. Also, it is easy to put your notes into version control system and track changes over time.
+1  A: 

For the Mac Centric ::: I use Yojimbo from Bare Bones Software to store and loosely categorize PDF's (most academic papers Safari Web Page Archives from various developer sites. For a while I tried structuring them all as giant outlines in Notebook from Circus Ponies Software, but Yojimbo's fast and elegant search function obviated the need to spend so much time trying to pre-organize things.

For working code, I just use BBEdit to manage temporary clippings of live code fragments.

But nothing can match Tinderbox with its powerful background Agents from Eastgate Systems (Full Disclosure: I am a friend of its developer) for building and maintaining complex hypertext documents and applying a generative programming approach to building complex mix-development-language web projects.

On the road, I use a solid state voice recorder or OCR Pen to capture notes which I sometimes transfer to Post Its that I leave in plain sight to so they can jog my memory at critical points in time.

Peter J. Wasilko

Microsoft OneNote

+1  A: 

I keep all notes together with the source management, using trac

By recording links to tickets and changeset together, it makes an easy way to keep discussions of individual issues together, track the code that went along with it, and the wiki is useful for documentation.


I typically use my blogspot account along with my moleskin notebook and mark different sections like "learning", "projects" with page markers. Even though I like this system many times I find myself having a lot of notepad files named after the subject/project.

Hope this helps.

+1  A: 

Microsoft OneNote is very handy, particular as it can be used disconnected, which is when a lot of thoughts and ideas come to me (airplanes etc.). It's also quite good for sharing notes and doing real time collaboration on ideas and notes, which a must have feature for me that a lot of web-based systems don't have.

+1  A: 

I have a little 4x6" notebook in which I write down notes and ideas. It's the cheapest notebook Staples sells that I can fit in my pocket, not one of those fancy moleskine ones. That way, I'm free to fill it up with crap and replace it ASAP.

When I solve a problem for a specific project and writing the code isn't good enough to document it, I just write comments. If comments aren't appropriate, most of my repos end up with a misc directory that contains random notes, OmniOutliner checklists, example scripts, and aborted attempts at great ideas.

If my idea is about something more general, but isn't general enough to turn into a released library (which I do at the drop of a hat), I put it in my Rubric and that's that.

I like wikis, but they're generally just a bit too much work for me to use for keeping notes. That has to be really, really easy to do. Finally, sometimes I use Jott to dictate things to myself via Hiveminder so I can put them into the right file later, when I'm out walking.

+4  A: 

I use PersonalBrain as my knowledge base. For me, it excels in storing code tidbits, patterns, project-specific data and general notes. Information is easily linked to other information, and I can quickly find any piece of information that I need in seconds.

For blazing quick creation and retrieval of stored knowledge, nothing else beats it.

(You'll find that the makers of PB try to sell it as a mind-mapping tool, I find other tools better like FreeMind better for that job.)

Looks interesting. I'm downloading it now. I hope it's better than my own product, www.kbaseweb.com, so I can stop developing and focus on paid work.
+2  A: 

Simplest tools are best. I used notebooks for a long time, but got frustrated by no being able to search for stuff or take them your notes with you. Used OneNote on a tablet pc for a while. Has a lot to recommend it, but the notes are stuck on one PC (OneNote can actually share stuff around, but it's a bit fiddly) and tablets are expensive underpowered and short on battery life.

My primary thinking tool is a whiteboard and a digital camera.

I now use FogBugz - the combo of case tracking and wiki is very powerful. You can keep all your stuff in it. Easily re-work material into specs and docs. Share material with co-workers and create cases when it comes time to actually do something. And full-text search lets you find it.

John McC
+2  A: 

My company hosts an instance of mediawiki internally, so I use that.

I find that I take a few sorts of notes:

  1. Under Dev Notes / Scribblings / Thoughts - These live as subpages under my user page. While they are searchable, they contain disclaimers.
  2. Personal Notes - Code snippets, sequences of commands, links to useful things, etc. - These also live under my user page.
  3. Development articles - These describe the design and implementation of some of my larger projects. These live under my team's page, and they get categorized as appropriate.
Matthew Cole
+2  A: 

Notebooks (pen and paper), One Note (when using tablet) and Sharepoint for more formal doc management.

+38  A: 

I use a directory of text files. Roughly looks like this at the moment :


I use the ReStructuredText (rst) format for the individual files so its easy to generate html. Of course markdown would work almost as well :)

in development-log.rst I put entries for each day with current tasks and just general notes for stuff that comes up. Each new project starts with an overview.rst and can then expand into new files on specific topics as needed.

I manage the whole tree as a local bazaar tree so i can check old versions if necessary.

To search I just use my editors built in search - or index using a desktop search tool.

I used the rsync the whole tree up to a ssh server every day to use from home as well - but thats not an option now that I'm behind a corporate firewall.

btw - this editting widget is actually pretty cool. I like the combination of editting in a plain text format combined with live preview. Works well.

Love RST. Heavy user of rst2html myself.
This looks very interesting. Think I'll be using this.
ssh on port 443 should work.
+1  A: 

Depending on where I am, any of OneNote, EverNote or Gmail.

*Note applications are short-term memory. Gmail is long-term memory.

+15  A: 

I use Trac tickets to keep my memo and to-do-list, with subversion integration, it can also easily manage my personal projects and scripts.

trac is good, but is too project-centric for snippets, imho
Manrico Corazzi
One thing with trac, is that you do have multiple ways to organize things (project, milestone, component, tags etc.) and you have a nice history of comments on the task and the ability to do a print-out of everything.

First, I am on Mac OS X, so I have access to some great tools, which aren't available on other platforms.

For notes, I use Omni Outliner Professional. Great tool for capturing notes. If I need to put in an image, I use Omni Graffle. And finally, for tracking actions in a GTD way, I use Omni Focus.

Together, and they work together well, they provide me with a solid suite which keeps me on top of things.

+1  A: 

Depending on the size of the project, I'll use a notepad or sticky pad. If I'm saving code, I'll usually create a text file in the projects folder and then make a reference to the file in my written notes.

I also use a simple application called Taskpaper which allows you to manage task lists and outlines by writing lists like you normally would on paper. I'll usually create a new Taskpaper file for every project and keep the file on my desktop until the project is complete.

When working with a team, I use Writeboards and basic messages in Basecamp - great for sharing and collaborating with others.

Brian Benzinger
+29  A: 

Tomboy for Gnome. That's pretty much like a wiki but it's a client application.

I love it because it is just so simple.. I keep lists of my current project/responsibilities, and tasks in point-form, and strike-out text when they're done!If lists get too long, or need more explanation, I move it to a linked note. Too easy!! :D
I love it too! And it's quite easy to sync your notes between computers.
Pascal Thivent
Yeah, I love tomboy!
David Oneill
Works decently on OSX too. I sync to the filesystem in a Dropbox folder to keep a consistent note set across multiple systems and OSes.
+3  A: 

Um, I use the source code? Really. That's where you (or if open source/free software), somebody else will look for the algorithm, ideas and background to the code. Code snippets become examples or utilities. Checklists or release scripts become version-controlled admin scripts. This doesn't deal too well with diagrams, I admit.

And of course, the code IS the comments...
I personally hate sorting through source code for documentation on how I'm supposed to use some piece of code.

I use a combination of a wiki (screwturn) and thorough and usefull source code comments. Nothing beats well commented source code to explain a paticular gnarly algorithm. Wiki entries are more useful for storing high level concepts like architectural decisions and designs, down to passwords to development servers.

I also use lots of post-it notes around my monitors.

+1  A: 

I blog the notes.

+4  A: 

I'm using Leo for this kind of stuff.

Description from the homepage, for lack of a more personal note:

  • An outline-oriented browser and project manager that organizes programs, web sites, URL's, pictures, movies or any other kind of data. You can organize your data in as many ways as you like within a single outline.
  • A programmer's editor that fully integrates outline structure with programming.
  • Fully scriptable using Python. Leo's core is 100% pure Python.
  • Portable. Leo runs on Windows, Linux and MacOS X. Leo requires either the Tkinter or PyQt widget set. Leo's outline files are XML format.
  • Open Software, distributed under the MIT License.
what is leo? Google turns up too many false matches.
Charlie Flowers
+1  A: 

I like to use a blog for revelations that are generally useful for other projects as well, stuff like how to use a particular tool really effectively to solve some recurring problem.

For things that have to get done ASAP I use sticky notes on my desk. One note per one item and chuck 'em in the bin when I'm done.

If an implementation solution needs to be defended, the justification goes in the code as comments. This is also true of minor refactoring TODOs, because it's so easy to just grep for "TODO". Larger tasks go in issue trackers, which is also true of my private projects: I tend to use ditz.

The rest goes in wikis, preferably.

+6  A: 

I'm old school. Plain old text file using my favorite text editor TextPad - http://www.textpad.com/

I use this too ... and I have work notes going back 15 years.
+1  A: 

Well I'm using XEmacs nearly all day long, so it's "natural" to use it for everything. The mode to keep on snippets, notices etc is named planner. Which is a wiki like stuff. The stuff is simply kept in text files and that's the unbeatable....

Regards Friedrich

+3  A: 

Index cards and a spiral notebook.

Kent Beck

Depending on the topics, I use several moleskin notebooks to keep notes. I tried OneNote for awhile but found writing it in a notebook allowed it to be portable for quick notes; e.g., pulling it out of my bag to make a note or reference while walking down the street.

+3  A: 

I regularly use Emacs and org-mode for note keeping. Its flat text format is easy to post in emails, diff with text processing tools, store in SCM systems in a meaningful manner, and so on. The nice UI shortcuts to add new 'note nodes', promote notes, demote notes, move them around, expand and collapse them, and the almost free-form style of the note text is nice when one spends a lot of time editing text (documentation, sources, etc).

For more details, if you are already using Emacs, check out: http://orgmode.org/


Plain 4x6 index cards. plain white paper, or quadrille (5mm) from (http://www.printfreegraphpaper.com/) on a clipboard. Notebooks.

Christopher Mahan

I'm also one of the old school folk that prefers pen and paper for taking notes. But I must add that when I finish up one notepad, I reread the whole thing and distill the most important ideas and notes and write them into my new notebook. Kinda like refactoring all my legacy ideas :)

Robert Gould
+18  A: 

I've been using freemind for a few months. http://freemind.sourceforge.net/ It's a mind mapping tool. It essentially builds a tree with text nods. Very quick to use, and it also allows you to easily assign a context to a particular note, by adding the note to the appropriate parent node. I also use a small notepad when I'm walking around.


Math notebooks or white paper , and FreeMind (http://freemind.sourceforge.net/wiki/index.php/Main_Page , seems is now right now:) ) for bugs and toto lists. That and sometimes text files, but thats basically for temporary notes with extended error descriptions.


Natara Bonsai is great at creating hierarchical lists. It can be used for TODO lists, note taking such as meeting notes, etc., and to organize data by topic...


I use OneNote, the best app ever...


I have been enjoying OneNote lately, esp since I added a pen tablet to the desk. Being able to add quick little drawings makes it almost as cool as pencil and paper.
Bonus being that I dont end up with as much dead tree to sort through at the end of the week/month.
The integration with outlook tasks list also very handy.

+2  A: 

todo.txt in the autostart-folder :)

To be able to track changes and remember how i thought 6 months ago i use a simple blog, together with my own sketching-homepage, Cosketch, to get some kind of image-support in the blog.

+1  A: 

The combination of OneNote with a tablet PC is awesome! I was a bit of a skeptic at first. I used the trial version and then forgot about it. A year later I had an unruly collection of files, project related emails, notebooks and scraps of paper all scattered throughout my life. I went back to OneNote and all my problems went away. Some highlights:

  • Everything is searchable. The character recognition is good enough that my chicken-scratch meeting notes can be searched. Text within images is searchable.
  • OneNote syncs with Outlook so finding meeting notes is a breeze.
  • I now embed all files into OneNote - pdfs, spreadsheets, word docs, images, web clippings.
  • OneNote is constantly saving all changes so, combined with a scheduled automated backup, everything is in one place and is safe.
  • There are some built-in collaboration tools I have yet to try but that look useful.

It is SO worth the price. It allows you to get started on a project and avoid all that time spent deciding how to organize things.

+1  A: 

I also lean towards TiddyWiki. Once you learn the markup, easy to keep your stuff interconnected.

But if you have the money and not anti-MS, then OneNote is the best, especially if you are using a Tablet or Wacom pad.


VIM 7 with UTL plugin is awesome. Just type text any way you like and with a simple shortcut macro you can press a key (F5 for me) and it will open a http link, a PDF file, etc. Since this is VIM, that means you can also use this to jump from one file to another and thus have pretty much a Wiki if you like. It can be as simple or as advanced as you like.


I like the wiki way. For my personal stuff I use MoinMoin on my desktop. Python is the only dependency, so it's quite platform independent and the installation is done in seconds. If you have multiple distributed workstations, you could put your wiki in a Dropbox and sync it between the systems or just install it on a remote server and use ACLs to protect confidential pages.


A good Wiki is excellent for a development team (try Redmine or Trac). It helps that you could link the notes directly to your repository source code, tag your entries, use ticketing system and so forth. It's a great and indisposable tool for collaborative development. If you are a lone wolf anything would do but something with good searching capabilities would definitely be more useful. I would suggest MS OneNote because of Live Search integration but that's just my personal preference.

Ilya Kochetov

Opening a blog has the many bonuses:

  1. the comments from the other friends developers may help you a great deal
  2. you are going to polish everything (sooner or later) because you know that stuff is public
  3. it may give you more visibility than a resume
  4. can be accessed virtually from anywhere (as many note-taking webapps)

Of course some stuff is not suitable for the masses. In this case I suggest some text files, an USB key and a good editor (Ultraedit, Notepad++). A naming convention and an automatic file catalog may come in handy when the number of files grows.

NOTE: chose to open a programming blog? Have a look at SyntaxHighlighter

Manrico Corazzi

Personally I use OneNote since it is provided by the company and I can have the contents synced to my windows mobile without any problem.


I use a combination of a paper notebook, and TextMate. I use OmniGraffle for drawing diagrams, and I've found that skitch is great for annotations.

I've still not found anything which can replace the feel you get from physically writing on paper, and provide useful cross-references.


I like to make notes by hand. Good fountainpen, good paper and my ideas just pour from my head by them self.

Problems start when you want to copy down some links or longer text from the screen and later use it on the same or other machine. Little by little stack of notebooks is growing and you're starting to wonder what to do with them.

At work I'm using Evernote, at home MS OneNote. Evernote is lighter and free, OneNote has more functionality.

+1  A: 

I'm using Mind Manager (mindjet.com) and a blank Moleskine. Moleskine for scribbling notes during a meeting and to track my tasks (no tool could give me the satisfying sensation of striking through a task with my pen ;) ) Mind Manager whenever I have to structure a lot of information and to keep track of the itsy bitsy details of my projects.

I liked Moleskine until they came out with the cahier notebooks. I don't like those.
Arthur Thomas

I find a simple pen and bound notebook serves me well.

I think we often get caught up in using software for the sake of it. A pad of paper and a pen is, I find, the single simplest and most flexible system for taking notes, sketching UI's, planning features, or just working through and noting my ideas.

Mr. Matt

I use Memento a little sticky program that can be found at "Guys with Towels" to keep personal notes whilst developing. Eventually notes that are worthy get put into out "ticket manager" system, works well for our team. Rippo


For info-scraps I use a single Notes.txt file on WinXP and Notes.rtf on Mac (so far I'm using Google Notebook for links but not for notes in general, as it turns out).

For more organized and edited reference-making, I may write in Markdown and contain it in "Mandown" manual documents.

Mandown is an open source thingy I cooked up (building on the great work of the Markdown and Showdown guys):

  • Run-time Rendering - the power/simplicity of Markdown without build-time compiling (dynamic Markdown to HTML happens client-side via Javascript acting on the Mandown source).

    Read More:   http://wittman.org/mandown/

BTW, I can't say enough how nice it is to write in Markdown here on SO.

+26  A: 


DokuWiki is is targeted at developer teams and mainly aimed at creating documentation of any kind. It has simple but powerful syntax which makes sure the data files remain readable outside the Wiki. (All data is stored in plain text files – no database is required.) Optional syntax highlighting of code blocks is another neat feature most programmers find useful.

I use this as my personal/public wikispace.
I also use the ODF export plugin - so just export my documentation and save as .doc in openoffice whenever it is requested.
+1. I use that as well.
Wadih M.
I used it in the past but switched 5 years ago to MediaWiki.
Sorin Sbarnea
+1  A: 

A combination of things: Google Notebook (with an add-on for Firefox), Google Reader with a "Note in Reader" button for Firefox, Screwturn Wiki, Notepad and a physical notepad of course :)


I wrote a little script which takes a file with the last working day's notes, prepends today's date on it, and writes it to a file with today's date on it, then opens it in TextPad (which loads up on my second monitor).

The means that I always have my notes off to the right, and I jot down what I'm doing every time I do anything significant.

I was actually rather proud of the last working day bit, which even works out Bank Holidays.

+1  A: 

I use OneNote 2007. I make sure that my files are backed up to a server and so available from anywhere that I need them. The ease of manipulating text within OneNote is great, and the best thing is that you aren't limited to linear text. You can add new paragraphs off to the side, or on top of another.

Dave White

For noting and discussing new details, and also for bug fixing, I have found Mantis being an very nice tool, and, using Eurekalog as a bug reporter, it can store the bugs directly in the system, from anywhere. (But I haven't taking this in use still, since my Mantis is mainly to be used with my php-based programs, while my Delphi-things are for other companies, so I have to find a commercial mantis site (I have probably found one, which also support blogs and also commercial components to)

Otherwise I use an old-fashioned flip-over instead of a blackboard for discussing architectual things. When changing to another project, just flip over the paper and continue on a new paper. When going back to the other project, just flip back again :-)

And for formally describing flowcharts etc. to be sent as files to others, I have started to use Microsoft Visio, but, I find documentation on how to use it rather scarce :-(


Quite like mindmapping tools like MindJet - good for organizing and capturing random thoughts that crop-up during day-to-day work


I don't use a specific tool to keep notes, but rather prefer to make any remarks in the comments at or near the actual code. Whenever I need something later on, I generally remember where I used it first or I'll just search my code library for it. Even when I just think of something for later use, not as part of a current project, I'll just throw together something that demonstrates the idea and save that for later use.

I find that my source library is the first place I look for old ideas anyway and that's why I started using it this way. An added advantage is that I also have a lot of other people's code sitting in there and sometimes when I look for my own notes, I find the answer in other people's comments and solutions.


i use DevProject Manager its free, can run of a USB stick, Dosn't require admin rights at all,it has syntax highlighting, does project management and has a code store all in one.


I carry around a 160 GB Maxtor USB drive. It has all snippets, websites, db's, notes and anything else I think is necessary. It fits in my pocket. If I see something useful on a blog or in a forum, I just save it as an .mht. Snippets of code go in a text file and then are stored there also.

Scott and the Dev Team
+107  A: 
Nice, I love those too. :)
way too neat to be healthy
You can't be a programmer, that writing is way too neat! :D
Rob Prouse
Too neat, post a real example or I'll down vote it. ;)
My notebook looks like someone vomited ink onto it.
James McMahon
Another vote for Moleskine. I use a small black leather page per day diary format. Often I don't write anything in it, and other times I fill several days. I have a habit of updating TODO items when I get on the train in the evening or morning.
The cultural drive behind this neat notes is simply fantastic... there's only a small area with a strike-through correction! My owns usually have a single NON strike-though area... another reason why I swapped A4 for A5 (be more light carriable, under a laptop desk-footprint; it the page was too many strikes, just start over on next one).
Even the strike-through looks better than some of my valid notes! :)
Daniel Daranas
Wow, just how do you get your handwriting that neat?
I think the little plane in the lower left is hilarious.
Christopher DuBois
This echos like every other comment above it but seriously, I want an answer. How the hell do you keep that notebook so neat?
Original: http://www.flickr.com/photos/yusheng/22831625/I don't think it's his own.
Where's the CTRL+Z
Chris S
+2  A: 

I use wikipad which is basically a note taking tool that uses Wiki-like syntax

See: http://groups.google.com/group/wikidpad/web/home

I use wikipad pad with the todo extension http://www.ziemski.net/wikidpad/todo_extension.htmlIt lets me keep notes on a project with todo tags that then show up on todo lists
Andy Morris
+1  A: 

I use BasKet Note Pads because it's very flexible. I collect a lot of notes in this application; not only code snippets but also ideas for possible birthday presents, quotations, ...

Unfortunately it's only available for KDE.

+1  A: 

I use a combination of Things and Yojimbo. Of course I sync them and also use .text files when I need a quicknote.

Martín Marconcini
+1 for Things (although personally I haven't used it much for work-related stuff)

I use KeyNote does the trick for me.

+14  A: 

AbstractSpoon ToDoList. Ultimate tool for everything.


Yes! This is on heck of an awesome tool to use, especially useful for keeping a single-developer style todo / bug / issue / idea list. Though I don't use some of the more advanced features.
Yep I use this one as well and love it.
Jason Maskell
+1  A: 

One of the tools I use is TodoList, both for actual to-do lists but also for code snippets, links and pretty much anything that can be kept in a form of a list.

Other tool is the already mentioned TiddlyWiki, although I'm only starting to use this. It's a very handy tool with built in search and tagging. Interesting variant of this tool is MPTW. It has a bit different approach and provides an easy way to organize information.

For scribbling my thoughts on a current project however nothing beats paper and pencil.

T. Kaltnekar

I use a combination of Google Notebook and regular good old pen and paper. The tagging capabilities and the possibility to share,and access the notes from everywhere are valuable. I also use the google web history to find reference links I didn't note or tag in the notebook.

Once you've found the right tagging system, it's very powerful.

The thing is, you need a google account. And there are the privacy and confidientiality issues.

Pen (or pencil) and paper still rule when it comes to brainstorming and conceiving. One drawback with my system is that the pen and paper entries must be reported back to the online notebook. I find it tedious sometimes, but it forces me to review and reorganize my thoughts and my todo lists.

Sorry for any grammatical or spelling mistake, English is not my first language.


Devonthink Pro (only works with OSX), the artificial intelligence feature auto linking related material is pretty neat. In that sense it's better then EverNote, Together etc. It can export to plain text files and someone made a script for markdown. For task and client related document management I switch between combination of Contactizer Pro, Things and Inbox2.

Francis Siefken

Already mentioned, Dokuwiki is where I keep all my computer based nodes. The syntax is really straigtforward and very human readable - I often take notes in notepad++, editing the page source directly, then view it in a browser to see where I'm up to.

I use it particularly for "on the fly" TODO lists so I can have total control over what goes in them. I just put a strikethrough format on any finishted task text.

A really useful addition is DokuWikiStick, a dokuwiki and apache distrobution that will run from a memory stick or out of a folder with no installation required. Great for taking notes with you.


I built my own in Lotus Notes which has been enhanced over the years, I have what I call 'Tech Notes' that I posted in my original knowledge base eight years ago. At one point I went down the path of having one per topic but later merged them all back together into a single database. My most recent change was to add in lastRead and last edited values on the documents which makes it even easier to find somehting that I looked at/ edited recently.


I put everything in a large LaTeX file, easy presentation, nice rendering, and the source code is extremely gre-able.


I use a combination of sources. I keep some notes written down, and some using Google Notebook. I'm giving Evernote a try now. Still haven't found that ONE source that seems to work the best.

A wiki might be a good idea, though it would require a bit more work on your end to keep things organized how you like it.


I use KeyNote. It's fast, needs no install, saves everything automatically, has tons of shortcuts, and sits quietly in the tray, until you invoke it with Ctrl+Shift+F12.

+4  A: 

I am really liking EverNote for general note management.

The older I get, the less information I seem to be able to retain, and I’m finding it increasingly necessary to write things down so I can reference them later. Since it seems I have forgotten how to use a pen or pencil to make legible characters on a piece of paper, I usually type this information into the computer. I have tried a number of ways to organize these digital "sticky notes". For awhile I was using the Notes feature in Microsoft Outlook , but that doesn’t really allow me to access my notes wherever I am, and it was awkward to use. I discovered I could use Yahoo! Notepad to sync with Outlook Notes, so I began to use that quite a bit - until I moved to Vista and Office 2007. For a long time, there wasn’t a sync client from Yahoo! that would work, and I found myself looking at other alternatives. A couple of weeks ago I discovered an application that is really working well for me. Evernote describes itself this way:

Evernote allows you to easily capture information in any environment using whatever device or platform you find most convenient, and makes this information accessible and searchable at any time, from anywhere.

What’s nice about Evernote is that it is provides a Windows client that synchronizes with a web interface, so your information is truly available to you wherever you go. There are Mac, Windows Mobile, and IPhone clients as well.

This is not just for text. There is a simple rich text editor for taking notes in meetings or entering the bits of information you need to do your job or manage your life. Beyond that, you can store entire web sites (or just selected portions) quite easily using a Firefox extension. The program will also store scanned images, PDF files, and audio clips, but I haven’t really taken it that far.

Searching works well, and they claim to also search PDF files and text within images. Like Outlook Notes and Yahoo! Notepad, each note is assigned a title based on the first line. Evernote, however, allows you to rename the title. Notes can be organized into folders and assigned tags.

Synchronization also works well - even behind the firewall at work (it appears to use whatever HTTP proxy is configured in Internet Explorer). By default it syncs once an hour, but this is configurable, and you can force a sync at any time. I haven’t really tried using the web client. I have the Windows client running in the system tray so it quickly accessible.

Did I mention it was free? There is a monthly cap, but in my regular use I am not even coming close to the allotted upload allowance. The premium version is $45/year, which gives you SSL encryption as well as a much larger upload allowance.

If you are like me and need an application that will allow you to create your own personal knowledgebase , than I highly recommend Evernote .


I use Incollector(both Windows & Ubuntu) and Evernote on windows. Evernote has more features when compared to incollector. You can directly add text from firefox browser using the evernote plugin, drag & drop, mailto, tagging, images.

On Ubuntu, mostly use Basket note pads and Tomboy Notes.

Bobby Kumar
+3  A: 

I use GMail - it is searchable and available anywhere I have internet, and is long term memory.

Steve Karg
I also used Gmail (draft messages) to keep notes that I can access from anywhere, until I found about Google Notebook which is much better suited for that. Too bad they stopped development on it...

pen and paper.

easy and simple.


work: keynote when on windows paper

home: gmail online random bits of paper when offline


Google Notebook for code snippets and research.

For projects at work a paper notebook.

Thomas Bratt
+1  A: 

A legal pad and a whiteboard.

Eddie Deyo

I like to use project spec sheets. I find that taking notes on them helps me hold on to those specs longer and make them more useful.


I use MS One Note at work, and it works pretty well. I also write a blog and put a lot of notes on there.

Have also looked at Evernote, but was not very impressed with it. Not very easy to organize things like in OneNote.

One con with OneNote is that is not free. So I have it on my work machine, but not on my other computers, so I can't standardize on it.


SharePoint offers a number of flexible tools with its wiki, list, and document libraries. We use it to hold all of our project artifacts, including best practice snippets, how-to's, etc.

+1  A: 

Another emacs fan here. I generally start most notes out in OrgMode. It provides a nice outline style that still allows for free form notes as well. It's also nice because as I identify things that need to be done I can mark them as TODO, schedule them and have them show up in an agenda type view of things to do. Additionally you can set a deadline on them as well which will then make the item show up earlier in the agenda with a count down of when it should be done. I am also a fan of EmacsMuse which among many other things is a personal wiki. There is also some tie in between the two packages I believe that will allow you to publish both org and muse files to html/xml/rss/pdf... Both also can make use of remember mode.


I'd like thn.gs

+1  A: 

My personal notes tend to go down on paper... whatever paper is lying around at the time.


Another vote for a plain old (big) text file and TextPad.

Andrew Cowenhoven

I could write a ton on what I do and why!

Basically, I use standard 3 ring notebooks, with squared paper.

I do this, because I find it is the most flexible method. It is easy to merge existing documentation and my own thoughts. It is easy to re-organize. The use of squared paper allows me to do diagrams and tables either in portrait or in landscape mode.

For small projects, I use a single notebook to hold several projects. For larger projects, I use one to several notebooks.

Random notes are simply kept in a notes section, and reorganized, as the organization becomes obvious.

All notes are dated.

When I convert notes to documents, I use Wordpad for the first draft, because of it's simple word processing capability. (The more complexity you have, the more time you waste on the prettyness.)

I try to keep one small topic per page to simplify reprinting.

Eventualy, documents become formalized, and are converted to Word or PDF files. (When this happens, it is no longer my problem.)

This method stood me well in my career as a programmer and analyst. In fact it got me a years worth of consulting. I got a contract to document the large system I helped to develope. I was the ONLY programmer (of 20) on the project who had bothered to do any documentation at all.

I was able to justify doing documentation (to others), as it kept me sane while doing on-call support and trouble-shooting for the whole system.

The method I used for this was an enhancement to the above notes system, with considerations for the incremental nature of the notes for a whole system.

Perhaps someone will ask a question about this topic.


I usually just open a plain text file and save it to my jump drive; however, I just started looking at InCollector, which provides more structure, directories and tagging, as well as search/filter capability.


I just started working just a few weeks ago so I don't really have a working proces for this. However I'm trying out Remember the milk, which seems to work pretty well. It's just list with some notes added. But this is an interesting issue. I'm definitely going to check through this list of programs posted by people and see if I can find something interesting.


I carry around folded sheets of graph paper, pack moleskin or similar notebooks if i'm going somewhere, or use whatever paper is available to scratch notes. On the computer i often just keep a couple ongoing email threads with myself, pasting stuff in as needed. Email info and notes to/from my mobile device that way too.

At home i try to boil, condense, and organize the info into OneNote. (Excellent app.) As for development techniques, code snippets, and programming stuff, use a simple blog or wiki to keep track. I like and use WordPress and TiddlyWiki.

Occasionally, ideas are best expressed as demo or prototype apps, which end up in d:\dev.

bill weaver
+1  A: 

1) A good text editor with a hierarchical outliner mode (e.g. Emacs + org-mode, or vimoutliner). why? Because programming involves drilling down into increasingly precise statements of the original task.

2) Your revision control system of choice and local checkout of the source code why? Because the most precise definition of the task usually is code; leaves fall off the Todo Tree and into the tree of source code.

Text files, a GNU userland and revision control go together like coffee, milk and sugar, and this arrangement gives you the flexibility and freedom to adopt new tools as you choose.


I used to really like legal pads. I never missed anything, and everyone was quite happy. There's nothing like waving a legal pad around with pages of crossed-out tasks when the more Dilbert-themed managers wander by for showing progress.

That is, of course, until after a couple years the legal pads had accumulated several pages or so of low-importance, high-tediousness tasks.

Obviously, those types of tasks should have expired and disappeared, but I continued to copy them over and over again. I'm not sure what drove me to do so. OCD?

I probably should be all "Yo yo yo... I gots myself a tasks wiki integrated with VS2008 Team Server, and as I enter or complete items my current location is all imported-like from my iPhone and marked up on my Google Earth super-mashup along with the GPS locations of everyone I've done talked to about it... Later, I'll do a GE flyby on my completed tasks... way cool"

Nah. For years now it's all Notepad, KEdit, and post-its.


Of course, I can't read post-its on my monitor from a client's site... so I may be due for a re-think. Webcams, maybe? :)


I use legal pads on hashing out rough ideas. Once I'm actually coding I tend to just write extensive notes to myself in Visual Studio, including liberal use of TODOs. As someone else mentioned OneNote really a great app as well, esp. if you're pulling lots of info from various sources.


For quick random ideas, I have a plain text file that I can quickly append to using Quicksilver (ctrl-space . random idea tab a tab n enter). I also keep a physical notebook (nothing fancy) by my bed for emptying my brain if it's keeping me awake.

To-do lists go on Ta-da Lists.

To work out anything complex I use an A4 lined notebook or a whiteboard.

If I'm working with a colleague on a design, we use a whiteboard then take photographs, which get emailed around an written up.

Will Harris
+11  A: 

We use FogBugz, and all notes from the dev team go into the wiki. There are also general engineering/networking questions, and they go into an engineering wiki.

This way, even quick notes are found in one place and last forever. And you have the added benefit of being able to easily correct or update older notes.

Mike King
FogBugz wiki is my tool of choice as well; there are many features that could be added to it, but the concepts implemented there are very innovative and useful. For note taking, I love the fact that changes within the web interface are automatically saved in a draft and only published when I Save.

I wrote my own very basic one for my personal code snippets but am thinking of moving them over to a blog shortly when I re-do my website.

At work we're investigating using the "Clippings" functionality within BBEdit. Basically the idea is to have a shared library that we all add to then redistribute occasionally but we're not sure how easy it's going to be to maintain.

+1  A: 

What a great question...

I use paper notebooks for most of my notes, which I try to keep sorted in binders or folders for future reference. Notes eventually evolve into project documentation, which usually fits in some kind of wiki-form. Classic Word-like documents are a no-no in my opinion.

Any structured e-paper-based approach failed for me. It's overly complicated and it's not portable after all. I do use, however, desktop post-it notes which are excellent for keeping code snippets, to-dos and such.

Dario Solera

I like DokuWiki[1]

From the main page:

DokuWiki is a standards compliant, simple to use Wiki, mainly aimed at creating documentation of any kind. It is targeted at developer teams, workgroups and small companies. It has a simple but powerful syntax which makes sure the datafiles remain readable outside the Wiki and eases the creation of structured texts. All data is stored in plain text files – no database is required.

Supports syntax highlighting for different programming languages and more...


I have a "personal productivity" wiki with Wetpaint.

I've used standard written notebooks in the past, but they have the same recurring problems:

  1. Half of my notes are junk or temporary. So I need to keep re-writing the good ones.
  2. My notes become unsearchable. If you start going through 1-2 notebooks / year, how do I find the "last time I spoke with Client X" or the "date I changed code Y". You end up carrying around 2 notebooks at once.
  3. My notes lack hyperlinking, file storage and images. In other words, the paper notes simply couldn't mimic the mental mappings that I had created.

My new strategy has three parts, but one focus: good data should be digitized in flexible "wiki-style format". This happens in three parts:

  1. Scrap paper / Whiteboard: for "active work items". Contains things like DB IDs, mock-ups and other temporary items.
  2. Portable notebook: for random thoughts or things I need to write down before moving them to the wiki (say I don't have 'Net access). Really more of a creative drop-point than a working book.
  3. The Wiki: everything important should end up in here. I keep a daily "what I did" list and then archive off the weeks and months. This makes my personal activity history searchable. I keep an active "Wish List" so that I don't forget client requests. Having a wiki also means that I can upload files, add hyperlinks and actually organize my data (good old copy-paste).

Some people have mentioned blogs and I think that this is a reasonable starting ground for sharing. But blogs are a weak way to organize evolving data. Things change and wikis are simply the natural home for things that change.


I normally use notebooks for everything. Since it becomes very cluttered I have started to create text files and carry them on my thumbdrive. I still rather have the notebook in front of me for easy reference but the text file saves me on clutter. Hopefully soon I will figure out if I like the text format better.


It's gonna sound stupid but a couple of years back I actually backed down a lot on notes trying to keep things in my head instead. If you take it step by step you'll learn to keep more and more stuff in there at the same time. I didn't bother to learn some kind of technique but I guess you should do what you feel fits best.

I do keep track of schedules, bugs and features in a plain text file but that is mostly to have something to cross out when I'm done. I've noticed how much faster I work and how my designs get better the more stuff I keep in my head -highly recommended!

Niklas Winde

Started using Code Collector Pro for random things I find on the intertubes, books, etc. It's not baad.

But for visualizing problems, my trusty Moleskine does wonders.

Oh, and having a blog or other "online collection thingy" is really useful.

Tristan Juricek
+2  A: 

I use InkSeine on my Tablet PC. It is incredible.

Robert S.
Ditto: http://research.microsoft.com/inkseine/
+1  A: 

Post-Its for reminders.
Notebooks for meeting notes.
Text files (Notepad/UltraEdit/Notepad++) for tasks and time tracking.


If you take notes and you can't find them later, then they are useless.

I've had good results from gmail for notes that I don't want to make public and a public blog for things that should be public. In gmail, I have a label called "notes" and inside notes emails I include an abstract and a list of keywords that describe the information. This makes the information very searchable and it is easy to update overtime either by saving an open item as a draft or replying to an item with a new email. All emails are addressed to me, unless I am discussing a problem with somebody else.

I think gmail wins for taking personal notes based on convenience, searchability, ubiquitous access, and potential collaboration.


We at Crowd Favorite are developing a custom Wordpress site that acts as a:

  • wiki (WP now has revision functionality),
  • mailing list (setup a category to e-mail users on post/revision)
  • contact list (use microformats, create hcards)
  • code repository (create posts, pages)

...and so on. I think that covers some of the basic reference functions that any developer (firm) should have.

Devin Reams

At work I have an Oxford Composition notebook that I use for meetings. I use Notepad to keep track of things I'm working on, on a daily basis, and these are all stored in one folder, named by date, and indexed with Windows Search 4.0. I also have a whiteboard next to my desk, and I take pictures of it with my iPhone and upload them to Evernote, which translates the text and makes all my whiteboard images searchable. Not very organized yet.

(I have Moleskines as well, but don't use them for programming-related stuff.)


Dawned to me, isn't Stack Overflow exactly the place to keep them? :)

As of until now, it's been TextEdit (OS X) in RTF mode, and Spotlight for the searching.

Edgies is tremendous for temporary todo-kind of notes. Kudos!


Action Outline by Green Parrot Software

Ian Boyd
+3  A: 

Pencil and Paper are fine until that calamitous flood or fire comes along, also paper isn't very efficient for searching or copy/paste.

I use ToDoList for TODO lists and a folder hierarchy of text files which I search and categorize (by folder name) through a custom explorer-like notepad app I wrote.

Gordon Bell
+1  A: 

I can't recommend FreeMind highly enough.


I use "the Brain" from http://www.thebrain.com/ since it works a Mac Os, Linux, and Windows.


Personally, I use Notepad++ for long term notes and Notepad for short term cut and paste items. Everything else we keep in our CM system (i.e. design details/notes, requirements, source code). At my previous job, and for freelance work I've used Google Docs & Spreadsheets just so I could share the notes out and access them anywhere.

Abyss Knight
Oh, right, and a ton of notepad paper strewn across my desk. :)
Abyss Knight

dotProject is Open Source Project and Task Management Tool who let you record and/or share milestones, trouble tickets, notes, etc.

I highly recommend it.


I've found that using a wiki is a great way of doing things, but if you can get everyone in the same room, there's nothing better than an active tape recorder, a big whiteboard, and a camera for capturing the state of the whiteboard as you work together. Even if you're working solo, the whiteboard and camera can be very useful as a way of tracking how your mind flows while working on a project.

Also useful, of course, is the tree of text files, especially when kept in a source repository (for the always helpful revisioning that occurs), but a wiki is just as good, if not better for this.

Chris Charabaruk

Dave Winer's OPML outliner tool is simple and handy.

Ethan Post

PMWiki for notes. For todo items and reminder, Tracks http://www.rousette.org.uk/projects/ or Bitnami for easy installation package of it.http://bitnami.org/stack/tracks. Lots of good ideas in this thread.

Pascal Paradis
+1  A: 

We use Mindtouch's Deki Wiki at work. They have a ready for use VM image that can be running in your desktop with a VMWare player or pluggeg into a VM server. Minimal setup required this way. The VM runs on debian, but you can download the source-code (GPL v2) to setup yourself. Requires Mono/.NET

All my work-related notes are placed in the wiki. Most of them are made public so others can benefit. Since we use a pretty old language, not used by many other companies, this helps. Plus all the (very old) paper guides for the language were uploaded to the wiki.


I use Evernote. It's the best incarnation of a Memex to date.


I just use a text editor and store all my snippets in a set of folders organised by language. I put the code with a brief description in the file of what it's for and then title the document with what it's an example of and use that title to name the file. Once this is done, you have a question and an answer that can be searched (Google Desktop?) or browsed through the file system to get at an answer of how to do something. I try to apply a bit of a "refactoring" methodology, by only writing something up if I'm using it for the third time. That way, I don't have to scrabble for an answer again and I know the code is likely to be reused again, so it's worth my time to document it.

A highly ranked answer by JBB mentioned note books. I agree with that person, something in my brain clicks in to action when I write something down, which is not happening when I type in to a computer. It some how solidifies the information in my brain. There is one draw back to notebooks. Search, retrieval and sharing of information aren't so easy, which I guess is why stackoverflow.com and other sites are about.

Johnny Maelstrom

I use emacs org-mode together with remember. Under org-mode I use a GTD file with topics and tasks and a task-topic to gather tasks yet to be distributed over topics (or projects). Remember allows one to quickly add new tasks (they go into the task-topic at the top of the file) and notes (they go into a notes file, but can carry a reference to a topic (project).

The GTD file, the notes file and an archive of completed tasks are all kept under Git version control. At work, at the end of the day I push these files to Github. At home I can pull them out of Github; add stuff, commit the files and push them to Github.

Simple text files organize notes and projects and can be reached from anywhere.

+4  A: 

I use http://www.backpackit.com/ by 37signals. I can create pages add lists, notes, files, pictures, writeboards and tags and then search anything I previously added. It is not developer specific, but it works for me.

For snippets I have one page for each language I use and each snippet is a note with files (sometimes).

+1 I can't believe this isn't more popular
Gabe Moothart

Filofax, so you can add new pages when you want to expand a section, and avoid that logbook problem of having different projects all mixed up.

+2  A: 

Tomboy - a desktop wiki that just feels right with powerful search capabilities. With the newest release it goes multi platform.


I blog it.


For small notes, I use KNotes (provided with KDE). And for more important notes, I send an email to myself :-)

+70  A: 

Depending on the nature of the project and the size of your development team, a number of methods are necessary to adequately cover all of the bases:

  • Paper Notebook (for personal day-to-day notes)
  • Dedicated Bug-Tracking App (because it's too important to not be its own thing)
  • Wiki (for internal documentation within your team or department)
  • Blog (to keep a journal of your growth as a developer)
  • Forums (for team discussions and Q&A)

For day-to-day notes, reminders, and sketches, I still haven't found anything as good as an old-fashioned pen & paper notebook. Part of the beauty of this solution is that your notebook can be as organized or as chaotic as suits your style. I don't think there is any best way to use a notebook.

A wiki is great, but I find that in order to get the most out of it, it has to be a common wiki used by everyone on the team or in the department. TiddlyWiki is an excellent piece of software, but it is designed for individual use. You want something more like MediaWiki that can be set up on a central server.

The focus of your wiki should be on practical documentation. It should be rife with FAQs, tutorials, How-To articles, sample code, and so forth. Ideally, any time somebody on your team hits a stumbling block and has to learn something specific to your company or project, they should contribute an article to the wiki about it.

Avoid email for documenting things such as gotchas and best practices. Many people tend to reach for email when they first identify a recurring problem and want to publicize the solution. The problem is that email tends to be hard to find weeks later, which is when the problem being discussed will most likely resurface. The best thing to do is to write a wiki article and then send an email to publicize the article. A good wiki will have a much better signal to noise ratio than a typical email inbox.

A blog is a useful tool for personal development and communicating your experience to other developers. However, writing a good blog tends to be a lot of work, and may prove to be too much of a distraction within a software development team. Also, blogs lack the hierarchy that a wiki has; they capture information in chronological order, and therefore suffer from the same issues as an email inbox to a small degree.

If your team or department is large, a forum might be a useful alternative to email, and may also be a convenient dumping ground for transitory topics that don't belong in a wiki. A forum can be a useful place to track fire-fighting style issues that occur suddenly, affect many team members, and may require some discussion or exploration. It can also be a place to post light-hearted stuff such as funny web links or other topics that team members use to blow off steam.

Generally speaking, the most important things to have are the paper notebook, the bug-tracking DB, and the wiki. Blogs and forums are good to have, but not as effective for capturing simple, straight-forward documentation. So far I haven't found any single piece of software that is effective enough to replace a combination of individual notebooks combined with a central wiki and a central bug database.

It should also go without saying that your project should use some sort of version control software. :)


I've used 3m's Post-it Lite to great success for quick notes I don't want to lose. I always end up losing physical post it notes as they drop off the monitor when people walk past my desk (open plan office). They also make copy and paste in to/out of emails much easier ;-)

Jon Cage

I use EditPad Lite (like notepad) for quick how-to steps for stuff I know I'll need to do in the future and will forget.

I use physical 1 subject notebooks to record my daily activities.

For changes to code that is in-production I identify my changes with date, name, and summary.


I have various "cheat sheets" like reg ex, css, html quick references printed and pinned to my cube wall. A few Other things I've printed, but mostly I just bookmark my stuff in IE with a well define folder structure. I found if I end up keeping too many notes in a binder you can't find anything anyhow.

+1  A: 

For a text file that I need to open on multiple computers, I use Drop Box. It magically syncs the file so I can open it on multiple computers. The get an auto reloading editor like MS Dev Studio or Ultra-edit. Now the file is always up to date on all your computers!


Notes? I don't need no steenkn' notes! .. I use eidetic memory...

Scott Evernden

SnagIt, OneNote and Evernote


I use a combination of OneNote, Blogging and good ol' pencil and paper.


Evernote rocks!

+4  A: 

I find it surprising that nobody has mentioned the notes built-in support in Opera. You can access the notes whenever you're browsing with a shortcut (Ctrl-Alt E), which will prompt you to the notes tab searchbar, You can even synchronize your notes so that you'll only have one big repository of notes in any Opera browser that you use, thus you can be in Linux, Windows, Mac and still read your notes.
   I use it all the time whenever I can't recall how I did something before but that I have a hunch that I might have made a note for it, I just bring the notes from Opera and type whatever I can remember from that note, and voila!  There it is.
Although, it could be said that one of the drawbacks of Opera notes is that you can't format your text.


I have a couple of text files... One for my one-liners & PERL inside vim. One for sysadmin help when I did that job, how to "config a scsi tape drive" use the "dd" command to format a floppy, etc. And I have a good sized directory that includes everything from one use shell scripts, to perl stuff cut-n-hacked out of the man page examples saved off as things like PERL_Function_Test.pl, all the way up to some of my medium sized data cruncher and stat generator programs. This way, I can grep stuff out of them as needed. And I'm a little on the lazy side, I have aliases that grep stuff out of my help files. And if anyone asks me a question I don't have time to answer, I tell them to look at my alias "gp" which does "grep *! ~/hints/perl_one_liners.txt"


I use a method very similar to JBB's, only I use small three ring binders instead of notebooks, because this way I can better organize the pages, and use all kinds of paper (blank for sketches, ruled for normal writing, etc.)

I also have an adjustable hole puncher so I can put anything in there (printings, magazine clippings).

Fortunately, the size of the binder pages is half letter size, so I can print anything without having to load special paper into the printer, and I just cut it afterwards.

I tried blogs, wikis, and all sorts of more advanced tools, but none has worked better than this one. Although I'm thinking of improving it by scanning the pages and uploading them to a blog or some other web tool so I can look at them anytime.


Since I run an Apache server anyway for personal use I just use Media Wiki. I make weekly backups of the database so I can reinstall it or transfer it to a different machine if necessary. I like using Wiki because if someone asks for help I can just give them the URL and they can look through my notes with out having to borrow a notebook.


Text files in ~/lib/docs

Steve Lacey
+3  A: 

I blog at geekrant.org - Google searches it, I get third party comments, it's great.


Keeper is a note taking application, more intended for use by writers but has many of the features the other note applications mentioned here have. Notes are quick to add (ctrl + n) and there are a variety of note types and brainstorming features. Keyword tagging and search available as well.


I used to use office's note for my work. It's full of tips related to work. I then move everything to Google Note since I can search and use it anywhere. The drawback is that I can't narrow my search in certain notebook. It would be great to try other tools.

I also like to use physical notebook to draw out ideas and use UltraEdit when I need to look at some one time data.


Simple text file on a remote server.

+1  A: 

I use MediaWiki for keeping large notes (i.e., diagrams, specs). For short-lived snippets, I use this alias so that I can just type "wiki" at the command line:

alias wiki="pushd .; cd /home/simoncpu/notes; vim wiki; popd"

Check Off on the Mac is cool, hides away nicely and pops out when you need it. For any important calendar events / deadlines I use iCal.

Ryan Bigg

may be it just fetish, but I use my molesckine :)


Personally, I've found a Wiki in general to be the best. Especially if I can get to if from anywhere. Specifically, I've grown quite fond of DekiWiki. It's open source, written strangely in PHP and C#, and runs under Mono on just about any OS available (Linux, Windoze, Mac OS X or otherwise).



As indicated by the amount of replies here, there are many options. Which you choose depends on your requirements, which might include:

  • fast text entry
  • versioning
  • organizing notes
  • drawing images / graphs
  • searching through notes
  • archiving of your notes
  • distribution / accessibility

The main advantages that paper have over any digital options are in drawing images, as well as fast text entry -- it is often much easier to reach for a notebook than to find a program on the computer, if only because usually, my desk is a lot bigger than my monitor, and is used ony to store paper things (and coffee mugs, off course).

In the digital realm, simple text files with a versioning tool (subversion or darcs) seem to satisfy all the requirements very well, so that is what I use whenever I just want to jot down text (I type a lot faster than I can write). Fast text entry is my most important issue though -- I type a lot more notes than I ever re-read. An absolute requirement for me is therefore that I can just summon an empty note with a single keystroke from any context.

Jan de Vos

I also use MediaWiki, personally as well as in team projects.


I use Google Notepad


I have started using CardMeeting to keep track of my different tasks. Great if you want to share notes within a team as well.

+2  A: 

Four things give me the ability to record and find every note I need for a software project.

  1. A text editor I know by heart. This incudes vim &TextMate, but there's no reason you can't be proficient at emacs, Notepad 2, TextPad, or BBedit. I'm looking forward to learning sam.
  2. A search tool I know by heart. This tends to be grep, find, and Quicksilver.
  3. Automated tests. I prefer a behaviour driven development framework like rspec. Ideally you can generate documentation from those tests, saying which pass, which fail, and which are pending or ignored.
  4. Version control. If you don't have a record of when you create and edit your notes, you'd have to do that yourself. I suggest Subversion, svn, or Mercurial, hg.
Joseph Holsten
+1  A: 

I use Yojimbo. It works well for keeping not just text but images, PDF documents, web sites (links and full archives), etc.

I have collections for common things that are not tied to any single project (syntax cheat sheets, interface guidelines, etc.). I create a separate collection for each specific project where I put things like web research, code snippets, requirements docs, and engineering notes. Yojimbo allows the same item to be in more than one collection so it's easy to aggregate project-specific and general-but-related information in one place.

Yojimbo syncs all its information (via MobileMe) to all of my machines so I have the data wherever I am. But unlike web-only solutions the information is actually stored locally on each machine. That means I can work offline (I usually commute by train) and everything syncs up the next time I connect.


I tend to use a simple text file organized in folders what convey what the notes are about..for example a GWT folder for google web toolkit notes


emacs modes like org or planner.


TreeDBNotes Free

Sergey Stadnik
+1  A: 

I use Org-mode in GNU Emacs. It's pure text: you can easily backup your notes, or handle them via a versioning system. You can also export them to various formats, with code highlighting. Very nice.


Notes on the Dashboard (MacOSX)

Andrew Dashin

I make notes on a white board in my office, on my own and when other team members are part of the discussion.

I then take a digital photograph with my mobile phone.

These images are then sorted and listed in my SDF (Software Development File).

I also use a physical notebook. I find myself more productive (when thinking) if I am not behind a keyboard.


I use a small home-made database, driven by a simple search box.

Cédric Girard

For long term notes use a wiki. We use Dokuwiki.

We also use a bug tracking or change request system like Mantis. Here you can handle requests for change in code. Developers and requesters can vote on and discuss changes and bugs. This way you keep a history of the discussion which is also very useful.

An interesting approach I found some time ago is to establish a local IRC, let everybody discuss their problems, log all conversation and make the log searchable. This way, someone on vacation can spend the first day to read the conversations and get on track with what happened the weeks they were away.

+1  A: 

Check out Gist at GitHub

Dmitriy Kopylenko



If you have a MSDN License - use OneNote for dragging & Dropping URL links, email, documents, etc - its ability to rearrange existing notes is awesom

I also agree with the suggestions of TiddlyWiki and ScrewTurn Wiki - I love to use wikis for personal and group collaborations and brainstorming

Brad Osterloo
+1  A: 

For general observations and "what have I learned today" type things, I second the notion of using a blog. If nothing else, it'll be something interesting to go back to.

For code snippets, I'm quite enamored of basKet on linux.


I have currently begun using sharepoint. More because VS Team Foundation automatically creates a sharepoint site for each project created. This, so far has been an excellent place to put documents about the project (Design docs, 3rd party utility docs etc) as well as forum like dicussion boards etc.

Now, that being said, that is project / team based. We also have a division level sharepoint site where we do much the same.

Personally (Outside of the company) I have tried onenote but I will certainly checkout some of the suggestions made here.

I have used Sharepoint. I am sorry for you.
+1  A: 

I use a combination of physical notebooks, Emacs modes and LaTeX (just so that I do not lose my typesetting skills - they're invaluable.)


Paper and pen!


During the thinking process a sheet of paper is great for me - I can sketck, draw, mark, put number while debugging, etc. This is for temporary memos, however. For more general and long-term information I use docs and/or spreadsheets, depending on the information itself.

For most important, mid-duration memos I like to use source files and simple text files - todos, marks for needing optimization / further reviewing - all fit very well among the code, since this keeps them well up to date.

Also sometimes when I am really into something and I have to interrupt - I put a small summary, in the current source file, of what the current state is and what are immediate steps that must be taken to continue - this helps me to restart very fast when back.


Tinderbox for everything. Links, outlines, maps, agents, search, export, you name it. Can be as simple or complex as you want. I live there.


I've been using One Note. Its ok. Have a different page for every month and throughout the day I document what i've worked on.


I use Trac tickets for keeping track of things to do, and Trac's wiki for formal notes and documentation. During a planning/design/brainstorming phase, I'll use pen-and-paper, and if I'm trying to work out a complex problem that I can't keep all in my head at once, I turn to the large whiteboard hung up next to my desk. Each is perfect for certain purposes, and I couldn't do without any of them. Especially Trac. Nothing would ever get done around here without Trac!

I also frequently rely on Gmail and it's search capabilities; if I get important information via email, I never need to transfer it anywhere else to keep track of it, I just leave it in my mailbox to be searched for when it's needed.


I think a blog is a good place to put you ideas. If google indexes your site, then you can search for previous answers that you used.


A notebook, and plain-text documents edited with VIm, generally. I do use google for links and notes in the style of "remember this!"


I use a notebook. I am a visual guy so I like to draw diagrams of workflows, mockups, schemas and so on, so computer based tools are too clumsy compared to a pen and paper and sitting back on the sofa. A tablet PC is not an adequate replacement either. You can't beat the feel of paper, the high DPI, the instance feedback, etc.

I also have a personal SVN repository of project code and snippets.

I would also set up a personal Wiki for when I am having to write or document things, often snippet-based best practice notes.

I use a ToDo list manager application for listing tasks I need to do. The one in Outlook is not suitable in any manner, you need one that can handle task hierarchies - an outliner basically. OmniOutliner on the Mac is great, and OmniGraffle is great for drawing up those notebook scribbles later on.

There are applications that can be used for authors when writing books, and I think there is room for a tool that does the same for programmers.


I use a bound A4 Artists Diary (unruled, high GSM paper) which I write mind maps, scribbles and all sorts of unstructured goodness on.

I rarely seem to need to review these notes ... it just helps to write them down.


We use NoteScraps at my office. It was developed internally to solve this problem. It was designed to be simple and look great.

Dave Dunkin

I'm a big fan of a notebook or even just a pad of paper... but for a while now I have been doing a lot of note taking in OneNote. It's all about being able to search quickly.

Others have mentioned sharing on a network which can also prove helpful in some applications. Also I find it's simple ability to capture screen prints, or even print outs from a web browser or other application to be really helpful.


I like to use one of those bright yellow note pads. I have always preferred to write my notes/ideas out by hand rather than use a word processing or note taking software. It feels like I am able to explore ideas easier on a note pad because I can make quick sketches of ideas, connect two separate thoughts using arrows, or just doodle.

I think the notepad gives me the ability to have a uninterrupted stream of thought. If I am typing I easily get distracted by an IM message, go to a website, or what ever. I seem to be more distracted when I try to write notes or ideas using the computer.

Maybe I am old fashioned. I don't know.


I used to keep notebooks and always lose or misplace. Now-a-days, I just post solutions on my website.

+1  A: 

todo lists: my '@Work' context for Remember the milk

most things else: I keep things where I need them. Comments inside my code. postits on my desk, and if I feel something's worth sharing I might post it to the internal wiki my company hosts.


I just use Livejournal. It's not fancy, but supports tags and is always available.

+3  A: 

For my work on enterprise applications:

  1. Lots of notepads. I diagram a lot, and scratching it out is quick and easy. I can take it with me to a meeting or to QA or -gasp- a customer.

  2. OneNote. Window Key + S. Instant Sizable Screenshots are worth their weight in gold. The notebooks are pretty useful to.

  3. Code Comments and text help files in the repository. Thinking of your code as a product that has to be consumed by other developers, packaging it correctly can be a big help.

  4. To do list. Wherever I can make them. Word, WordPad, Notepad, notebooks, OneNote, whittled into my desk. Should probably be number one. If you work on an application that can be your notepad, try that, too. It helps you find bugs.

For my web development

  1. Trac. I love that thing!

  2. See above.

DB Tech

I use the Firefox Extension Quicknote for small notes.


I use the fitnesse wiki to keep notes on projects at home. One feature it has that I've not seen in other wikis is that it is hierarchical, which means that you can have short names for pages that don't clash with pages with the same name in different branches.


I like and use OneNote quite a bit, but have recently fallen off the wagon and returned to paper and pencil. (I just like them!)

I miss InfoDepot (an old Classic Mac application) for this sort of thing. In fact, I'd still use it (I have several copies; former employee of the company which made it -- before my programming days, mind you) except that printing from an emulator is nigh-impossible. If you have a recent Mac available, OmniOutliner is very similar. (I last used version 2, which is still quite sufficient for my needs. Great app.) Both of these products work on the concept of organizing your data as outlines with multiple columns -- think outline meets Excel, and you get the drift pretty quickly.

Would that there was a Windows app similar to OmniOutliner/InfoDepot -- that's the ideal note-taking/organization app for me. I've often toyed with the idea of making one ...

John Rudy

Evernote for the win - being able to synch up across multiple computers and on multiple operating systems AND on my iphone makes it the best app for me. Just take a few minutes to learn the shortcut keys and you'll be good to go.


One great tool for jotting down notes is Tomboy Notes. It comes preinstalled with Suse Linux. It is easy to use and it support cross linking. Having said that pencil and paper is still more natural than any computer based solution.

+1  A: 

I have used TadaLists with relative success - good for sharing with others for cross-person lists. I typically keep only certain types of lists (i.e. application ideas, technical checklists for an eclipse install, remaining items for small apps, etc.). I have found some bugs with the re-ordering, but other than that, it's really simple and quick. Certainly there are better tools out there targeted at developers, but this works for me (for now). One major benefit is that it follows me - I can't misplace it or forget it at home, and can access anywhere I have Internet, which whenever I need it, is practically always there.

Previously, I've used notebooks with limited success (lose them), and the whiteboard on my desk (out of date too quickly).


There's a One click install of MediaWiki avaiable on my hosting service. I use that when I want to save notes.



I date and time stamp my entries into a different text file for each project, and keep a running dialog of my thoughts, progress, etc.

It also makes an excellent editor when I want to look at some code without firing up the IDE, as it has built-in syntax highlighting. If it doesn't have syntax highlighting for the language I'm using, I can download the appropriate Document Class from their website, or create my own.

The Hoss

I use the lined yellow legal pads for my mind maps and simple notes, but for more important stuff that needs to be kept forever I use a small C# app that I developed just for this purpose with built in search for speed and efficiency.

Jeremy Reagan

I have been programming for nearly 10 years now and I have no magic toolbox of code to show for it.

My rationale is that what I wrote to solve one problem only solves that particular case and probably just barely does so. Think about it. If you're writing code it means that you either A) didn't look for an existing solution in the operating environment you're running under, or B) the need isn't general enough to warrant inclusion in the library. In either case, what makes you think your code is the answer to this class of problem every time you encounter it. Odds are, it's not. Your solution isn't as reusable as you think.

Besides, how could you ever justify jumping to a new language if requires you to leave your comfort zone? ;)

+1  A: 

I use Daisy WIKI / CMS (http://cocoondev.org/daisy/index.html) to keep my developer notes. The reasons are rather simple:

  • Rather free-formed note-keeping, but with easy structure if I desire H1/H2/H3, etc.
  • Easily Searched Content (full-text search)
  • Attachments can be kept well-organized with my notes - whether attached PDFs, Images (which are visible inline), Word documents, etc.
  • Easy inclusion of Hyperlinks to intra-WIKI AND external references - I use this to keep notes about related web sites close at hand, as well as links to local documents/files on my internal FTP server. Saves a TON of time when I need to find things.
  • Now the BIG ONE: BOOK PRINTING! It is so wonderful how Daisy has an integrated PDF/HTML book-rendering engine. You can define navigation-trees that tell what WIKI page(s) go into your book, and they will be combined into nice chapter/heading/subheading hierarchical trees in the TOC as well as having automatic-footnotes generated for things like the hyperlinks and other non-embeddable (in printed-book) things like referenced Word docs and such. Images print in books just fine.
  • Another BIG FEATURE: MULTIPLE "VIEWS" of my WIKI pages/notes. I can use those hierarchical navigation-tree definitions to re-use my notes in multiple ways. E.g., I define an "internal notes" book that includes all my documentation (including developer-notes), and another "external notes" book that includes only things my end-users would want to see. These views can apply to not just books, but also how people access the WIKI itself.

That is why I use Daisy, in a nutshell. As you can tell, I rather like it! :)


I drift between EverNote and Backpack, tending to keep everything for one particular ticket or project in a backpack note and then archiving it to EverNote for sort of project-based stuff. EverNote for one-off things and storing all manner of information. I also flirt with OrgMode frequently.

Arthur Vanderbilt

link textI've been keeping a solution log as suggested in Practices of an Agile Developer for a couple years now. I keep them in Yojimbo (Mac OS X specific) as rich text notes. The program isn't the important part, though. It's getting into the habit of keeping track of the solution to every problem you spend more than a few minutes trying to figure out. It's invaluable to have it as a reference when you've come across it again and can't for the life of you remember what the solution was.


If I am on the road, nothing beats dead trees. I normally carry around a small, hard covered paper notebook (to survive the rigours of my backpack). It doesnt ever run out of power, wont get checked by airport staff and boot up is immediate. When I get home I transcribe it into a personal wiki. The transcribing process allows me to reflect on what I wrote and add to it or discard information as required.

Aaron Arbery

Physical notebooks. They don't need batteries and always work. Anything I jot down there for ideas (usually done as drawings either architectural or UI) become spikes, real code, or blog posts. I keep as few notes as possible and let the software be my notepad.

+1  A: 

I use Emacs, along with planner mode and remember mode. Planner mode is a TODO list software, with PIM features, and it sits on top of Muse-mode, which is basically wiki software for emacs.

At the core of planner is the daily page. IT is a new wiki page that is created every day. I keep my daily journal in these daily pages. it also stores daily appointments, and tasks.

If I am starting up a new project, I will create a new wiki page for it. At this point, I can start adding tasks right away with planner mode, and linking them to daily pages (for their due dates). Additionally, you can create wikilinks to other projects (for super-projects or sub-projects.) or even links to files and file positions in the filesystem.

So notes regarding a particular project would go into that projects page. Checklists would become todo items. Final solutions would also belong in there. Code snippets exist as links to that particular file, plus some notes to go along with it.

Everything is in one nice and central place in my IDE. It's bliss for me.

Jonathan Arkell

The back side of meeting agenda and minutes that my company insists on printing out. And bulldog clips.

+1  A: 

After trying a bunch of things, I've taken to just carrying a small notebook with me at all times and note down everything I think of and when I really need to take code snippets, some of them go to google notebook in the folders or into tomboy... if I'm using windows and it's for some sort of paper, OneNote all the way!


I use the small vista gadget that provides you post its until I don't need it, in case I need it back, just send a self email and keep it stared or followed up


As a simple solution, i use google desktop + gadget to take notes + calendar. Good thing about google desktop is that you can use a lot of your "google hacks" techniques to filter your search plus specific techniques for your desktop (http://desktop.google.com/features.html#advancedsearch). To fast notes about debugging, values, fields names, i use to take a note with a pen + notebook. Just avoid to write there your passwords :-)

+1  A: 

Some time ago, I adopded a simple but very efficient workflow that handles/comprehend also note-taking:

  1. I usually develop using eXtreme Programming methodology, so every time i start a project, i split it in user stories.
  2. Every user story and its development history is formalized and documented into an "issue" created using BugTracker.NET, and is developed/versioned using a SVN repository controlled through TortoiseSVN.
  3. When i commit come changes, I attach some notes into the revision that describes the actions taken and the strategies adoped.
  4. My project's SVN repository is connected through a post-commit hook to my BugTracker.NET instance, so every time i commit something, into the user story is added a relationship to the changed files and their notes.

In this way, every note I take is related to a specific development workflow and is avaiable for further analisys. Since the BugTracker.NET web site is exposed to the internet, I can search/consult/interact with this knowledge just navigating into it



Kevin Fairchild
+5  A: 


Just combine dropbox, your favourite text editor, and a folder of markdown formatted text files.

It has the following advantages:

  • You can't get text out of your brain any faster than in a text editor.
  • You spend zero time syncing between computers.
  • No computer? Just find a web browser.
  • Instant HTML if required
good tip (Please enter at least 10 characters.)
+2  A: 

I've been writing on a blog (www.strugglingthru.net) and using Evernote. Evernote is especially nice because I can sync all of my notes across my laptop, work PC, home PC and my iPhone. Personally, I use the free Evernote service (which is pretty generous). But someone else said start a blog and write on it - I highly recommend that. It's a great way to give back to the community.

Edit: I also have an engineering notebook at work. They are invaluable for both you and your employer. Highly recommended.


I think any personal wiki is good for this sort of thing. Personally I use one that I wrote myself because I wanted one that could sync with my phone, but tbh, any wiki is good if you figure out a nice way to structure the notes that makes sense to you.


I've read through the massive list of comments and there are a lot of good ideas in there. Personally, I've been using more and more of google's tools, such as google notes and google documents. Most of the coding I do is internal and requires me to vpn to work to get at. This can be inaccessible in some situations, I love the way I can always access my stuff on google, which is better than say a desktop application where the documents would be only on a local pc somewhere, or on the company wiki (which requires vpn access), or in source control (same as the wiki). Google tools have really good and quick searching technology built in. Until I find a really good global solution, I'm going to continue using Google.


I wish StackOverflow was up-and-running a few months ago when I scoured the web for the answer to this exact question. I had used Microsoft OneNote at a previous company, but no longer had access to it where I now work. I tried using some of the Wiki-based applications, but quickly got frustrated with it's usage model. I had also looked at some of the mind-mapping products out there, but those didn't fit the bill for me either. I have since settled on EverNote and have been using it for several weeks now.

I had my doubts at first because of its lack of support for organizing notes in a hierarchical fashion, but I've gotten over that. I like the fact that it supports tags and that you can filter your view by multi-selecting various tags.

I also like the fact that it runs locally, but can be synchronized on the Web. I had looked into the Google Notebook application, but didn't like the web-only UI.

+2  A: 

I use the Mantis bug tracker, I use it for bugs, todos and notes for stuff I'm working on.

It lacks some features of FogBugz, but hey, it's free ;)


Depends on the scope of the note, I suppose. For to-do list type things, I use FogBugz. (It's free for small teams and students)

For random notes, my old usage pattern was to open up a copy of NotePad, type stuff, then lose it because I restart my computer without saving it somewhere. Addressing my issue, I created a note program for my own personal use. Think of it as notepad with tabs and autosave, or alternatively, think of it like OneNote but not bloated. Free at https://webfiles.colorado.edu/allredj/, if desired.


I've used a number of methods over the years:

Paper Notebooks

Like most people, I started out keeping notes in a spiral bound notebook. This method has one big, fairly obvious advantage: you can draw what ever you want - text, diagrams pictures, whatever. Notebooks last a long time with proper care. The drawbacks are inability to search and the fact that I have atrocious handwriting. And killing trees, I suppose.

MS OneNote

I have access to this at work and it's one MS product I really like. It has individual files for notebooks. This is great for organizing things at the project level. I can use a notebook for a project and then remove it form OneNote when the project is over. I still have it if I need it, but it's not in the way. It integrates tightly with Outlook - you can create meeting notes for an Outlook event with a single click and create tasks & link them to items in OneNote. It also supports diagrams and highlighting. The main drawback is that it's Windows only and it's not cheap.

Omni Outliner (Mac)

It's a very nice outlining tool and I still use it for lists and things (often in conjunction w/ Curio, below). But it falls short in organizing, traversing and searching large amounts of data. It just seems a bit cumbersome for all that.

Curio (Mac)

My current method of choice. I've tried Evernote, but (unlike a previous author) I can't get past the non hierarchical organization. Curio allows me to have a separate notebook (file) for each project, create simple diagrams, links and other do-dads. You can also create & embed documents on a page. The drawback is that, like OneNote, it's not cheap.

Rich Bruchal

I always dedicate one of my desktops to a fullscreen emacs, so writing notes is only an Alt-Tab away. I store my notes in files called 'notes' in the relevant directory. The notes tend to get monolithic, but are quite useful because I either never read them at all, or I read through the whole thought process again and again.

+1  A: 

Depending on what i'm doing i use:

  • Tomboy for small and quick notes.
  • A physical notebook, for bigger projects which need better planning and lots of sketching.
  • A white board to draw diagrams, and after i'm done i take a picture of it to archive it.
Yeah that workflow is very useful, I add a wiki for documenting strange things and processes in my servers, for the case that another person has to follow trough my work.

A combination of google notebook and my browser's bookmarks seems to work well, so far.

Jeremy Cantrell

Second vote for Keynote here. It works great as a simple, hierarchical text database.


Imho, any kind of wiki-based systems will do the job.
Notes and files are fine, but wiki gives you a history - a very powerful feature!

Nice question btw. :)


I'm a Mac guy, so I use TextMate and TaskPaper.


I don't save snippets, instead I keep all my projects uncompressed and if I need something I will look for it using tracker/google desktop (depending what so I'm using)... for figuring out stuff I use my old nootebooks, they are scribbled al over :P


I have one folder with all the docs in there. This is for personal use so I always know there the info I want is.

Plus I keep almost the same structure within projects.

+1  A: 

It would seem that a combination of a Tiddlywiki file and a DropBox would be a good solution. It would have the network usefulness of Google Notes with the plus of being editable/accessible when disconnected from the local Dropbox.

+1  A: 

Mac specific answer: I use VoodooPad extensively for keeping snippets, notes, and so forth. Aside from being an excellent hypertext editor, its single biggest benefit to me is the ability to run scripts from within one of the pages and get the results immediately.

The resulting pads become an active tool as well as information repository that are just invaluable.


Microsoft One Note is an amazing and underrated tool, majority of developers have it installed with office and never even open it... I can't live without it.


I have a project called "home" that I keep in Subversion and check out to every machine I'm on. In that project is a directory called "lab" and any time I have to work on a scratch program or write a 2-200 line program to do something, I do it in lab, and add it to the repo. The accumulated scraps have saved me more than once, and having it on every machine, always updated via Subversion, means that I never find myself saying "Damn, it's on this machine..."


Also, I have a wiki that I keep notes in if I think the notes are interesting to anyone else. See above.

Andy Lester

I've been using Google Docs for notes so I can have them available on all my machines. Paradoxically though I'm finding that as Google adds more word processor features Docs becomes less useful for me as a note-taking app. For example, there are now red squiggles for misspellings that I can't seem to turn off. I'm thinking about switching to Word or some other file-based solution and syncing with Live Mesh.

For code snippets that I find online I just bookmark them in Delicious. My own code is usually under source control. I've used Live Mesh or Groove to share small demo projects across machines.

Jamie Eisenhart

At work I use MS OneNote, as it is extremely easy to use, you don't have to remember strange syntax or shortcuts. Formatting is simple and WYSIWYG.

At home I record everything in evernote.com, as it is basically the free equivalent to OneNote. But as it stores everything on an external server, I won't use it for my company's material.

+2  A: 

I use MS Word file to write notes and upload it my Yahoo,Gmail(backup) Inbox..You can make seperate folders for your notes in your EMail website....The uploading thing is done every 4-6 months to save it from any hard drive failure...its a bit tedious but thats the way i am...simplicity has also been my friend...

+1  A: 

To save (and share) your links use Diigo (http://www.diigo.com/). You can highlite text, pictures,...

  • paper is great,
  • notepad
  • MSWord
Nathan Koop
+1  A: 
  • Pad and pencil for quick and arbitrary notes.
  • Whiteboard and camera for collaboration.
  • Flat text file for random thoughts and snippets (it's just always open in my editor, so no need to think about it)
  • Wiki for permanent notes (including the whiteboard photos)
  • freemind for organising disparate thoughts
Andrew Edgecombe

I use Mindtouch DekiWiki for all my programming and system management notes. By restoring backups of the (company) Wiki to a Virtual Machine on my MacBook, I can take my development notes anywhere.

Bob Minteer

If it is something I know i am going to reference a lot and want to reference easily, i use a wiki.

If its something quick, notepad in windows or a pen/notebook.

+1  A: 

Over the years I have tried so many tools myself, I don't even know remember what I tried. I know that Google Notebook was among them, wikis (serveral) as well, Basecamp, Rememberthemilk, etc..

One important thing that I learned in the process was, that whatever tool I use, failure always came when I started slacking off. For example, I did not stick to my plan [using X] and that is what created F'ups down the road. It didn't really matter what I used, be it a wiki, or a moleskine or something else.

I am currently using the todo-list feature on my e71. And I have for the past year or so always used my phones capabilities to keep track of my tasks. I enter pretty much everything in there and set a due date etc.. This has helped me a lot. I syncronize my phone with an online calendar which I also update with whatever I have to do. This is as far as personal organization.

For keeping records on stuff I build and solutions to common problems, I currently employ my own PBWiki account.

What I generally like about the wiki approach is that the structure is very flexible. I can enter information, and re-organize it later on. It also allows me to restructure information when I think I need to. I usually organize my entered data weekly.

The only downside to a wiki is that you need Internet, and that you need to be dedicated about entering information later when there is no Internet currently. It's something I constantly struggle with. ;) The phone and wifi really help, but in the end it's up to me.


A combinaison of a physical notepad and the windows notepad. I use windows notepad when I want to be able to copy/paste my notes. Other worthy notes are in my physical notepad which I can bring with me everywhere I go.


I've been pretty successful with:

  • USB Drive
  • MS SyncToy (Sync between my USB Drive, Desktop, and Laptop)
  • CutePDF Writer in case I see an article that I want to archive
  • Wiki on a Stick for notes, to-do, etc
  • Notepad++ and text files for snippets
  • CodeKeep for online storage and sharing of snippets (integration with VS through their plugin is an enormous help)

I've tried Evernote, OneNote, etc but I always fear the file format... Wiki on a Stick is a single html file.

@Karthik Hariharan:
You are right that the single file things bloat and I did fail to mention that I do not use a single Wiki on a Stick for all things. I've got an intro html page that leads into multiple Wiki on a Stick instance. The intro page is a gasp frameset so that I've always got navigation to at least the top levels of my other sites. I have one wiki for gaming notes, one wiki for development reference, one wiki for recipes, one wiki for my blogging/writing notes, etc. (My work wiki is organized similarly by client and/or project.) I find this a minimal amount of work for staying away from specific file formats and staying with open html/javascript.


This is a great thread and I will certainly be checking out some of these alternatives.

The solution I was using was to find a notetaker that consolidates to just one flat file and then use something like FolderShare or DropBox to sync it with my home, office, and laptop PCs.

The downside to this is that many of these single file things (like TiddlyWiki) don't scale very well over time. After 2 years, TiddlyWiki became so bloated and slow that I gave up the notetaking concept all together.

Now I actually use gasp Outlook tasks.

Karthik Hariharan

Microsoft OneNote stored in the Solution and bound to source control.

Tom Anderson

Also, I find it the easiest to use a physical notebook. I carry it around everywhere and add ideas as I go throughout my day. Then at the end of the day, I usually go on Google Docs and organize them on a document.

James Hartig

ToDo comments in code and then I use the things application for tasks lists.... http://www.culturedcode.com/things/


A plain text file or a dead-tree notebook. I normally take notes in the heat of the moment, so I prefer to keep it simple.

Everytime I tried something fancier (like Tomboy on GNOME), while it was nice at first, failed the purpose for me. It normally breaks my workflow, thus I stick to the simple text files.


For keeping references handy I've been using an Excel file with multiple worksheets, e.g. Web, Db, C#, C++. Each worksheet has the following columns:

Subject | Title | Description | Source Link | Last Updated

+1  A: 

Anything that's handy and is available when I want to scribble -

be it my notepad, notebook, a file on PC, sticky notes, even wall :) .... whatever that helps jot down your thoughts without breaking it due to non availability of any thing in particular..

whats the point looking for a particular medium, which by the time you get, entire thought process is gone.

The only thing to care about, what ever you used, should be available for back reference !

+1  A: 

I make notes, lists, todos in text format, and either save these in a "doc" folder in the project folder, or right in the project folder itself if there are only one or two files. If I am using version control these get checked in with the project.

I typically use whatever basic text editor/reader comes with the OS that I am using at a particular moment: Mac OS TeachText/SimpleText, OS X TextEdit, Microsoft WordPad and Notepad, the cat command in BSD/Linux, Nedit, etc...

Mark Stock
+1  A: 

I use my own product which I built with this in mind: TheKBase. It's multiple hierarchical, not unlike your brain.

It reads and writes pure XML and is very lightweight (but needs .Net 2.0 or better) and user-supported (i.e., free). I cannot imagine why people would use physical notebooks or notepad.exe when there are options like this around.

+1  A: 

The best "sticky-notes" app I have ever used (very lightweight and small notes with no window widgets wasting screen real-estate): AtNotes. Unfortunately, this application has been discontinued but you can still download it and use it. When I get my first MacBook, I will likely make use of the Desktop Widget feature for this same purpose, but on Windows: AtNotes rocks.

Ryan Delucchi

I post useful/interesting code on my blog for me and others to reference later. Other than that I use Gmail (which has proven to be very useful) and also traditional Pen & Paper.

+1  A: 

I use a pen and paper, but the other day I found what I want for Christmas.

+1  A: 
+1  A: 

I wrote ForestPad for this purpose.

Timothy Lee Russell

I use Evernote to keep all my code snippets, blog exerts and links. Evernote has the following features that made it great for my everyday note taking:

  • It has a very good search that works in pdf, images and text.
  • It has synchronization between all clients (PC, IPhone, MAC).
  • Web interface to see your notes on-line.
  • You can send notes to it from any email client.
Dror Helper
+1  A: 

I always have NotePad running and save an "ideas" file each day.

+3  A: 

I'm surprised no one has mentioned Pocketmod yet. It's basically a DIY origami notebook. You can customize the pages to suit your needs. Personally, it's either lined pages or graph paper. I'll usually have a few in my backpack for different projects.

While on the computer, I'll send myself an e-mail with my note. Using GMail's search engine, I can usually find any note quickly.

+1 Coolest thing I've seen in a long time!
Michael Itzoe
+1  A: 

These days I use plain text files (I'll leave the vi vs. emacs debates for others). I have a dropbox account so the files get synched to each of my machines automagicly. Dropbox does revision tracking so I have at least a poor man version control on them. I am doing the same for todo lists as well.

Sean Reiser

I use Evernote. I love the fact that I can get to my notes whether I on the Internet or not. Also, the text in graphics are searchable. Comes in handy for a photo of a Whiteboard.

+1  A: 

For getting my thoughts in order I use an outliner tool. On windows I currently use ecco pro. It's very old software (most recent build is over a decade old), but it works really well for putting down structured text. There are some word macro's to easily export to word.

Joeri Sebrechts

Just started to try out EverNote myself. So far, so good.

Optimal Solutions
+1  A: 

In my head and in the code with comments...

Gordon Carpenter-Thompson

I have been using a A4 sheet of white board paper and thin white board pens. Then I will take a picture of an important note.


If they are documentation type notes, I'll use a text file or Word doc in the project folder so it's available to all via source control. Personal notes, usually just a text file or a physical notepad, although I'm looking at Evernote and Onenote after reasing these responses.


I use a mix. I hate using notebooks, because I am prone to losing them and if I do then I am a bit screwed. I hate using a laptop, because I don't want to lug it everywhere especially to someone's cubicle. I have a smartphone, but I type very slow on them. So what do I do? I mainly go with paper and type it up later or just try to remember and email it later.


Little "composition" notebook.

+2  A: 

My trustful paper pad with a good pen. Always work. No bugs. Sometimes, I do have to fill the ink inside though.

+2  A: 

I Use TextMate with Markdown for my notes.

For sending these notes to others TextMate has a nice preview feature for Markdown [ctrl]+[alt]+[cmd]+[p] which allows to send your notes as a well formatted pdf.


I use a mixture of small spiral notepads, Google Notebook, Evernote, and post-its. I'm gravitating more and more towards Evernote however.


Depends on the project, but I sometimes use Tinderbox for planning notes.


I love Yojimbo on OS X

Christopher Lang

I'm becoming scared that this post is misleading developers to use physical notebooks. Note that the majority of people prefer digital solutions, they just aren't in consensus for the type of software. There is evidently less competition among notebooks than among software products.

This answer is a community wiki. Please edit it to reflect the best resources revealed by this question.


MS onenote 2007 works like a charm for me.
The OCR from screenshots as well as the capability to have unstructured thoughts presented in a structured way, automatic backups as well as saving and a bootstraper with amazingly small footprint does it for me.

Vaibhav Garg
+1  A: 

I use VoodooPad Pro on OS X, even when writing Windows code in a VM.

Gregory Higley

I always have in my solutions a particular file called notes.txt where I write down all my notes. Every project I'm working on has my notes so that everyone can read my notes when they are making changes, or what so ever.

All my code I've written for companies are stored in Source controlled applications, and if they don't have any.

+1  A: 

I quite like Remember The Milk. I can have a tab for each project, an entry for each task and each task allows me to write notes.

Never really got into writing notes for long term - maybe I should start a blog!


Redmine's wiki.


I keep several moleskin notebooks for my collection buckets.

  1. One to sketch ideas on
  2. One to takes notes in
  3. One to keep track of what needs to be done, I also use this to manage my personal and professional projects.

Then I process things with google calendar and backpack. My google calendar is used to setup extensive reminders, and all the calendars are linked into backpack. I even display project specific calendars on each "page" relative to that project in backpack.

For things that I just need reminders for, I add that to backpack as well. All of these reminders are SMS'd to my phone.

So far so good, though I agree starting a blog is a great way to encourage yourself to keep improving and to track progress.


I use Toodledo and a notebook. Toodledo can sync to Outlook and has an iPhone application so I'm always in sync no matter where I am.

Jon Tackabury

I recently started using Instiki for everything. Give it a try!


For work stuff I use a good old paper notebook to jot down ideas, draw diagrams and other stuff during meetings and transfer them later on to a team wiki (an internal DokuWiki instance).

At home I use my wordpress blog. I have a lot of drafts :). If I need something more than once, I reformat and post the blog entry.


I have used google doc.


I'm partial to http://pocketmod.com/ for doing small notepad keeping in paper. I've fiddled with TiddlyWiki and I like it a lot, but I don't care for being tied to a computer. I carried an iPAQ for a while, but it was a bit too fragile for me. Pen and paper has the right mix of portability, flexibility and economy for my tastes. Now if only I could duplicate and back it up. Version control would be nice too. :-)


VoodooPad from FlyingMeat software (OS X only)

It's the world's most awesome personal wiki tool, but to associate it with normal wikis is to do it a great disservice. It is totally wysiwyg, has sweet built in search, sketches, html export encrypted pages and more. If you've got a Mac I highly recommend it. The developer's been adding features to it for years now and is very responsive to customer questions.


I don't recommend Lotus Notes. Our organisation uses it (for legacy reasons) and the search functionality is very poor, especially as the 'Google Gold Standard' gets better and better.

As with other answers, I use TiddlyWiki, but it's not ideal for storing code snippets.


This is really weak but for projects I am working on I write in notepad (notepad2 to be precise) any notes that I may need and I sketch any diagrams using paint.

When I have a good idea of what I am doing and I wish to share- if it is something for work I write very lengthy emails, refining and rewriting the notes that I have in notepad.

For simple notes + bug/issue tracking I have used a shared google document, highlighting or coloring text depending on who the author of the notes is.

I also write about some of the non-specific aspects of my projects on my blog so I can express my feelings and thoughts on the non-code aspect. It is like talking to a therapist about the issues I go through and is more about letting me reflect on those issues and to understand by expressing them in writing.


I use emacs org-mode both to track my tasks and to maintain a local wiki where I keep my notes. I keep the notes synchronized between computers using git.

During meetings, I take notes in Emacs on my MacBook when I have it along or on a Neo I have lying in the drawer for later transfer to a real computer with Emacs. I'm eagerly awaiting delivery of a Mini9 to replace both of these systems in this role.

WorksForMe (TM)


Google Docs and Trac with SVN

+1  A: 

I've been a big fan of Evernote lately.


I use MS OneNote 2007 and achieve the following: 1)collaborative authoring: including restrictions passwords, collaborate via SharePoint or a SharedFolder on my local disk. I dont need to worry about others needing to know any markup text, very straightforward - just like typing in Word- support for tables, colored text etc! 2) real time chat/discussion (sharing session!) 3) whiteboard/drawing 4)search text from pasted images/ great search across notebooks 5) ability to flag items 6)Good integration with MSOutlook: I can send emails/Meeting Items and Contacts directly to OneNOte, (an annotate/add special notes to the content 7) Create PDFs or email One Note pages to people 8) I can send PDF/PPT to one Note: allows further annotation 9) When I view Web content, I can send an entire page or just one line of text directly to OneNote and one note even saves the link for me! 10) I can also have record audio and if i provide keywords during the recording, the play back will begin from the point from where I made the annotated keywords 11) I can even search based on changes made by others or me to the notebook 12) I also use OneNote during meetings: jot down minutes, flag to do items: I create custom flags or use the out of the box tag that read Critical/ TO do...and later I can create a summary of all flagged items across notebooks. 13) I sync OneNOte with my office copy and home copy 14) and When I buy my Windows Mobile I can use the Active Sync Feature of OneNote...!! 15) I also write out my thinkings in OneNOte and send them to Word and take it from there for a professional doc that needs to go out to people. 16) Screen grabs are also reallyyy neat! 17) I also embed files (audio- mp3 of a meeting, a Word doc that I may need to view later etc) 18) I also love the fact that I do not need to keep saving as i type! It autosaves! 19) I used oneNote even as a calculator: if I type 1+ 2= on a OneNote page, and press Enter I get an answer typed out for me! Maybe I will come back and add more later..but I can go on about using OneNote 2007 and how useful it is!


I pesonally use WikidPad, a desktop Wiki application written in Python. It is really fast and it works pretty well. It is primarily plain-text, but the primary advantage for me ist that it is lightening-fast when switching between pages (if you use SQLite as backend), which is a huge requirement for me.

I once managed to integrate a GettingThingsDone extension into it, don't really remember where I got that one from. It manages my whole TODO list.

Martin C.

Tiddlymath is good you can include svg - but I keep meaning to extend it for programming diagrams.


SynchroTron TiddlyWiki is a 'a reusable versioned non-linear shareable web notebook' that used DVCS techniques in its interesting implementation. I've only fiddled with it but is seems like a good choice for a lightweight group project.


Opera, the browser, is superb for quick note-taking.
That is, of course, if you have it running most of the time....not much use if you have to fire up Opera just to take a note ;-)

Totally addicted to the mind-numbingly ability to synchronize the notes without any fuzz...just sign in to your account once per computer, and then your notes are always available.....just priceless, especially if you're a tad absent minded, and not always aware of which computer you happen to have in front of you....

Morten Bergfall
+1  A: 

I use Google Side Bar Gadget it's not very advanced but easy and fast

Omar Abid

I am using "The Journal" by DavidRm Software. It is not particularily developer centric, but I have found that it has really helped me getting my notes organized. It has both a "notebook" and a "daily journal" mode. I used to have lots of handwritten notes lying around, but they are mostly gone now.


Emacs Org mode


I use my blog for my thoughts that can be public. For the rest I use either OneNote at work (on PC) or Omni Outliner at home (on Mac). I wrote a post on note taking you may find interesting. I also use notes on my BlackBerry which I sync to Outlook which works for small pieces of information that I use regularly. I used to use a Palm PDA and Palm desktop, which I find superior to Outlook but Outlook is what we use at work..

+1  A: 

I use UltraRecall when I want to capture info from the blogs I read.

John Marsing

I run a full-fledged weblog for my engineering notes on my workplace's internal network. It is indexed by a Google search engine, which usually homes in on what I want to find weeks or months later.

Additionally, we have a wiki which is used both for scrubbed docs and as a scratch pad for ongoing development.

Don Wakefield

I actually use my own application that I've been doing for the past years... Although the development is really slow.

There's no webpage for the current version but you can check it out here:

Old version: FireNotes v0.5.1 (very old really)
Latest version: FireNotes v0.7.4920 (Developer Preview 1)


I use Tomboy Notes


I use pen and paper (note books and yellow notes) for quickies and in-work notes.

When working on a project or task of some size I use mind mapping (iMindMap or MindManager) and to some extend word processors for longer lasting notes.

I find the mind mapping a great tool to get an overview of the task at hand as well as keeping track of minor and major tasks in the projects during the whole process. Good for making context dependent notes to refresh your memory when returning to projects for later development and/or bug fixing


I use pen and paper (note books and yellow notes) for quickies and in-work notes.

When working on a project or task of some size I use mind mapping (iMindMap or MindManager) and to some extend word processors for longer lasting notes.

I find the mind mapping a great tool to get an overview of the task at hand as well as keeping track of minor and major tasks in the projects during the whole process. Good for making context dependent notes to refresh your memory when returning to projects for later development and/or bug fixing


I am on open suse(KDE) ,Knotes and basket get the job done for me.

Ronald Conco
+4  A: 

I'm now using Snipt (http://snipt.net)

It has a nice clean interface + syntax highlighting.

Jon Biddle
I wish this had a desktop client, its a pain having to always have a browser open.
leaf dev
  • Microsoft Onenote
  • Google Notebook
  • Google Docs for some long stuff
dr. evil

I use a combination of My Life Organized and ScrewTurn Wiki. I run MLO from my usb flash drive.


My blog, combined with Evernote.

Notes go in Evernote, and can be screenshots, whiteboard photo's, hand written and scanned notes, typed notes and URLs, and code snippets. I can easily tag all this stuff and organize it.

When stuff is non-NDA and public knowledge, I move the notes to my public notebook for everybody to see. If I have the time and I have found something interesting, I post it on my blog.

My blog only contains answers. No questions. It servers as an external memory which I also use to refer to when people ask me questions. It saves me and them a lot of time and makes people happy.

You can get Evernote here: http://www.evernote.com/

and here is how a public evernote page looks like: http://www.evernote.com/pub/rolfje/PublicNoteBook


I usually only use blank A4-sheets of paper and write on them from all angles and sides. It gets a bit messy on my desk sometimes, but i really like the freedom of a large paper without lines.


Notes of permanent value live in ~/etc/howto with a find/grep script for recovering information quickly. Ephemera live in ~/todo/next-actions or ~/todo/someday-maybe as espoused by David Allen in Getting Things Done.

Norman Ramsey


Anything I'm taking notes on is for a feature or a bug, so I have a tendancy to use FogBugz as my repository for notes and details and anything relating to those items. That generally covers it for me.

+1  A: 

I like it simple:

  1. Text Files (edited with PSPad or UltraEdit). I have conventions for marking headings, todo items, or simple bulleted items. My personal time log is also recorded in the text files, and log the day's notes under each day section. They are easy to backup, viewable by many applications, easily searchable. Plain Text Files feel natural like coding itself.

PSPad or UltraEdit helps in keeping your notes properly formatted (indentation). It's easy to move code snippets around.

With text files you don't have to deal with formatting, but you can use TiddlyWiki if formatting matters.

  1. During meetings or discussions I use real notebooks. If I am bringing my laptop, I use my text files. If using notebooks, I record important information into my text files, too.

  2. Firefox bookmarks synchronized online. I organize my Internet references using folders and/or tags. I make sure the bookmark title is very descriptive, so that you can take advantage of Address Bar search when accessing them again.

+1  A: 

I just forward everything to Gmail OR email it to myself at Gmail, and label it well.


plain old paper and Freemind http://freemind.sourceforge.net/wiki/index.php/Main_Page


I use Microsoft OneNote. Easy to use, never have to save anything and you can allways find everything with a simple search.

Jeroen Landheer

Google Docs & MediaWiki for most everything!

+1  A: 

I wrote my own todo application, because I did not like the ones I saw on the internet. It's here: Niko's To do.


GMail Tasks

Sheehan Alam
+1  A: 

I find very convenient Notational Velocity for OS X. It a modeless, full text search engine for note taking. http://notational.net/

+6  A: 

After 25+ years as a developer, many of them spent writing notes (I'm an inveterate scribbler) I'm really over paper notes.

They are bulky, you can't search them, can't back them up and can't carry them around that easily.

Modern OS, especially OS/X which I use as my main desktop, are really good at finding things so the most important thing is just write stuff down. You can worry about getting the where right later. That's also a lesson for wiki users - we had a very successful wiki (using Twiki) at CSIRO where I worked with many scientists and the number-one lesson was to record now, edit later.

Having said all that, I'm naturally a tactile and then visual thinker. I tend to sketch solutions. To keep everything searchable, simple, diffable and able to be used in a wiki and in Doxygen, I do many of my diagrams with GraphViz. That way I just have to describe the diagram in a simple text form and the picture is generated. I use GraphViz (strictly, the dot tool) for schema documentation, calling sequences and casual architecture diagrams because it's the fastest possible way to get a picture recorded.

As a self-education and self-improvement excercise, whilst it is useful and fun to be able to leaf through past notes in a notebook, I think it is actually better to be actively editing and commenting on past work. I think you're more likely to lay down new associations in your brain if you're handling the material by pulling bits out and writing them up or classifying them in relation to other bits of knowledge. This is also one thing you can do to mitigate the linear style of blogs - maintain index pages pointing to your better postings.

Andy Dent
+1  A: 

I love having a notebook to scribble stuff, but that's mostly for layouts/designs/etc. For code snippets I use gist. They can be marked private, given titles/etc and are git repositories (!) so you can keep editing them and keep history with no effort.

+1  A: 

I have a glass desktop and I use wet-erase markers for all of my transient notes. I used to use dry-erase but they would rub off as things would slide across the desk. Not so with wet-erase.

If I really really need to keep the notes for posterity, I take a picture with my digital camera. I've only had to do this a couple times.

Ben Throop
+1  A: 

My memory is horrible. When I took my current job, I created an Access database to handle my notes. I've got links to documents and websites. Names of different servers. Copies of expense reports. The Bio I sent the HR Dept. There are code sample and SQL scripts.

It's searchable. Date stamped. I can write any report I want. It is nothing fancy. The key is, I work with Access a lot, so it was not that hard to build, manage and use.

If you want something that is accessible from the web, your phone, computer etc. I think 'Evernote' is one of the best products out there. It is everything I would want in a note app. I'm still learning more. The cell phone camera upload is perfect.

Jeff O

notecase + wordpress


I've recently been using the Pulse Smartpen, which is an ink pen on paper solution that also happens to have an infrared camera builtin with audio recording and 2 gig storage: http://www.livescribe.com/. I use this for capturing design ideas and drawings, meeting notes, and pretty much anything I normally write down. It records all your writings and drawings and links them to the audio recordings -- really has to be seen to fully appreciate. The notebooks get synced from your pen to your computer, and can also be uploaded to free cloudspace on their website where your notebooks or sessions can optionally be shared. There is no built in OCR, but there is an optional add-on that integrates with it. And it has built-in text search on your written documents (which must be using some OCR behind the scenes).

Chris B.

I've tried and liked both ScrapBook and Zotero -- they're both primarily targeted at capturing local copies of stuff from the web, but (I believe) they also include simple note-taking.


I've started using ShoveBox (Wonder Warp Software; OS X only), available for free from MacHeist.com. Drag files, images, text snippets or URLs to the icon on the taskbar and it stores them all. Searchable, exportable, all that stuff. It's not developer-centric but works for me.


I am developing my own web app to keep my notes, urls, todos and files. It is an open source project : http://sourceforge.net/projects/easytc/


I use Google Notebook. It's gerat and I use it for any type of note not only just programming related. Although I've heard that unfortunately Google stooped their work on it for now...


I sujest using Microsoft Live Thumbtack

Thumbtack is an easy way to save links, photos, and anything else you can find on bunch of different Web sites to a single place. Grab the stuff you want, put it into a Thumbtack collection, then get to it from anywhere you can get online. Share it with your friends, or just keep it for yourself. It’s way easier than sending a bunch of links in an e-mail, and even easier than setting lots of favorites in your browser.


Some excellent notes here already...

Evernote is great because it bridges the analog/digital gap, in a way Google Notebook couldn't. Now that Notebook is leaving google, Ever note will begin to look more impressive. Think of Evernote as a personal butler, that will take scribbles, cameraphone screenshots of basic plans and tie them all together. It still needs effort in tying work to each project you are working on however.

The feel of doing on paper work for creative work cannot be lost neither - scribbling basic web layouts is still (for me) faster on a page, done as crudely as the timeline gives me. Having this is something I can refine latter on if needed - and Evernote will let me scribble on it while retaining the original copy.


I use Microsoft OneNote.

When I start talking to someone about a project I start an outline in OneNote. It could start very simple like the results of a first phone call to setup an appointment without much more than a project name and some very basic information.

As I ask questions, talk to other people and do my own investigation I add to and with OneNote can easily modify the outline very quickly.

If possible I'll put the outline up on a screen and develop the design and requirements in collaboration and in real time with the people who know and care about the project.

In all cases I will email, show or print the outline to the stakeholders to see if this is a good representation of what they want.

My next step is to refine the outline now taking into account to how the data will be organized, what type of program (web, windows forms, windows service, etc.) and continue the design so that I have a clear path to start on actual database and software implementation.

As I go along in the project I can further refine particularly complicated parts and be left with some good design documentation.

For a new or prospective client, during the first interview I can capture what they say and provide some detailed feedback via email after the meeting which usually has a very positive effect!

Data Dave
+1  A: 

Tomboy combined with Gnome-Do. Part of Gnome on Ubuntu. It's not developer specific, but it's unreasonably useful, and integrates with Do brilliantly. I press Ctrl-Space, type some stuff, press tab, type note and then go to create or search, and it searches all my notes for that text, and brings up a list of results, or it creates a new one with that title. Works perfectly, and keeps everything indexed, which is a real problem I've always had with making paper notes. Where's the bit with my plans for this bit?

Also, you can combine this with dropbox with a bit of neat symlinking, and have all your notes kept in sync (with revision control) on all your computers, and backed up to the internets. Beautiful.


I use the now abandoned but still enormously useful application from tranglos software called KeyNote. Its the best hierarchical note taking editor that I have ever come across till date. And IMO it still does it job pretty well.

+2  A: 

ToDoList, main file kept on multiple machines and synchronised using Dropbox


I'll echo the general sentiment that a wiki is the best way to go. I am currently using drupal to store all my notes. It has a great taxonomy system. I've walled mine off (https and password) from the rest of the web though so I don't feel so bad about it not being polished. From there, its a quick copy and paste of the terminal, and I've got it...


I use a combination of:

  • Plain Text Wiki for TextMate
  • a Moleskine journal
  • OmniOutliner
  • OmniGraffle

I just use google notebook for URLs etc and a physical notebook for others :)

Chathuranga Chandrasekara

Eclipse's @TODO feature - I use this for any notes and TODOs related to the Java project I am currently working in.
Physical notebook - For notes and TODOs that does not fall on the above category but is still related to the project I am currently working in.
Email - I use these for sending notes and TODOs from my office email to my personal email. But these are not related to work. These are mostly links, and texts about anything I want to research at home.

+5  A: 
  • If you are using VS try CodeKeep ( just in case you did not read about it above )

  • Start blogging ( Even if nobody reads it ... as mine ; )

  • copy , paste to blogger

I use small copy paste snippets to Blogger. It sends automatically e-mails to my Gmail account. Install Google Gears - for example I do have my regular searches such as "cmd cheat sheet" or "perl cheat sheet". I tag each code snippet with easy to remember tags ... Thus later on when I need them : Start - Run , type Opera , Ctrl + 1 - access Gmail type / to focus on the search tab , type "tag " , hit Enter

whell it is most probably there , Copy Paste and use it.

  • use a fake class I also have the following type of fake class, which does help if you type HowTo.DoSomethingSuggestedByVSIntellisense

    using System.Text; using System.Diagnostics; using System.Collections.Generic; using System.Collections;

    namespace GenApp.Utils.Theory { /// /// This is fake class for quick copy paste. Usage: /// type HowTo. - the intellisense will display the names you have figured out for each fake method /// select the name from the , click in it , right button , G , will get you there , /// copy paste the text , Alt + F, C to close and remember to delete the fake call. /// public class HowTo {

     public static void UseRegexesWithWhiteSpace ()
      //how-to use regexes with white space 
      //                Regex re = new Regex( 
      //                    @"           # This pattern matches Foo
      //                        (?i)     # turn on insensitivity
      //                                 # The Foo bit
      //                        \b(Foo)\b "
      //                , RegexOptions.IgnorePatternWhitespace ) ;
      //                for ( Match m = re.Match( "foo bar Foo" ) ; m.Success ; m = m.NextMatch() ;
    } //eof method 
    public static void DisplayJavaScriptConfirmationDialog ()
     //Active_chkbox.Attributes.Add("OnClick" , "return (confirm('Do you want do disable this user'));");
    } //eof method 
    public static void RegisterPageStartUpScript ()
     //how-to Page.RegisterStartupScript(@"startup",@"&lt;script&gt;alert('Thank you!');&lt;/script&gt;");
     //string JaScript = "&lt;script language=’javascript’&gt; alert('User Details saved successfully') &lt;/script&gt; " ;
     //Response.Write( JaScript );
    } //eof method RegionsterPageStartUpScript
    public static void AddCallingMethodNameToDebug ()
     string code = @"
    System.Diagnostics.StackTrace st = new System.Diagnostics.StackTrace(); string mName = st.GetFrame(1).GetMethod().Name; ";
    } //eof method AddCallingMethodNameToDebug
    public static void SettersAndGetters ()
     string help = @"

    how-to generate those in textpad F8 how-to Generate member accessors , properties for C# asp.net with textpad how-to setters and getters find:^(.*)$ replace:private string _\1 ; \n public string \1 { \n \t\t get { return _\1 ; } \n \t\t set { \1 = value ; } \n } //comm -- eof \1 property \n\n find:^(.) (.*)$ private string s\1 ; \n public string \1 { \n \t\t get { return s\1 ; } \n \t\t set { s\1 = value ; } \n } //comm -- eof \1 property \n\n

    FIND:first remove all the [] from the copy paste of the table create screipt ^\t[([a-zA-Z_])](.)$ FIND type and var ^(.) (.)$ REPLACE Properties

    region \2 \n private \1 _\2 ; \npublic \1 \2 { \n \t\t get { return _\2 ; } \n \t\t set { _\2 = value ; } \n } //eof property \2 \n\n\n #endregion \2 \n\

    //for the constructor _\2= this.\2 ;

    //for the passing to the constuctor \1 _\2 ,

    /* ^(.) (.)$

    region \2 \nprivate List<\1> _\2;\npublic List<\1> \2 { get { return _\2; } set { _\2 = value; } }\n#endregion \2\n\n


     } //eof method SettersAndGetters
    public static void ListAllDbObjects ()
     select s.name from sys.objects s where type = 'P' or type='UP'
      select s.name from sysobjects s where type = 'P' and s.name like '%gsp%'
     select s.name from sysobjects s where type = 'TR'
     select s.name from sysobjects s where type = 'U'
     --how-to list all system tables in a database
     select s.name from sysobjects s where type = 's'
     --how-to list all the views in a database
     select s.name from sysobjects s where type = 'v'
     Similarly you can find out other objects created by user, simple change type = 
     C = CHECK constraint 
     D = Default or DEFAULT constraint 
     F = FOREIGN KEY constraint 
     L = Log 
     FN = Scalar function 
     IF = In-lined table-function 
     P = Stored procedure 
     PK = PRIMARY KEY constraint (type is K) 
     RF = Replication filter stored procedure
     S = System table 
     TF = Table function 
     TR = Trigger 
     U = User table ( this is the one I discussed above in the example)
     UQ = UNIQUE constraint (type is K) 
     V = View 
     X = Extended stored procedure
    } //eof method 
    public static void GetProcedureMetaData ()
     string answer = @"
    select PARAMETER_NAME as 'COLUMN_NAME', DATA_TYPE , CHARACTER_MAXIMUM_LENGTH AS 'MAX_LENGTH', IS_RESULT , PARAMETER_MODE from INFORMATION_SCHEMA.PARAMETERS where SPECIFIC_NAME='Login_Check' Select * from INFORMATION_SCHEMA.Routines --returns stored procedures and functions exec sp_HelpText 'Login_Check' "; answer = string.Empty;
    } //eof method 
    public static void GetRowColumnValuesFromDs ()
     //(ds.Tables["TableName"].Rows[0]["ColumnName"] == DBNull.Value) ? false : (bool)ds.Tables["TableName"].Rows[0]["ColumnName"]; 
    } //eof method 
    public static void CopyMeAsTemplateMethod ()
    { } //eof method 
    public static void ReflectionExample ()
     //Type objectType = testObject.GetType();
     //ConstructorInfo[] info = objectType.GetConstructors();
     //MethodInfo[] methods = objectType.GetMethods();
     //// get all the constructors
     //foreach (ConstructorInfo cf in info)
     //  Console.WriteLine(cf);
     //// get all the methods
     //foreach (MethodInfo mf in methods)
     //  Console.WriteLine(mf);
    public static void shortcuts ()
     string _shortcuts =
    //how-to shortcuts Ctrl + Shift + F -- recursive find F3 -- find next occurence Ctrl + H -- find and replace Ctrl + M + M -- collapse method Ctrl + B --- set a break point CTRL + “-” and CTRL + SHIFT + “-” -- web browser like backward and forward in code Ctrl + Tab --- shift tabs Shift + F5 --- stop debugging Ctrl + I --- fast search F5 -- start debugging Tryf = try and finally block Prop = property with get and set accessor Switch = switch statement with default Alt + W , L -- close all windows Alt + W , 1 -- open the first window Alt + F , F , 1 -- open the latest file I closed Ctrl + F2 , Tab -- go to the methods dropdown , type a letter to get to the name of the method Alt + L --- select the Solution Explorer Ctrl + Shift + Z -- press 2 (needs arsclip (google download arsclip)) -- get the second latest entry from my clipboard ";
    } //eof shortcuts
    public static void redirectToCurrentUrl ()
     string _redirectToCurrentUrl =
    Response.Redirect ( System.IO.Path.GetFileName ( System.Web.HttpContext.Current.Request.Url.AbsolutePath ) , false ); "; } //eof method
    public static void formTypes ()
     string _formTypes =
    //how-to forms 1 - Empty Search Form , 2 - Filled Form , 3 - Empty New form ( new Margin Data , new Project ) //how-to formTypes //, 4 - filled search form from get by id procedure // 5 - FilledSearchForm (coming from params) "; } //eof formTypes
    public static void GetTheFileNameWithoutTheExtension ()
     System.IO.Path.GetFileNameWithoutExtension ( System.Web.HttpContext.Current.Request.Url.AbsolutePath ) );
    } //eof methoed 
    public static void GetThePhysicalRootPathNoExtension ()
     //how-to get the physical root path on the file system of the application 
     //Utils.Dbg.Debugger.WriteIf ( "My rootPath is " + rootPath );
    } //eof method 
    public static void AccessConfVariables ()
     //how-to access conf variables BL.Conf.Instance.Vars [ "varName" ] would give you "theVarName ;
    } //eof method 
    public static void GetRowColumnValue ()
     //how-to get row column value 
     //(ds.Tables["TableName"].Rows[0]["ColumnName"] == DBNull.Value ) ? false : (bool)ds.Tables["TableName"].Rows[0]["ColumnName"] ; 
    } //eof method 
    public static void GenerateExtendedPropertiesForATable ()
     //table column
     //find:^(.*) (.*)$
     //EXEC sys.sp_addextendedproperty @name=N'MS_Description', @value=N'title="\2",visible="1",fs="Basic Details",readonly="1"' , @level0type=N'SCHEMA',@level0name=N'dbo', @level1type=N'TABLE',@level1name=N'\1', @level2type=N'COLUMN',@level2name=N'\2'
    } //eof method 
    public static void RedirectToTheCurrentURL ()
     //how-to redirect to current url = users.aspx or projects.aspx 
     Response.Redirect( System.IO.Path.GetFileName ( System.Web.HttpContext.Current.Request.Url.AbsolutePath ) , false );
    } //eof method 
    public static void THEORY ()
     //EVENTS AND DELEGATES IN ASP.NET -- http://msdn.microsoft.com/en-us/library/17sde2xt.aspx
    } //eof method 
    public static void ReplaceDebugging ()
     /* find : replace 
    public static void UseStringBuilderInsteadOfString ()
     string s = "This ";
     s += "is ";
     s += "not ";
     s += "the ";
     s += "best ";
     s += "way.";
     StringBuilder sb = new StringBuilder ();
     sb.Append ( "This " );
     sb.Append ( "is " );
     sb.Append ( "much " );
     sb.Append ( "better. " );
    } //eof method
    #region SomeObject.Value = SomeValue ?? null; class SomeObject { public string Value { get; set; } } public static void DummyAssignValueIfNotNull ( string SomeValue ) { SomeObject SomeObject = new SomeObject (); if (SomeValue == null) SomeObject.Value = null; else SomeObject.Value = SomeValue; } public static void SmartyAssignValueIfNotNull ( string SomeValue ) { //Instead of this: SomeObject SomeObject = new SomeObject (); SomeObject.Value = SomeValue ?? null; } #endregion SomeObject.Value = SomeValue ?? null; //<source>http://stackoverflow.com/questions/28637/is-datetime-now-the-best-way-to-measure-a-functions-performance&lt;/source&gt; public static void MeasureMethodPerformance () { Stopwatch sw = new Stopwatch (); sw.Start (); // Do Work to measure sw.Stop (); string StrDebug = string.Format ( "Elapsed time: {0}", sw.Elapsed.TotalMilliseconds ); } //eof method
    public static void GenerateResxFileOutOfListing ()

    /* FIND: ^(.*)$ REPLACE: \n value\n comment \n\n


     } //eof method 
    } //eof class

    #region implement IEnumerable for a type public class ClassImplementingIEnumerable : IEnumerable { public IEnumerator GetEnumerator() { yield return "x"; yield return "y"; }

    // Explicit interface implementation for nongeneric interface
    IEnumerator IEnumerable.GetEnumerator ()
        return GetEnumerator(); // Just return the generic version

    } //eof class #endregion #region implement IEnumerable for a type

    } //eof names

+1 pretty handy actually w/Intellisense
Yep just make sure it does not go to the production build ; )

i use treepad. i create a tree that looks like this:

- 2009
-- 01
--- 2009-01-01
---- client/project 2009-01-01 a description of what was done
---- client/project 2009-01-01 a description of the 2nd thing
--- 2009-01-02
and so on

i don't think it matters much if you use a wiki or treepad or whatever as long as its searchable. i like to keep things organized by day. at the "day level" of the tree i record and overview of what i did. in the children of that node, i put the details (sql queries, sometimes code snippets, etc). the big thing imo is to make sure it is searchable. treepad has a relatively fast search capability that lets me find when i did what and for whom i did it.

i started doing things this way in 2005. before that i kept a paper diary of sorts. before that (pre 2000) i didn't keep track of anything. i have to say that starting my daily treepad diary is the single most productive thing that i've ever done. i use it religiously and the rewards have been many.


Don Dickinson

I am surprised that nobody has not mentioned yet Devtodo, which is great app.

Emacs's org mode is also great in note taking and organising.


i use my gmail to keep track of my important files ,so basically and send an eamil to myself with tags in the content so i can perform searching.



I use Zotero (Firefox extension) to keep web search, script, solutin, document. Also i use Trac to keep my tasks, checklist etc. And i use iPod.

And last one, my friend use iBob (i will explain it in our webpage www.javaloper.com)

+1  A: 

I use google sites to keep my notes and knowledge base.

This gives me web access, good integration with other google office tools, search, etc...

+1  A: 

My head usualy works well, but for the times it does not, I use a small note pad, right in front of the monitor.




A plain notebook...


I love Basecamp, we trialled it at work and never looked back. You've got to-dos, messages, writeboards, time tracking and some other stuff.

It's incredibly well-designed too, every part of the interface has been really thought out. It really does make our lives easier.


I keep my reference documents for problems I tackled in a private wiki. This gets round issues of confidentiality, as the code I write is not open source.

+1  A: 

Microsoft Onenote - excellent tool

It works on my PC and on my Windows Mobile phone.


For me it's always been easier and more practical to just use the old pen and notepad. I do that for notes and to backup small tasks that otherwise I'd probably forget.

+1  A: 

I used to use Basket Note Pads in KDE 3.5.x. However, after migrating to KDE 4.x, I am waiting for a KDE 4 version of it.

Currently, I rely on `physical' notebooks.

Alan Haggai Alavi

FireFox Scrapbook (to hold pieces of useful info found on the internet), FireFox X-Marks (for synchronized bookmarks between all computers), EverNote and ... MS OneNote which is very good

+1  A: 

I put everything in Evernote. Windows, Mac, iPhone & wev clients and it's all kept in sync. I even put PDF docs and PDF books in my Evernote notebooks, then I can access them anywhere.

Jeffrey Hines

I often use an online outliner/task management system, http://checkvist.com . It allows to share my notes with other people, simple, and really keyboard friendly.

I was looking for a tool like this some time before, and didn't find one which would meet my expectations regarding user experience.

So CheckVist was written.

+2  A: 

Postit Notes! Stickem to the monitor. Also NotePad and WordPad.


I coded my own php based wiki engine.



Truly, I've scrapped everything else I used to do. I love it and blogged about it here.


I've become a big fan of OneNote as well. Non-intrusive, easily searchable and convenient.

Mark Hoffman

anything important goes into google documents, accessible from anywhere. all the rest - drafts, too small/unimportant remains on notebooks that I keep losing monthly and starting a new one...

+1  A: 

I personally use two methods, one being what JBB stated (paper notebook). The second is www.ubernote.com, which I have been working as a part of for the last two years. Ubernote has been coming along very quickly recently and gives me just about everything I need. Users of Microsoft OneNote or EverNote will conceptually understand the application, just about any user of an email client will understand the interface. I know I am an Ubernote evangelical, but working there, I have become pretty passionate about it. Using Ubernote, I can write notes in an editor similar to this one, share them with other people (normally coworkers or my girlfriend), add comments, clip web pages using the Firefox toolbar or bookmarklet, tag, search, etc. I use it to clip a lot of reference material and then look it back up later. Saves me from having to do a Google search for every nugget of information that took 20 minutes to find and I need to remember again.

Even though I write note taking software, I still can't fully give up my paper notebooks, for the common instances of:

  1. I'm sick of sitting in front of the computer and my eyes are bugging out.
  2. Taking a step back from the problem and writing it out on paper makes the solution easier.
  3. I want to do some drawings.




Shane Tomlinson

I'm going to have to give another nod to Evernote. For now, it is the solution I use. Just a few reasons I find it useful as a developer:

  • The ability to create synchronized as well as local notebooks (to satisfy security concerns)
  • The builtin screenshot snipper tool is top notch, and it works well with a tablet. Hit print screen, jot some notes, and it's in your notebook.
  • Search is good. Can even search text within screenshots!
  • It can index and seach handwritten notes (uses MS Ink technology, I believe)
  • I can get to it from my Android phone easily
  • The tagging system is effective
  • It's convenient and can be called to duty with a simple hotkey combo

I have tried a few other tools, and a few GTD apps. This is the one I'm using for now, until something better rears it's head.

Hope this helps!

-- Sean

+2  A: 

Jedit + Explicit Folding + Outline Plug-in

I got a bunch of plain text files on a directory searchable using Jedit's hypersearch feature. The outline parser plug-in offers a dockable tree view of the explicit or indent folding structured text. Other useful plug-ins are SuperAbrevs (folding header templates), CandyFolds (folding visualization) and more. Easy data syncronization with rsync (its just plain text files). www.jedit.org



Forget to mention i complement the scheme above with one using timestamped index cards inspired in PoIC.Main Page - PoIChttp://pileofindexcards.org/wiki/index.php?title=Main_PageSnap-N-Store Index Storage Box Official Site SNS01573, SNS01577http://www.ideastreamproducts.com/SnS/indexbox.html
+2  A: 

I have 2 large physical notebooks.

One has "Reference" written on the front, and one has "Work" written on the front.

The Reference notebook I use for general study notes, or things I come across which I think it would be useful to remember in future (e.g. notes on JQuery or OO principles). I write a page number at the top of every page, and maintain a "Contents" list on the first page. If something comes into my head which I think it would be useful to learn about, I add it to a list on the back page, and then when I have some free time I pick an item from this list to read up and take notes on.

The Work notebook I use for more project-specific notes (e.g. brainstorming on a project design, or drawing up a task list). Again I number every page and maintain a contents list on the front page, although this contents list only includes references to important pages.

When I reach the end of a Reference / Work book, I start another one!

The best thing about this method is its simplicity, and its easier to mind-map / draw diagrams in a notebook than through your computer.


I use

  • Google Notebook
  • ATnotes
  • Text files (w/ NotePad++)
+1  A: 

I'll throw my two cents in: I use Notepad++ and text files. Anything heavier (word, wordpad, onenote, etc.) is really too much for me. I like a clean and unobstructed window into the notes i'm writing without 200 features begging "use me! use me!". Only downside is that they (usually) get scattered all over my system and sometimes get deleted. Gotta fix that...


I use an outliner application called Bansai from Natara Software. It's a super-simple editor that lets you enter notes in an outline format - I try to keep Bansai open in one monitor when coding, and jot notes on anything from functions I want to re-factor later to reasons I made some design decision. Bansai is not free, but fairly inexpensive.

Ed Schembor
+1  A: 

I have used several things that were not quite satisfactory, most recently Notepad++. I like how it opens lots of files left open. OneNote is captivating, and I have tried it, but it did not quite work.

I am looking forward to the released version of Win7 with its nice screen clip grabber and using that in conjunction with OneNote--that might just be the right thing for me.

Forgot to mention: a nice feature of OneNote is that you never need to save, it just does it for you.
+1  A: 

Notes in MS Outlook 2007.


I've just started using Bespin to keep note across the Web. it seems to have some promise, and in theory, you could create/host a wiki in bespin and access it from anywhere



Index searches, multiple notebooks, tagging, and available on almost every device imaginable (via native client or web browswer). Omnifocus for everything else.

It would be better to upvote / comment on this http://stackoverflow.com/questions/78756/what-do-you-use-to-keep-notes-as-a-developer/78835#78835 instead of adding duplicate entry...
+1  A: 

On Mac OS X, I've been extremely happy with Mori for years. Unix commands, install guides, general notes, robust built-in search. And you can feel safe trying it out, exports your data and.. never actually forces you to register. :)

Mori is a digital notebook that makes it easy to record and organize your thoughts. Unlike the alternatives, Mori doesn’t box you into one way of thinking. Imagine a notepad that grows and grows. No matter how big it gets, you can search it in an instant, as if it’s all written on the back of your hand. Notebook, project manager, research assistant, and more. In other words, Mori lets you decide how you want to keep your notes, references, tasks, clippings, and more.

Lately I've started exploring Scrivener, "The biggest software advance for writers since the word processor." I've found it more motivating to maintain good notes as the tool itself is designed prepares your work for publication.

Scrivener is a word processor and project management tool created specifically for writers of long texts such as novels and research papers. It won't try to tell you how to write - it just makes all the tools you have scattered around your desk available in one application.

Never be afraid to make mistakes. Scrivener's "snapshot" feature makes it easy to return to an earlier version of your text. Before starting a major edit on a document, just take a snapshot, which stores the old version safely away. You can then call up old snapshots for reference, or restore an older version of the text if you decide you prefer it to the most recent revision.

Matt Gardner
+1  A: 

I keep txt files for each day locally like '08-19-09.txt'.

I find it easier to just grep through them to find what I am looking for. Of course, projects etc. get their own files.


vimoutliner for hierarchial notes. vimdot for diagrams and graphs.

+1  A: 

Emacs Org Mode


+2  A: 

Omnifocus! Best task/list/item tracker i have used so far.

+2  A: 

i used doc.google.com ,it can have excel, doc files, and export them to be a office file. or you can just start a collaborative site, and post anything you like.

+1  A: 

Yup.Google notebook is the one you should use.If you want to store as documents use google docs.The recent acrobat from adobe looks quite sleek & glossy. However I haven;t explored it much.You can also use firefox addons such as evernote web clipper

+7  A: 

I've been programming for over 20 years and sadly I have had the same problem as the OP, until I discovered the LiveScribe pen this year.


It has totally changed my note-takeing life! It has 4 main benefits:

  1. It's a pen. At the end of the day it's a pen, so you can scribble/doodle/write notes, just as you always do...but...
  2. It's a RECORDING pen. When you dock the pen with your Mac/PC, it uploads what you've written and then OCRs it! And the OCR is remarkable. I have THE worst handwriting I've seen. Really, it's terrible, yet this thing nails it every time. Which leads me to...
  3. Your rantings are searchable. Because everything is OCRd, you can actually find what you scribbled a year ago. This means as you fill up more and more pads, you can always find what you want.
  4. (this is beautiful) You can tap 'record' and scribble a mark anywhere you want on a page, and start talking out loud (like a dictaphone). At any point in the future, you just tap your scribble on any page and the recording is played back instantly. All of the audio is uploaded to your Mac/PC upon docking the pen too. This is pure gold, and frankly is the killer feature for me. I can actually think out loud while I'm writing, or record a meeting and go back to what was said at any point. So incredibly useful.

I honestly can't recommend this enough. It's like GPS for me; once you've used it, you can never go back!

Ditto on that one!
It is pretty great, with the following two exceptions: the pen is a bit bulky, who wants to worry about battery life on their pen? Still, way better than anything else for meeting notes and quick diagrams / sketches.
+1  A: 

A sheet of paper....

Since there a lots of them I use college blocks. And I have a big stack of them in office.

+2  A: 

I have been using a tool called clockingIt www.clockingit.com it lets me create projects and then tasks inside the projects. tasks have different priorities, severities, a description and a trail of comments I leave every time I update the task.

I mainly use this tool to track my time, so when I am working on a task I clock in on that task and at the end of the month it generates my timesheet.

it is open source as well. It is a great replacement for post-it notes and also keeps track of my time!

+4  A: 

I use a paper notepad and either windows' notepad or linux' kjots. Additionally I keep notes in the source code I am working on (mostly the 'why' something was down).

As someone said before: "Make sure to write everyhting down.".

+1  A: 

I keep notes by project and projects by web site using a text editor. The text editor I use, kedit, allows me to link from these text documents to the source directly and it supports it's own set of snippets.
For snippets, I have a search page that I maintain on the local server. It helps both me and the other programmers.

+1  A: 

I use delicious to bookmark important/interesting stuff and use "to do" lists on google desktop to make that things get done.

+2  A: 

For notes and misc. code snippets:


I keep this portable app in a Live Sync (previously called FolderShare) folder, so it's always synced across home and work computers.

To-do lists and similar:

AbstractSpoon ToDoList

Also portable, I keep the .tdl files in that same Live Sync folder

+1  A: 

I use Nocs, which I actually wrote myself. It's a simple, Notepad-like app that uses Google Docs for storage. I use it for all kinds of TODOs and snippets. I like it because I can leave it open both at work and at home and my files are always in sync. All the files are stored as actual Google Docs documents, which means I can search and edit them both within the browser and in Nocs.

Very similar to Evernote though.

Mikko Junnila
+1  A: 

When all else fails, I use the 'journal' feature of Outlook

It's easy to add to and easy to find stuff using the timeline

adolf garlic
+1  A: 

I maintain a notebook to keep interesting code snippets,examples topic.....

Simply using pen and paper.

I'm sure this works, it's just that the searching is a bit limited or shall I say, sequential.
+3  A: 

Try google docs, for some existing code, you can copy and paste it in really quick. Plus it's online so you can reference it when your on the road or home.

+1 For "KISS":Keep it stupid simple.
+1  A: 

I use the Zoho Notebook www.zohonotebook.com

+1  A: 

What I do is take notes on a whiteboard/paper/whatever everyday.

At the end of the day I use jotnot to take an enhanced photo then save them to evernote.

Not perfect OCR searching with the paper(I have awful handwriting) but the whiteboards are pretty successful and I assume it will improve as evernote gets better.


diigo to bookmark interesting stuff. docs management using sharepoint(MOSS 2007).

Great service to annotate and organize articles

I send an email to myself on gmail.

And perform search on mail.

from:me has:attachment blah
+1  A: 

Solution: (USB Flash Drive and Notepad++)

Notepad++ is a text editor that highlights many of the popular languages. It's also portable. I can run it off my USB flash drive which is on my key chain so it's with me all the time. I can organize my files in whatever way I need to and I have access to it even when I'm not connected to the internet.

It's not as glamorous as some of these other solutions, but it's a free solution that works for me. The only thing con is the fact that you've got to have a USB port for this solution, so that means no iPod Touch access. But how many times am I actually going to be coding on my iPod Touch? And if I happen to think of something I need to add to my notes and I don't have a computer or laptop around I can email it to myself and save it on my flash drive later.

+1  A: 

I can't believe nobody uses Lotus Notes for this...

I'm stunned I tell you. Stunned. ;)

Matt Joslin


I keep my notes in a file in home directory called notes.txt. It's easy to update and search, I might start using markup that way I could translate it to web page when needed ...


I use PasteBin and it allows me to keep the notes online easily.