skysight-inc/HackerNews huggingface dataset:
It's easy to hit the downvote button. It'd show more courage and intelligence to counter with an actual argument.

Incidentally, Wikipedia backs my definition of "cold":

http://en.wikipedia.org/wiki/Cold_war_(general_term)

"A cold war or cold warfare is a state of conflict between nations that does not involve direct military action but is pursued primarily through economic and political actions, propaganda, acts of espionage or proxy wars waged by surrogates. The surrogates are typically states that are "satellites" of the conflicting nations, i.e., nations allied to them or under their political influence. Opponents in a cold war will often provide economic or military aid, such as weapons, tactical support or military advisors, to lesser nations involved in conflicts with the opposing country."

I.e., this definition does not include direct planned and executed attacks by the nations involved. Continuing:

"The definition which has now become fixed is of a war waged through indirect conflict."

Indirect means indirect, not directly planting viruses that can destroy your factory.
Not having sufficient evidence to prove something is happening is not quite the same thing as proving it isn't happening.
Being dismissive/flippant does not help engender the trust that was already shaken by emailing me my password in clear text.

Where can I unregister my account?
flights.google.com or google.com/hotelfinder for example. Parts of Google Docs use GWT. Oh, and of course, Angry Birds for HTML5 was done with GWT. :)
Thanks for the link. I'll read it asap. For anyone following along at home, I believe Yisong Yue's work on the duelling bandits is also relevant here: http://www.yisongyue.com/publications/jcss2012_dueling_bandi... and http://www.yisongyue.com/publications/icml2011_beat_the_mean... (I haven't had a chance to read these in detail, yet.)
In general, then, we shouldn't call RAM memory since it might misremember, we shouldn't call them computers since they might miscompute, we shouldn't call it encryption since it might not encrypt, and we shouldn't call them bicycles since one of the wheels might fall off. Is that about it? I think I can see your point, but as we're nowhere near the point at which machines become as reliable as humans, let alone utterly reliable, I'm not quite sure of the use of the fine distinction you're trying to draw.
Summary: new startups enable mildly illegal markets to operate at a large scale making you feel less illegal because, hey, like, everybody is doing it.

There's a good chance renting your place and car violates your homeowner's insurance, lease agreement, and/or car insurance.
I'm not saying you should always rewrite your code in a professional setting. In the scope of my previous comment, I was definitely considering personal projects.

That said, when systems need to be re-engineered, completely thrown out and re-written, or a new feature needs to be cranked out to meet a business need, the developers who can design and create large coherent systems quickly is irreplaceable or very expensive. Constantly throwing your code out gives you this valuable experience.
Even better, you could buy and sell one on Craigslist and save even more.
I worked on a program where the management had near-religious devotion to the one return statement paradigm. It made for a bunch of unnecessary nesting and locals just to comply. Even worse was strong resistance to using continue and break (outside of switch statements), which lead to unnecessary flagging variables on top of that.
It's not cut and dried, but a good guideline is this:

If you've written a program, but it doesn't work yet, and you've realized you made major architectural mistakes or whatever, feel free to rewrite from scratch.

If you've written a program and it's been in real use for a while, solving real problems for a lot of happy users, that means it embodies a lot of knowledge that will be difficult to re-create from scratch; in that case, think very carefully before embarking on a rewrite, and look hard for a way forward that will preserve that knowledge.
I use both if-return and if-goto. In practice you need both, depending on circumstance. In much of my recent code I've managed to use a lot of if-return checks at the top of functions. Another nice thing about a bunch of if-returns at the beginning is it makes a nice checklist of things that will cause the function to fail, all right up front.
Isn't the problem that people see passwords as "access" rather than "security"? General public see complex user-names and passwords as an impediment to access, which they are.

