skysight-inc/HackerNews huggingface dataset:
I'm tempted to solve it with:

low/2 + high/2 + (low & high & 1);

That side steps the overflow condition completely.
> No doubt Git gods who have every nuance of the system memorized can take advantage of the flexibility of the (IMHO) complicated and obtuse CLI.

From what I understand, it's not even that. It's learning the plumbing.

If you check the videos and presentations of the Github guys (mostly schacon), 90% of what he talks about are the implementation details of Git as an object store and the plumbing (the plumbing is the low-level commands dealing pretty directly with the repository's storage formats, porcelain is the set higher-level commands implemented in terms of plumbing).

Why does he do that? Because the porcelain, git's high-level CLI, makes no sense in and of itself. It's inconsistent and weird and ugly and fraught with peril.

But it makes sense in terms of the plumbing, if you know what happens "under the hood" you can make sense of porcelain commands: it remains dreadful, but now it's just a bunch of shortcuts for the sequences of low-level operations you know about.

(as far as I'm concerned, I don't have the patience or the care for git's plumbing, so I just use hg and hg-git to interact with git repos)
Your over-focusing on just the issue of a lack of citations.

The entire format of this piece is centred on the use of provocative questions as headings. This is a well-known trope in journalism for lazy writers who are more concerned about generating traffic than they are doing their job, i.e., finding answers. See: Betteridge's Law of Headlines.
There are no known "preimage attacks" against MD5. Only collision attacks. The term you are looking for is a "chosen prefix collision attack".
Why this is needed:

Latest blog article over at progit.org: "Reset demystified"
http://progit.org/2011/07/11/reset.html

Scott Chacon, author of the the Pro Git book, admits there that he didn't cover the "reset" command in depth in the book because he didn't fully understand it. Go figure...
You can also substract two pointers (this is defined only if the two pointers are within a common memory area). The result is a ptrdiff_t which is more or less the scalar version of a void*.
>Automatic setup? Put that info in the global config file. If git had to prompt for it, it would naturally place that info in the per-repo config file (absolutely would not make sense to automatically modify the global one)

You're thinking of implementation details, but prompting for and placing the info into ~/.gitconfig is what a newbie git user almost always wants. What's wrong with doing this?
The value/cost of a "hack" is offset by what it provides. If something can be implemented at the same cost in a less brittle and more future-proof way, then by all means label it horrible.

If you think "horrible" hacks are a slight against something that provides an amazing level of functionality to an end user, then you've lost sight of what we're coding for.
In that case, I'd be hosting my download somewhere else.
The author is claiming that nearly all binary search implementations are wrong under those specific conditions, not that binary search implementations are wrong under nearly all conditions.
Please, then, don't be selective: ban the site. You ban lots of other sites. Venues that "pwn" HN shouldn't be allowed space on the front page. If they write something uncharacteristically excellent, someone is sure to blog it, and that person can collect the pageviews.

Also, Venturebeat is far from the worst offender. At least they (ostensibly) have reporters.
I appreciate the idea on the donation. Anything for a good cause.

It seems like the starter and regular plans are pretty anemic when it comes to services. For example, we are witholding proper security (SSL) until you pay more?!

Really, this is just designed to just push the customer into a higher paying plan. The service isn't really useful for most businesses until the Plus plan.

I'd rather that they just get rid of the starter and regular plans entirely. Two plans, Plus and Enterprise. Simple and would really make the comparison page really clean.

Just say buy the plus plan and we'll donate $20 to your choice of charity (and then name a few I can choose from, instead of just picking one). Effectively, that is what will happen anyway with the current system.
"Beware of bugs in the above code; I have only proved it correct, not tried it."

— Donald Knuth
From the comments on the article:

>As I mentioned in the last article, we are in discussions with Random Rab regarding licensing to try to find a license/price that is mutually agreeable.

Um, you do this before, not after the fact. Seems like this company is taking "better to ask forgiveness than permission" a bit too far.
Of course they don't mention how annoying writing snippets can be (although I agree they are a good way for an individual to remember what they've done). They also don't mention that you can tell who is 'in' at Google and who isn't by the fact that they haven't written a new snippet in over a year.
1.) Think in terms of user-perceived latency and progressive rendering.

