skysight-inc/HackerNews huggingface dataset:
'It's funny how common wisdom in the software industry is "reuse, don't rebuild", but if you look at projects that are actually successful and developers that are highly regarded, they all have a massive case of NIH syndrome.'

Like all other absolute statements, it's wrong, just as the converse ("rebuild, don't reuse") is, and a balance is required.

For context, I do a lot of XMPP work, which is all XML. In the languages I work in, I've gone through all the XMPP libraries that I know of, and found them wanting. I now use some layers I wrote myself directly around Expat. Why? Because nobody but nobody seems to be able to write an XML library that correctly handles namespaces! Which is death when working with XMPP. Yeah, if you hack hard enough you can get around the problem, but especially given the thinness of the usual XMPP libraries and what little they do, it doesn't take much to flip over to negative value.

On the other hand, when I went to write a routine that takes a PNG file of arbitrary size and resizes it to be an avatar, I'd be a damn fool to yell "screw it!" and reimplement a PNG reader.

So, it depends. Factors to consider include the long-term price you'll pay for a sub-optimal library, how close to core it is to what you are doing, whether or not you've ever implemented anything close enough to the library in question that you are really sure you can build something better (sometimes libraries suck because they suck, but sometimes they suck because they solve a hard problem and the "suckage" is actually the hardness of the problem poking out) as it is so easy to end up creating something worse, and, since I deal almost exclusively in open source now, whether you can take most of an existing library and actually bring it up to spec more easily than starting from scratch.

One of my favorite maneuvers, not that I do it often, is to take some rather large library that does what I need but not terribly well, along with a lot of other stuff, and then tear it to shreds in the process of making it do what I want. A coworker of mine recently wanted to do zeroconf autodiscovery, so they started with dhcpcd and started tearing out everything except the use of the dhcp protocol, because it was easier than trying to start their own stuff from scratch. Worked great in less than an hour; I can't imagine what else they could have done in less time, even finding a conventional library, downloading it, and learning how to use it would have taken longer than that.
Despite the generally frivolous answers, this is an interesting question and one I often wonder about. What turns out to take up all the time if we want to reproduce where we are now? Presumably the optimal plan is to spend practically all your effort on machine tools.

It would be interesting to be able to figure out what would be the best benchmark of progress. Would it be the precision with which you could machine metal? That might do up to about 1900.

It might turn out that most of the time was spent on something nontechnical, like moving stuff from place to place before you'd developed fast ways of doing that. So maybe in practice the most important benchmark would be how fast you could move stuff.

Reproducing where we are now would in some ways be harder than getting here was. E.g. the most accessible coal and mineral deposits used to be sitting right on the surface, but now those are gone.
There are many cases that justify when to use and when not use sound on the web...

I would say it's the goal of most web-app builders to mimic desktop apps b/c the result is a familiar environment for the end user. Software/UI design is an established practice, with many studied and proven methodologies for handling complex user interaction that has been unfamiliar to the web in former years.

That said, I believe it's inevitable that web-apps will mirror their desktop counter-parts in time (many are doing so already)... the exception being, highly-specialized web apps.
Right. Good! Am I going to argue with pg? If I could ask you for one more comment...

Most consumer electronics products that you see on store shelves are not patented. They're not sufficiently innovative to deserve one. That's also the case with my portfolio. I have a few pending patents, but as far as legally defensible IP, not so much.

My idea is to select perhaps 10 products, complete with photos of prototypes, and/or schematics, as well as trademarks that I have reserved, domain names associated with those trademarks, the few patents I have, and my resume, I guess, and create a package I can give to VC's.

Then, in the package, select one of those products as a "first product", and present a timeline and budget for bringing it to market.

Is this something that could fly?
A whirl-wind tutorial on pitching, for sure. For the uninitiated, the company he uses as an example "ZapMeals.com: the eBay of take-out food" is/was a complete hoax.

http://machinist.salon.com/blog/2007/06/22/supernova_startup...

http://zapmeals.com/
My guess is that there are multiple factors:

* Not invented here syndrome: 10x coder may code small things himself that many times is faster then learning other stuff.

* Selection of the tools to use: it will use Ruby instead of Java, for example, and for a reason. In general he'll try to figure the fastest path to solve the problem so will try a lot less.
According to his site: http://openlibrary.org/
You have to boil the shit out of it. Try Coq au Vin.
You know, I'm flagging this. This link is terrible, just internet grandstanding disconnected from the facts.

Agreed. I flagged it too... this certainly doesn't deserve the top slot on HN.
"The other nice thing about Amazon is they let payers use their amazon payment accounts."