I rather think the people who run sites, etc see it the same since often passwords are allowed to be simple by design. Where real security is required users are given passwords like "we%W%G^&FGH344N" to use. Or there s a strictly enforced policy that the user is made to follow.
Yep. It helps to think of it as: Backups aren't the end product. Successful restores are the end product.
Strictly speaking, it wasn't P. being expanded to PRINT at the time of LIST but the byte representing the tokenised PRINT being expanded then. The P. was turned into that byte earlier.
Jef Raskin’s Holes in the Histories
The FIBIAC: 3D printed computer
Not when you honestly believe in American Exceptionalism
I'm a Windows user and I use LibreOffice. The new version really is excellent. I've debated for a bit which version I should be on (Open vs. Libre) but as of this release I am very content to stay put.
That's spatial pollution.
On Xerox, Apple and Progress
So let me get this straight, they lost control of it and it ended up inside an Iranian power plant? You can't lose control of something so specifically tailored. The possible targets of this thing could be a few hundred installations around the globe so the motivation of stealing it, if it's even remotely possible to steal something like that, should be very low.
The article talks about unwinding deeply nested control structures, which is equally possible in whitespace sensitive languages.
How about at least a setup where authors have the first 24 hours from creation to easily delete their book, that will give lookie-loos like me a chance to cleanup after toying with the site.
How to Engage a Venture Capitalist: Lessons From Our Dealflow
Adding a level of credibility to a Meetup-esque trip planning site is brilliant!

Look for this soon :)
I don't get why people can't spend more than 45 minutes in there.

I understand that you begin to hear your heartbeat and so on, but surely anyone who is even slightly deaf (e.g. even from just prolonged listening to loud music) wouldn't hear these very low-decibel sounds?

So it can't be the lack of sound, as a slightly hard of hearing person hears the noise floor drop out quite frequently. (Correct me if I'm wrong here; it's just my assumption). Is it that these sounds become so annoying, such a nuisance?

If someone had a noise-free keyboard (maybe touch) and were coding in there, would anything be a distraction? Would anything limit your stay?

