skysight-inc/HackerNews huggingface dataset:
So the hypothetical situation is this: You get a letter from party X asking you to do Y or suffer consequence Z.

It seems to me that if the threat of consequence Z is really sound, X will not mind if you publish the letter on the Internet or take out billboards to share it. Whereas if they want it kept secret, they must have something to hide, such as the weakness of their position.

Mind you, INAL, so I am merely musing aloud for entertainment purposes only.
Yeah, we're doing it with wkhtmltoimage right now, which works but makes me cringe every time I think about it.
That was true 20 years ago, today not so much. The strongest of the original Sapir-Whorf claims don't hold up, but the weaker ones do. See Lera Boroditsky's work in particular. She's been publishing on this topic for at least 10 years. Most of the good stuff requires a library (or paying), but heres an edge article from a year and a half ago:

http://www.edge.org/3rd_culture/boroditsky09/boroditsky09_in...

Boroditsky, L. (2003). Linguistic relativity. In L. Nadel (Ed.), Encyclopedia of cognitive science (pp. 917–922). London, England: Macmillan.

Boroditsky, L. (2001). Does language shape thought? English and Mandarin speakers' conceptions of time. Cognitive Psychology, 43(1), 1–22.
Brightbox announces easy to use cloud load balancers
The social captcha idea is really clever, but doesn't it just mean that the first thing a serious hacker will do will be to download your friends list and at least their main profile pictures?
Here is a quote from that essay that says it much clearer than my pithy 'guideline':

"I prefer minimum-length but maximum-information names, and then let the context fill in the rest. Globals, for instance, typically have little context when they are used, so their names need to be relatively evocative. Thus I say maxphysaddr (not MaximumPhysicalAddress) for a global variable, but np not NodePointer for a pointer locally defined and used. This is largely a matter of taste, but taste is relevant to clarity."
We've been using them with pizzapowered.com stuff for a while whilst they are tested internally and we've found it really simple to use
Ah. I guess it's always been there. I was just expecting the title to match Firefox's "remove individual cookies." Reminds me of the "Add/Remove Programs" -> "Programs and Features" switch between XP and Vista.
To

