skysight-inc/HackerNews huggingface dataset:
I think this is going nowhere but, some points:

I assume that anyone who does TDD thinks unit tests are a useful tool, and that anyone who uses unit tests thinks that automated tests are a useful tool. That seems logical.

Regarding thinking about the API, that's not "thinking about the code", it's thinking about the code that's going to call the code. Unit tests are also code that calls the code. Orthodox TDD theory claims that by writing code that calls the code first you are in fact designing good APIs. Seems related to me.

JWZ's comments on speed are all over the map, probably because he's not talking about sustained speed of development, but a very short shipping deadline based on market forces. A sprint versus a marathon. I think his comments strongly support unit testing in the marathon case (which surprised me based on other things I'd read).

If you have to do something because nothing else works, I'd call that "essential".

Regarding TDD, which seems like the real sticking point, as opposed to unit-testing or automated tests. Two of the six actually claimed to do it personally and like it. Two of the others seemed so enthusiastic about unit-testing that TDD didn't seem like a big leap to me. One designs APIs by considering calling code first, which as I said above, reminds me of some elements of TDD. The last one was talking about writing code in pencil. It didn't seem relevant, though the blog poster thought it was.

I didn't say they did TDD, by the book, 100% of the time, or that they thought it was suitable for every task. But if someone actually says they do TDD then who am I to argue?

I intially commented mostly because of the dissonance caused by the article quotes being very pro-testing, and even had two people flat out claiming to do TDD and yet the overall tone of the original post commentary was anti-TDD, and many comments here (and in previous related posts) were anti-testing in general (not specifically TDD, which I believe the true faithful don't even like referring to as "testing" since it's actually about "design"). That anti-testing feeling seemed to be drawing inspiration from these same heroes, who when I read their own words, struck me as very upbeat about testing.
Passion projects
Teach your kids to follow their passions (inspired by PG)
Nobel recognises communications
"There is almost no mention of inflation in The General Theory"

Combined with the apparent lack of explanation for bubbles, doesn't that meant there is a gigantic gaping hole in the entire theory?

I don't quite see why The General Theory was enough to convert Posner to Keynesianism.
fork() by itself - inelegant. fork() - do ARBITRARY stuff in child process - exec(), now that does all kinds of things that a spawn()-type process creation cannot do.

fork() allows the ability to do anything before exec(), setting up lighter-weight process creation, and whatever flexibility the programmer desires.

I'd turn it around: why do the designer's of spawn() or CreateProcess() think they've got the foresight to cover all of the bases for programmers? Why don't those systems do fork()/stuff/exec() to simplify?
Designing typographical wallpapers for iPhone
I don't follow how you leap from non-absolute morality to dictatorship and otherwise capricious application of the law. I see the application of the law, its mechanics, as completely independent of morality. The actual content of the laws, yes, they are subject to conceptions of morality, but not their application - in so far as we aren't arguing the meta point of laws that govern application of laws.

Rule of law vs rule of [a] man, I see as an obsolete dichotomy in modern democracies. I think it's clear to everyone that capricious rule on whim by a single or handful of people is tyranny. I don't think you get there from moral relativism though.

As to judges interpreting law differently, well, that's unavoidable and in many ways a desirable feature of the common law system. As society changes, and views certain acts more or less harshly than others, the interpretation of various laws can change, setting precedents that become new laws indirectly. It's messy, especially when it's political, but I don't think there's an alternative. Lawyerly language as it is tries fairly hard to be unambiguous, but it's not machine code, and the law isn't as precise or as formally defined as a machine - and nor would we want it to be, since we aren't perfect enough to program it, and the world has too much ambiguity, too many unknowns - and unknowables - to produce certainty in judgements at all times.
Hey fogus, reading 'Coders at work too ?' :)
New York City Wants You to Create an App For That
I tried Vibrams on a day hike up a small mountain with my brother. We walked quickly the whole way, breaking into a jog a few times. The mountain was rockier than I'd expected--about 80% of the trail was midsize to gigantic rocks. I didn't break any toes, but I did have very sore feet for about a week after that.
And his "Tips for web designers and developers" seems to have copied from here: http://blarnee.blogspot.com/2009/09/10-professional-tips-for...
Retrieve and aggregate profiles from across the web with javascript
In the end we come down to an unfruitful debate on the distinction between 'idea' and 'execution'. If you've got every last detail for a website planned out in your head but nothing implemented, that's still an idea, not execution.

In my opinion it goes like this:

* A bad idea is less than worthless

* Unoriginal good ideas are worthless

* Original but vague good ideas are worth very little

* Original and detailed good ideas are worth a lot, but still useless without fantastic excecution too
Liby: A Lisp interpreter in Ruby
I used to live by the "revealing module pattern", although I didn't know that's what it was actually called. Currently, I do something along these lines:

