skysight-inc/HackerNews huggingface dataset:
One thing I've never really seen discussed is proving unit test coverage. Taking the clojure example above and its unit tests, nowhere does it make any attempt to show that the few test cases chosen provide a complete coverage of all possible bowling scores. Without that what have you really shown? Sure I can look at it and my gut feeling is, yea that should be enough, but I got that from looking at the OCaml code as well

In the blog post Brad Fitzpatrick is quoted as saying "Write a test. Prove it to me." Now maybe it's my maths background, but when someone say "prove it" a expect proof, and the bowling unit test example proves nothing more than that it works in a few common cases.

Yes I realize that proving anything non trivial in programming is Very Hard, but without any sort of reasonable attempt and even talking about this problem TDD seems more or less ad hoc to me.
Strikes me as an inaccurate exaggeration, but something like that. More like building on a fault-line or flood-plain.
Aside for a short stint with an agency in 2006, I do everything for myself. Photojournalism is a tough area, with opportunities shrinking, and (if you can afford it) it is best to do the work which genuinely interests you than pick up marginal assignments. Remember, old press is dying, new one is not anywhere in sight :)

One thing to distinguish is long-term, documentary work and current events. The latter is basically reportage, the bread and butter of news agencies and newspapers. On the former though, you can choose your ground and take your time.

I start a project with pulling all information I can from the web: saves time on the ground. Names, history, maps, prior works in this area. If necessary finding the initial contacts. Over there, it's approaching people, asking questions (not necessarily identifying yourself as a photographer), you can get a lot of context just from casual chit-chat. Good thing is that most people love being heard, so give them all attention you can. Start a neutral conversation, listen, nod, let them pour out: very few people are generous listeners, so your attention will be appreciated and you can ask the questions you want afterward.

In case of hot events, various police and security troops are a major challenge and great test of your social skills. There it's best if you can start small, attending fenced but calm events, just to get the gist of unspoken rules, protocols and routines. Obviously you can't generalize this worldwide, but. Be attentive, observe police, observe protesters or other people interacting with law enforcement, see how much can work with them. Read faces, in case of militias face is a good indicator how much problem you are going to have with a given person. If he looks like a scumbag he probably is. There are weak points in most of cordons and often ways to sneak past fences. It is best if you stay calm, neutral, and project confidence; especially confident, you can pull nearly Jedi-like tricks with it. Do not insist on eye contact but do not avoid it either. Don't smile, it shows your weakness and reduces your chances to successfully communicating with people in power dramatically.

It may sound hard but the skills build up quickly once you start doing.
I know which I would like to maintain.
There was a nice paper a few years back suggesting essentially the same thing as a method for detonating other people's nukes:

http://arxiv.org/abs/hep-ph/0305062
Intelligent people often dismiss Robert Martin's writings because he has very extreme/condescending opinions about programmming without having the hacker cred to match them. (See 10ren's post above for an example of his condescending attitude and an extreme opinion).

Someone like Linus Torvalds can pull this off, Bob Martin, not so much. Linus nearly always has good reasons for his stated beliefs and agree or disagree you can see why he says what he says. Also he is an acknowledged uber hacker. Bob Martin does write code(Fitnesse) unlike most other agile "guru"/consultant types, but it isn't really anything extraordinary (which is all right, as long as he doesn't presume to then teach other people how to program "correctly").

It is interesting that a great hacker like Peter Norvig is modest and unassuming and chooses his words carefully, as does Knuth for example, while people like Ron Jeffries and "Uncle" Bob say outrageous things with nothing to back them up but faith in their ideology .. err.. methodology .
This isn't a blanket solution, according to this interview that's what Netscape did and it killed them:

http://www.gigamonkeys.com/blog/2009/09/28/a-tale-of-two-rew...

