Hacker News new | comments | show | ask | jobs | submit login
Program above and beyond your actual ability by using FreeMind (alexkrupp.typepad.com)
134 points by Alex3917 on Sept 27, 2012 | hide | past | web | favorite | 67 comments

Nice, great way to organize information.

I would add that Orgmode in Emacs is used by many in nearly the same way. Freemind and mindmappers in general are basically just visual outliners. For me, you get enough of the visual aspect with Orgmode (and OP's example doesn't even really use special visual aspects of a mindmapper) and the kicker is that Orgmode has features that make it more useful than Freemind. Two that come to mind are (1) orgmode search/agenda functionality allow searches that isolate a specific set of nodes in the agenda -- with each agenda node potentially from different part of document, or even spread among multiple files, and (2) in Emacs you're doing all of the editing in a first class editor.

Orgmode does have import and export capability for Freemind, check out the commands beginning 'org-freemind-'. To convert OP's python.mm file to org you can open it in Emacs and then run command <alt-x>org-freemind-to-orgmode .

I have installed FreeMind many times over the years, but I also fall back on org-mode and Dropbox. The quick mouse and arrow navigation and visual layout of FreeMind is appealing, but once you're invested in org-mode, it's hard to let go. I also use a lot of inline web links with descriptions, and that doesn't seem to be supported by the mind map tools.

That said, this post is a reminder that I should be tracking more documentation and code snippets in this way.

For those not willing to take the orgmode plunge, http://workflowy.com is a great alternative.

In case anyone else was frustrated by the content-free front page, here's a pretty good, if biased, treatment of Workflowy: http://www.slate.com/articles/technology/technology/2012/08/...

I use mind maps for mapping out venture ideas because once you are finished, it is very easy to visualize what areas of the idea still need to be planned/hashed out.

However, I never thought about using it for programming. I would like to complement you on that idea. After reading your article, I completely understand how powerful of a tool this can be.

One of the biggest reasons I haven't completely jumped on mindmaps is because I used Evernote extensively for organization. However, it does not do as well for this kind of application, especially where visualization is important. I currently sort all sites, services, and articles in a tag tree in Evernote. To integrate it with this system, I will probably add note links to the maps under the relevant nodes.

Interesting. I've had FreeMind installed on one of my systems for probably a year and never really got around to using it.

With regards to using it to improve programming performance, I think you say near the end of the article that this will not make someone a star overnight. And I agree. In fact, I'll say that this will not make you a 10x programmer, period. Not without the algorithmic foundation and experience that a 10x programmer (whatever that is) has to have.

I am not criticizing your article at all. I think you could be onto something here. I just want to point out that there's far more that goes into being a good programmer than being able to navigate documentation quickly. I think you allude to that in your article when you talk about the mind map exposing you to peripheral entries every time you use it.

I suppose a map could be used to log and accumulate knowledge on other areas equally important to programming. Algorithms and patterns is what comes to mind.

There was a recent HN discussion on data representation as an important element of writing good programs. I find this is a critical difference between a good (and experienced) programmer and a newbie or intermediate programmer. The experienced programmer is at a point where he/she almost intuitively understands which representations might offer an advantage. This sort of thing only comes with experience --writing a lot of code and learning from your mistakes. I'd be interested in your thoughts in how you might approach encoding such knowledge into a mind map.

I watch a lot of documentaries and presentations. Sometimes I wish I could capture the important points in some fashion in order to develop a database of knowledge, if you will, for future reference. In the past I've tried doing a text file for each documentary. You could keep them all nicely sorted and search the files for keywords. It really hasn't worked that well. I wonder if mind maps is what I've been looking for?

Finally, I wonder if mind maps is the best way to document and manage ideas? I can see that one might be able to find relationships and synergies by exploring a map. This is a case where I have consistently used text files to log ideas and related links, text, etc. I now have hundreds of these files. It's at the point where the directories that contain them are impossible to view and get a sense of what is there. This meaning that you can't see 300+ file names and easily understand and/or explore the concepts within them and relating them. Do you (or anyone reading this, of course) have any experience managing such information using mind maps?

About managing ideas and hundreds of text files: I've been doing something similar with a personal wiki (with WikidPad) for a few years. Prior to that I used text files but, like you mention, it was unmanageable.