4.) That's one of the big ones. Also, adding new CSS rules to the page is really slow because it forces a reflow. Basically anything that forces a reflow and makes the browser repaint the whole page will be slow.

5.) IE6-8 has a limit of 4095 CSS selectors in a single stylesheet (it's good to know that limit, because additional CSS rules are simply dropped silently). It's not terribly hard for a relatively complex webapp to hit that limit. The solution is simply to break the CSS up into multiple <style> tags (or stylesheets, if you're using external CSS). The hard part in this question is understanding what the problem is, not how to fix it - many frontend devs aren't familiar with arbitrary browser limitations.

(This question came out of an actual problem that Google+ faced about a week after launch.)

6) Also li, dl, dt, tr, td, th, etc. The specific ones don't matter so much as understanding that you go to the spec to figure it out, not to w3schools. Also, the official spec is at WhatWG.com, not at the W3C site.

8) Oh, I was talking about tracking it yourself on the server (for logging/algorithmic purposes), not about displaying it to the user. Anyway, for user display there's the :visited pseudo-class. For logging, there're a bunch of alternatives like going through a redirector or adding some JS that makes an XHR or image request, but the HTML5 solution is <a ping="...">, which unfortunately is still buggy in most browsers.
The Friction in Frictionless Sharing
Sendgrid's Event API (http://docs.sendgrid.com/documentation/api/event-api/) does something similar to this. Their mail servers act as a gateway to allow your app server to both send and recieve email over HTTP. I've used it at work as part of a not-yet-released feature of our product.
Kinda undermines the article then.
Computer hardware is not correct. So, you need to step past mathematical perfection and write defensively.

Rule 1: you can't trust RAM it lies.

That said you can build automated tests that add random memory errors to help find the program that's best able to handle memory errors.
> even if robots are eventually as effective.

What about when robots become more effective? Drastically more effective?

I would not let a modern day robot work on my teeth, they are too stupid, but I can imagine a day (fairly soon) when this will not be the case, and my gut reaction will start to be the exact opposite: I would not let a human being work on my teeth.
That looks useful, but some comments would be nice. What do u, ud, and prep do?
If you're using nosetests, there's a --processes=NUM option that comes from the multiprocessing nose test plugin, but you should make sure all your tests are safe to parallelize, which, might be very tricky if you didn't think about parallelization before hand.
Ah, okay. Wasn't sure how well the system could differentiate the two.

You could always make aliases for things, but the point of the article seems to be addressing the problem of people new to git, who likely won't go about setting such aliases, let alone know they have that capability.

And that's a problem I can sympathize with: I'm a programmer on an FRC (http://www.usfirst.org/) team, and this year, we finally convinced everyone to make the jump from a thousand USB sticks to a git repo. We've held a workshop on it and have distributed various tutorials -- GitHub's have been particularly invaluable -- but there are still issues every now and again. Some seem to only have "push button, receive outcome" understanding of how it works, memorizing the commands for cloning, pushing, and pulling and then blindly repeating them into the console, without a full knowledge of what's going on. If some of the more "advanced" syntax was a bit more human from the get-go, then it might be helpful in softening the learning curve.
What Does Siri's Future Look Like?
Mathematics sits atop a very small set of trusted axioms. Computer hardware is not so reliable; the parts are made in China as cheaply as possible. So even if you've proven something correct in theory, it doesn't matter because of all the additional variables that the real world introduces.

The big insights in computer science look very much like mathematics; the mechanics of a binary search work perfectly in theory. But in practice, it's easy to make a simple mistake in implementation and accidentally throw your proof out the window. The proof remains valid, but your implementation isn't doing what the proof says.

The fact that a famous book on proving correct and then implementing a binary search ended up being slightly wrong underscores how easy it is to make this mistake. (I find binary search a little annoying because of the integer division. Do you round up or round down? What does your language implementation do? Now you see why you need to mentally prove that you've written the right algorithm, and then test to make sure your computer is doing what you think you're telling it to.)
Yup, I need a pitch. I'm building up features, and eventually the login screen will look similar to how the Gmail login screen will look. I don't want it to be overwhelming.
> Say I've legally purchased an MP3 from Amazon and I decide to use my UberUpload to host the file so I can access it from any device.

Then you should use a service that:

1) Does not provide unauthenticated access or public links for anyone to use to your backed-up MP3s from Amazon.

