skysight-inc/HackerNews huggingface dataset:
There is a local company Assembla.com that has a basecamp like online project management service. it has Trac as one of the features. I am using it for our project, which includes a couple of developers in the Boston area and a couple in India.
Holding a program in one's head
Almost anything is better than C++!
EventKnower - Know the uknowable the instant it happens (feedback on my idea)
I came up this idea a few nights ago. I'm hoping you guys would be kind enough to offer me any kind of feedback you can think of. I'm still not sure how viable it is.

Here goes:

Problem: There are some things I'd like to know when they happen but can't easily get notified right now.

Examples:

*new Homestarrunner cartoon
*last season of 24 released on DVD
*Simpsons movie released on DVD
*Windows Vista released (old)
*Nintendo Wii launched (old)
*updates to small software projects

Maybe lots of people have things like this they would like to be notified about. Thus the idea is a website where you can request to be notified of something via a myriad of options e.g, RSS, email, sms, etc.

It could work like this. You get say 5 points when you sign up. Each event you sign up to be notified of costs you a point. If you correctly report when one of the other events on the site happened in a timely matter, you earn points.
Speaking of your idea, I recently had a more general version of the idea. Let me know if you're interested in discussing it, or if any other YC readers are. I went ahead and made it its own submission so more people might be kind enough to offer feedback:
http://news.ycombinator.com/item?id=45700
Nope. Entrepreneurship and ethics go together. Chances are you can make more than 35k working as consultant or some odd jobs rather than working for someone else. That could be your first step. There are lots of people who would love to know what you know. Put a simple web page and offer consulting services and go to Odesk, Craiglist. Soon you will have a better income and more time for your startup.
I agree, Its all about the bug list. Think of all the things that bother you or dont make sense in your every day routine and think about how it should be done ideally. The solution is the beginning of a startup.

Oh, and keep a running list.
I've used trac and mantis. Trac is kinda a pain to set up. Mantis is easy to set up, but very ugly.
I just ordered it on your advise. I sure hope you're right ;-)
You can't learn lisp with PCL. You can marvel and say ohhh Lisp can do that kind of stuff! But you can't really learn the language with a handful of pre-made examples.

To learning lisp I recommend: http://www.cse.buffalo.edu/pub/WWW/faculty/shapiro/Commonlis...

Notes: YOU HAVE TO DO ALL EXERCISES. Just reading the book teaches you very little.

After this, you can go and read On Lisp (the Uber-Programmer Lisp book) and understand it perfectly in the first read.
Sure, you can - its takes a little while but it is fairly easy.
You can stretch this line of thought to any though provoking book.
PG, you started a movement.
Oh god, here we go ...
In my experience, to normal people who are simply math students, but without any previous programming experience, C syntax is ugly and Lisp syntax is clean and beautiful.

Lisp is so much easier for them, that I think that your statements do not take into account familiarity and most people are just being too used to a particular syntax.

SICP is a hard book to read, however. There are much easier books to learn Lisp.
Would like to see popular results from the other questions, too.
I am going to read it for sure.
JupiterMedia's Alan Meckler: Suddenly Every Internet Company is For Sale
I've found that a ramification of holding the current program in my head is that I have a greater emotional bond with whatever problem I've most recently worked on.

If I work on several project concurrently, there's always one of them that I am more passionate about at any given time, causing me to think about it at nearly all hours of the day. Interestingly, the one I am more passionate about oscillates -- and is nearly always the project I have most recently worked on for a large chunk of time. Therefore, it is the one in which I am holding the most context in my head.
Their prices are quite reasonable too
many people try to pass the concept that "ideas are cheap". Yes, they don't worth anything without good execution. But, lets get serious. No matter how anyone want us to believe, good ideas are not cheap and giving birth to good ideas comes after struggle and effort.
> Sometimes when you return to a problem after a rest, you find your unconscious mind has left an answer waiting for you.

This happens to me on so may occasions in may different areas. While programming, if I have a problem I'll sleep on it, wake up, and see the problem in a whole new light.

Also, before writing an essay for class, I will read the prompt throughly. This way my brain starts form sentences without conscious thought.
> Oddly enough, scheduled distractions may be worse than unscheduled ones. If you know you have a meeting in an hour, you don't even start working on something hard.

God, how I wish more people understood this. It might seem like programmers overreact to even the most minor demands on their time---"What's the big deal? It's only a half-hour meeting!"---but a half-hour meeting can easily kill several hours of productivity.
What spawned this post was a lot of the email I get from Go BIG members talking about wanting to pursue their idea, but they don't want to take any risk to do it.

I used the job example as the most common issue that people tried to circumvent, but I think you can moonlight in some cases just fine.