My wiki has about 1,500 pages (a few MBs of text) and it's still very manageable. I use it for just about all notetaking purposes (you mention taking note about documentaries, it's one use case of mine; but the biggest is by far replacing bookmarks with free form text -- see link below).

The biggest advantage I see over text files is the graph structure you create by linking entries. I'll have a bunch of links at the top of each entry, and I'll add links whenever I feel it'll help me next time I try to find some piece of information.

About managing programming-related info: I have a bunch of code snippets in there too, along with more reference-like notes on concepts.

I've thought about using mind maps in the past, but I find it too limiting (I'd have to have a mind map + text notes in another system, and anyway I prefer something more text-y). But of course it's way better for visualization of the overall structure.

It's been a while, but a few years back I blogged about all this personal wikis idea (and wrote a post or two on using them for programming-related stuff), so if it may be useful: http://www.fsavard.com/flow/tag/wiki/

I keep a personal wiki too.

If anyone's interested, I wrote a (very small) vim plugin so that I can use an environment I'm already accustomed to. (It just automatically turns WikiWords into links)


It's probably got bugs.

Didn't know about WikidPad. I downloaded it and will be playing with it. Of course, MediaWiki and XAMPP (or a server) is an interesting possibility for other reasons.

I also came across this: http://tiddlywiki.com/

If you want your wiki to be public, or accessible from multiple computers, MediaWiki (along with dozens of other web-based wikis) is a good alternative, sure.