On the otherhand in that scenario the incumbent product was successful where the acquired company wasn't, which is probably more the reason why it was a disaster.
Very good Post and i love to share to all of my friends..
Thanks http://www.gethomesolutions.com
I wonder if it still runs under Java 1.0.
The Story of Jeff Bezos’ Investment into Google in 1998
it seems they got rid of java pretty early, fortunately.
Minus the fact his ( Wil Schroter ) article is littered with links to his own sites he has made which makes it slightly of a big subliminal ad. Im going to assume a lot of his claims come from these very sites he links to.

Wouldn't it be nice in an ideal world if he and countless others who churn out these types of articles. Backed it up with stats on the incomes etc. I know im asking the world there. But it would help give them credibility and won't leave you or I wondering, is this just copied and pasted or is this something HE has actually done.

Lead Gen:

Anything which doesn't compliment the site is going to irritate. So with that in mind, I would imagine this train of thought will actually help you lead to creating business partnerships with other companies, websites.
I'm a former submarine officer. Submarines are much more concerned about receiving key messages from their commanders than they are about sending messages back. Eliminating trips to periscope depth (the most dangerous activity a submarine does consistently) would be a Very Good Thing.
His enterprise applications patterns book is superb. An excellent reference to have to hand when you're planning a system. And because it's all written down, you can point to it for substance underneath your decisions when you get skepticism from straight line programmers who just want to start coding without getting excited abuout structure.
I'm of the opinion that Agile(Big A) is very useful for creating a system between companies. When something is an agreement between companies you need some agreed and consistent method of working out what happens when and enforcing that afterwards. Agile is much better in these circumstances than waterfall.

Comparatively, in a startup or internal development project in a software company there is much more of an ability to not deliver a particular feature or spend more hours on it.

A startup is likely to find Agile far too slow; whereas, corporates are scared by how fast and fluid it is.
AskPG: Where'd my downvote arrow go ?
I've been a participant in the HN community for a couple of years now, and I noticed a few months ago that I no longer had a "downvote" arrow available to me on submissions and comments.

Whilst this is not the end of the world (as I generally prefer to upvote anyway), it would be nice to know whether this is a deliberate site policy (based on some kind of criteria), or a bug ?
The plural of anecdote is not data, but when I worked at ThoughtWorks, Martin sent me some code to look at. It was very clean OO code (very smalltalk-ey in design and form, thought it was written in Ruby). The man can code well (not to the level of say Peter Norvig, but then not many of us can) and competently and is very sharp and when he gets hands on, solves problems fast.It is true that he doesn't have any code online where we can look at it.

Another admirable trait I've witnessed is his willingness to say "I don't know" when asked questions outside his circle of competence. He often says it very bluntly (which has caused some heartburn to some ThoughtWorkers once in a while, but that is another story).

His "Enterprise Patterns" book is very useful for anyone working on enterprise software. I believe DHH was influenced by the book when he was hacking Rails.

His upcoming book on rich gui apps seems promising too. Also he doesn't make outragoeus claims or adopt a condescending atitude to programmers who don't work the way he does/advocates (unlike say Robert Martin). I wouldn't dismiss him as a "know nothing" talker/blowhard.

As I said, just anecdotes. Make of them what you will.
I was simply curious, thanks for digging in :)
New mobile phone runs on alcohol fuel cell
So the general conclusion, from various programming legends, seems to be:

• (semi-)automated testing for any complex code: essential

• unit tests for any long lived code: great

• TDD (writing the tests before the code): good in theory but alien to most folks

• tests speed/slow you up/down: open question (though it would seem logical that there will be certain projects that benefit more than others, e.g. the longer lived the code the longer you can earn "interest" on your initial "investment")

Yet there still seems to be a general reaction here of "I'm too smart and/or busy to write tests" and the corollary "Anyone who writes tests, or advocates testing, isn't a good programmer".

Seems a strange disconnect.
I interpreted "Apache compile" as "a compile of Apache ['s httpd server]".
I expect the limits were raised: I seem to recall it used to be 50 karma (to downvote) when I joined. Im guessing it got bumped.
I was amused by his comment on Knuth:

"So Knuth too disagrees with the notion that unit testing always makes you go faster. Maybe he too is living in the stone age."