There is risk and sacrifice in moonlighting, too. I think people have unrealistic expectations as to what starting a company means though.
Perils of Credentialism
http://www.jim-george.com/newTunes/
YouTubers Threaten Revolt! (Again)
> Thanks to Sam Altman, David Greenspan, Aaron Iba, Jessica Livingston, Robert Morris, Peter Norvig, Lisa Randall, Emmett Shear, Sergei Tsarev, and Stephen Wolfram for reading drafts of this.

PG, you got the Stephen Wolfram to read this? If so, perhaps you can have a conversation with him about making Mathematica open source :~)?
Lisa Randall the Harvard physicist read this too?
I totally agree, and oftentimes, I don't even need a whole night. Just now, in fact, I left my laptop frustrated, thinking, "Shoot, what the heck is going on with this bug?!". I went to the bathroom and "forgot" about my problem during my pee. Then, one minute later, walking back toward my laptop, I paged the problem back in, and realized my sub-conscious (I guess) had already solved the problem -- I knew exactly what was going on with the bug.

It startles me how often and well this works. It seems like cheating, too, because it feels like I'm not doing the work! :)
Mm.. Might as well just wait 'til we launch tomorrow. I'm at work right now so I don't have access to any, sorry. See you at 10!
Well, not everyone is convinced: http://news.ycombinator.com/item?id=44461
I've had the same experience with taking a bath. Just forgetting about the problem (weather it is a bath or pee) seems to help.
I think the more interesting question would be: What techniques do you use to develop a completely unique solution to a problem?

Most of what is being done today is incremental problem solving. What are some techniques that can be used to de-construct a problem so that you can get past previous experience bias and find new ways to solve it?

I guess what I'm asking is, what techniques do you guys use to get a view from "10,000 feet" above a problem rather than the biased view you get when immersed in the middle of it?
Nice (if I used iTunes, but the principle holds). It's also proof towards the idea that if you find something to be a problem, other people probably do too!
I think he missed the biggest differentiator between C++ and Lisp - it's fun to program in Lisp!
Awesome essay, Paul. You really nailed this whole phenomenon. It's the first time I've read all these things in one place and it is so very true in my experiences.

At my old company, one comment you'd always hear from team members with a new idea was "Hey, I thought of this in the shower this morning, and I think we should ..."
Huh...that actually would be really handy.

Problems:

-How would you deal with people who aren't 'in the know' enough to earn back points?

-How would you prevent them just creating a new account to get more points?

-Chicken and Egg Problem: It's not reasonable to hire enough people to pre-verify that a post is correct in saying 'Event XYZ has just occurred'. The best solution, to my mind, is to allow the receiver ('wants-to-know person') to verify. How do you prevent people from 'griefing' by repeatedly saying a major event has just occurred, thus SMS spamming a bunch of people who want to know, say, when Spore is released? You could wait for multiple people to say something just happened, but then you create a sort of latency, especially for less-heavily-watched items, and you totally blow the chance to get inside scoops.

-Define 'timely manner'. And do you get points even if you're not the first to say that an event has occurred?

Your idea would be viable in terms of income, though, I would think. Charge software companies to become members, and then create a few never-expiring general-purpose event types for 'exploit found', 'POC posted', 'Code Stolen', etc., while giving them, say, a 3-day advance before anybody else watching those things or similar ones gets notified.
Mantis. Not great, but good enough - for now. May replace it if our needs get more complex.
I used to write my research papers (in linguistics) this way, I'd make piles of useless notes, writing and rewriting sections of it while never having anything to show for it. Then when I understood all of it, I'd write the paper (say 10-45 pages) as fast as I could type, usually in a single sitting. I'd have to go back and edit it and such, but the bulk of the work was getting all of the problem and my solution to it into my head.