Hardly convenient if you don't already have an account. The layers of sign-up added to the process creates too many hoops to make users jump through.
The best thing you could do if you have really been reading carefully is to get started on building what your idea is. And VCs may not be what you need - if you really believe the products would sell you could try bank/credit card loans etc.
It is not as if there was no entrepreneurship before VCs came into picture. With or without VCs, with or without certain degrees from certain schools, entrepreneurs will always be there and keep finding ways to chase opportunities they believe in.
VCs don't generally want to see a portfolio of ideas. You're supposed to be the expert: they expect you to choose. What they want to see is a group of smart founders who plan to work in a promising area.

Also, they're generally leery of consumer electronics. Not that you shouldn't do that, but if you do, you should do it a la Meraki: make version 1 yourself in your basement, get ramen profitable by selling it to early adopters, and then go to VCs once you can show it's already taking off.
Are you asking this question in reference to last night's Battlestar Galactica finale? It was somewhat surprising to see everyone give up technology so easily and start anew with just clothing, some food, and their own language. But I guess being cooped up in those ships for that long and seeing how the abuse of technology led them to such events could have that effect.

To answer your question, it's hard to guess. Without medical or agricultural technology, I think most of our current population would die out. The rest would war over the remnants of societal structure. Technical progress, as we see it, would take a long time to begin -- primarily dependent on stability. There are too many unpredictable events that would alter the length of time before returning to stability and our current standards.
What is worst, that pcworld has such junk articles or that this is on Hacker News...?
I'm not sure why the media loves to take the reactionary approach to everything (My favorite was a CNN article yesterday claiming we shouldn't move to "Smart" power grids because hackers can get in. It's as if we should stop the march of progress because of a few misguided people).

Obviously, these people seem to miss the fact that "Better" almost never wins.

Plenty of people still run Windows when there are plenty of arguments that OS X is "Better" (Faster, performs better,etc).

And thankfully Internet Explorer died a horrible, painful death as soon as Firefox shipped. I mean, it was faster & better than Internet Explorer - so of course IE died.
One big problem is that we need working technology to access much of our technical knowledge.
Amazon payments seems very bad for repeated billings, particularly variable repeated billing. They seem to be really pushing their P2P payments, so if that's what you're doing then great, otherwise I would think twice...
NEA and Sequoia funded us when we were 20 year old hackers with NO business experience whatsoever.
Sorry, I just got back. Your link is great. I think for me the practice of standing there having to come out with it was invaluable. Amazing how you have it all in there, but sometimes it comes out like shit through a goose and sometimes it just comes out...well. You know. Anyway. I talked and talked, listened and listened, and learned a lot.
Incidentally, there was a company pitching called eighty/twenty! Not my company, but very cool just the same.
Both internet service and TV distribution models are like an all you can eat buffet.

The TV distribution model lets me see the ribs at the end of the buffet line, but I have to wait behind an obese person who has to get some of everything and has a t-shirt which flashes random facts about vagisil.

The internet distribution lets me go straight to the ribs and maybe see the vagisil shirt out of the corner of my eye.

I do not think anyone would have a problem paying for the all-you-can-eat subscription if we were able to have more control over when we were able to watch the content. DVRs have been a major boost in this arena as have the video on demand option(though to my knowledge VOD has been restricted to premium movie channels). I think this "new generation" that all the content providers are bitching about merely want instant gratification.

An example: "Is that beer you are about to drink carcinogenic?"

TV Model: Sit through an entire barrage of ads and stories about puppies instead of enjoying that tasty brew for an hour.

Internet Model: Go to Google, search headlines for carcinogenic beer, see some beer ads on the right side of the page, Toss or Enjoy.
I'm not trying to make you angry here, but intellectual honesty demands that I point out the fact that these clauses do not state that banks must lend to minorities. They state that banks must meet '...the credit needs of its entire community, including low- and moderate-income neighborhoods..." A 'low- and moderate-income' neighborhood in the process of redevelopment has a surprisingly large credit need, though not much of it goes to the 'low- and moderate-income' people living there. I have already gone over the redevelopment thing above. Further, the clause goes on to state, '...consistent with the safe and sound operation of such institution;'. Which is the loop hole that most financial institutions use to get out of their CRA lending obligations when no redevelopment is happening in qualified neighborhoods. In short, banks don't have to lend if they think lending will affect their safe operation.

So you have submitted a set of clauses that say that banks must lend to economically disadvantaged neighborhoods. The clauses you reference do not say that banks must lend to economically disadvantaged people. This is my material point, and the pivot on which the majority of urban redevelopment turns.

Just as an aside, lending encompasses more than just mortgages. For example, I can also qualify for a lot of CRA, or TIF type help if I construct . . . say . . . a small business incubator in one of these economically disadvantaged neighborhoods. The only reason I say that is because I am starting to get the feeling that you believe the entire USD4.2 Trillion was given on mortgage loans for minorities.
The head-banging gets less and less over time. Or else I've developed a thick skull, not sure which.