I like WikidPad because it's _fast_ in Edit mode (on-the-fly text formatting, like code highlighting), and it turns out to be a killer feature for me: without this speed I probably wouldn't be using it as much. With almost all other wikis I know, you need to switch back and forth between edit mode and preview mode, or they have a WYSIWYG editor mode (and I avoid that as much as possible -- just a programmer's obsession... I like to deal with the source).

I haven't used TiddlyWiki much, but I loved the concept when I first heard of it (self-modifying single file). It sure is a good way to get started fast.

I'm a heavy user of tiddlywiki. I originally liked the portability of it, but now it lives in my Dropbox folder which has been an awesome combination.

I have used mindmapping a lot lately. I usually create one overview mindmap for the overall structure of more complicated topics and submindmaps for interesting subbranches.

I'm still looking for the ideal process of capturing what I know about a certain topic. Programming is very different from other topics from my experience because you usually want to include syntax or some short examples and so forth.

I think it may be better to use a wiki or something for programming but would love to hear how other people structure their stuff.

Mindmaps works really well for non-fiction books and lectures. I use them as review and overview tools and love it.

FWIW, I prefer doing it on paper because I feel like I'm a ton less creative when using computer tools.

Oh and if someone knows of any online courses a la "learn to draw icons for mindmaps" I'd love to hear about it. My drawing skills are mediocre to say the least and it's something I'd love to work on.

It's not online, but I've been told "The Back of the Napkin: : Solving Problems and Selling Ideas with Pictures" is a good book for that kind of thing.


I've been using something similar called XMind for a few years. It's a lot more visually appealing to me, and the customizable relationships are a big plus. The first month I had it, a huge backlog of ideas were freed as I made dozens of maps covering all kinds of ideas I had been having difficulty articulating up to that point. It helped me plot out goals and track my progress through school, helping me to graduate early and wind up doing something I love.

For me, the most useful aspect is how I can express a thought in a very thorough manner, and form several related thoughts I've had into a unified structure.

It's great to hear success stories using these methods. Do you think you could post example mindmaps (with personal information removed) that showcased how you used them to achieve those goals?

Finally, I wonder if mind maps is the best way to document and manage ideas? I can see that one might be able to find relationships and synergies by exploring a map. This is a case where I have consistently used text files to log ideas and related links, text, etc. I now have hundreds of these files. It's at the point where the directories that contain them are impossible to view and get a sense of what is there. This meaning that you can't see 300+ file names and easily understand and/or explore the concepts within them and relating them. Do you (or anyone reading this, of course) have any experience managing such information using mind maps?

I used to log ideas and interesting texts, too, but I don't have hundred of them despite working two months on them. I have about 25 sections. This is because of my focus on rewriting them over and over again in the intention of developing them into essays or projects. They are at: http://kibabase.com/articles/notes-and-thoughts

Thanks for sharing this. I can relate with the idea of rewriting over and over again. I dislike how blogs make the idea of editing content once it's posted feel "dirty" since posts are supposed to be temporal. I'm working on something that solves this problem for me: http://converspace.github.com/ConverspaceSpec/

I feel similar about the omnipresent blog format: why should everything be final once posted, and everything have to be temporally organized? Old-fashioned "websites" felt better when you don't update often, and you post about more timeless topics.

But for the reader there's a definite advantage: you know exactly what has changed, and whether a site is updated regularly. I have a small blog, and on some entries I maintain changelogs manually. I suppose the best would be for Wordpress and the like to offer the ability to link to cleanly-formatted diffs (ala revisions in google docs).

(and just a heads up: I think your link should point to http://converspace.github.com/specification/... your link gives me a 404)

You link 404's. Did you mean https://github.com/converspace/specification? Looks interesting.

There's a Freemind fork called Freeplane ( http://freeplane.sourceforge.net ) that has some additional features.

There's also non-opensource xmind ( http://www.xmind.net/ ) that's much faster than Freemind/Freeplane.

Wow. Where has Freeplane been my whole life?

I have been using freeplane for 3 years now to map out software projects. The visuals you can produce really help others understand complex software systems. I selected freeplane over freemind and vym after those two out and finding them lacking features.

Thank you for vym. I had tried it a long time back (4 years or more) and forgotten. Just created a mind map of my current project.

This all sounds very exciting. I've tried out mind mapping software in the past for various things, and it has always seemed nifty, but I never really stuck with it. Maybe the qualitative difference in experience the author talks about will actually show up, in which case I certainly hope to stick with it.

It's worth taking some time to learn how to use FreeMind with just the keyboard, and to learn how to do a mind map (see [1] for an overview). It can be used exclusively from the keyboard, so you can get pretty quick with it.

I've not used FreeMind for (personal) documentation, but I've used it as a specification tool, where I think mind-maps excel as they get you to focus on all the component parts of the project - and drill down to the finest level you can.

This use seems similar to using tiddlywiki[2].

[1] http://www.thinkbuzan.com/uk/articles/view/how-to-create-a-m... [2] http://tiddlywiki.com/

"I've tried out mind mapping software in the past for various things, and it has always seemed nifty, but I never really stuck with it."

I'd definitely recommend FreeMind, because as I alluded to in the article basically all other mind mapping software is designed for creating presentations and pretty graphics rather than for organizing and condensing enormous amounts of information. So if you've been using other software then there would be no way for you to get the full experience. (It's free open source software that's licensed under GPL, and it runs pretty well even on 5+ year old computers.)

Anyway it took me a few years to really learn how to use it properly. I think this is partly because there haven't really been many good examples of people actually using it well online. Most of the examples are just people using it the same way they would use other mind mapping software. So that's why between the python.mm file, and also the video, hopefully that shows two really substantive for the software and then people can kind of learn the best practices for themselves through osmosis.

I should mention also that the python.mm file includes the documentation for not just Python, but also for Jinja and Less:


I would have included my sections on JavaScript and HTML/CSS, but unfortunately they mostly come from various published books so I didn't think the publishing companies would be thrilled with that.

I started using mindmaps (freemind) to organize complexity and to have "cheat sheets" to new technologies (rather than googling again and again). By itself this was worth the effort of constructing the mindmaps, the big payoff came when I started sharing them with the team. Give it a shot, nowdays I pretty much take all my notes in some sort of mindmap.

I've been a big FreeMind fan for years. Durring my wife's first year of law school, I persuaded her to try using it for one of her classes. She proceeded to quickly adopt it for all of her classes. Having a mindmap of an area of the law at 30,000 feet, and then be able to zoom all the way down to the minutia was very valuable.

Her peers started adopting it themselves after seeing her "outlines" in study groups. Great tool!

It seems my ability to memorize has gone down drastically since high school (or probably elementary). I've messed around with freemind and orgmode and use them to track some things, but keep going back to marked up notes (I'll eventually convert to a cheatsheet if I use it enough) or books for programming. I'll highlight things that I don't remember.

I personally don't have the gumption to memorize api's to all the different modules in Python that may or may not be PEP 8 compliant. I don't want to waste storage on how to set up ssh-keys when I do it once every X years. But I know exactly in my book where it is documented and highlighted when I need it. I can fall back to google if needed.

As a visually learner, I know where in my physical books this stuff is located. Which is a drawback to ebooks as they re-flow there location of data on a page isn't consistent... I'm digressing now.

Does anyone know of Doxygen <-> mind mapping tools that work well?

I'm a big fan of Doxygen for having the documentation live within the code, but I find it lacking for drawing the graphical connections between things.

I've been looking at embedding UML using plantuml, but I figure there has to be a better answer out there.

FreePlane is a fork of FreeMind and seems to have a much more active developer base, and IMHO is a better product: http://sourceforge.net/projects/freeplane/

Can you expand on why it's better? Consider I haven't used either, why would I choose one over the other?

Good article. Your practices are so similar to my recent approach to learning and organizing knowledge that it's scary ;) The only difference are the actual tools which I think is non-essential.

So, when I'm faced with some bit of knowledge/howto/troubleshooting that I encounter for the first time (at least from memory), I do the following:

* Launch Zim desktop wiki (http://zim-wiki.org/) opened with my Dropbox synchronized notes

* Add a new page with some descriptive but not overly long title (using the same principles as for the title line for the version control commit messages)

  * For example: "Python command line arguments"
* Write the tags for this particular bit of knowledge. This may sound repetitive but the number of tags needed (at least in my frame of mind) are usually 2 to 5.

  * @howto @python
* The actual content is written by myself, no copy and paste allowed. In this way I'm the one re-wording/restating the knowledge, so that the search queries afterwards will result in almost 'perfect' matches:


The command line arguments are accessed using the list sys.argv:

import sys

# Prints the name of the script

print sys.argv[0]

# Prints all remaining command line arguments

print sys.argv[1:]


When searching:

* Open the search dialog (CTRL+F), and enter my search string, for instance: "command line arguments"

Recently I've started using Anki for adding similar bite-sized facts about Perl, bash, grep, sed, awk, etc. because in the past year or so I was gradually 'forced' to become programming polyglot (I'm not there yet, though). I was frustrated for the very same reasons described by the OP's article: forgetting the little details when occasionally have to come up with a little script or modify an existing one in a non-primary programming language.

Generally, I use Zim wiki for facts/articles that are not that small that will be better as a flash card question/answer.

I really think that memorization of the foundations and core of a programming language you expect to need, even infrequently, is the key to levelling up as a hacker.

Mind maps and/or spaced repetition techniques should both help tremendously as learning tools for that effort. Restricting what you "have to know" when faced with the need to know multiple programming languages feels like an important part of being successful.

I speculate there is a strong levelling up effect associated with immersive learning experiences, particularly with languages and idiomatic usage.

We are working in this space. http://www.codesonic.com/ Our spaced repetition framework is designed just for hackers. I've personally seen my coding skills go through the roof while using it in beta. The time saved just by knowing stuff rather than looking things up is an incredible boost to productivity and problem solving.

YES. I'm not sure how codesonic compares w/ Skritter (a spectacular Chinese/Japanese language spaced repetition learning system), but if it's is anywhere close in quality, it could easily become the fastest and most efficient method for learning programming. Best of luck to your team.

Site seems to be down, but I'm really interested. Ping me for a follow up, I'm a researcher who has done a lot of work on this area... quesada at gmail

this is exactly what I am thinking these days :)