2) Is not known as the internet’s hub of piracy.

3) Did not offer bounties for people to upload copyrighted material.
Only you can prevent people from listening to dubstep.
If you start depending on reflog just remember that changes in there are subject to garbage collection. Commits can be permanently deleted after they are 2 weeks old (by the default settings), so that's how long you can depend on them staying alive in the reflog.

Of course you can always give a branch name or tag to any commit to keep it alive too.
It seems that this could be misused for politics in the worst possible way since ones measure of ones performance is inherently subjective (even writing a simple 'I did X' you might omit or forget collaborations with colleagues etc).

It could be that I'm Swedish but I'm not sure I'd enjoy this at all. At our shop we do weekly retrospectives. A session about 30 minutes to end fridays with where each team sits down (about 4 ppl/team) and talk through the week and their efforts and measurable ways to improve next week and long term. This then gets logged. Fairly standard scrum/agile stuff.

Of course this shifts the focus from individual to team, but I'm not sure that's necessarily a bad thing?
> Making technology decisions based on what others are doing is the fastest way to make minor decisions.

Sure, but a minor decision is who prints your business stationery or what kind of toilet paper to buy.

What hardware/networking platform to build your service on is not a minor decision. It will fundamentally affect the architecture of your entire system, and getting the decision wrong will potentially be expensive-with-a-capital-Failed-Company.
I was given a slew of ADD drugs from ages 8-16 and finally quit them cold turkey after I realized what they were doing to me. It was pulling me up and down throughout the day. I was high and awkward in the morning and depressed as hell come every afternoon. This experience ended up changing me in good ways but it was very painful at the time.

I just wrote about it on Quora.
http://www.quora.com/Attention-Deficit-Disorder/What-does-it...

My mom regrets putting me on meds and felt unsure about it at the time, but it was all the rage in the 90s. I think a young person with focus problems would get a lot more out of meditation, yoga, and being outdoors that they would out of these drugs, but I don't have studies to back that claim.

I just hope we look back on what we're doing and shake our heads, wondering how we could be so stupid to put millions of kids on amphetamines. Just like how we look back and laugh that we used to give children a bit of mercury to play with (with bare hands) in science class in the 50s.
The self-epublishing bubble
Automating the conversion of girl friends to girlfriends
The forward button is now hidden until you navigate back.

I've been using the "Aurora" channel, so I've had this feature for a while. It does take some getting used to, since the whole address bar now jumps around when you push the Back button, and then jumps back when you click Forward enough times. On the plus side, the address bar usually has more room now.
This isn't a "free plan", even if the cost is small and doesn't go to them. (It's $20/year to a charity, if you didn't RTFA.) Their own homepage calls it "Better than FREE", even which I find less misleading.
Calendar and contacts, as well as integration with a few other bits, provide a slight measure of lock-in. I'd still have to say that it's lower for Google Apps than for a lot of other products out there.

Actually, the Google Docs integration is probably the biggie.
Just a nostalgia fluff piece.

"Remember the smell of white out? Don't you miss it nowadays?" "What about those carbon-copy sheets they used to have for typewriters?" "Remember the pleasure of receiving mix tapes?" etc, etc.
I mentioned that, at my last company, we sent weekly status reports with items completed and expected upcoming tasks. I was promptly told that status reports were a sign of a broken company. Apparently, if I'd called them snippets instead, I'd have been applauded for mentioning an innovative business tool?