Interestingly, as I headed to grad school, this became more and more difficult as the problems became harder and harder. Eventually I had to devise a new system for writing papers (which I can't describe adequitely) because the problems and their solutions became to large to hold in my head at once.

To me, this is the interesting case, how do you solve problems that are too large to hold the solutions to in your head at once? The obvious answer is "break it into smaller pieces", but that is frequently very difficult to do. Probably the answer lies in "go back to the basics", and make sure that you have the foundations cold so that they aren't occupying stack space.
"Up until now, everything that I'd seen done in Lisp could easily be done in C++ too. The only real difference was a little more verbosity. But the unit-testing framework that was developed in that chapter..."

Interesting that a unit testing framework was the final straw. It's horrible not being able to use closures.
I think it's simply that no one thought of Jupiter as a potential acquirer till recently.
Don't go mistaking paradise for that home across the road!
One possible alternative organization pattern is the "band." Music, like software, are also ideas. As the band Genesis has proven, you simply cannot replace Phil Collins with Ray Wilson and expect to have a mega-band again. Ray's music with the band is nice, but the style definitely was markedly different from what most people think of as "Genesis." The same thing happened earlier in the band's history too, when Peter Gabriel left and Phil Collins replaced him as the front-man. Everything changed: the song writing, the style of play, everything. It took half a decade for people to get used to it.

Writing software is kind of the same way. Just look at the impossible made possible by demo coders on old-school 8-bit computers. These programs would never have been successfully coded in a commercial organization. But, -bands- of coders wrote them successfully. They promoted their software as bands, included self-written music, artwork, etc.

It would be interesting to see how a band-style organization would apply towards more practical software products. Software so produced would come in boxes with the band's logo, but more importantly, a _list of credits_, anecdotes about the software's creation, etc. That is, to make the delivery of the software more _human_.

Back in the day, when credits on software were more commonplace, it was possible to judge the quality of a product (to some extent) based on who was involved with it. Some people became reknowned coders, reknowned technical writers, etc. I think it gave two incentives: first, your name is going on the box of that package -- this gave prestige in the community post-sale; second, it allowed the customers to predict the overall feel of the software prior to actually purchasing it, based on their experiences with software written by the same or similar authors.

Literature is another example. People flock to this blog because of the name, Paul Graham, just as much as they do for the information contained therein. People buy books from famous authors because the authors are well known to produce good work. People often subscribe to magazines only to read one or two columns by well-known authors. So, in a very real sense, tacking your name on something is a seal of authenticity and a seal of quality all rolled into one. And, people like that.

I know I do.
I don't get it. I can't seem to find any reason why they wanted to rewrite it, and that's interesting in and of itself.

Given the language change of the past, and now a complete re-write, neither of which had any major impact on the end user, I'm wondering if we're not witnessing some sort of infatuation with coding for the sake of coding over there.

I can think of a myriad of reasons why one would want to re-write code, but they're certainly not sharing theirs.
If you have the foundations cold, then you can make a word for each foundational concept, and a syntax for each way the foundational concepts interact. Then you've started the kind of bottom-up programming pg describes.
Paul,
If the parts of a program define its succinctness then my hypothesis is that succinctness is efficacy not power. Imagine a useful machine with just one part to understand my chain of thought.

PS: IMO there is a difference in power and efficacy.
This article does a wonderful job explaing why moonlighting is a poor path for people to start new companies.

But we don't have to reason this one through - we just look out into the world and check.

All in all, it does look grim. Most of the successful software companies do seem to have taken a big plunge at some point. Consulting companies don't count, but consulting companies that have morphed into product companies might.

Can anyone think of a few successful companies that have started this way? Or, if not successful companies, personal applications that someone managed to sell for a lot of dough?

Joelonsoftware's fogbugz might be a good candidate, as well as the 37signals apps. I think that delicious was started as a personal project by an employee with a full-time job. None of these are the giant, smash successes you read about in the business section of the mainstream press, but they can be still be remarkably profitable quiet successes.
It's usually lack of garbage collection that gets to me the fastest. Closures are a close second, but those you can easily fake in nearly any language. In Java, anonymous classes usually do the job. In C with GNU extensions, you can use nested functions as callbacks, with the caveat that they'll only be available within the dynamic scope of the caller.
Excellent feedback points, thanks!

-How would you deal with people who aren't 'in the know' enough to earn back points?

Maybe there could also be a way to buy points? I'm not sure if that would be demotivating or not though. Alternativly I would think some of the tasks require nothing more than going to a website and determining if something has happened, e.g., new homestarrunner cartooon.

-How would you prevent them just creating a new account to get more points?

Maybe only allow one account per email address / sms address?

-Chicken and Egg Problem ...

How about this, if you correctly report when an event has happened you get X points (perhaps related to the number of people subscribed to the event) But if you get reported as inaccurate, you lose points.

-Define 'timely manner'. And do you get points even if you're not the first to say that an event has occurred?

How about we accept as many reports of as event happening as people submit. The first person gets the points, but if the first person is found to be inaccurate, then the second person gets them, and so on down the list?

-monetizing ideas:
I like your charging for delayed updates for bugs idea. Other options could be to sell points, or perhaps have a premium account that gets a short head start. Also product release notifications could make heavy use of affilite income.
The only part I slightly disagree with is number seven, "Don't have multiple people editing the same code". It is best to have clear ownership of the design of a component, and consultation before major changes. But if you design for readability (number five) editing and even radically redesigning someone else's code should be normal. I find I write the best code when I assume someone as smart as me but ignorant of the problem is going to have to rewrite this tomorrow. (And this is true, even if it is me.)

By Paul's account, the different components of ViaWeb were all written in different languages. That enforces vertical silos to a degree that I'm not sure would be healthy in many projects. Just yesterday I saved my colleague a lot of time by pointing out that he was basically recreating a library function I'd already done.

Projects that have clear vertical components, and one team member per component, do move really quickly and it's tempting to think that all projects should work like that. I'm not sure that is really true of all worthwhile projects. However, it might be true for startups.
http://acunote.com
Naturally :-)
I'd like to have this essay printed on bronze plaques and hand them out to everyone I ever have or will work with, or perhaps just to random people at the top of the escalator at the mall.
I thought they were revolting already.
Trac is very nice, as other have stated. It's kinda like SourceForge done right, in the sense that it has source browsing, a wiki for web pages, and a bug tracker with good notification capabilities. Last time I used it it was absolutely retarded about user accounts and saving settings (you had to carry around an MD5 "key", rather than being able to log in).