This follows him describing writing a program, in pencil, in 1977.
Between arc3 and arc3.1 it was raised from 100 to 200.
What he's describing as "good agile" deserves a different name. I'd call it "fluid" because that seems like a really close metaphor.
I want a pair!

But...

Could this be an example of media hype? What do you mean?

Well, as already mentioned this is not the first time an article has appeared on the HN. Not a bad thing. But lets look a little closer.

Like him or hate him Tim Farris has reviewed these. I used to like reading his blog until I couldn't help feel 90% of his stories were there to push you to buy something ( Lead Gen, no less from another article in the top 30 today ) or left you wondering if he was paid to write that story.

The New York times has ran at least two articles related to these shoes.

Wired has an article and a review.

There is a chance that they are being discovered on the merit for what they may or may not be. I don't live in an english speaking country. Equally I am a huge running fan. I am yet to see any here, not even in boutique shops. ( Oslo Norway ) So I wonder how these amazing shoes are only being discovered in mainstream tech ( type ) sites which are aimed at a particular market.

So I googled it a little.
"vibram site:news.bbc.co.uk" - 0

"vibram site:guardian.co.uk" - more than 1.

Interestingly they first hit the guardian end of 2006.

"vibram site:dagbladet.no" - 0 ( main norwegian site )

"vibram site:abc.net.au/news" - 0 ( australian site )

menshealth ( us site ) - 0

menshealth ( australian site ) - 0

Clearly my searches are small subset of places I like to read, yet for me it does hold some validity that this could be "new media marketing".

Would love to hear if any of you agree or disagree and why?

Equally would love to hear how as consumers we can read thru the lines of "hidden marketing" and "real" reviews.
Toddlers develop individualized rules for grammar
Tips for junior programmers
> Pownce's failure had very little to do with it being "Twitter-like". It failed because it didn't solve a problem that real people had.

Tell that to Facebook, whom basically added all the features Pownce had (event invites, sharing files, etc) after realizing it was a great idea.
"(semi-)automated testing for any complex code: essential"

Where did you see this idea in Coders At Work? Most of them say testing is important . Most of them don't say "semi automated" testing is "essential". So where is your perceived "consensus" of programming legends coming from?

or this

"TDD (writing the tests before the code): good in theory but alien to most folks"

for that matter? Sibel mentions 5 developers in his blog post - Zawinski, Knuth, Norvig, Bloch, Armstrong. I didn't see anyone saying "good in theory but alien to most folks". Only Armstrong says he regularly does (soemthing like) "test driven", but if you read his interview he also says he spends a lot of time doodling and getting his abstractions right before coding, hardly the "YAGNI" style of coding and theory of "emergent design" propounded by most agile consultants.

Who in CaW do you think concludes either of the two statements you put forward as "general conclusions from programming legends".

Or are you saying Robert Martin and co are programming legends? Bit hard to justify I'd think ;-)

You say,

"There still seems to be a general reaction here" .. "I'm too smart and/or busy to write tests" and the corollary "Anyone who writes tests, or advocates testing, isn't a good programmer"."

The former " I am too busy to write (TDD style) tests" is a justifiable argument in certain circumstances (Zawinski says as much) and the latter "Anyone who advocates testing is a poor programmer" is something I don't see anyone here saying. Who said this? Links please? And if someone did, why do you think it is a "general reaction"?

fwiw I see the evolving consensus here ) as "writing unit tests is valuable in certain circumstances (and not so in others) as long as you aren't fanatical about them" and "what is important is not the methodology but the end result".

You seem to be putting forward your beliefs about the value/validity of TDD/testing etc as the "general conclusion, from various programming legends". I am curious as to how you came up with this apparent consensus.