I find sitting into a dead-silent room with a laptop (e.g. somewhere where you can't even hear a clock tick, nor any street sounds, nothing) to be completely maddening initially...but then after about 2-3 minutes you can immerse yourself and do something with extreme concentration.
...a disclosed vulnerability is one that -- at least in most cases -- is patched. And a patched vulnerability makes us all more secure.

This is why the new market for vulnerabilities is so dangerous; it results in vulnerabilities remaining secret and unpatched. That it's even more lucrative than the public vulnerabilities market means that more hackers will choose this path. And unlike the previous reward of notoriety and consulting gigs, it gives software programmers within a company the incentive to deliberately create vulnerabilities in the products they're working on -- and then secretly sell them to some government agency.

When market forces are working against your interests, it's the worst kind of news. For a business, it means bankruptcy. For a nation or empire, it means decline and dissolution.
The main reason: it's academia and they have already written the paper :)
He's preaching to the choir in my case. I'm a big fan of busting out of functions/methods early when you already know "it's over". (sometimes this means putting the cleanup in something like a try/finally wrapper routine, though)

But, kudos: I can send this to my team instead of having to write it myself. Win!
Why is this marked as "Chrome only"? I can't spot any errors with Firefox 13.
You're right, this one has nine, I didn't look very closely. I guess you could still call them SSD-like...
This type of dashboard is helpful, but for the business-types (and for personal encouragement) a simple dashboard of

# New Users Today
# Returning Users
% Conversion Rate in Last 24 Hours
% Open Rate on Last Email Campaign
$ Dollars Raised Today
Copyright board to charge for music at weddings, parades
Convergence.

When we all have persistent, solid state drives, your filesystem will be your heap and GC...
People who don't practice vulnerability research have a very had habit of incorrectly attributing vulnerabilities. Vulnerability researchers don't create them.

Historically true, but will it remain so?

Schneier's point is that the existence of vulnerability markets means that there are incentives for there to be "vulnerability researchers" who are selling the bugs that they themselves created.

It is the security version of, "I'm gonna code me up a minivan!"
Anyone who's a common victim of recruiter spam might actually consider being blacklisted a plus.
I use layered passwords. For simple things I've used the same password for years with only slight variations on it. For things like my email account or servers, I use randomly generated passwords managed through LastPass. Although my personal favourite password system is XKCD's password algorithm: http://xkcd.com/936/
LONDON -- Web Developers (front and back-end)

TrialReach is a VC-backed startup solving a huge problem in the healthcare industry.

Our recent (tongue-in-cheek) recruitment video: http://www.youtube.com/watch?v=VyRxOTJXBII

• This is a company you can be proud to be a part of.

• You’ll be working alongside a small but highly talented multi-disciplinary team.

• Our gorgeous riverside offices in Richmond provide a change from the urban jungle whilst being just 10mins from the tube.

The Role:

Our stack is Linux/Postgres/Python/Django. One day you might be translating visual designs into HTML, the next day you might be working our search and patient matching algorithms. The one certainty we can offer you is that you’ll never be bored.

Ideally we're looking for people to work on our whole stack, but we're also happy to talk to front-end (HTML/CSS/JS) specialists.

If you don't have experience with Python but have worked on something similar (Ruby, PHP etc) then that's fine too!

Where do I apply?

We're happy to consider full or part-time applicants as wells as students looking for internships. You must have the right to work in the UK.

We're starting interviewing candidates from next week, so if you're interested, please get in touch - zeshan at trialreach.com
Curiously, in Canada the construction industry is experiencing the exact opposite effect and is at an all-time high:

http://www.bloomberg.com/news/2012-05-31/canadian-building-j...
It would be a lot easier to agree that security researchers shouldn't be selling vulnerabilities to the highest bidder if, say, they were offered $250k to $1mm each from the vendors involved. Baring that, it's hard not to think this is mostly very wealthy companies bitching that researchers are declining to work for free to fix the companies' inability or lack of desire to write secure code.

It feels like the companies first tried to hold a bulwark and claim that vulnerabilities are worth nothing. Now that fb, google, and mozilla offer bug bounties, we're starting to establish a market price. Like the old joke apocryphally attributed to Churchill:

"Churchill: "Madam, would you sleep with me for five million pounds?"

Socialite: "My goodness, Mr. Churchill... Well, I suppose... we would
have to discuss terms, of course... "

Churchill: "Would you sleep with me for five pounds?"

Socialite: "Mr. Churchill, what kind of woman do you think I am?!"

Churchill: "Madam, we've already established that. Now we are haggling
about the price”
Hypocrisy is deliberately lying about your values. This may be that, but it may also just be a compromising of values. An alcoholic saying that alcohol abuse is bad isn't hypocrisy is the alcoholic truly believes it.
To me programming is both engineering and something akin to literary composition. You want your design to be engineered well - perhaps "over" engineered for redundancy and reliability - but you end up actually building it with a formal language. This brings me to a wonderful quote:

"A scrupulous writer, in every sentence that he writes, will ask himself at least four questions, thus: 1. What am I trying to say? 2. What words will express it? 3. What image or idiom will make it clearer? 4. Is this image fresh enough to have an effect?"

- George Orwell

The first two apply to composition in a formal language. Over-engineer the structure of the thing but be as merciless as Hemingway when actually composing your thoughts and sentences. Eschew excessive lines and actual tokens. Those are the byproducts of the rushed and/or cluttered mind (which commercial projects may necessitate ;)
@tonyjwang, thank you for this feedback. I'm hoping to add a screencast soon that will provide a fuller sense of what you can do with the app.
> To explicitly target civilians is serious because it breaks the laws of war, etc. Democracies generally don't do that.

Democracies generally try not to publicize doing that. Unless it's done with drones apparently, then you brag about it.
I'd argue that having a well illustrated overview of your whole company helps you prioritize this list.

So put business and technological metrics on that dashboard. And then you can decide whether you should be focusing most on customer support, A/B testing, or that network bottleneck.
The human factor in split testing is rarely to almost never discussed. I've been building and running landing pages for around 7 years now, I can't count how many millions of people have flowed through them.

Here are some things I've found:

1) Absolute conversion rate. After a certain point, whatever you add will just detract from the performance of something else. That detraction could either be from the landing page itself (if your lucky) or some longer term variable (hope those "conversions" don't cost you too much money.) I have had both occur.

2) "Statistically significant" can just be noise when variables are fairly close to each other. After getting rid of the obvious losers, I've watched the "winner" of elements like button color change back and forth daily for weeks, with no clear winner, even with 30,000+ conversions a day flowing through. This is the kind of thing visualwebsiteoptimizer would write a case study on 1 hours worth of traffic and declare a winner.

