skysight-inc/HackerNews huggingface dataset:
I would never buy a library, but I've never had that option either. Every tool I use is open source, and I build small proprietary applications around the open source stuff. (Making web pages and parsing CSV files is not my business domain, so I let the community handle those.)

I will say this -- the first step to not writing too much code is to reuse your own "internal" code. It's simple; instead of cut-n-paste-n-modify, make it a library, and make the per-app "modification" some different parameters you pass to the library. Now a bug that affects all the possibilities can be fixed everywhere at once. And, if someone understands one app's usage of this library, they will understand the other app's usage, as well. Less to think about, less code to maintain, and nothing to buy.

The next step is letting other people fix your bugs for you. My last job was for a company that routinely factored out part of their apps into community libraries. If you use Perl, you probably use Moose -- that was a piece of an internal app at one point. Releasing that bit of code changed the entire Perl community, and it made maintaining our software even easier. There are plenty of times I've hit a Moose bug only to have it fixed in 30 minutes by Someone Else. (To be fair, I've fixed other people's Moose bugs too.)

So anyway, the word "reuse" is thrown around a lot, but it is really an important concept. I have reused every piece of code I've written in the last few years -- once in my application, and once in the test suite.

If you're not reusing your code at least once, you're doing it totally wrong. If you're not reusing your code more than once, you're missing out on a lot of good things.
Ask HN: How do you make decisions between cofounders?
Cofounder A thinks you should do something using method 1. Cofounder B thinks you should use method 2. How would you do decide?

I know the ideal winner would be the cofounder who just does it. And in most cases, that is how decisions are made. But this is for the exceptions(ie. "do we build this product?") where you cannot simply execute and let the results talk.

How do you guys handle it?

Appreciate your tips.
Isn't Sergey by most any measure an outlier however? Using him as anything more than anecdote about immigration isn't really clear thinking, is it?
More than one, but I avoid blogging in them to avoid "you're bad at language $foo". Knowing more than one language doesn't mean that your errors aren't annoying.
This is hilarious. I wanna see what it is too.
It's worth noting that your learning experiences and experiments don't need to become production applications, though. This is what gets many people into trouble.
Ask HN: What can you do with bad reviews?
Actually the full question is: "What can you do with bad reviews when improving the situation does not depend on you?" For example in our case people ask for more television channels on our platform, but so far we could get approval from only one European channel.

We decided to release the application with only one channel with the hope that by gaining a significant number of registered customers we shall be able to convince other TV stations to join.This seem to get us a lot of bad reviews.

Which is the best way to handle them? Is it better to respond to them, trying to explain the situation, or is better to simply ignore them.

What I did this evening (making fun of them) does not seem wise, but it helped me cool off. Here is the link to my reply and to some of the reviews:

http://store.ovi.com/content/680C42A2A122F8CCE040050A85325203?clickSource=homepage#/content/680C42A2A122F8CCE040050A85325203/reviews
The second line is a great counter-argument.

In reality, this clever quip is just Linus' way of telling people to go away. He certainly talks a lot about code he has no intention of writing. (He does write a lot of code, too.)
My Favourite soundbite"

"Over-engineering is poison. It's not like doing extra work for extra credit. It's more like telling a lie that you then have to remember so you don't contradict it."
Hey, for all I know it will be a 'splat'. But it's definitely worth a try.
Looking at your list, I see universities that have some amount of cachet or prestige, but not necessarily with specifically solid Engineering/CS programs. Further, many of them are in locations that are not traditional startup hubs (StL, Nashville, Philly, Cleveland, RI, etc.).

If your goal is truly focused completely on starting a tech startup after completing your degree, then you should be looking for:

1. Location. Go somewhere where you can find and meet like-minded people and the resources to help you get going. San Francisco, NYC, Boston, Chicago, maybe Austin. Cities with established startups and college towns are both great for this. PG conveys similar opinions in his essays about startup hubs.

2. A good CS department. You'll need fellow developers. Mine them from a good CS department.

3. Being in a school that is known to generate lots of startups is certainly helpful. Think Stanford, Berkeley, MIT.

Keep in mind, this is coming from someone who spent 3 semesters at Rice (before transferring to UT Austin).. It's a great school, but I would not choose it as a place to get a startup kicked off.

I'd also like to backup tsally's comments about large vs. small CS programs. This is the primary reason why I left Rice (although I was EE, not CS). The school is too small and the CS and EE programs did not offer the breadth of topics that the larger schools do.
When you are in an emotional low, it's very difficult to think, "I should just persist because PG says it usually works."