Don't get me wrong, you certainly have a right to your conclusions. I am just saying the CaW interviews and the posts here don't seem to converge to a conclusion along the lines of you say they did.
Prof Steve Keen FTW
http://www.debtdeflation.com/blogs/2009/09/27/it%e2%80%99s-h...
You're Asking the Wrong Question About Virtual Appliances
I thought it might be some kind of limit like that - thanks for the info.
How to Get Your Projects Under Control
Virtual project management can sometimes lead to extremely real trouble, which is why your job as “online project manager” even exists. Online collaborations can crash into crisis, and with employees in different cities (or even time zones) there are unique challenges involved with web-based project management.
Windows Mobile 6.5 Review: There's No Excuse For This
UK military converting waste to energy
Things You Need to Know in Applying for Loans
Looking for different kinds of loans, help people with their financial needs; personal loans, student loans, credit loans, car loans, and even mortgage loans.

<a href="http://www.your-24-loan.com/23/things-to-consider-for-loan-applications/">Personal Student Loans</a>
Mike nice thoughts? have you got a blog?
Why Parents Should Involve Kids into Sports
Learn about sportsmanship, sports book, qualities of excellent sportsman, sports warehouse, all online sport news and sports gear

<a href="http://www.your-sportsmans-warehouse.com/?page_id=18/">Online Sports News</a>
An inteview with Brian Kernighan, co-developer of AWK and AMPL
My History of Visual Studio (Part 1)
“…There was no business plan…They had a vision. It was a customer-focused point of view.” And more tellingly he adds, “I just fell in love with Larry and Sergey.”

echoes PG explanations for some of his choices (in YC applications) - investing in people rather than their (first) ideas.
Alternative Engineering
Microsoft's Windows phones hit the market
This is magnificent. I imagine decades from now, web archeology will be a true academic discipline.
Apple Isn’t Even Bothering To Lie Anymore
I found this in the preface to "my" [1] book:

> In addition to my coauthors, many other people have contributed to the success of this second edition. Clif Flynt, Jeff Hobbs, Brian Kernighan, Steve Landers and Mark Roseman all spent significant time and effort on critiquing and improving the technical content.

gulp. I hope I didn't come across too badly. My portion of the book was about Tcl's C API.

1) http://journal.dedasys.com/2009/09/15/tcl-and-the-tk-toolkit...
You may be a Markov chain
This just got killed. Why resubmit it?
Laptops are perfect for the couch. Watching TV is easy; your laptop screen and TV are on the same plane so it is easy to go back and forth between the two. Laptops sit nicely on your lap (Think that is how they got there name), unless you have a thinkpad like mike that operates at 200 degrees.

Chasing another input device like a point would be a pane; Sticking your hands between the seat cushions for the remoe is bad enough. Now I would be chasing a tiny plastic pencil everywhere.
Why the real power of Twitter is in search
FounderCast Episode 2
In this episode we talk about distributing software via social media and methods of gathering feedback from users. Paul Hake talks about his experience distributing games via Facebook while Chas Emerick talks about forums versus "old school" phone support for his customers.

Let me know what you think.
I got all this directly from the linked article:

Zawkinski: created automated tests for a complicated corpus of quasi-standard email headers that he triggered manually. When he rewrote the mailer in Java he unit-tested because it was easier in a Java OO environment. He says there's specific areas where unit-testing would have sped them up, but that they were under so much time-pressure, with short-term ROI horizons that they didn't bother, they just went with the gamble of "getting it right first time". If they had more time then unit-testing was "certainly the way to go". He specifically states that they traded quality for a ship date.

Fitzpatrick: Does "a lot of testing". Tests anything half-way "clever" because others will break it. Forces people who work for him to write tests. "At a certain point, people realize, “Holy crap, it does pay off,” especially maintenance costs later."

Joshua Bloch: automated testing of transactional shared-memory with a "basher". When it failed at high concurrency he had to use unit tests to locate the bug, which wasn't in his code but the underlying Solaris assembly code. This was early 90s and he implies that finding a bug in such code today would probably result in the engineer being shouted at for inadequate testing, though perhaps not in concurrency areas as testing those is still an "art". Argues that writing an API before the code, which he does, isn't technically TDD though I'd say it's in the same ballpark.

Knuth: is "a fan of after-the-fact torture tests".