I signed up, feel free to hit me up and tell me more about what you are doing. zeljko at gmail

Interesting. What languages do you support?

I guess the memorization is why some people recommend code katas - the purpose being to learn the techniques and not the solution.

[1] http://www.butunclebob.com/ArticleS.UncleBob.TheBowlingGameK...

Seems like cool software (if you're not cool enough to use emacs org-mode). I can see how this would help a novice programmer get to the next level but I keep these things in my head at this point. Once you learn enough about the API of a given technology, looking it up the old fashioned way takes about 10 seconds anyway and more importantly I don't need to take time away from programming to build the mind-map. The claim: "if you're already a 10x developer it will basically turn you into a god" seems pretty unreasonable to me.

A mind map can be a good way of getting a grip on legacy code (using the same flow as the article but to document legacy code and not a programming language). Freemind is excellent for this but I often just use a folding text editor. The main thing about either is that you can go from 10000ft to ground level and back up quickly which is what understanding a codebase is all about.

Something that I've used for this is Fitnesse. It is a wiki that allows you to document the legacy code and a test bench to execute tests against the code.

I've used FreeMind for years for programming, for writing, for planning. It's a great tool (as are many mind-mapping products) for design and for building up information in an organized way.

However, the model has limitations not mentioned here. The primary on is that it is an inherently hierarchical way of categorizing data. It's not possible to put the same entry under two different branches or to create a link between them (at least not in the products I've seen).