The thing which is always overlooked in articles like this is guidance and feedback. Sending "snippets" or status reports into a black hole leads to engineers feeling isolated and disinterested (on all but the most core projects). Failing to manage engineers and set clear goals is simply poor communication.
Microsoft Office 15 to enter public preview in the summer
Casio Turns 2D Photos Into Weird 3D Sculptures
Is it really surprising that within a country in which you can travel for days (by car!) and still be within it's borders that people don't travel abroad more often?

It would be interesting to see travel figures for similarly sized countries such as Russia and China.
Affected versions are 1.8.0 through 1.8.3p1 inclusive. Ubuntu 11.10 is not affected (it's running 1.7.4). Ubuntu 12.04 (alpha) might be, which appears to be running 1.8.3p1, for a short while anyway.
My mom accidentally took one of my Adderalls one night (mixed it up with one her pills). She said the experience was quite enlightening to what I was experiencing every morning.
`git u $branch` checks out $branch, updates it against whatever remote it's synced to, and then attempts to rebase the current branch against it. `git ud $branch` does the same think, except it also performs the merge of the current branch onto $branch.

`git prep` Simply greps the commit for use of Python/JS print debugging statements, things that shouldn't make it into the codebase.
The type of introversion I was referring to is found most commonly in INTJ people(and you sir most likely are one!).

Yep, and my T preference is 55.
http://microformats.org/wiki/recipe-formats
Sh*t Programmers Say
Thought provoking piece. I don't think it's really a bubble - a lot of our customers at LiberWriter don't seem to be under any illusions of 'getting rich quick'. I think that more than anything, a lot of people just got a new creative outlet, and don't care if they're the next Amanda Hocking.
The indictment mentions NinjaVideo as an affiliate of some sort. Given that they were recently taken down for criminal infringement, it is possible that they found something in their emails or whatever which they were able to use against MU. Assuming that's true, one would expect them to go after any affiliates of MU next, using the evidence they've gathered in this case.
Engadget introduces "Follow the Saga" feature.  Your blog should do the same.
Hi everyone,

One of the curebit cofounders here. We spoke with the artist as soon as we got his message and began discussion to get the music licensed on Sunday. (Its possible Jolie O'Dell had some stale news as it was posted monday).

As of an hour ago, we have come to an agreement on acceptable licensing terms with Random Rab for the music we used, and an apology.

https://twitter.com/#!/randomrab/status/164070854433570817

We've been combing through our assets and code to make sure we have all the appropriate licenses (and obtaining/replacing) for any assets we do not. It may take some time to get through everything, but this is our first priority.

Meanwhile, if you'd like to bring anything to our attention, please let us know at support@curebit.com. We'll act on it promptly.
But when do you actually need to synchronize all 1000 cores ? It's not like 1000 cores try to update same entity at one time, work will likely be map-reduce style (and there are plenty of things to do with it, speech recognition, voice synthesis, image analysis, etc.)

GPU have different issues, separate memory space, esoteric programming tools, doubles aren't IEEE compatible if available, no ECC. IIRC they aren't even suitable for things like ray-tracing, CPU implementations outperformed GPU based ray-tracers last time I checked. GPU's grew out of special purpose hardware and it shows, I don't think they are necessarily representative of the future architectures.

If you had a x86 or ARM chip with 100 cores and different instructions for atomic operations it would be a different story.
That speed guarantees you a load time of at least 5 seconds for the average HTML page (with a single visitor), assuming best conditions. Even shared hosting, which is almost free, will fare better than that.
Of course they do lots of other stuff, like Hive, that is completely unrelated to PHP. I never doubted that. But Alexandrescu was talking about PHP as a language and as a runtime. All the PHP specific things they do seem to be about fixing things that they wouldn't have to fix if they had chosen a different platform like Java or SBCL common lisp or Haskell or C#.
Most people don't need to be able to program at a professional level, but they do need to be able to intelligently use computer technology. I think learning a little programming can be helpful for gaining a better understanding how computers work.
Such as the 4th amendment? It's really been eroded, it will take a lot to restore it.
>You get what you pay for.

GMail cost me $0, and it's probably the best webmail service/interface out there right now.

>If I were looking to use a service like this, I'd be much happier investing in my time in one I pay for rather than a free one.

Why would the amount of cash you throw at something impact how you invest your time in it? I love Evernote, but me throwing a few bucks a year at it isn't going to change how I already use it.
These Guys Built a Crowd Investing Platform Even Though It’s Not Legal Yet
Here's my favorite O'Dell article, from last March: http://mashable.com/2011/03/10/node-js/

I'm not going to say that her having written a decent article a year ago confers a ton of respectability on VentureBeat but it's not all bad.
Clearly this is the sort of story the Hacker News community finds interesting, worthwhile, and informative. If they did not, they would not have upvoted it.

As you sow so you shall reap, and all that.
Because it will completely screw with anyone who actually wants it in the per-repo config file. If I'm new to git, and my first usage is on a sample project, and git prompts me then I'll put in my personal contact information. But then if I go and start working on my company's git project, it will never prompt me again and I'll accidentally be committing company code under my personal email address. And I would be perfectly justified in blaming git's faulty user interface for letting that happen. At least if I set the config myself I _know_ I'm placing it in the global config file.
Mental note: avoid Random Rab. He would rather fuel a shitstorm than take the video down with 4 clicks and send a private email.

Edit: and VentureBeat
Debian stable is unaffected (1.7.4p4).
I think this kind of feature is missing on many blogs that have some notion of "coherent content". We've all seen a link to a multi-part series on some blog with no obvious link to the first or next part.

I have no relationship with Engadget, but I think this is a useful blog feature, and more blogs should have the notion of a "saga" or "story" or "series" with its own metadata (introduction, overall tags, etc.). By tagging a blog post as part of one or more "sagas", it automatically gains inter-saga navigation, etc.
Compare the cost of living between X and Y (cities)
How to Set Up a Hadoop Cluster with Mongo Support on Amazon EC2
Great points...
Nitpicking, perhaps, but I really would like the author to motivate why Haskel (sic!) is more weakly typed than say Ruby, Java or C#? Not sure how Ruby is less dynamic than Python either (besides the fact that his definition doesn't really admit a sliding scale), but that might be my relative inexperience with the languages showing.
I'm a data scientist. What sort of resources could I provide to the startup communities? Is it just consulting needs or could I provide an "data science" API?
I wouldn't bet against that, but what I was saying was that right now there is a big difference between a human bank teller and a human dentist, and an even bigger difference between an ATM and some future dentist robot. It's just a bad analogy because they are not similar interactions at all.
How do you mitigate the risk associated with third-party Javascript?
Hmm, that sounds annoying. Couldn't they find a more elegant solution than having toolbar elements jump around all the time? I'm not sure if ~30px of extra horizontal space is worth all the jumping around.
I think I remember an engineer I worked with in the past gleefully pointing to a preface page in an Intel handbook for a chip Intel designed that Intel had copyrighted the lowercase letter i.

(f recall correctly...)
Lion runs 1.7.4p6
It's true that, given enough eyeballs on the freemium content, his Comedic MVP is poised to go viral and kill Facebook.
> This statement is tantamount to saying "you don't merely need to prove Fermat's Last Theorem, you also have to test it for all possible input values". By this line of reasoning, most of mathematics should be thrown out.

> If you've proven a program correct ..

You are making a categorical error: One proves algorithms and tests programs. A program is a representation of an algorithm. If the language of implementation e.g. Haskell is purely functional, and your representation e.g. data types is faithful to the algorithm, then you can make claims about your provably correct implementation.
How To Bid Profitable On Facebook
Some real insights with my experience with Facebook Ads.

P.S. Mainly for people into affiliate marketing and strategic profits using Facebook Ads traffic.