if (cond) {

or not to

if( cond ){

That is the question.

I agree that spacing matters a lot. Another interesting idea is that long lines are less readable and that whatever is at the end of a line is less readable than what is at the beginning.

To

a = something_long +
something_else

or not to

a = something_long
+ something_else

That is another question.

Style matters, develop your own.
Reading data from a file handle into a buffer is a trivial operation.

If that is all you're doing, then yes; there isn't a much more efficient way of doing that.

In C (or Go) you have complete control over what happens next.

It is up to the programmer to know what to do next. Does haskell strike you as a language of micromanagement? Python can sometimes be multiples faster than command line grep. I haven't looked into why, but I have some ideas.

You are being incredibly vague and unhelpful.

If you don't understand what I'm talking about, it doesn't make /me/ wrong. And just saying so is also not an appropriate response. I had a specific question that was answered by the OP, and was useful to me.

Hacker News comment threads are rarely a place of education, but I will reinterpret what you said as a question.

An IO strategy is how and when you make those system calls. Reading from disk takes a vast amount of time, during which you can be doing computation. To be fast, you should be asking for the appropriate amount of lookahead, at the correct offset. Is that 4k? 1Meg? 100Megs? 1GB? Do you use threads for this? Can you skip any of the input stream? Do you let the operating system, programming language, library, or program code decide how big the read is? Where that data is stored after being read from disk is also important. Especially fast strategies use mmap to avoid copying from kernel space into user space. And of course everything is always chunked at specific intervals, so knowing where those are can sometimes reduce the number of calls. The ability to optimize for these is one thing that makes dedicated database software so successful.

It is a dark art, and it is not expected that the average person know these things. If you happen to be the kind of person working on a programming language, it could be useful to be aware of them. Here are some quick links, but there is a vast amount written on the subject.

[http://lists.freebsd.org/pipermail/freebsd-current/2010-Augu...]
[http://tangentsoft.net/wskfaq/articles/io-strategies.html]
The Short Theory of Mastering Webdesign: How To Prepare A Design
No matter if you are one of those people beating everyone’s quotations or one of those people getting upset about people beating everyone’s quotations: You can be worth more than you think by following a few steps listed here. Sounds interesting? Read on.
While that's a decent summary of his current perspective, I'd wager that the biggest adjustment won't be memory management. Although that is a trap for new players, a bigger adjustment will be to think and code in the "Cocoa-way".

In my experience, Cocoa Touch has all the benefits of it's very mature Mac OS foundation, and to develop effectively, and minimise friction, you need adhere to the Cocoa way.
An attacker would have to:

1: Load the social captcha

2: Load your entire friend list

3: Look at the first photo of a friend, then examine every one of your friends (the average user has a couple hundred) and match them up, assuming that their profile photo is similar to the randomly-selected photo from the social captcha

4: Repeat this whole process two more times

Social captchas protect you against somebody from Nigeria hacking your account, and makes this process more computationally intensive. Even if they did login to your account after all this work you'd end up getting an email and SMS saying that there was a login from an unrecognized computer.
Quite a few people seem to have thousands of "friends" on their list, most of which they don't actually know personally; they are there because they both play some kind of game (Mafia Wars, Farmville, etc). So the social captcha idea wouldn't work in that case either...
Which comes out to 3500 per year. That's not bad, and is in the ballpark of the median iOS app.
*$40
>It’s obscuring the purpose of the code–replacing a two or three line utility (max!) with dozens or even hundreds of lines of self-important masturbatory Java bullshit.

I'm not trying to troll, but are there any Java programmers who don't write code like this? I've never seen "real" Java code, which is to say production code, but every time I had to work with Java in school it was pretty much described by the above quote; and what's more, the libraries I had to interact with often made me feel like I was forced to do the same thing.
Saying "content converts into users" is like saying "meat converts into flies".
I actually really liked the GNU hello world, because it shows the structure of programs, without all the actual code, just the stuff it needs to run.
added some explanation to the landing page. thx!
Do they still sell compatible batteries though?
With profile pictures of them it could be an issue; if the friends' photos are public then it certainly is an issue. There's a bit of irony regarding Facebook's privacy settings.
Abstraction is like salt -- a little bit will go a long way.

The time to use it is when your business users can't agree -- one says do it that way, another says do it this way. Or they say it's one way, but they're not sure if it's going to change or not. That's a perfect time to cover both bases.

A tiny bit of abstraction applied well can save immense heartaches down the road. A bunch of abstraction applied poorly can make your life miserable. Part of "growing up" as an OOP developer is learning what to do when.

Also, this is a good example of why founders and startups use so little abstraction -- nobody knows what the problem is or what's going to change. It's all complete guessing. So might as well get something out the door today instead of playing mind games about what might happen or not based on your imagination of what a user might be. (This is also the reason functional programming maps so much better to startups: you don't have a spec. You just want one thing to go in and another thing to come out. If that isn't what people want, you have to iterate. Completely different paradigm than working in a business environment where somebody gives you ten bucks to go make well-defined change in system X)
The 10 year decline in publicly listed companies
Google Pro Tip: Use Back-Of-The-Envelope-Calculations To Choose The Best Design
I agree, the most minimalist thing is making do with what you already have.
I love the speed you can get stuff done compared to EC2.
Since when is Google admitting liability for infringement of linked sites?
I was doing some research at work today, and I googled "share hard drive host hyper-V," whose search results had this curious disclaimer at the bottom:

In response to a complaint we received under the US Digital Millennium Copyright Act, we have removed 1 result(s) from this page. If you wish, you may read the DMCA complaint that caused the removal(s) at ChillingEffects.org.

http://www.chillingeffects.org/notice.cgi?sID=30399

Now given the way US Customs has been coming down on torrent sites lately, it makes sense, but does Google really want to go down the path where the US Government and any random copyright holder can dictate the contents of search results?
The purpose of captcha isn't to keep the bad guys out, it is to make sure that a person, rather than a program, is logging in. I'm not sure this new social captcha is better than traditional captcha at that, but if it is equal but easier for the legitimate user, then it's a win.
That is the big problem of Java: the libraries. They require programmers to use these patterns, even when it makes no sense.
Reminds me of the saying (apparently attributed to Claude Debussy), "Music is the space between the notes."
I wish they would come out with a HTML5 Desktop Notifications lab feature.
The way I see this happening is to keep communicating with customers with a mailing list. One list for prospects, and one for customers. This is still marketing effort, but seems to be one way to go.

Another, I guess, is to keep selling to customers as they are using your app/service online.
I've got a friend visiting me in the UK from the US, where she's on Verizon, which is incompatible with the GSM/UMTS networks we use here. I've got her one of these to use while she's over here - http://www.carphonewarehouse.com/mobiles/mobile-phones/ALCAT... - and mailed it to her in America so she can call me as soon as she steps off the plane.

It was £0.99 when I bought it, and has been as low as £0.01 recently - with the only catch being that you have to buy £10 worth of prepaid airtime when you buy the phone. Ideal for a couple of weeks' travel in a foreign country. (It's SIM-unlocked too.)
Not disputing your point, but if I see an article about an app I like, I can click on a link, iTunes will open to the buy page for that app and I can buy it right away. No bookkeeping, no forgetting, no interrupting my flow to pull out a device. iTunes sucks, but it does have some pluses.
Duck typing

If it looks like crap, then it probably is crap
Real-Time Princess Leia Holography Kinect Hack
Edit: better URL: http://web.mit.edu/newsoffice/2011/video-holography-0124.html
Clickable:

http://www.google.com/search?&q=share+hard+drive+host+hy...

http://www.chillingeffects.org/notice.cgi?sID=30399
Exploiting Facebook Poll Design for Lulz
4Q10 Results - Shrinkage Comes in All Forms
Am I the only one to find the top-voted answer on linked Quora question to be completely wrong, and missing the point?
Can AOL reinvent itself as a content network?
Thanks guys. Funny that I'm still learning about it in college, then...
I agree with you about the classpath being a pain in the JVM, but Leiningen (https://github.com/technomancy/leiningen) does make the classpath much less painful.
Amazon to Launch Bulk Email Service Aimed at Developers
The product, called Amazon Simple Email Service, represents another way for Amazon to take advantage of its large server capacity
Yeah, but even when it's hard to work with, it's still waaaay easier than ld/gcc, IMO at least. I mean, try to resolve different versions of libraries in Java, it's not easy, but in C, it's hard. Gems and eggs and CPANs or whatever tend to have a lot of the same problems.. turns out it's a hard problem to solve.

In Javaland, we at least have Maven :)
Ask HN: When do you need to get incorporated?
I want to sell a virtual product (ebook, templates, etc) or a web service. Is it a bad idea to start out just selling it under my name, or do I have to get incorporated and have an official company first?

Also, at what point is it a good idea to pay for lawyers to do whatever necessary things they do (maybe write a terms of service, etc?)
There is a point there to be made, but it is a strawman nevertheless. Code reuse is infact sometimes and often desirable, and even gasp if it does turn up the level of expertise required to use/work with a particular library/framework. The important thing is to realise that their are alternative approaches and dispassionately understand the compromises involved - a judicious use of judgement.

Calculating factorials (pretending for a moment that it is occasionally worthwhile thing to do) is only ever 2 or 3 lines and it makes no sense to create a flexible implementation, especially if it is also has to be made efficient.

On the otherhand, what about a templating engine? How much string concatanation do you have to do before you can justify using a framework? Now obviously some languages have it built in, e.g. in groovy you can reference variables in scope within strings. This is all very well, and is definitely a nice feature, but ... the abstraction remains more leaky than a dedicated templating engine. In line templates are inextricably linked to the code and this has its disadvantages.

When there are clean conceptual breaks to be made in code it is often desirable to do so. I believe it is for this fundamental reason that lisp has not taken off because although it is very powerful, it discourages the creation/maintenance of library code, but in fact high quality library code is better in many situations than just using powerful language features.
I've come to view layers of abstraction as creating technical rent. This is not the same as technical debt. Each new abstraction layer has a manageable initial cost, but it needs to be paid again every time a programmer revisits the code, by rebuilding the abstraction in his or her head.

The worst part is when the layer of abstraction is justified as an intervention against potential technical debt: a small cost now to avoid possible interest payments in the future. When, in reality, the small cost has to be paid over and over, even if it turns out that the requirements never change in the particular direction that the abstraction anticipates.

Occasionally the abstraction does actually provide enough benefits to outweigh its future costs, but failure to recognize the existence of those costs leads to poor decisions.
Nice try blanco niño, but the following program runs fine. This doesn't detract from your overall point, but if you're trying to win over people who think the Boost macros are super awesome, this argument won't do it.

#include <stdio.h>

#define LOOP(n)	\
int i; \
for (i = 0; i < n; i++)

#define LOOP10 \
LOOP(10) printf("%d\n", i)

int main(int argc, char *argv[])
{
LOOP10;
}
Popular short hair styles
See photos of today's most popular short hairstyles. Bobs, spiky and more. Plus: See the best short celebrity hairstyles.
Surface detail - amazing 3D fractal animation
How do they get much organic traffic using just thin landing pages?
Mom and Pop, At Web Scale
The screenshot shows that the CAPTCHA is multiple-choice, so they'd only have to look up a handful of people's names in step 3.
If you can grasp the algorithms and problems and solutions of software development but get thrown to any extent by small differences in whitespace or style, I don’t even know how to respond to that. That argument always feels disingenuous when I see it. It's a crappy part of the Python community, but it's still a great community.
Things that have limited scope can usually get away with short names as well, even in a slightly more complicated context.

But since the punch card went out of fashion a while ago and bits are nearly free (screen width otoh is not) it doesn't hurt to name all your variables descriptively.

A global variable named 'i' is likely going to get you i trouble, then again, jQuery does most of it's magic using a single global that doesn't even have a name...
His Gamma function is even worse than I said above, because not only does it have a bug, it doesn't work at all for negative numbers, which was his big bolded complaint about the original implementation. I'm embarrassed that I didn't see this at first, because it should be really obvious - the approximation would be taking the square root of a negative number!

I know he would have caught these bugs had he needed to implement these for a real system. But there is nevertheless an important point here. He is 100% right that over-architecting is a bad idea, and that correctness is more important than architecture. But complaining about a factorial function not handling negative numbers, and then "fixing" the problem by implementing the Gamma function, is doing the same thing all over again. It's really easy to fix the factorial implementation to do something reasonable for negative numbers; it's much harder to implement a Gamma function that works for all input. Why bother unless you really have to?
Look at the first photo of a friend, then examine every one of your friends (the average user has a couple hundred) and match them up, assuming that their profile photo is similar to the randomly-selected photo from the social captcha

The example posted on the FB site looked like a multiple-choice selection was to be made, so the putative hacker would only have to look up those six friends, not look through all of your connections.
This was analyzed extensively back in the day: http://www.wired.com/politics/law/news/2002/03/51233 http://www.linuxjournal.com/article/5997
This explains why 80 lines of code to make a "todo list manager" in your favorite language can turn into 80K lines of code to make it a commercial success.

Don't confuse the sketch with the masterpiece.
Thats week one with a big marketing push..we see at least that amount per day for our paid branded apps, and they have been around over a year and receive no marketing spend.

I'm pretty sure the sales will drop off, like any iOS app.
When the author wrote:

"User" - Stop using this word. They are people. Customers. Writing for a person might make your copy more clear and pointed.

... and then proceeded to use the word "user" repeatedly throughout the article, I found his advice less useful. Almost hypocritical. It's almost like he wasn't taking his own advice.

Meta-comment: I'm not sure I understand the hatred towards the word "user." I think people have come to accept that it literally means people who use your software. Sort of like when we call people "drivers", "runners", "workers", etc.

Thoughts?
I wonder whether the article accurately reflects the Java culture, or non-Java people's view of it.
Carbonmade: 2010 in Review
Boss will b BOSS Forever....................
They aren't moving to a curated model, just beefing up the team that enforces the Terms and Conditions. Probably overdue given the growth of the market.
Recognizing What a Thesis Statement is 
Most students are not aware of the many elements to writing a thesis. They are also not aware of the different sections and requirements of the thesis. One of these is the thesis statement. If students do not know what a thesis statement is they will not be able to write a successful thesis.
That's a good rule. I usually declare variables as close to their intended scope of use as I can get them, so for instance, right inside the block where the variable is going to be used.

The temptation then becomes to re-use the name but I avoid that to make it easier to see which declaration belongs to which variable.

Declaring all the variables at the top of a function was a pretty hard to break habit.
A usefully short guide to software pricing [pdf]
Ask HN: How to leave a company on friendly terms
I'm getting ready to leave a small company I've been with for three years, and I want to go without leaving any bitterness, as I'm friendly with the CEO and MD (it's a small ~15 person company - my other colleagues won't take my leaving personally).

The problem is that they won't be happy to just let me go, they'll want to hear my logic, which I'd rather avoid giving - while giving negative feedback might help them improve, in this case it's unlikely to, and will just come across as criticism.

What's the best way to either avoiding giving any negative feedback or to make it come across OK, and any other advice on leaving a very friendly company?

side note: no new job lined up, so can't use that as the reason
Wow, thanks a lot. I really appreciate the details.
Looking for games at the Chrome Web Store?
New site lists more Apps then the actual Google Chrome Web Store...
Libraries don't require you to use them. You are free write your own solution [that makes sense].
Wow, that's a good insight, seems like a possible attack vector. Maybe something like Adobe Air's security model of putting local access and network access in different iframes with a message-passing API between them would work. That's always felt like a bit of a hack to me but at least the separation between different frames in WebKit has been well-tested.
I believe that this method offers another benefit:

That the organization is a nonprofit does not require their team to be pleasant employers. Responding in such a manner as described by atgm allows you to judge their character a bit better. You're being respectful of their needs, but firm in your own. If you get an angry, abusive response, then you know that you made an excellent choice in not choosing to work for them. If you get a polite, understanding response, then perhaps you can bend your rates slightly, as they may be a better customer than you initially believed.
He also explicitly says "I compiled it, but I didn't really test it, and I'm not sure I copy/pasted it correctly because that's not the effing point" too...
By the way, don't confuse macros with backquote; the backquote facility is probably closer to C's preprocessors. I haven't heard this claim before, and I might not be entirely right, but it's what provides for the "fill in the blanks" type symbolic computing.

For example:

(defun sum (x y)
`(,x + ,y = ,(+ x y)))

This is a SUM function which looks like this when run:

(sum 4 5) ==> (4 + 5 = 9)

The backquote (`) says the following form and its sub-forms (if any) are all quoted. But you can poke holes in the quote and fill in with the value of outside variables, using comma (,). So in the example, everything is quoted in the body of sum, except three things: x, y, and (+ x y). Each of those is then evaluated yielding 4, 5 and 9, then, finally, the template is filled in (4 + 5 = 9).

If you want to confirm this, you can change the + and = to any other symbol and it would still display. E.g:

(defun sum (x y)
`(,x frob ,y != ,(+ x y)))

(sum 4 5) ==> (4 FROB 5 != 9)
Class Coercion in Ruby