skysight-inc/HackerNews huggingface dataset:
I'm feeling kinda dumb here, but what are x urls?
If you're a fluent Pythonista then I say just dive right in. You could spend a month learning syntax and STL stuff, but a good programmer can pick up a language as they go. See something you don't get? Google-it. You'll be banging out code in no time.

Oh, and a Safari account will go a long way to help you quickly find relevant GOOD material (not just script-kiddie posts).
I knew I was smarter for picking up drums instead of guitar.
Great point. This has always stuck out as an incredible demonstration of the failure of online tech journalism. I'm surprised that more have not written about this.
If we're sacrificing equal competitive access just to "constrain growth as much as possible", maybe we could block certain browsers, too?

IE users aren't smart enough to change their defaults; Safari users are mindless Apple fanboys; Opera users are weird and talk with funny accents. Smart hackers will take the trouble to launch FF to access News.YC.

Anything to preserve the quality of content here!
VCs appear to be just like the rest of us: risk averse and with a fear of failure. I bet they put on their pants one leg at a time, too. Thanks for the wake-up call.
"peers", exactly. The same effect occurs locally too (friends, neighbours, colleagues, people you went to school with, etc...) and not just with money, but all indicators of status.

There's an interesting book by Alain de Botton called Status Anxiety that basically argues how increased opportunity can increase anxiety (which is roughly the inverse of happiness).
A lot of it will probably happen virally. Somebody will put up a "Web 2.0" intranet app inside the company that uses the corporate database for some small job. Then the change requests will come flooding in...
Let's play Googolopoly!
What about Salesforce.com?
Incorrect. He discovered that other bloggers have been providing a false view of startup landscape.
I'm piling on: this is (some of) the worst possible advice for learning C++.

It may take a little bit longer to learn how to use the STL container classes, but the time is well-spent, and you can't make a legitimate claim of "knowing" C++ until you're comfortable with them. They're part of the language!

Bjarne Stroustrup wrote a good paper on learning C++ as its own language. I highly recommend it:

http://www.research.att.com/~bs/new_learning.pdf
Free Analytics Suite Coming From Yahoo!
10,000 Cents Buys You $100: Awesome Crowdsourced Art Project
Is there a reason for any "/x?" URLs to be indexed?

If not, a simple robots.txt would fix the crawler-traffic problem without prejudicially banning any upstart search engines:

User-Agent: *
Disallow: /x?
cool- good to know ;)

I'm in Chicago doing integration with some of the brightest minds I've met recently- my compliments to you guys for being able to get and retain those people, even in the often crushing world we're working in over here.

Doing software at a non-software company certainly has been a humbling experience. The spindown toward mediocrity has certainly been a valuable lesson in how (not to) manage that I'll always keep in mind.
Thanks for taking the notes - I enjoyed reading them.
It might sound like a cop-out, but the official tutorial. It's short, it's clear, and it covers more ground than it seems to.

I'm a big fan of Dive Into Python too, but I'd recommend that for developing good python techniques, rather than getting quickly up to speed.
Regional jets are not exactly news. In fact, they're a major contributor to the runway capacity issues that are causing record delays:

http://www.salon.com/tech/col/smith/2007/11/16/askthepilot25...

OTOH: Air taxi services (e.g. DayJet) are actually really disruptive business models:

http://en.wikipedia.org/wiki/DayJet
It would be both counterproductive and a premature optimization to learn C++ by first learning the STL containers. The only container that the C++ newcomer needs to learn is the dynamically allocated array. The statement "vector and map are pretty simple" just isn't true. STL and Boost have a lot of subtleties:

1) It is important to write STL code in the correct style. STL containers should be typedef'd before they are used and an iterator shouldn't be used directly to access an item (otherwise debugging becomes more difficult and your code becomes harder to read). For example,

typedef std::list< Puppy > PuppyContainer;

PuppyContainer puppies;
for( PuppyContainer::iterator it = puppies.begin(); it != puppies.end(); ++it )
{
Puppy* puppy = *it;
// do something with your puppy
}

... rather than ...