Experience makes a huge difference - simply because you've seen this problem before, or at least seen this kind of problem before, or maybe you saw the solution to this problem a year ago when you were googling the solution to some other problem and tucked it away in a cavity in your brain.

With experience, you happen to know that there are certain kinds of many-to-many relationships Hibernate can't map in a legacy schema where the foreign key is a subset of a composite primary key. So when you encounter that on your next project you drop right down to SQL, to the wonder and bewilderment of your new colleagues whom you've just converted to an ORM tool because it "abstracts away all that sql stuff".

With experience, you know the kinds of ways certain systems go wrong, the kinds of solutions and workarounds to apply, and most importantly the kinds of things to google for when hunting for the solution.

Even scanning search results pages - to a novice they're homogeneous, but after some time you start ignoring whole classes of results. For example, you're trying to find what some annoying ActiveRecord exception is about, and you realise half of your search results are pointers to subversion log messages mirrored in a thousand places all over the internet. And they don't have the information you're looking for.

As some other commenters observed, you have to push and solve those problems that seem impossible, because the next time around, you'll find the answer a little faster. Keep up the head-banging. It eventually turns into supernatural powers. Just be careful with the wall.
I use PayPal, Google, and Authorize.net currently. We are dumping Google in a few weeks - 1+ years of "1 in 5" chargebacks and poor (non-existent?) customer service. PayPal is best of breed but we do not use them as our primary payment handler; it's an option presented to customers upon checkout though.
Please feel free to educate us. I use version control and have done for years. I don't branch or merge, and svn works brilliantly for me. It stays completely out the way and allows me to rollback, see changesets, logs, etc if I need.
If I wrote a version control system based on my own use case, it'd end up pretty much like svn.

What am I missing?

I've read all the "Git is AWESOME" posts. If I switched to git, it would be exactly the same. It wouldn't solve any problem for my use case that svn doesn't.

Seriously unimpressed with your comment to be honest.

Either make a valid argument as to what I don't understand about version control, or retract it.
Choose more than one. It's important to have redundancy when it comes to getting paid. Ask anyone who's had their PayPal account suspended for arbitrary reasons.

I don't think you can get away from PayPal, their market share is just too big to ignore. Amazon Payments sounds like a good second choice, but it depends on your customer base.
Thank you for telling me that probably would not have worked, and about the reluctance regarding consumer electronics. It makes sense they would be so, for the very reasons that are hindering me. (high initial investment, IP infringement risk, multi-country compliance, etc).
Depends which drive is in it. Some of the older ones did region checks in hardware so you had to replace the firmware (that was the case on the original SuperDrive 12" PowerBook). On the current MacBooks the region check is in software so VLC works great.
Eek a Valleywag link! It shouldn't really be blocked if it has relevant or original articles...
Your biggest problem is that having offered him a stake in the project, you've created a situation in which he now has a reasonable right to control over the way the source code is deployed. I'd assume your programmer set up server authentication to get visibility into the number of sales. If I was working in return for a percentage of sales I would expect a way to independently verify sales figures as well.

That is really going to limit your flexibility down the road, so it is probably easier to just develop from scratch. Perhaps you should let him know you're disappointed with how things have worked out and are thinking about getting something simpler developed by someone else. Be honest and don't come across as personally critical and the discussion may push him to finish things, or break him of the mindset that you are trying to take advantage of him.

I outsource design work on a per-project basis, by the way, and like to ask people to let me know how long they take completing the work, especially since most of the time it involves iterating a couple of times. This approach lets me figure out what their hourly take-home is when all is said and done. If it ends up being too low, I like to increase it a bit more to build good relationships. Having reliable go-to people who can take care of problems on short-notice at a low cost is a lot more valuable than losing $20 here and there over individual projects.
Why money messes with your mind
Here's a scenario - there are 2 coders working on basically the same base code, but each doing something different. Now the code from both these guys needs to be merged to the base code periodically, so what do you think these guys should use - git or svn , or any other VCS for that matter ?
This is going slightly offtopic, but since you're bringing up this example, can I ask you for a link/citation for that list of physicists? I'm a bit surprised by the story, since Einstein's work was I believe internationally recognised almost immediately.

(Nevertheless, the man was probably worth quite a number of randomly chosen peers indeed :))
Well said brother! While I'm not certain I'm willing to put $300K on credit card, I know there are people who have done this.

I agree that there is never an excuse, you just have to try a different way, till you succeed.
but firefox has so many addons like: QuickNote, FlashBlock and Mycroft Project to add any search for your search bar. While we are comparing speed of browser here there are other considerations you are not taking into account
I've been using the Firefox 3.5 beta (Shiretoko) as my primary browser for a few months now. Despite the occasional crashes its the best browser I've ever used.