var MyObject = function() {

var _obj = {}

var privateVariable = 'foo'
var privateMethod = function(){}

_obj.publicVariable = 'bar'
_obj.publicMethod = function(){}

return _obj
}()

To me, it makes the separation of public and private methods and variables easier to observe.

Also, an unrelated note: I've stopped using semicolons round about 6 months ago and have never looked back. It makes my life simpler, I'm happier, and my sex life has never been better.

EDIT: Removed syntax error (the "var" in front of "_obj.whatever")
If you reimplement Windows in Unix, it's unlikely to be more elegant. The question is if that would be a good idea.
ISPsystem.com Forums - View Profile: privatepr
Rethinking B-tree block sizes on SSDs
Credit Card Loans
Plan 9 still is in many ways the most interesting thing to happen to the world of systems design after unix.

It deserves more attention.
The Nobel Prize in Physics 2009
Don't forget that fork predates not just threads but virtual memory so cloning all of the volatile memory of a process was really cheap (because there was only a few K of it). Look at the source code for fork in Lyons book on the version 6 kernel and you'll see how simple it used to be.
Well, decision making doesn't appear to be too strong. After all, they did just post this to HN
Why is fork by itself inelegant ?

Text editor, hit 'save', editor forks, saves in the background and quietly exits, no matter how long the save will take. Meanwhile the user continues to type in more text in the foreground.

Just one example.
No idea - I'm not officially an author (I'm a contributor, I suppose; I don't recall the publishing term), not in contact with the publisher directly, but more than anything, the book just came out in September! So it's early in any case. My guess is that it won't sell that much as Tcl and Tk are, sadly, not so popular these days.
You make it sound so smooth and slick, and yes, having the child have all its state all ready and set up sounds like a good thing.

I suspect you are talking of using concurrency within the same program. The competing technology would be shared memory threads, of which I am more familiar. The only downside of this approach compared to fork seems (to me) to be the requirement to lock and signal when accessing shared resources.

Is there a downside to using fork within a process? Shirley if you've got a copy of memory (even if the actual copy is defferred) don't you also inherit the baggage of managing those resources too?

Lotsa questions there. Thanks for your original candid answer.
nice... except for the semicolons... i guess you're not minifying your code afterwards?
Who's voting this up? Did you actually read this drivel?

The second solution is dealing with the creation of a singleton, which means creating an object and assigning values (e.g. functions) to its properties.

???

JavaScript is object-based rather than object-oriented. In JavaScript, you just need to call the constructor function of your (custom) object with respective parameters to create an object.

You just have objects with properties and methods that you create by calling functions with parameters. This is not object-oriented due to some crazy reason I'm going to make up right now so that JavaScript seems edgy and cool. It's not a stupid language, man, you just don't get it!

As stated above, this pattern is not that handy here, but consider a situation when there is some heavy and complex computing involved. You certainly do not want to do that each time the function gets called. Peter calls this kind of function definition a “promise”

Yeah that's not a thunk, it's a Design Pattern. Also that's a really stupid way to execute it, bro.

I like how this basically works its way through ever more obfuscated "patterns" and arrives at "Revealing Module Pattern" with an incomprehensible tangle of object properties and initialization methods. The first, straightforward way – which he wrote to try to parody as "oldschool" bad style – is the best way to do this here, though he assigns properties on objects needlessly and uses 'this' without a good reason. The rest of the examples are like a joke.

Actually, reading this again now, it's pretty hilarious. Maybe I'll vote it up, too.
actually, the latter 1/3 of my post was about exactly that point. sorry if you missed it.

and while likely more than half of all acquisitions don't actually "work", enough do to make it worth doing.
You talk about life? Evolution can be mapped onto a search strategy -- hardly equivalent with "accident", as used in the GP.

(Also, flight evolved multiple times. Just consider birds, insects and bats.)
fork() is great when you're writing a service. A pattern that I've used repeatedly is:

- The initial process reads in configuration files, sets up an environment, and opens a listening socket for the service. It then forks several times to create service processes. From this point, the initial process' only job is start new service processes when/if they exit or when load increases, and to shutdown the whole service when told to.

- The service processes run in a loop waiting for requests to come in on the socket, which they all share. The service can handle as many concurrent requests as you've got service processes, and they all operate independently. Thanks to copy-on-write, they all access the same configuration information stored in the initial process' memory. When a request comes in, the service process accepts it (which creates a new socket) and does some initial sanity checking to make sure it's a valid request, and then forks to create a handler process to actually process the request. It then goes back to listening for requests.

- The handler process is the workhorse. It gets the connection socket from its parent, and it's still got access to all of the config info. It's an independent process, so it's free to do whatever it needs to, without risk of impacting the continued operation of the service. Once it's done handling the request it can simply exit, freeing up whatever resources it consumed while handling the request.