std::list< Puppy > PuppyContainer;
for( std::list< Puppy >::iterator it = puppies.begin(); it != puppies.end(); ++it )
{
// do something with *it
}

2) STL frequently allocates memory. Those allocations are also hidden from you, so it is easy to misunderstand the true cost of frequently using STL containers. Even a simple operation like acquiring an iterator can cause an allocation.

I work at a game company. In their game's code base, the pervasiveness of STL has been attributed to millions of micro-allocations every frame of their game. (A micro-allocation is an allocation of under 128 bytes.) The result is hopelessly fragmented memory, which means that:

- A relatively small 10MB allocation can cause a crash even when there is clearly more than 10MB free memory.

- A lot of code runs slowly because almost none of the code can take advantage of the CPU cache.

3) Using STL can add code complexity and make your code harder to read. Which of these is easier for a newcomer to understand?

for( size_t i = 0; i < _numPuppies; ++i )
if( _puppies[ i ].ID() == finding )
{
/* do something with that puppy */
break;
}

... or ...

PuppyContainer::iterator it = _puppies.find( finding );
if( it != _puppies.end() )
{
Puppy* puppy = it->second;
/* do something with that puppy */
}

The second example isn't intuitively easy to write unless you're already familiar with std::map.

Check out my Radix Sort example. I could have used a couple std::vectors, but the result is equivalent and simple: http://dl.getdropbox.com/u/315/programming/exaples/radix_sor...

4) It takes a lot of time to learn every facet of the C++ language. And the more you learn, the more other people can't read what you write because of your advanced knowledge. (Try understanding boost/bind.hpp.)

5) Most importantly, most design problems are architectural and not structural. As long as your code works and is reasonably clean and well-commented, it is good and safe code. It is more important to master a subset of C++ than to have a working knowledge of the entire language.
eBay, IAC, AOL/TW, RealNetworks, SalesForce.com, NetFlix, eTrade
China Now World's Top Polluter
You must be new here.

The day PG & Co adopt some piece of software that is made in Java... well, I can't even finish the sentence.
Random anecdotal support: Richard Feynmann was an accomplished drummer, capable of exotic polyrhythms. He didn't seem to think his skill at drumming had much relevance to his skill at science, however:

http://chemeng.iisc.ernet.in/alumni/rpf.html

In light of this article, he may well have been wrong. :)
Can't you robots.txt'd the "x" URLs?
How do you get to downvote comments or articles?
This quote probably summarizes why a lot of people are switching:

Said another: "I have been a true PC stalwart for 2+ decades, but after trying Vista, I’m ready for a change."

Vista drove me to try Linux and I doubt I'm going back any time soon.
At current fuel prices, regional jets cannot be profitably operated at $40/seat. The spate of recent airline bankruptcies and mergers is partially fall-out from that fact. Virtually all air travel is less fuel-efficient per passenger than a 4-passenger car would be.

Barring astounding developments in technology or major fuel price drops, regional jets are not the future of commercial air travel. We'd do better figuring out how to get good coverage using a smaller number of superjumbo jets.
It sounds like a great story. At least it gives me hope for the future.
I don't think you can become a proficient C++ coder in one month unless you're really, really smart and unusual. Maybe not even then.

Although, it depends on what you mean by "Hack basic apps", doesn't it?

If you're working on existing apps then you'll need to know the same subset of the language that the original programmers knew. If you're going to write apps from scratch you might do very well by starting only with the Symbian programmers documentation, if it's good. Beyond that, just learn C and use C++ as a "Better C".

If you can avoid using classes and templates you can start quicker.
Actually, I disagree quite strongly with this. Start writing applications using STL and boost immediately (or in your case, the STL plus the Symbian APIs).

Both libraries have enough quirks that it takes a significant
amount of time and experience to use them correctly. For
example, you don't need the std::vector or std::list
containers. Simply allocate a sufficiently large array to hold
your items, then allocate a larger array when the first one
fills up.

This is how we ended up with so much crappy C++ code in the 90s.

