skysight-inc/HackerNews huggingface dataset:
I agree she is awesome (I'm biased as being both Dutch and liberal myself) but it is important to note that the reason she can speak so frankly is that she is on her last term. (She has said she is too old to stand for re-election next term)
>In the exact same sense than a lottery has a "higher expected return that a conventional job", just with slightly better odds.

A lottery has negative expected return, so I disagree that it's "higher expected return that a conventional job".
I don't see that they realistically have an alternative.

DuckDuckGo won't ever be able to compete with Google as a general search engine. Google already pretty much solved that problem, and even if they haven't they have a huge head start and a much bigger bankroll. If DuckDuckGo is going to succeed on it's search principles it's going to be as a curated search engine. That's a game where they can still compete with Google.

I completely agree with you about the lack of uniformity in search results. Curation is hard. It requires that a good source exist, that the curators are aware of it, and that it's amenable to being added to your system (technically and legally). Only one of these is under the direct control of the curators.

The reason the Python search sucks in DuckDuckGo the people running the curated Python search have a crappy search engine. Obviously either a better choice doesn't exist (probable), the DuckDuckGo curators don't know about it (very likely), or the better source isn't technically or legally accessible to the DDG curators (unlikely but possible).

Unlike the problems of a crawling and building general search index (where even to enter the market you need to have a massive infrastructure investment), these smaller problems of curation are attackable by a smaller team with limited resources. To improve the search results for !python they won't need to re-engineer their entire crawl/index infrastructure, they will simply need to pick a better third-party source once they are aware of it existing.
I didn't notice until I read this and pulled up the page again. My connection is apparently fast enough for it not to matter, but I was watching the DNT+ badge. 4... then 6... then incrementing up to 14 blocks. I guess they've got a lot goin' on.
I think of software development more as an art than a science. If those questions were asked of a professional painter I think we would hear similar responses. It's all by hand, colors shapes and textures can be amazingly complex in their combinations, standards would only inhibit a true artist, and a painter usually has no idea at all when a masterpiece might come forth. So my answer to "Why is is so hard?" would be, "because it's art." And "why do we keep doing it?" "Cause we're artists, and people enjoy art."
i find it very cool
The absurdity heuristic is not a good way to decide what is true. People once thought that the idea of humans being descended from monkeys was absurd. Or that the earth going round the sun, rather than vice versa, was absurd.

Occam's razor is more sensible than the absurdity heuristic, but it applies to the fundamental building blocks of a theory, not to the outputs it predicts. So it would cut against a hypothetical unknown set of "balancing forces of entropy and order", since that's an entity not required by our current best known theories.
The US doesn't need them– but they'd love to sell them to other countries to recoup some of their costs. Too bad their pricing difficulties have pretty much ruined any chance of that working though, as Japan's already announced that they don't want them for more than the original projection.
I think you're spot on. Just as the personal computer and GUI brought "computing" to the masses for their use and massive scale return on investment, we need to see the equivalent innovation in programming components. In other words just as it's now easier than ever to edit movies, write a paper, polish a photo: we need to see this ease of interface brought to programming.

I know hard core CS types will say that making programming easy for the masses will mean it won't be fast, it won't allow for the optimal algorithms. However computing speed and bandwidth is rising exponentially and countless applications for software do not need to be as optimal as possible.

In the future people who are not programmers but who are one step removed (e.g. okay with spreadsheets, SQL, some basic scripting when needed, visual programming like Labview, and who understand software architecture) will need to be able to do more complex things with computers, things that today only programmers can do.

We need to see the separation between programmer and the technical creative masses disappear a bit. Or at least as tablatom says, there has to be room for two types: those who build the tools for easy programming and those who do easy programming.
Is it?

> meta name="generator" content="WordPress 3.0.1"

Was it hard to create this blog entry? Obviously he has a point but, in general, the abundance of predefined frameworks and libraries makes it easier to create "web sites and software". Fortunately for us (developers) at the same time user demands grow higher and higher. Web-Sites 'need' to become more dynamic, styled, responsive, ... simple CRUD 'needs' to turn into a 3-trier distributed middleware architecture.

tl;dr software complexity is a constant. Progress in easing development is compensated by increasing demands.
Web Directory Submission
A web directory or link directory is a web site submission service on WWW (World Wide Web) where a site is added to appropriate category in a web directory to create quality inbound links and enhance the visibility and popularity of a web site. The initial step of directory submission is to find proper web directories with its categories throughout the internet.
The title includes "suit".
In a word: curation.

Amazon is probably always going to be the most relevant search engine for their site, but the current choice for python searches may not be.

An example similar to python but that I have first hand experience with is Perl's CPAN searches. There are two search engines for CPAN, http://search.cpan.org and http://metacpan.org. DDG's !cpan originally defaulted to the first one, but at the time it's results were not as accurate or informative as the second one. Upon appeal the DDG people switched the default to http://metacpan.org providing everyone who used the !cpan results with what they felt was a better result.
That's outrageous self-glorification and utterly misleading. Software development qualifies as much as an art as other forms of engineering and most crafts do -- somewhat, at the highest levels, but generally not. Don't justify the shortcomings of current software engineering by nebulously labeling it a form of art.
Measuring online activism (please help)
I've found the video of him saying that at StartupSchool

http://www.justin.tv/startupschool/b/298808358

Seek at 9:30.
Building software is often compared to building houses. If civil engineers can design and create a very complex bridge or dam or whatever, and it keeps working for 150 years without breaking. Why can't us software engineers make software that will work without bugs for more than 10 minutes?

Problem is, the two aren't really comparable.

A while ago someone wrote an article that we are Software Gardeners not engineers[1]. And I think that comparison is much more apt.

Software is maleable, it can change, the layers of complexity build up so high it's impossible for any one person, or team of persons, to fully understand. Even the mathematical theory of software isn't fully understood yet, and yet we are piling those little lacks of understanding on every layer of the architecture ... they add up and things become monstrous.

BUT! This is a good thing. Software isn't a physical object. I want to be able to change the specs half way through a project rather than having to wait another 50 years to design a better bridge. This makes progress quicker.

As always, when progress is quick (and easy), it is also messy.

For example: it took builders thousands of years to invent The Arch and trully revolutionize the industry. It took software only a couple of decades to go from machine code to python.

Oh and never forget, the Turing Machine was "invented" in 1948. Our lives revolve around an industry the theoretic principles of which were first defined less than 70 years ago.

[1] http://chrisaitchison.com/2011/05/03/you-are-not-a-software-...
Do you have data to share with us on this point or is it a feeling/guess?
I think that's a tautology.

In my professional experience (I started programming 20 years ago and worked on my first 'enterprise' Java project 12 or so ago), software complexity has become much greater. If you look at just the different areas you need to be proficient in now to build 'enterprise' software compared to 20 years ago, it's insane.

What I think has happened is that experienced developers have constantly had to keep up with learning to account for this. I don't think complexity has stayed constant - we have expanded our skill set and knowledge to keep up.
Polo Bikini
Experience of a Singularity University course attendee
Based on past outcomes has it already happened? never heard of. Whereas despite its rareness there nevertheless are lottery winners.
> To boot, when constructing buildings, the methods are so well known that one person can design (the architect) and another person can build (the carpenter, plumber, electrician)

As an architect... easier said than done.
Visiting Ho Chi Minh City (formerly Saigon) for the first time, their Vietnam War museums reminded me of the consequence of a tactical advantage (like air superiority) in the context of a failed strategy (like invading without a good reason).

You lose wars.

The life and business on the streets there reminded me what happens when you don't invade for no reasons.

Capitalism flourishes.

At least from what you see on the street level, capitalism is doing better there than in the bailout-laden U.S.

Did I oversimplify? Of course. But until the U.S. shows some strategic intelligence like "don't invade countries without a reason" its tactical choices will always fail too.

By the way, they call it the American War there.
@blakehounshell (one of their editors) is very active on Twitter (and a great person to follow), so I passed the link to this along to him.

A lot of the stuff being loaded seems to come from their commenting system.
Yellow Pineapple Candle for Sale
How To Set Up Apache2 With mod_fcgid And PHP5 On Ubuntu 11.10
I think you might be underestimating how much custom code has been written by companies like twitter and Facebook, think php to c++ compilers, databases, rpc servers, log frameworks etc etc. even if all of the designs of all of that software was given upfront I doubt any small team could build it within a month or so.
I just assume they're funneling huge portions of that money into secret projects. How else do they get their hands on a spare $100 billion without anyone noticing?

Better to seem incompetent than reveal you've got a warp drive/time machine/transporter project.

I know it's kind of an optimistic view, but it does make me feel better.
You're assuming that there is actually someone walking around out there with a briefcase full of $10M that he or she intends to give to someone. At least with the lottery you know that someone is actually getting a lot of money.
> I think in my ~20year career, I've had only 3 projects that were specified well enough up front that we just "built it according to the plans" and had a satisfied customer at the end. Overwhelmingy, some (or most) of the design gets "made up as we go along". Even on projects with several small forests worth of up-front documentation, there's almost always large areas of vagueness or outright contradictory requirements, which need decision making on the developers part halfway into the job.

So the underlying development method, nowadays denounced as 'waterfall', wasn't sufficient? I am not an Agile zealot but change and 'knowing better' needs to be embraced during the development process and not ruled out.
Graham's number is VASTLY less than TREE(3), so you lose, actually. Graham's number is around A(64)(4), i.e., the result of iterating the number of Knuth arrows 64 times starting with 4 Knuth arrows, while A(A(187196))(1) is an extremely weak lower bound on...

The maximum length of a sequence of labeled trees, with 3 labels, such that the Nth tree has at most N nodes and no tree can be embedded in any later tree... this being the definition of TREE(3).

See http://en.wikipedia.org/wiki/Kruskals_tree_theorem
This is one of those classic ideas that's been around forever. It was more or less implied when the idea of "code reuse" became popular alongside object-oriented programming, I think. But I don't think it's ever really going to happen, because one of two things will happen. One is that you'll run into a set of requirements that no one has run into before, not because any of the requirements is unusual but because the space of possible requirements is very big if not infinite in size, and once you combine requirements that space increases exponentially. The other is that you'll run into a requirement that's simpler to implement directly than it is to write the glue code for all the components you could use to solve it. Both of these more or less happen already; the real question is what would surmount these problems.
I was toying with the analogy of "building things" vs. "building software" the other day.

I've always felt that comparing software with architecture, building a car etc. is what people naturally reach for since it's something they're familiar with in the physical world and much of the same terminology is used.

I don't think that software is at that point, though. Physical things "play nice" together because they are part of the physical world. Materials have characteristics that are inherent and don't need to be conceived of where as the way things behave and interact in software needs to be defined and constructed entirely by humans.

I guess one could argue that happens to a certain extent in the world of materials science but ... I don't really think it holds up.

I arrived at a point where I started to think of building software as writing a novel. Once you start to use that as an analogy, it doesn't seem so weird that it's hard and takes ages, because so does writing a novel.

In a novel, one must define the entire world, and one can make the choice of using/re-using story lines or doing something original. People that trot out formulaic drivel make better money than the tortured geniuses on average, but the few tortured geniuses that manage to hit, hit it big and serve as an example to all the others.

I kind of stopped thinking about it at this point and got back to work, but I think that using that analogy, things really start to make more sense ... what do you reckon?
Writing software is like writing books:

http://www.artima.com/weblogs/viewpost.jsp?thread=255898
I wonder what changes we might see if we insisted on teaching programming in the large upfront. For instance, instead of teaching 'public static void main,' we taught people about component oriented programming. This way, people are equipped with an understanding of the complexity involved.

I also wonder whether teaching practitioners to diagnose and identify what type of project one is dealing with might avoid blind spots when estimating projects. For instance, an LDAP project should be identified as an integration project, where one might have to deal with unexpected schema.

The real problem with software projects at the moment is we lack a proper framework to think about the nature of each project and therefore don't understand where the risks are, and properly advise clients.
The F-35 is causing the UK all manner of problems as well:

http://www.bbc.co.uk/news/uk-politics-17437272

Unfortunately, we're already commited over $10 billion to building new carriers for them.
Ask HN: How do you prefer to anonymously receive money?
In case you run an internet business where you receive payments but want to remain anonymous (therefore your personal Paypal account won't be adequate), what method/services do you use?

(ie: you sell items you'd rather not to be linked to you in any way. ie2: it's a grey area business, such as porn sites).

Please explain your use case (whether you do B2C and/or B2B).
Any advice is welcome... Thanks!
Do you mean I should stick with Ruby on Rails.
" … construction of software == writing code … "

In one sense there _is_ this part of "constructing software", and _largely_ it can be done by the software equivalent of stereotypical "construction workers". (This is what a lot of people who've tried outsourcing to India are trying to do.)

The problem is, while you can collect a pickup full of Mexicans who can lay bricks / hang sheet rock / tar roofs on most street corners in the south of The Mission, and they'll do a great job of it if you give them good directions - you don't expect those guys to be making architectural or structural decisions, or zoning or permitting or code decisions.

"Code writers" have to make those sorts of decisions every day - a current high-profile example is Marius Milner and "his" decision about what data Netstumbler should collect from the Streetview cars. One of the biggest software companies ever, having ethical/legal/policy decisions made by the coder-on-the-spot (at least if you believe Google's representations on the topic). Or Apple with Lion debug-logging clear text passwords for FileVault, and having it escape "into the wild".

The "architect" and the "civil engineer" and the "structural engineer" who have important roles in the world of building physical things, the guys who sign off on bridges or tunnels or even just-repaired airliners, the guys who put their careers on the line when they sign the paperwork, the guys with qualifications and certifications and often indemnity insurance to satisfy society that they understand the risks - for the vast majority of software/websites discussed here that's reasonably likely to be a 22year old college dropout aiming to be "the next Zuck". Even in small and medium enterprise sized businesses, those roles are largely thrust upon whichever developer seems to be good (and doesn't duck their head quickly enough). And if the shit hits the fan, they say "sorry boss, it seemed like the right answer at the time" (and hopefully doesn't get hung out in the press like it seems Milner has been…) (And the "big consulting companies" mentioned in the post I'm responding too, in my limited experience they often seem to want to make all the architectural/engineering/policy/ethical/legal decisions, then leave with their paycheck before the "codemonkeys" implement it all, and not be contactable when their "solutions" turn out to be incomplete/contradictory/impossible)

I _hope_ government regulation of "software construction" isn't the answer (at least not for software that'll just cost investors money when it fails, as opposed to bridges or airliners that'll kill people), but I think lines of responsibility and authority need to be more explicitly identified in many software projects, with appropriate authority conferred on the people burdened with the responsibility. Holding developers to deadlines without giving them the authority to adjudicate on them or be involved in the determination of them, is a startlingly common way to have your developers cut corners - and worse, feel entirely justified in cutting corners and convincing themselves they're "doing the right thing".
Protip: If you're using Chrome, just add 'cache:' to the beginning of the url to get the google cache of the page.
Is it just me or to be famous you have to have created a programming language or a text adventure in the 80s?
The price of something being "high" doesn't mean there is a market failure. It may just be an expression of customer preferences. If high roaming fees are used to subsidise cheap local calls and data plans, that may be a problem for EU officials who travel a lot, but it may be exactly what regular folks want.

The job of the competition commission is to make sure there is real competition, but what they have done is plain old price fixing. In this case, their actions make low income people subsidise the mobile life-style of high income people.
brilliant comment in the original post, just in case anybody missed it

"When I had my bathroom remodelled, at first I thought it was organized amazingly well and why couldn’t software be like that? There was a designer from Expo, a primary contractor and subcontractors for tiling, painting, etc. a project workbook containing all the documents, including the design, and a logbook for every contractor to record their visit. But it turned out to be just like a software project.

As soon as they started ripping up the walls, the painstakingly drawn design for the tub/shower was hastily and arbitrarily adjusted because the casing for an outside fire extinguisher was in the way. Many of the components turned out to be incompatible with each other and many were not the ones originally ordered (the bathtub was not even the one labelled on its box!)

Communication was terrible – the city inspector would tell the primary contractor to change something, and then a subcontractor would show up and ask me what he was supposed to do. When there was a disagreement about whether the tiling was done properly, one of the contractors disfigured the tiling to force another contractor to redo it. They all had other projects, so for long stretches I had a pile of dirt (for the cement) in my patio and a non-functioning bathroom for months. And toward the end there were some quick patches, e.g. the walls were slightly curved so edges of the tiles looked bad and they just painted the patches, which worked but cost me extra. And a couple of years later when the tub sprung a leak, the plumber couldn’t figure out how to get in there, said they must have done a shoddy job on connecting the pipes, then when he finally got a good look at it, realized why they did it that way. It was exactly like a software project!"
thanks for the link. I have never spent much time thinking about the ethics of the lottery and this was quite stunning.
Women's Soccer Jackets
This may be somewhat controversial to say on HN, but writing software isn't as hard as this post makes it out to be. Yes, there are disciplines in computer science that require a lot of effort, dedication and smarts to master, but the actual task of writing software isn't that hard. It can be frustrating, but I won't describe it as "so hard".

After all, you're really just describing to a machine, the idea(s), design or algorithm(s) you need it to implement. And we have languages, tools, processes, practices (etc) to make this task easier. Yes, it can get frustrating at times but a lot of other professions can be just as frustrating. By the way, if you think building websites is hard, you should try writing code to run on some electro-mechanical system, like a robot.