Chrome runs circles around Firefox 3, but its no faster than Shiretoko. Combined with the extra ads I have to pull down because Chrome has no extensions its not even a contest.

But even comparing Chrome to Firefox 3, I still don't see Chrome taking a lot of marketshare away from Firefox. Asking a user to change browsers is an extremely hard sell. When Firefox arrived the current offering (IE6) was so bad that browsers were a hair-on-fire problem. I don't think that case can't be made now.

Furthermore, Google's track record for software doesn't inspire a lot of confidence. I'm pretty sure Mozilla will continue to pump most of their resources and focus into Firefox for the foreseeable future. I don't have that feeling about Google.
Solidworks.
Accessibility is a Harsh Mistress
I'm inclined to agree with most of what I've seen posted here - you probably got an unprofessional programmer who has just enough skill to get in over his head. He realized it's more work than he thought it would be, and thinks that it's your responsibility to pay him more.

Your best bet at this point is going to be to start over. Get yourself a good hacker; I bet there are a few around here looking for short-term gigs - I am, for one. If you have a decent written spec, it should be no problem for any decent programmer to give you a reasonably accurate timeline and meet the milestones. As others have said, pay by the milestone, and make sure you get the source code.
If by dense you mean a lot of technical words and concepts, then yes. If by dense you mean deep insights into reality, then no.
> Is having a job alone good enough in this economy?

Don't leave unless you have something else lined up.
I use Authorize.net and am quite pleased with it, though, admittedly, I've never used any other service.

I don't currently accept automated payments through them, though they do have a recurring payment functionality built in. I haven't used Auth.net's recurring payment system.

Before they implemented that, when I was building a service that relied on automatic recurring payments, I built a script that managed it (as the amount could vary from month to month depending on the selected features), and ran it on a cronjob.

It was quite secure as the processing server itself was firewalled from the internet (no way of accepting incoming connections, and operated from my home, away from the data center). Furthermore the data was all stored encrypted in the database (but it didn't survive on the public servers longer than 5 seconds or so). Whenever it processed the payments, it would pipe the output to a file and then to the printer for the hard copy records, resulting in daily printouts of the service.

Unfortunately, my service never went live, but the homegrown recurring payment system ran flawlessly for months (until it was decommissioned, that is).
But, but it's cool to love git!
10x coders are also 10x system admins
I don't think 20,000 is a reasonable bound; here in the tropics (Puerto Rico in my case) it doesn't get cold at night; you'd have a lot of starvation and the society would be feudal pretty quick, but I'll bet you'd end up with more than 20,000 people on this island alone. Now multiply by the rest of the tropics.

But the likelihood of our returning to a technological civilization after that? No. I'm betting we never would, for two reasons.

First: all the data's gone. It's just skills in people's heads, and most of the people with skills will be dead in a few months. And the ones that don't die right off the bat will be too busy not starving, and making sure their kids don't starve, to write anything down, on non-existent paper with non-existent pencils, until they themselves die of old age at 55. No medicine. No antibiotics. Plenty of privation and overwork, though. (And even if some overachiever does write stuff down -- how long does that survive? And how does it get distributed beyond his own little village of 100 people? Answer: it doesn't. And all the resources he knows how to use are no longer available from Edmund Scientific.)

OK? So there's no skills, really fast. But there are legends of the fast-burning city civilization that let us all down. Humanity will never try it again; I just don't believe it. We're barely trying it now -- how many people really still believe in technological progress these days? I mean, in terms not of making a buck, but of inevitable progress towards a better life? Damned few. And that's before it all goes away and 99% of the people in the world die as a result.

It's a bleak question.
Why does anyone want a 3D printer?

Graphic 3D modeling is easy and useful and I have to guess (based on the tools and practice people get in this day and age) that generation to generation people are improving at picturing abstractions/descriptions.

Is this tool even necessary anymore? Isn't it a leftover "futuristic" device from the 20th century?
Articles like this might be better suited for newmogul.com run by the infamous nickb.
Glasshouse injects 3D representation of data into a virtual world
I don't think it's possible for a website to do what you describe: a webpage doesn't have access to or even know about your other tabs.

The best I can think to do would be to use the browser's bookmark all tabs feature and then export the bookmarks to a usb drive.

Not pretty or convenient, but maybe faster than saving each individually.
I think this guy is right, because unlike the IE -> Firefox switch that is slow, Firefox -> Chrome switch can be really fast. And this is just the start. From the user point of view Firefox is almost unchanged since 1.0, I wonder what they really did in all this time: stability, new parts of the standard implemented, better page rendering, and so on, but this is not a DNS server or an SMTP server, it's a browser. You need to go forward in a way that the user can touch, and improve the user life. Just what Chrome is doing.