sigh. Yes, you do need std::vector and std::list. Those are the very first two data structures you should learn. If you're using int[] instead of std::vector<int>, there'd better be a good reason. Similarly if you're using char * instead of std::string. Learn to use iterators, and learn to use <algorithm>. Don't be afraid of streams, either. I think doing it any other way is just wasting time and making it harder to actually become proficient in C++, rather than just using the C++ compiler to give you C with a tiny bit of syntactic sugar.

IMHO, it's much better to learn the ins and outs of STL as you use it, not by putting off using it until you master it all (what kind of logic is that, anyway?). I.e., it's way better to start off using a std::vector exactly as you would an array and learn it as you go than to put off using std::vector entirely until you understand the default allocator and operator overloading.
Just a little tip: you don't need to explicitly thank everyone who responds to your question. News.YCers aren't very tolerant of comments that don't add anything to the discussion, that's why you're getting downvoted. Your thanks are implied.
What STL implementation are you using that's making so many tiny allocations? Could you give some more detail about what operations trigger the allocating? Admittedly, I haven't tried writing a game engine in C++ yet, but I do write a lot of plot rendering code, and I try to keep my rendering loops "read only," so if STL containers are used, only const member functions are called. Retrieving a member from a vector for example, shouldn't involve any allocations on the heap.

Unless you're counting stack too. I could see STL implementations combined with a compiler poor at inlining resulting in a lot of extra call depth.

Edit: Also, if the original poster is mostly using C++ due to the platform (I don't know what Symbian supports) it's unlikely he has the same sort of performance requirements you do. Most applications don't need to worry about 128-byte allocations.
>"Good composers borrow. Great composers steal."

Interestingly, he probably stole that quote from T.S Eliot:
"Immature poets imitate; mature poets steal"
Are you planning to ban Yahoo/MSN because the fetches for useless urls put extra load on the news.YC servers?

I use yahoo search to lookup News.YC. If possible, please do not force us to switch to GoogSearch.
ASK YC: Are there any VC's in Vancouver BC
Does anybody know of any good VC's in Vancouver BC? Or VC's investing in Canadians?
Yes I see what you saying now.

Yes I agree. The throughput will be the same.
Regardless of batch or continuous.

I do agree the title is miss leading. The example in the post compares and contrasts the two systems, but does not demonstrate more production.

Thx for pointing that out.
-can't trust people (are they nice because they like you or because they're trying to cash in)

-security (you're a more attractive target)

-pressure to continue performing (fear of being a one-hit wonder)

-more to lose, higher expected standard of living (think Mike Tyson)

-not knowing how to manage luxury (live big without blowing it all)

-decisions are more complicated because you have more options

PS These are all speculation because I definitely have the "no money" problems
Zoho -- $1 million profit/ month
Part of the & Co is Paul Buchheit, who wrote some of the news.yc javascript. Paul Buchheit's company friendfeed is using lucene for search.
So true. I've yet to figure out dating even only one woman.
Youthsays Beta Now Live For Malaysians | MiiJoo.com
If only they had done this when I was working there in 2001-2002. Oh well, better late than never.

Now if my current employer let me use a Mac as my primary machine...
See another similar thread here: http://news.ycombinator.com/item?id=155105
This question 12 was copied from YC application as well

>12. Why would your project be hard for someone else to duplicate?

It clearly illustrate the apparent problem YC will face in the future, I think you should think of something to avoid complete duplicate. From my view I think the value of YC is in its network and Knowhow, any founder will recognize that.

As it's getting harder and harder to even speak to you guys the temptation for founders to go the other way will even be stronger. I'm sure you can come up with something.
You can't use an std::vector exactly as you would an array. There are quirks to every STL container, and it is easy to get burned once per quirk. Here is an example:

// create a list of numbers.
static const int kNumNumbers = 10;
int numbers[ kNumNumbers ];
for( int i = 0; i < kNumNumbers; ++i )
numbers[ i ] = i;

// do something useful with those numbers.
...

// zero-out the list.
memset( numbers, 0, sizeof( int ) * kNumNumbers );

... versus ...

// create a list of numbers.
std::vector< int > numbers;
for( int i = 0; i < 10; ++i )
numbers.push_back( i );

// do something useful with those numbers.
...

// zero-out the list.
memset( &numbers, 0, sizeof( int ) * numbers.size() );

The second example is evil. Can you spot the bug?

My point was, kashif wanted to be productive in C++ within a month. It is not reasonable to expect him to become familiar with all of the STL and Boost quirks within a month. He has a better chance of accomplishing something by using C++ as C plus constructors than by using C++ as a high-level language. The latter requires expertise and a large time investment.
> I'm not too worried about monetization right now.

You might want to be. As Joe Kraus said, if you don't put your business plan into beta when you put your site into beta then you haven't really gone into beta or launched yet.
XJ: Extensible Java (a proposal)
Something visual could help. If you could have a sequential demo, that shows:

1) a question (posted in the form)