I usually take the opposite approach: I should persist because PG says that single-founder startups don't work, and I'm going to prove him wrong, damnit.
its always better to engage the customer and explain and address complaints, why would you think you should do anything else?
Wouldn't it be simple in SPARC-like architectures with register windows?
Can you clarify which "above referenced studies" you are talking about? From the same site that you pointed me to (CDC), I find this page http://www.cdc.gov/flu/about/qa/vaccineeffect.htm stating "How effective is the seasonal flu vaccine in the elderly? ... the seasonal flu shot is 30%-70% effective in preventing hospitalization for pneumonia (a lung infection) and influenza ... In past studies among elderly nursing home residents, the seasonal flu shot was most effective in preventing severe illness and complications that may follow flu (like pneumonia), and deaths related to the flu. In this population, the shot can be 50%-60% effective in preventing hospitalization or pneumonia, and 80% effective in preventing death from the flu."

Now, that is not a study itself, but a summary of prior studies. If you think the CDC has formed an improper conclusion, that's fine.

Here is the Cochrane review on the effectiveness of vaccines in the elderly: http://www.cochrane.org/reviews/en/ab004876.html

The summary: "In long-term care facilities, where vaccination is most effective against complications, the aims of the vaccination campaign are fulfilled, at least in part. However, according to reliable evidence the usefulness of vaccines in the community is modest. The apparent high effectiveness of the vaccines in preventing death from all causes may reflect a baseline imbalance in health status and other systematic differences in the two groups of participants."

In other words, like I said, the vaccine doesn't work all that well - but despite its relatively modest effectiveness, it is still of great importance in the very age group that you singled out as not receiving benefit.
Objectivity. Each of you has a reason for why you are rooting for a certain decision's side... so list those reasons out. Just write down the the advantages/disadvantages of each decision (hrs of dev time, complexity, return of the final product, etc), and keep everything objective as possible by numbers if possible.

Then do a Side by side comparison, this takes away the subjectivity and emotional aspect of decision making, and ultimately help you make the best decision possible.
I'm using Windows 7, too, so shame on you for leaping to thinking I'm a fan boy of any type. Rather, I call shenanigans on this article because the only source cited is a person whose company personally gains from sales "break(ing) retail records."

Quoting a tech analyst or someone who has deserved authority on the manner is journalism. Quoting a sales person on a product they're selling is either a rehashed press release or a paid product placement.

If it was truly breaking sales records, wouldn't Google have more than 1 version of the story (http://www.google.com/search?q=windows+7+breaking+sales+reco...)?
Add this to your in the head tag and it should work --

<link rel="shortcut icon" href="/favicon.ico">

I just emailed you a vanity favicon :)
Write down all the pros and cons, then take each topic in discussion and try to bring as many objective and logic arguments as possible.

Leave personal feelings and your ego aside, if you do that the other might do the same and you might reach an agreement.
to vim.
Don't ignore your users, recruit them.

If your customers want more channels and the bottleneck is a TV station, let your customers know that you want to add new channels as well. Let them know that you haven't had much luck getting things done, and if they (your users) wanted to help, they could send an email to so-and-so at the TV station.

I'm a little amazed that you think it's even remotely OK to deride your users. Those are the people you work for, you know. If you treat them poorly they're likely to fire you.
Key quote from Lee Ohanian http://www.econ.ucla.edu/people/faculty/Ohanian.html

"It's not even a jobless recovery; it's a recovery with more job losses. The idea of having essentially no net job creation after a remarkably severe recession is a real pathology for the U.S. economy."
For this specific situation it is good to address the issue. However, you need to take ownership. This situation does depend on you. Getting channels is your problem.

The best way to address the issue is to work on the product. This isn't a bad review, this is a good user feedback.
Yahoo Mail (abubakarsadeeq@rocketmail.com)
misspelled "Barak Obama"
this depends on the dynamics of the startups , equally is good but not always appropriate. The equity split should always be proportional to a. quantum of pain or skin in the game [investment & time] & b. vested over 3-4 years

Equal is good when all founders are on it full time and have invested an equal amount of money but this is usually not the case
Link from my other sites.

I might be up for sending some HN people their first users if you are getting desparate (see my profile for contact info), but I doubt my audience of MySpacers really matches with anything that anyone here is doing.
Perhaps not, but writing it in Java isn't exactly doing them a favor either as it increases time and cost for development and changes. The Right Thing for such a situation is probably a compromise between language power and popularity. Ruby or Python with one of the popular frameworks that makes half the decisions for you would probably be a good choice.
...though that's probably an unsuitable strategy for most products.
Search marketing.

This avenue may not fit your startup because no one may be searching your industry. I mean, if your startup is Twitter, you're not going to get very far bidding on the keyword "microblogging".