The blog author interprets the other comments as anti-TDD, though they seem unrelated to me.

Joe Armstrong: Actually does TDD.

Norvig: "I think test-driven design is great. I do that a lot more than I used to do."

I don't understand how you could have come up with a different reading. The originally post seems to be half-heartedly questioning TDD (without much support from the quoted sections), but that is on the far end of a continuum that has automated tests, then unit tests, on the way towards it. Which I thought I made clear with my list where the near end of that spectrum (automating tests for complicated areas) is better supported than the far end (TDD according to the book). Many responses I see here seem to reject testing entirely.

(edit: just to be clear when I say "automated" I mean they wrote a program to test their program. It doesn't necessarily mean that they run it on every change, or check-in or whatever. I just mean it runs and says: pass or fail without a human being having to examine the output, though that output may be helpful when it does fail.)
I haven't read the original book, but from what I can tell from this article, at least part of the general theory is about explaining why there is less than full employment and income inequality. As far as I can tell, you are calling the entire theory crap based the author's desire to create full employment and income equality. I'm not sure Keynes wanted governments to try for this or not, but at there seems to be at least two separate parts of the theory to evaluate.
It's not too bad. At least you avoid recessing bugs.
Diagnostic Styling
Ask HN - Why was there ever, fork() ?
Hi everyone. I'd like to please figure out something that I don't quite understand. Why did we ever have the fork function call?

Back in my youth when I was first taught the fork call, I got how how it worked, two copies of the process return from the function call and they both continue in parallel. The only thing that was bothering me was the long list of caveats my text book discussed.

It told me that a copy of the process was made, except for file handles, and that the memory wasn't really copied until one of the two processes tried to modify something. It seemed all terribly complicated but I figured there was a good reason for it that I didn't yet understand, grasshopper.

Time passed and I started working in embedded systems and later coding for Windows. I never used fork beyond those juvenilia programs I made. These OSs started new processes by passing an executable filename to the OS and telling it to start a new program. That new process started with a clean slate, no memory, empty stack, no open file handles except stdin/out/err. Simple.

Now, I've just been reminded of the fork call in Unix, and I'm prompted to ask; Why was it ever there? Who wants the ability to do a fork when simpler ways of starting a new process exist.

Nearly all the uses of fork I've seen are usually followed by an exec call. So the OS goes to all that trouble setting up a duplicate process only for all that hard work to be eliminated by running exec.

Even when concurrency within a program is needed, the thread model seems far more useful with a lot less complications.

So please, I need to know, why fork?
I'm a UK citizen and I apparently have none, because I requested for me and Don Simpson (the deceased film producer), and they only said 'No file on Don Simpson' - didn't even say 'No file on [Zandorg]'.
From the P-P-P-Powerbook prank website:

3) Finally, and most disturbingly, Jeff was not heard from again. I personally e-mailed him for permission to run his story on ZUG, but after an initial response, I never heard from him again. All of his Web sites have come down, and he is nowhere to be found.

...
Next world war could start online
Why Google Chrome and FireFox are a big security risk for anyone using them
fork() is commonly used where you want to communicate to the sub-process using a pipe. Given how common piping from one process to another is in Unix it's not surprising that fork() was implemented (nor that fork then exec was common).

It's true that Windows tends not to use this paradigm, but it is common in the Unix world specifically because of the simple ability to share file handles between a parent and child process. And also the parent and child processes share most everything else (for example, they have the same environment settings).
You should have a look at QuickCheck. It's a Haskell library where you (more or less) specify laws that your program should satisfy, and it generates test cases on its own. I found it very useful.
Interesting how being on the cover of a book about a language gets you to be co-author of that language in the eyes of lots of people.

I certainly fell for it, until this interview I had no idea!

By the way, the http://en.wikipedia.org/wiki/C entry in wikipedia now only has a link to the C# language, not to C!
To learn how to improve your luck, join me, via web conference, on Thursday, October 8th at 10 am PDT / 1 pm EDT as I review the key success factors in successful private equity investing.

Spam. Flagged.