2) email that someone gets

3) a reply to the question (in the form)

4) a set of replies, all nicely aggregated.

This will save visitors from having to put it all together in their heads.
I sincerely apologize. I deserved that. My grandfather passed away today.
Doesn't mean a lot; I'm sure IBM has considered millions of options in the last week. They have people who think about people thinking about ideas.
I work for a big company where they believe in the cog-in-a-machine idea so much they actually implemented a process they coined 'the factory process' with the emphasis on being able to swap in team of developers at the drop of a hat.

Noone had read the mythical man month, or Spolsky's 'Hitting the highlights' (or named something similar to that).

I can testify first hand that treating software engineer like cogs is a road to slippage, bugs and all the good engineers leaving!
I never used MSN search. (For some reason I don't think I ever will.)
i didn't know that.

Either way, I think that PG is the king of guy who would rather work on his very special design (staying in Arc-land as long as possible) than adopting systems where you no longer have control.

Letting Paul work on the JavaScript makes sense, in this case. PG has no control over client-side code, so he prefers to not bother with it.
Search need more work.
> Last year when they made offers to groups that had also been invited to interviews with us, they tried to pressure them into accepting before they'd heard from us. I assume they'll do that again. That makes me mad, I admit. It seems such a nasty thing to do to a group of young founders.

Wait a minute, aren't you the guy who gives them 5 minutes to accept once you make your offer?

If they did their interviews/acceptance AFTER you, it would be the same situation with YOU pressuring founders before they'd heard back from anyone else!

Pot. Kettle. If you really care about the founders then you all need to get your schedules together so founders have the option of choosing from multiple offers. Leave the window open longer. It's pretty easy. Give them the forms and have them mail them back once they decide. Like college acceptance; this is a solved problem.
Got the same thing on Sunday. Usually I find the easiest thing to say, in cases where I'm pretty certain there's not going to be common ground, to recommend a third party who they're not friends with and won't assume that it'll be a favor.
Makes me think of Techstars...I don't think they're an all-out ripoff. Maybe they just came up with a similar idea before YC started. When they saw YC, they didn't feel they were copycats, but had to adapt to YC's presence. Just a guess.
Great Idea!

I'm still struggling with the question: How is this different from just sending an email to all my friends?
(disclosure: Seth Godin Fan)

- I think he has his blogging style down to a art.
- Sometimes he lives in a fantasy world of perfection, but isn't that the goal for most things? ...
It's certainly fascinating to see how technology and traditions influence each other. Here in the Netherlands I've seen muslim girls receive text messages during the ramadan, signalling them when they're allowed to eat.
Has anyone seen a post saying "All I need is a business guy?"
The only laws on the Internet are assembly and RFCs.
If you want to minify your javascript, use Rhino to pack your files. But GZIP compression will give you most of the speedup.

Shameless plug, but people have found these articles useful:

Speed up your javascript: http://betterexplained.com/articles/speed-up-your-javascript...

HTTP caching (prevent redownloading of static content):
http://betterexplained.com/articles/how-to-optimize-your-sit...

Gzip compression: http://betterexplained.com/articles/how-to-optimize-your-sit...
Aha! moments in Lisp... What were your 'Aha moments' in your favorite language?
Vivendi-Activision merger wins European approval
> You are going to work the rest of your lives, so don't be in a rush to start.

Yikes! What a downer. Doing stuff to pay bills does not have to mean "work". Dopey.
Internal Microsoft Vista Video
SixApart's BlogIt Could Be the Start of Something Big
They stopped indexing looong ago.
Except these things can be empirically shown to be harmful. The "value" of playing EverCrack or WoW all day every day can destroy many other valuable things in your life. This is why addiction is considered a problem, not a value -- except to pushers.
Again, it's worth remembering that even if everyone in the world understood exactly how valuable, difficult, and expensive programming can be, these conversations would still happen all the time. It's just how negotiation works: Programmer offers to work for X, customer pretends to be poor and offers Y where Y << X. And so on.

Admittedly, when you offer to work for X and your "friend" responds by coming right out and saying that they expected the work for free, so forget it... they're not being very polite or very smart. A better response would be "Gosh, I hadn't realized it was more than an hour or two of work, and my budget is only $75. Thanks for setting me straight -- I'll have to rethink this. Can you recommend any $10-an-hour grade school students?" And then you put on your Helpless Newb Face and hope that your programmer friend takes pity on you and offers to work at half wages, or offers you some free advice on how to set up a cheap Wordpress site, or something.

As sure as the sun shines, people -- especially your "friends" -- are never going to offer what you're actually worth. (For one thing, they have little way of knowing. Given that most software engineers can barely estimate how long their projects will take or how much the result is worth, how can you expect inexperienced folks to do it?) You just have to do what this guy did: Ask for what you think you're worth, and be gracious but firm if they say something stupid or insulting in return.
How Social Networking Could Kill Web Search as We Know It - Faceboogle - Google vs. Facebook
Haven't tried mod_rails yet, but have had a challenging time deploying rails apps in general

For those that feel the same way I really recommend Rails Machine. Obviously getting something like mod_rails working on Amazon EC2 would give us scalability, but had to put that on the back burner for now.
Direct link to the video: http://www.youtube.com/watch?v=sPv8PPl7ANU
They also are always looking to the future and don't mess around.

If MS releases another Vista (or worse) in a couple of years, do you think they'll stick with windows?
> who fail to understand the humor in the above para may not kindly apply.

I don't know why writing about establishing some kind of sweatshop in a poverty-stricken country would be seen as funny. There are a lot of places that have conditions like that, no joke.
It was Picasso and artists.
"The reason for this, I think, is that Lisp allows you to be so productive that a single person can get things done without having to work together with anyone else, and so Lisp programmers never develop the social skills needed to work effectively as a member of a team."

That's IT! I just decided to quit Lisp and program in C from now on. And all this time I wondered why I have no social skills... But now everything will be fine!!!
Let's be a little consistent here, shall we?

static const int kNumNumbers = 10;
std::vector<int> numbers(kNumNumbers);
for (int i=0; i<kNumNumbers; ++i)
numbers[i] = i; // no .push_back necessary

// do something interesting

numbers.clear();

In your example (aside from the memset), you use .push_back(), and only use the defaults for std::vector, both of which aren't what you're doing with int[].

In my example, the only difference is that numbers is initialized with a () instead of [].

As for the call to memset(), looking at the documentation for API to see that you empty the vector with

std::vector<>::clear()

is not getting "burned by quirks". That's how you go about becoming productive in C++, which is what he wants. Also, getting burned by memset()-ing an object is not a quirk of the STL.

In general, what I'm not arguing is that he should use the entire STL right away. Of course you'll get burned by doing stupid stuff that you'll later realize is stupid. What you're arguing is to avoid the STL alltogether, and instead write C in a file with ".cpp" at the end, which is equally bad (because it's not productive C++).

The way to go is to put into practice the bits and pieces of the STL that you can right away. std::vector and std::list are the simplest containers, the fastest to learn, and the most commonly used, so he should start there. Once he discovers iterators, allocators, and <algorithm> (oh my!), he will wake up one day and realize that he now understands a large chunk of the expressiveness of C++.
> I don't mean plagiarize them, but emulate what they're doing and figure out the parts that you're good at.

They DID plagiarize. Nobody's objecting to other seed investors, just the plagiarizing.

What they SHOULD have done is asked YC for permission to use their application, then said "we are using YC's application with their agreement in order to make things easier for applicants".
If you believe that code is poetry, then programmers are artists.