It worked with our startup because people were already finding our competitors using search (our competitors literally created the search market for us because of their large scale media buys offline), and the volume allows us to scale.
Court case shows limits of anonymous blogging
A study (http://page.mi.fu-berlin.de/prechelt/Biblio//tcheck_tse98.pd...) by the Lutz Prechelt mentioned on the slides suggests that, all else being equal, static type checking reduces defects and increases productivity (the study was for ANSI C vs. K&R C). So a concise but statically typed language (Scala?) might be a better choice than either Java or Python.
It's funny though the other day I flew China Airlines from SFO to KUL and I noticed their in-flight maps (in the entertainment console) actually depicted the border the way India claims it should be. I'm Indian btw.
I guess it depends on how you describe it, eh? "I own a software company" does sound like it'd be more successful than "I run an internet startup."
If you want to learn, then going to a Respected Research University is a waste of time and money. The quality of teaching at such places is often pathetically bad. Prestige comes from research, not teaching, and every dollar spent on research is a dollar not spent on teaching. You'll learn more for your money at a middling state school or private college, in part because these places attract professors who actually like to teach.

Predictable objections:

1. I had some great teachers at RRU: I did too. But they are the exception rather than the rule.

2. You'll make more money with a degree from RRU: The statistics don't support this. Harvard students end up with the same average income as students who get admitted to Harvard but then go to a less prestigious school.

3. You'll meet more smart people at RRU: Yes, but you can find smart people anywhere, and a few years of college classes is as good a filter as any admissions department, at least in technical majors. The kind of people you meet in a topology course is about the same no matter what school you're at.

I think the most important thing is to find a place where you'll fit in and be happy for 4-5 years. Visit a few places, and go with your gut.

See also: http://www.paulgraham.com/colleges.html
Find a video (en|de)coder without SIMD and you've found an unusable piece of software.

Also worth noting that these video decoders tend to crash hard on invalid input. Tradeoffs.
I am still amazed we don't have an x86 assembler that is anywhere near what DSP people use.

I believe these are called "compilers".
Noone's being forced to work any hours for any amount. They choose to do it, and if companies choose to hire them it's because they provide better value for money than the other potential employees.

Possibly it makes economic sense to require them to be paid the same. But making the argument in terms of coercion is disingenuous.
i was joking a little too :)
more: http://garrytanphoto.smugmug.com/gallery/10087762_96Sit#6923...
I sometimes wonder if the Valley culture doesn't socially construct some of the startup pathologies. For example, startups taking over your life: why does this happen? Is this because startups take over your life and nothing can be done about this? I am skeptical of this: I run a small business, the time demands are rather modest, and I live a life outside of work. I'm surely not uniquely in a position to do this.

Now, step back: who here wants to say any variant of "That isn't the same thing!", "That isn't possible!", or "You are insufficiently dedicated and will never be truly successful!" You see, that is why startups take over your life: because you expect them to take over your life, everyone you know and talk to and model your behavior on expects them to take over your life, and if they're not taking over your life you are told you are doing something wrong.
If there was one more relevant but vital surprise to add it would be > underestimated the role of marketing

A lot of startup founders think its about building a superb product , its not . Its about how you market it and get users on board
Directories. There's almost always appropriate directories to get your thing listed on. iPhone app store is the extreme example. Maybe you can create an addon for Firefox and submit it to addons.mozilla.org. Maybe you have audio software and you can get it listed on some big audio software directory or blog.

It really depends what kind of thing you have, but there's almost always some list out there that it belongs on.
Starting a startup with 2 founders is probably the worst mistake startups make. Voting is split 50/50 and decisions become impossible.

The team should have 3 or 5 members (not 4, its even and can also lead to 50/50). Get another founder or get a coach/advisor/friend who you both trust and that can make a rational decision when you 2 are of different opinions.

-- MV
There is also this thing called Emacs. I clicked through to the SciTE screenshot, and noticed that Emacs can do all that cool stuff... while still being very flexible, like vim.

(Actually, I would not call vim flexible, but I am more of an editor programmer than an editor user.)
our first 1000 users:

via our blog talking about what we're doing and why (= good for SEO, engagement of community)

PR though you'd be surprised at how little an effect this makes typically though, you gotta really target / be lucky. Tip: DaringFireball = iPhone app sales.