We're using FlySpray, because it drops into our CMS (Joomla) with relative ease, and we wanted customers to be able to file bugs. We also use it for support. It works pretty well, has all of the features we needed, and is a really nice clean and simple codebase, so customizations are relatively easy. It's also a low-dependency PHP project, so it'll drop onto any ol' hosting account with a database, and runs plenty fast.
Having a context for the problem or solution helps to solve this problem. I have used MindMaps for abstract things so that the context that you are working in can be quickly loaded back in your brain. For code, I have used the idea of clubbing together files related to a problem as a quick way to get the context back in your head. Take a look at Eclipse Mylyn at http://www.eclipse.org/mylyn/. It let's you save context i.e. files, resources etc. for the bug/feature/enhancement that you are working on. You can also save this context in your defect tracking system as attachment and share it with your co-workers. Invaluable.
If people submit events which other people vote up or down then "x has happened" simply becomes "x has 10 votes".
The poll link doesn't seem to be working anymore.
Interesting point. I noticed that lately, start-up names sound like band names: Infinity Box, I've got a Fang, etc.
Mantis is good, and it's fairly similar to Bugzilla (though better), so the transition should be pretty smooth. It was also a breeze to set up.
Presumably they made something interesting with nice design. The bar isn't that high--TechCrunch covers very early Web 2.0 startups. If you write to them, and your site is worth a crap and in an interesting space for them, they'll probably cover it. It does help to be in the Valley and actually run into a TC writer in person (they're all really nice folks, in my limited experience), but it's obviously not mandatory.
Ha! I've got a Fang is from a They Might Be Giants song.
I'm sure it all varies by degrees, situation by situation, but the idea isn't the point - ideas, as has been repeated ad nauseam, are everywhere. Recognizing opportunities (the factors that make a team predisposed to excel where others with the same idea would not) is much more valuable. A large (possibly larger?) part of the equation should (must?) be team-specific. From everything I've read, the idea will change in the YC process (as it should), the team could drop the original plan entirely and should still be strong enough to do something else better suited to their strengths.

It's hard to read "it's not the idea, it's the team" or "I don't invest in ideas, I invest in teams" and not want to prove someone wrong out of ego or passion/drive. It's difficult to appreciate the truth there without having realized it on your own, no matter how many times you hear that.
I agree, the idea may be insight to the creativity of the start-up, but it's the implemenation and execution that will make or break it. That's why (taken from app):

"your idea is important too, but mainly as evidence that you can have good ideas. Most successful startups change their idea substantially.

We're more likely to fund people we know are smart..."

It's the people that are smart, creative and determined that will do well (IMHO).

As has been said before, if you don't think you can win the race against someone else with the same idea, that's not very promising for you. You need more confidence (but not blindingly so), skill and determination to succeed.
Sun to Switch Nasdaq Ticker Symbol to JAVA
Brand problem much?
Facebook Really Does Make Money
So it's like the probability that x has happened? That's an interesting way to to do it.
"It's time to start taking over."

Y Combinator tends to fund companies that will be acquired, rather than become companies that displace existing huge corporations. Just a rule of thumb, of course, and there are a few that could run to IPO in three to five years if they don't get acquired (and a very few for whom that's actually the pretty firmly held goal).

Nonetheless, corporate America is a hundred+ years in the making. We're not going to take over with Web 2.0 features. You'd better start thinking bigger, much bigger, if that's your aspiration.
The idea of tacking your name onto software seems to be gaining ground lately. Until recently, every FaceBook page had "A Mark Zuckerberg production" on the bottom, though he didn't really share the credit with the rest of the team. I guess that makes him much more Roger Waters than Mike Portnoy. The nonprofit I spent much of college working on has a list of all the team members that make it happen (http://www.fictionalley.org/houseelves.html). And Xobni has full bios for everyone on the team (http://www.xobni.com/team).
Craig Newmark quits Craigslist?