Ironically, in the video the OP admires that you can "link" population trends and literacy by having them in the same mind map. But the only link is the human one creating by manually clicking on the different branches where the info is stored. There is no actual linkage between the items.

That being said, hierarchical is in many ways an excellent system for lots of purposes, including some software design, and definitely in laying out articles and documents.

FreeMind (and I'd guess Freeplane) supports symlinks [1], [2] between nodes, so you can break the hierarchy somewhat.

http://freemind.sourceforge.net/wiki/index.php/Arrow_link http://blog.mindleaders.com/wp-content/uploads/2012/08/Freem...

Everytime I see a mind mapping application it always reminds me of the old days were people used to flowchart out programs before coding them.

With that in mind anybody rushing to download the first mind mapping bit of software they come across need to learn a bit more planning, even if it is to verify there choice is best for them or not. Though if your a python programmer then the article does make that choice a little easier to dip into the pool.

I will add that when it comes to coding if you can get your head around the mentality of the coder then reading it becomes alot easier, this is why people can read and work with there own code alot easier than others. This is were standards help alot and take alot of the issues of programing out of your hands, mostly for your own good even if you dont appreciate why at the time.

Browser based vizualization is better: http://mbostock.github.com/d3/talk/20111018/tree.html It's easier to share and you can quite fast create cool tools based on some API's.

I envision this being a magnificent study tool for the following reasons:

a) People tend to learn better by writing/typing things out. b) Figuring out how the topics will be organized will exercise your understanding of the material. c) In addition to the flash card characteristics that you mentioned, there will be rote memorization benefits as every time you look up a specific topic you have related topics present in the peripheral and the association between various capabilities will become innately engrained.

I've read pop science articles saying that memory is hierarchical, topic based and associative at the neuron level. Which kind of resembles a tree, like this.

Can't live like that. Gotta be console. Why not have something like command-T in TextMate or bash completion that finds what you are looking for. I find that it's worth getting familiar with how to quickly search the api docks. I have a poor memory for many things I consider unimportant, but I have a keen memory of just about where I used what in my code, so I can quickly find what I need by going to the right line in old projects.

Fantastic post - thanks for this!

Any thoughts on how to potentially apply these ideas to writing actual code?

For instance: imagine if there was an IDE for python that had the 'look & feel' of FreeMaps. Then, perhaps, you would effectively gain many of the same benefits applied directly to writing the program (ie: very dense; being able to see forest and the trees).

I apply this approach and it has been a huge help, especially since I have been moving from Windows to Linux and there are many useful commands to stash away.

About six months ago I moved from Free Mind to workflowy.com and never looked back (incidentally, I believe workflowy is a ycombinator company).

Does anyone know of a program like this runs on a hotkey that I could call up while still looking at another program. I don't like the idea of leaving what i'm doing to explore my mind map. I just want it there to call up, without a whole separate app to context-switch into.

I've skimmed through several screenshots and videos on mindmapping over the years and still don't get it. To me it seems little more than a glorified tree structure. What would this buy me over, say, a wiki or (my favorite) a plain text file in Markdown/reStructuredText?

I have tried both the Wiki and am now trying the mindmap method. For me, mindmaps are much easier to visualize where content is and where content isn't. Also, traversal is much less cumbersome. These two factors make a huge difference in the overall usability experience of each. With a Wiki, it isn't as intuitive which "areas" need to be filled in.

I learned about mindmaps after reading one of Tony Buzan's book on the subject many years ago. I find it very effective on paper, but in software mindmapping utils, it is, as you say, often not more than a glorified tree structure. I'd highly recommend to give it a try on paper though, it's an excellent technique imho.

The problem these things have for me is managing the hierarchy. My entry for "NSMutableArray", does that sit under "Data Structures", or "Objective-C" or "Cocoa"? I can see that I'd want to make my way to it from all three trains of thought.