In this pattern, the initial process and service processes have very simple jobs and very little code, which makes them easier to make bug-free and robust. Having lots of independent processes instead of threads adds robustness, because a crashing process can't take down the other processes in the service (unless it takes the whole machine down, of course.) This is rarely a problem in the initial or service processes, but the handler processes are exposed to the world and are much more likely to encounter unanticipated input, so they're the hardest to make robust. With the pattern, they don't need to be as robust, because they're allowed to exit unexpectedly without harming the service.
>> I've stopped using semicolons round about 6 months ago and have never looked back. It makes my life simpler, I'm happier, and my sex life has never been better.

This sounds pretty dangerous to me. Crockford has this to say http://bit.ly/r9EZO about it.
sorry you feel that way, but i'm actually quite proud of those posts... to each his/her own i guess.

for me, both entrepreneurship & technology are about passion. to remove that passion from my writing would seem to miss the point.
Ident Engine discovers and retrieves distributed identities
I think that I would at least want to take a deeper look. If I am a first-time entrepreneur making the jump, the community part is helpful to me.
Maybe it's a startup business although if it's a 'rate my startup' post they probably should have said so.
fork() is strictly superior to an API like Win32 CreateProcess(), because it can do more with less.

Processes normally inherit lots of context from their parent: the user identity, the window station (Win32-speak), security capabilities, I/O handles / console, environment variables, current directory, etc. The most logical way to inherit everything is to make a logical copy, which is very cheap owing to memory architecture.

Because of this things that would normally need two APIs, one synchronous and one asynchronous, can be programmed easily. If you need the synchronous version, call it directly; otherwise, fork and call it, and wait on the pid (at a later point) if necessary in the parent.

And I rather vehemently disagree with you saying that the threading model has less complications than the process model. I believe there's almost universal agreement that the problem with threading is mutable shared state, and the process model avoids it.
The author makes a telling comment about how "worker-bee" programmers can be reassigned that displays the same contempt for developers as the managers who call them "resources". Call it a pet peeve, I guess.

One other factor to consider is that if a company were to do multiple acquisitions and consistently behave this way (immediately lay off every manager of the "losing" internal product), it would likely create a not-very-healthy culture of fear and opposition to acquisitions.

That's not to say, of course, that underperforming managers should get a break "just because". Rather, it seems reasonable to say that their performance and future roles should be re-evaluated along with every other affected party's - and yes, they probably shouldn't end up leading the newly acquired team a la Collabra.

(Keep in mind that sometimes the internal product's lack of success is quite often due to senior management's decisions... the same senior management that makes the decision to acquire).
This seems like more of a technology award than a Physics award. How long has it been since a pure theoretical physics Nobel has been awarded? Doesn't that say something?
> Forking predates threads.

Suddenly, everything becomes clear.
Here is a use case... We have a shell that must execute

$ cmd_a | cmd_b | cmd_c

The simplest way for the shell to accomplish this request is to fork itself multiple times. Doing so without fork would be difficult. I figure since multitasking and pipes are old as eternity in the linux world, fork must have been an early necessity and this use case might have something to do with their prominence but then again I am just guessing.
Javascript library for retrieving and aggregating profile data
I tend to use minified libraries (JQuery, effects libraries, etc), but unminified application-specific code. Been burned too many times having to root out some obscure error on the live server, and not being able to do so because of minification.

However, I've never had a problem in the cases where I have indeed minified unsemicoloned code. Has anyone else, or is the problem just theoretical? If others have encountered an actual problem, I might have to rethink this strategy for larger codebases.
Last but not least, Windows carries a bad reputation in terms of reliability and security.

Isn't the bad reputation of reliability and security there just because it was a dominant platform?If you get down to it, most security breaches were possible not only because of a bad platform but mostly because of bad configuration.People set silly and weak passwords. Don't configure there firewall enough and things like that. And because windows was one of the dominant platform all the crackers used to target them as that would get them access to more machines. As for UNIX, its a very strong platform in terms of security but if not configured well it would be as vulnerable as a WIN machine.

But I also except that a ill configure UNIX machine is still much safer than a WIN machine (just based on my readings I am no security expert).
What's up with google search lately ?
I've seen a disturbing trend in the search results returned, it used to be that if you search for A B C that both A, B and C were present in the results.

Lately I'm seeing more and more occurrences of results that will contain A & B, A & C or B & C.