3) You brand can be shit on when dealing with returning users. They are used to seeing one thing and now they see something else. Imagine if the colors, theme, and button locations changed every day (or to be fair, once a week) when you visited hn. Often "better converting" designs actually convert worse when introduced on existing customers.

4) Failure to account for external variables, especially when dealing with small sample sizes. Testing is often done most vigorously with paid traffic sources as the monetary incentive is direct. The traffic source itself is often a bigger determining factor behind the conversion rate than the design. Small budget/sample size, and you could end up with some pretty poor test results that the math will tell you are correct.

I am not saying don't test. I am saying a/b testing, split testing, multivariate testing, etc is abused
If I had a downvote button, I would exercise it on your steadfast refusal to acknowledge that the Cold War is so-called for the absence of direct military conflict between the armies of the two quarreling states.

Wikipedia does not back your definition, as the Wiki entry leaves room for espionage, sabotage, and other actions that one might consider an "attack" but certainly do not force a declaration of war, mobilization of armies, etc.
OK, 589 bytes:

: d="""ellU wTay it
: S otherRConna Qmake4 PveMndL aK'reJingHt's beenFo E gC
: (OohB
: Youz txKL q know9
: N28 how I'm feelH
: 7iM4 up66)B)8giM, n2giM
: (G5 you4
: I justTannaxU47Gotta PuLerstaL03eMrQ2
:
: We'M9n eachR for sElongzr hearFKchH butzJxoEshyxEsSInsideTe both9ThaFCoH on
: We9xheCameqweJQplS1
: 8g68let4 down8runKrouLqdesert48Pcry8sayCoodbye8tUK lieqhurt40WeJ nEstrangersxEloMz9xhe rulesqsEdEI
: A full commitment'sThat I'mxhinkH ofzTouldn'tCetxhis fromKnyRCuy31AL if4Ksk me7Don'txU me4JxoEbliLxEsee00
: B,C6)B,C556)1300"""
: for s in'UTSRQPMLKJHFECBzxq9876543210':a,b=d.split(s,1);d=b.replace(s,a)
: print d
Maybe so, but what happens when you need to do something before returning the value, say like closing a connection? You'd have to make the change in 4 spots (and hope you don't miss one), as opposed to the first example where you'd only have to make the change in 1 spot. It's all about minimizing errors later on.
I don't see the technical reasoning there, but I agree that there's a thematic parallel: they're both reasonably straightforward ideas with very clean user-facing stories. They can both be implemented very simply (literally as part of an undergraduate course -- I remember writing both).

And they both have undesirable performance problems in certain regimes, the solution to which has been the unending quest of generations of incredibly smart programmers and academics. They have led to staggering complexity, weird bugs, huge near-unmaintainable codebases, and uncounted PhD theses. Whole careers have been aimed at this stuff.

And frankly it's been, from many perspectives, mostly a waste. ZFS/btrfs are, for 95% of problems, indistinguishable from FFS/ext2 implementations that are a tiny fraction of their size. Modern Java and .NET VMs still have latency issues under GC pressure that were equally visible in Emacs Lisp a quarter century ago.