I could see the value if projects actually adopted mind-maps as first-class documentation (auto-generated and whatnot).

As it is, I dread the idea of re-mapping entire chunks of documentation on my own. I have better things to do with my time.

I like to use something called Codebox instead. It's just a quick note taking and search tool that's geared towards programming: http://www.shpakovski.com/codebox/

Freemind rocks.

Mapping complex concepts in a similar way as I store them on my brain is a big productivity buster for an old brain. Being able to share these maps with other is a super productivity booster for the whole team.

The most useful context to use FreeMind, in my experience, is when planning a project. After weeks of discussions and meetings and specifications, it's difficult to remember all the details, nuances, and dependencies that simply need to get addressed before project completion. It's simply not professional to "forget" to address a legitimate, solvable issue raised offhand in a meeting 4 months ago. It's fine if the issue isn't solved, but at least it remains in the hopper and it is known.

Simple example:

  - Features I'm excited to work on   
  -- the new customer lookup workflow  
  -- the Google mapping API

  - Features Customer has requested   
  -- bulk download and emailing of electrical schematics documents  
  -- text ripping of PDF invoice documents
Here's the kind of discussion that would ensue as a result of the above 6 nodes: - How come only invoices need to have their text ripped? It's no more or less trouble to rip text from 1000 documents vs 1000000 documents. Wouldn't it be a nice feature to impress the customer with fulltext fuzzy search of all their marketing and technical documents as well? I remember that conversation - one of the engineering people asked me whether this was possible a few months back. Hmm, this sounds like a document management system. I'm trying to reinvent the wheel. This must have already been solved.


As a result of asking "why X for foo here, and not X for bar there", it's easy to be comprehensive and thorough. That is the secret sauce of FreeMind. If you organize the tasks and ideas sensibly, you can apply simple questions to analyze them and generate valuable ideas and ensure nothing is missing.

The second bit of secret sauce is: I have a deadline for end of week to demonstrate text ripping features of the accounting documents. But but but - the back of my mind is screaming - but that Google mapping API is really interesting and I bet I could get it done in less than ten minutes. How cool would be to map all their customer invoices on a map of the earth? And it would be really nice to research an open source document management system. And, and, it would be kind of neat to see if that system had a "bulk upload/download" feature - I mean, that sounds sensible enough?

All those questions/concerns/thoughts are unfocused, de-prioritized noise. I'm not getting anything accomplished and I'm in danger of getting even less accomplished if I follow any of those thoughts.

To combat this in FreeMind, I simply create another toplevel node called "Today's focus", drag the priorities into it from the other nodes, and then fold all the other nodes so that I don't become distracted.

... this, as evidenced by this sprawling post, still requires discipline to work. :)

I can understand that using freemind is an easy way to find functions & syntax of a new language, and as a lot of users notice it's great to make manage information or make notes but..

Using freemind is the solution to the problem "can't product quality code in a language you don't know 100%"?!

You write quality code by knowing programming concepts, how to structure your code etc. once you know which programming concepts a language you don't know uses, you can look up the syntax of the language & program quality code with the concepts you already know.

It sounds like what you want is really good, searchable documentation for everything. I use dochub.io - it's pretty awesome.

On a related note, what is your experience with mind mapping and outliners on Android?

I was using FreeMind until it became Mindjet.

Does FreeMind have good text search?

Unfortunately no, that's probably the biggest downside in my opinion. There is a search function but it only does a good job at turning up the first match in the entire map or subsection that you're searching in. Meaning that if you really want to find one out of ten different places where one thing was mentioned, you pretty much have to open up the .mm file in a text editor and then find it that way. (And then go back into FreeMind, and search using some specific phrase that only shows up in the node you're looking for.)

Fortunately because the whole point is to make it easy to find stuff without search it is only rarely an issue, but it is really annoying when you need it.

you should probably press ctrl-g the next time you press ctrl-f to search for something in Freemind, to see what happens.

The search is better than I thought, as it will treat whitespace in between terms as the equivalent of ".*" in grep/vim search.

So ctrl-f "C++ class" will return the first match if it is "C++ will resume after class", and ctrl-g will find the next deepest match. My only problem with Freemind is that it's java based, so it takes 10 seconds to start up and it craps out with too many nodes. This makes it irritating to take notes after you reach a certain point. I don't like xmind at all either.

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