Is it just me, am I hallucinating or is google really changing the default search from AND to 'mostly AND' or even 'OR' ?
No death penalty for suspect in bombings of U.S. embassies
The Tanzanian national indicted in the 1998 terrorist bombings of the American embassies in Kenya and Tanzania will not face the possibility of the death penalty, according to a letter issued by U.S. Attorney General Eric Holder on Monday.Holder's letter directed U.S. Attorney Preet Bharara "not to seek the death penalty" against Ahmed Khalfan Ghailani. CNN obtained the letter from the office of the U.S. Attorney for the Southern District of New York.
Well, it is certainly the UNIX way. Have many simple tools that do simple stuff, plus the ability to combine them for doing complex operations, rather than few complex tools that do complex operations directly.

I'd say it is more elegant design, whether or not it results in smaller or more elegant code.
Seriously, ModelForms are pretty much the greatest thing since sliced bread.
Yeah, I saw that too. Too bad it seems like it was ~15 hours until Amazon checked an interface and saw the high utilization.
There are any pitfalls in Flash development when it comes to performance and some of them are very difficult to keep in check. With the right knowledge and using a few tricks, Flash can be blazing fast. However, a lot of Flash developers do not come from a programming background, so it happens too often that they don't have the knowledge to master Flash. It takes a while to learn how to properly handle things like garbage collection and memory management (partly due to Adobe's documentation being sloppy as well). If all you do is "hit the bug" banner ads, it is unlikely that you have the time or the need to dive that deep.
The article was written 3 years ago, so I'd be very curious to hear how much of that still is accurate today.
Im not sure I agree.

Unit testing is about code being to a specific standard (i.e. that API works like X or like Y).

Surely your referring to Fuzz testing?
Scott, I will put you on the list - I expect this to start before 2010.
Im glad someone else has noticed this; I thought I was just being picky the last few days.

Ive been seriously struggling with my Google fu recently for this reason.
i know, google chrome installer took what, 2 clicks?
Women in programming
College Camp
Going to college for a vacation...
NYC BigApps Competition – $20k In Prize Money
Advance Insurance
Shopping with Advance Insurance helps you to get the best coverage possible at the best possible price.
My mom always told me that I had a limited supply of semicolons in my semicolon bucket, and to not waste them on languages where they aren't strictly required.

Now, maybe she was just joshing me... but I'm not taking that chance.
Ask HN: Review my multi-programming language teaching tool
I have been working on a project that started when I was in university. It is a tool written in C++ using Nokia's Qt. We named it WizBang.

WizBang makes learning and teaching procedural languages such as C, C++, Java, Python, etc. easier by constructing programs using blocks.

Users build programs visually, which they can run and view output from inside WizBang. But, WizBang's greatest feature is that the user can compile their WizBang program to real and valid code in many different procedural languages.

Downloads for Windows and Mac OS X, as well as the source, are hosted by sourceforge:

http://sourceforge.net/projects/wizbang/

I make zero money off of WizBang, the source is GPL'ed, I hope no one sees this as an attempt to peddle. All comments and feedback are appreciated!
NYC BigApps Opens Today
Google Wave: a few tips for brand new users
On the subject of fork() and exec I have used that in the past so that the parent and the child can share I/O - thus allowing the parent to monitor the exec'd program more closely.

In the end I gave it up as a lost job; whilst the general idea of fork() is appealing we found much "better" ways for fine grained process control.
I vaguely (possibly incorrectly) recall that fork is the only way to create a new process, and that, no matter what system call you use, deep down, it still needs to call fork().

Someone with a better memory may correct me.

I'm not sure if this holds true for Windows though.
This has got to be spam. The username has SEO in it and this is their only post. Not a good sign.
And that list doesn't mention his contribution to quantum theory, that he laid the foundation of mathematical quantum theory !

He was a true genius in all senses of the word !

http://plato.stanford.edu/entries/qt-nvd/
Agreed. I think message quality would be highly significant, because black males (not to generalize or anything) are much more likely to use netspeak such as "yo" or "wut" that we learned earlier were response killers. Of course, maybe the reason women don't like these words is because "yo" is a "black" word.

I didn't even think about the money thing, but we do know that women care an awful lot about it. Who knows; a lot of the blatant racism towards black men (i.e. in the self report section) could be because women generalize that black men are poor. It could also explain why everyone seems to want to get with a white dude; he's more likely to be rich/have higher status.
I've been interested in cohort analyses for a while, but it's always felt like the "meta" coding that I don't have time for. I know, I know.

For those of you who run a cohort analysis on your startup, do you generate your cohorts dynamically every time you run the analysis (using created_at dates to group them into months or biweekly segments)? Or do you use some sort of data warehousing to create static data sets at the end of every day / week / month?
Pretty fascinating history of a single application from a first person perspective. Hopefully some of the valuable lessons learned can leak into modern web programming practices (speaking from a desktop to recent web coder)
The problem of people sharing the inanity of their day to as many people as possible. And the problem of people who want to read about the inane things that people do every day.
Palm Doesn't Want You To Buy Too Many Apps
So you don't watch movies, either? Or read books? Two hours of time in which you learn nothing?