Applications which have hard requirements that fly in the face of these systems don't use them. Serious storage servers don't use the filesystem except vestigially (i.e. they do manual sync on very large files, or they use a block device directly). Serious realtime apps don't do GC and manage memory themselves. And that's not going to change no matter how many PhD's we throw at the problem.
The Limitations of our Language
This actually points to a risk that Barnes and Nobles, Amazon and other content stores are susceptible to: users who assume that they edit their content like a traditional publisher would or should.

This was a 99c purchase of a public domain work that was probably reformatted by someone who didn't care enough to check their work. This work was then publicly criticized by a consumer who didn't care enough to check their facts, either.
Consider the huge number of iPads/Macs/etc sold through apple.com that never hit inventory, they ship right off the line straight from China. Adding a lot of 0's to the numerator can really drive down an average.
Quadcopter cat - Dutch turns his dead pet cat into a quadcopter
You need to tell the political science, history and foreign policy communities they've been using the term "cold war" wrong for decades!
There's another common thought I hear voiced often: That you have to come up with an idea that no one else has done before - a green field idea. That's wrong. Competition in a space is often a sign that there's something valuable there. Competition is energizing. A lot of the ideas I'm thinking about exploring already have established players or startups - it's just that I think I can execute much better than them.

Yep. There's a quote from Bob Parsons (of GoDaddy fame) that goes something like (paraphrased roughly) "Don't be afraid to enter a crowded market, just be better than everybody else."

This is kind of our mindset at Fogbeam Labs, where - depending on how some details shake out - we'll be competing with everybody from Jive Software, Yammer, Alfresco and Broadvision (among others), to Salesforce, IBM, Cisco and Microsoft.

But that's fine. We have an angle to pursue that we think will let us make some inroads against those guys, and we're spoiling for a good fight. Heck, as far as I'm concerned, those guys should be sleeping with one eye open. :-)
This is great news ! I don't know if Mike Pall reads Hacker News, but a couple ideas come to my mind :

- May it be a good idea to create a KickStarter page ? I know LuaJit has its own donation mecanism, but it may help it gain further exposure. I know i'd be willing to donate for a better GC in either case.

- Mike mentions it has to be a non-moving collector, which is usually known for having worse performance than moving collectors. Also, a non-moving generational collector (and incremental, since this is also a requirement) is hard to get right.

I tried implementing a GC along the lines of this paper : http://www.pllab.riec.tohoku.ac.jp/papers/icfp2011UenoOhoriO... which presents a fast non moving collector. Incidentally it has ideas similar to those presented in this article. Maybe it could be a good source of inspiration ? I realize the ideas are maybe not as production grade since there is only one language implementation with a GC of this sort.
As shown in the article, that first recommendation leads directly to the next step(s). In the ideal case (which actually happens sometimes in the real world!), you end up with something like this:

if (bad1) fail();
if (bad2) fail();
if (bad3) fail();

step1();
step2();
step3();
step4();
return SUCCESS;

To me, this is a very nice way to structure things when you can. You get a checklist of things that might be wrong, and then comes the wonderfully naive straightforward implementation.
SEEKING FREELANCERS - PHP, API design, MySQL, MongoDB

The free Open Exchange Rates (http://openexchangerates.org) API is now running at 160,000 hits per day, serving up static files - I need an expert PHP developer to help me implement an API key system, where each request is logged and API key checked, before serving up the file as required.

Freelancer needs to help design the schema for user details and realtime logging, and implement: ideally the API key system done with MySQL, and the logging done with MongoDB, unless you can persuade me to use either for both.

Some knowledge of WordPress and PayPal payments preferred.

Email joss@openexchangerates.org!
Let me be clear: there is no evidence whatsoever that Iran has nuclear weapons in its possession. There is no evidence whatsoever that Iran has had an organized nuclear weapons development program for the last nine years. There is some evidence that there was a nuclear weapons program prior to 2003.

This is where you start discussing things: with reality and facts. I am insulted that these facts I am offering are being downvoted ten miles deep when hundreds of millions of lives are affected by the outcome of this prove-a-negative "debate".
I try to use this method: find a password that is very abstract, but meaningful to you. For example, one of my passwords included my exact motherboard model.