Twitter - great to engage users of competitor products (sorry) or people musing aloud wishing your product exists (it does! they just haven't found it!)

Spin off sites - I really love these. Do a simple project (= 1 days work) that'll get on the reddit home page or become a mini twitter hit. works really well for getting users, then convert them from the spin off site to your site. if you're a good product manager you can make this work wonders. this might be a widget (duckduckgo style) or a tshirt or mugs, or an actual service.
Switch positions and argue the others case as good as you can.

It will help you immensely in evaluating the relative merits of both options.
will that really get you a thousand users?
Apart from their interesting presentations that have been posted elsewhere, this list is notable for being all male. In searching for info and stats on female tech startup founders, I found this interview with YC's Jessica. She mentioned that (YC applicants : funded startups) between male and female founders is proportionate.

http://thenextwomen.com/2009/05/01/interview-y-combinator-fo...
http://stackoverflow.com/questions/376278/parameter-evaluati...

https://www.securecoding.cert.org/confluence/display/seccode...

Basically, do not depend on the order of evaluation of arguments to a function call, because it is unspecified and left to the implementation to decide according to the C99 standard.

EDIT: Another explanation, pertinent to your example can be found here - http://c-faq.com/expr/evalorder2.html
For those curious, the output is:
9 10 7
2 3 7

The output should be (at least from my understanding and what PHP renders):
7 9 9
7 2 2

As far as reconciliation, I guess the first line makes sense when you think about it as machine code and how the pointers probably behave. The second line though, seems quite evil and I am going to go hide under my "Rails will save me" blanket until someone can explain this voodoo.
Paul says asking what is surprising is equivalent to asking what he got wrong, but it may be that some things are impossible to communicate in essay format. Things like "persistence is key" are accurate textual representations of the underlying lesson, but the important part of that lesson is the unassailable gut knowledge of its truth, which is hard to get from an essay.
MyEgy - افلام عربي - افلام اجنبي - اغاني - كليبات - برامج - العاب
Direct mail. I'm not talking the crappy postcards or the fake credit cards everyone gets.

I'm talking about handwriting a note to someone influential. If your market is teachers, write to the department heads at a local High school. If they like it, they'll spread it to their teacher friends.

Handwriting the notes is a PAIN (it will literally hurt your hands), but it is much more effective and personal than a cookie cutter email or a mass mailing letter.

Unfortunately, this method isn't scalable, but it will give you a good start.
"Everything that can be invented has been invented." Attributed to Charles H. Duell, Commissioner of the U.S. patent office, circa 1899
Of course they provide better value, they are willing to do anything to come over here. I'm sure if you told 5 year old kids you'd be willing to hire them for $2/hour some of them would sign up, but we have child work laws for the same exact reason.

Yes it makes economic sense to the company, but why should the American government help them at the expense of our own citizens? We have 10% unemployment, plenty of people willing to work, why should we subsidize your greed by giving you access to more slave labor?
The first rule of programming is indeed "don't program". But that's not because buying off-the-shelf code makes you more productive than writing code yourself. It's because software solutions are usually worse than manual solutions.

Here's a typical example, one I just ran into today. For a course, I need to enter some data into some system that stores grades. It doesn't just store grades, though, it tries to calculate grades--by various rules and heuristics, which you are likely to misunderstand. They have written a lot of code for the import process, to, you know, take the burden off the poor teacher, by calculating the grades.

Of course, it's such a pain, and so error-prone, the much easier solution would be to just make a spreadsheet containing the grades and upload it, and have the program do nothing but display the results or whatever actually needs to be done. That would remove 95% of the code written for this thing. And make it work better.

Another one, which I ran into a few weeks ago. I needed to add a class. The professor needed to approve it. The software was so confusing, the prof couldn't figure it out (he is a world-renowned professor of computer science, BTW). After a couple weeks of this, I finally got a sheet of paper and had him sign it. I brought that sheet to the expert in operating the mysterious System, and that finally got the job done.

Some software does obviously help the university run better. Every line of code after that makes it run worse.
Not a tradeoff; that's just bad input checking. Most of ffmpeg's decoders have heavy checks in them--crashes are usually bugs (missing checks). Yes, the checks have a small speed cost, but it's at most 1-2%, probably less.
I agree with many of your points, however, there are many reasons not to use oil as a store of value.

Oil can burn, evaporate, leak out of a tanker and be dispersed and not be able to be retrieved.

Gold is far safer, being a noble metal that reacts with very little.

Also you are not accounting for the fact that essentially, the USD is backed by oil - until recently all international oil transactions were denominated in USD.
Nah.

Top Three Rules:

1. Before you start writing something, make sure it'll actually reduce workload in the future. (laziness)

2. Borrow liberally from others -- especially open source code -- because that's the quickest way to success. Why waste time rewriting stuff that others have written, when that'll take three times as long and require lots of testing? (impatience)

3. Eventually write your own version anyway, because you can do better than the other guy. (hubris)

The first is what ensures you're writing software that should be written.

The second is what ensures that you write robust software with reasonable efficiency, and what protects you from getting a reputation as someone who badly implements a lot of cruft that someone else has already done better.

The third is what ensures that you improve as a programmer, rather than just getting into the tired rut of playing Legos with other people's libraries and never learning anything new.
Let me get this straight. You're making fun of your early adopters, the ones who tried your product and gave their honest feedback.

These are the ones you want talking about your product, getting TV stations behind it. Making fun of them is a great way to kill your company early. It may seem like fun now, but it won't be fun when none of them visit ovi.com again.

Turn them into your loudspeaker. Get them talking to the TV stations saying that they want their content on your product. The last thing you should be doing is criticizing them for your marketing problems.