skysight-inc/HackerNews huggingface dataset:
This is a great short summary, followed by the Tech Talk (on youtube) which goes into a bit more depth about the how and why of the design considerations.

What isn't mentioned is basically, because the change is 10KLoC to the kernel (unprecedentedly huge change for just the functionality they added) it hasn't even been submitted yet, and mainline hasn't even considered it yet.

I'd love to see it hit mainline, or parts of it start getting submitted, but the biggest thing will probably be re-writing the whole thing to have a much smaller impact on the kernel, while still providing the functionality they need (e.g. use the TCP backoff instead of their own, etc).
The real trick is that, conceptually, these are not really "unwrapping" functions--instead, they're "propagating" functions. All they do is take Maybe values from deep inside your computation and string them through to the outside.

In practice, this means that you write a decent part of your program using these techniques, which creates a block of code that produces a Maybe value after taking a bunch of Maybe inputs. Then you only use a case statement at the very end, when you need to plug the Maybe value back into normal code.

All these functions are useful for one particular case: you don't know what to do with a Nothing value, so if you see one anywhere, you just pass it on: your final result is Nothing. That pattern just turns out to be very useful.
How do you measure performance? I'm interested specifically in where & how you instrument, and how you collect the data.
Google Inc. Announces First Quarter 2013 Results
Isn't there someone out there actively sending patent troll letters to anyone who scans to the interweb?
Laffer Curve. Look it up. Even JFK understood it.
>> In my opinion, you should only use 80% of your working hours doing the "real stuff". Devote 20% of your working hours to non-technical work, active career development and image management.

You're right, only the percents are inverted. 20% (max!) for the Company and 80% for personal development.

And the 6 points listed by you show me you're either a clueless employee or an unscrupulous Company jockey.
They are pretty rare. Very few functions actually want to use nullable-arguments. Another reason why nullable by default is a bad idea.
How to show subscription popup on your YouTube Channel?
>that's the problem with higher dimensional fields like economics and finance - it's hard to separate cause and effect and extract principal signals for an arbitrary phenomena, without getting bogged down in correlation hell.

While I agree with you about the difficulty of understanding complex systems, your post sounds despairing. Accepting the inherent difficulty is vital to better analysis, but isn't a reason to avoid actual analysis.

Note for example that you wonder why austerity was ever considered a good idea. How do you "know" that austerity is a bad idea without analysis. It's only been about 80 years that we've had a better understanding of how a single household's economic considerations are fundamentally different than an economy's solely as a result of scale.

The naive analysis from classical economics would draw a parallel between a decrease in GDP and a decrease in household income, whereby it is prudent to decrease your consumption. However, while a households income is an exogenous factor, GDP is a product of the economy itself. During a contraction, there is generally the same amount of labor, capital equipment and technology as before the inflection point, it simply isn't being utilized or employed at the same rate.

Today, informed policy debates may weigh the continued harm that comes from leaving underutilized people and capital idle, against the reduction in signalling for needed structural change that may result from stimulus. Just as an example, it is easy to argue that rescheduling bridge and road construction that will be needed later to a current period when labor is cheaper and equipment isn't being used elsewhere is prudent. Yet on the other hand, doing so may signal over-investment in construction careers and heavy equipment.

In the past, policy debate would have focused on balancing well-meaning charity of helping out people on hard times against austerity which was believed to be beneficial for the economy as a whole. How can you even begin to determine whether assumptions about belt-tightening being constructive are flawed without economic analysis?

I think the lesson to be learned from this event is first the importance of more rigorous scrutiny of results, but more importantly to be distrustful of the type of politician who searches for studies to support their preconceived conclusions. A good portion of policy makers advocating austerity, have done so from a stance of dismissing the analysis that doesn't fit their ideology, rather than a scientific approach of starting with a hypothesis and assessing the available competing analysis in good faith.
This is a really bad title, since they were only ever blocking invites, not messages.
The tech talk (http://www.youtube.com/watch?v=VWN0ctPi5cw) explains how MPTCP can be implemented on top of existing TCP without interrupting the client, the server, or both.
If i'm remembering correctly, it's not entirely the meego successor. Sailfish is a new project from the people who worked on meego, but the actual meego project turned into Tizen.
For Bitcoin, double-spending would probably be defined as the same txout being spent in two different confirmed transactions. Perhaps this is so obvious that people consider it not worth explicitly stating.
> Whether you back your money with energy, cryptography, flowers, or seashells, you can never control all the other factors, and thus your currency will fluctate.

Indeed! And before long, people will want to lend and borrow BTC once usage expands beyond the current early-adopter "hard money" crowd. That's just human nature and is OK on a small scale. But then BTC IOUs may start to circulate. Then some new-fangled "BTC Goldman-Madoff" figures out ingenious ways to "make your BTC work for you, let us do the IOU magic of fractional reserves for you. Just don't all attempt to cash in your chips at the same time, which you won't given the incredible growth in IOU 'returns' (not hard BTC but hey, by now one is as good as the other in the minds of most) we can deliver for a few decades".

Bam, here we go again?
Is that C++? Just use a reference if you want a pointer which asserts it can't be null.
TL;DR: You prefer the old way of doing things.
It's been this way since 2009... http://revealingerrors.com/akamai_ssl
A similar idea I came up with a while back was to back a currency by carbon sequestered from the atmosphere. Anyone who absorbs atmospheric carbon in an auditable way would get vouchers denominated in tons CO2, and anyone who emits would submit those vouchers or pay a fee. Practically, the "emitters" would just be primary sources (coal mines, oil wells) who would pass the costs to the rest of us.

Fees paid could be distributed to citizens, making the whole thing work just like Hansen's fee-and-dividend, but adding an incentive to absorb carbon when it's more efficient to do that than to avoid emissions.
I imagine you'll get an overwhelming number of people who want to learn other languages but can only offer English themselves. How's the rate been so far?
A friend of mine is trying to help line up consulting work, but I am second guessing myself? Should I just stick with it? Am I just being a nervous nelly?

Or should I layout the blunt truth to them that I am getting way out of my risk tolerance. Even if I don't stick with the company I'd like to keep them as friends.

I've looked up if I can write off on my taxes lost wages, and that seems like a no-go. I have also thought about converting my lost wages to debt within the company as I am honest and pursue full time consulting work vs. maybe 20hours a week or something.

Again, I just don't know the best course of action. I believe in the product and the space, but I am not sure anymore that we are the team that is going to win this ground.

Thoughts?
This was a fun book to be a part of writing, due to the unique way how 5 of us (including some core Backbone.js contributors) got together for a "book sprint" and collaborated on both the sample project, and writing the book itself, over a short period of time.

* $5 off from Gumroad: https://gumroad.com/l/mtan/$5off

* http://techbus.safaribooksonline.com/9781939902016

* Kindle: http://www.amazon.com/Developing-a-Backbone-js-Edge-ebook/dp...
Usually fugitives are at least charged with a crime...
His show also benefits when he is portrayed unflatteringly.
It's not restricted to a single hop; it provides redundancy over completely different paths. As demonstrated, they used ethernet, wifi and a cell radio, then removed any two of them while keeping the packets flowing. That's pretty impressive.
>The behavior of [] is from C -- it's not a bizarro C++ feature.

I'd say that a feature of C++ is still a feature of C++ even if the same feature is in C.
for example int a = b = c = 0;
Ack 2.0 has been released
It's always a matter of implementation.

SCTP is the solution to the problem that Multipath TCP is trying to solve. The biggest challenge is the penetration of TCP libraries vs. SCTP libraries.
On page 58, there is more text that can be seen through the partially transparent page. I messed around with it trying to find the right amount of blur and noise removal and various effects on it to make the text most readable, and this is what I came out with:
http://i.imgur.com/CyyWWBR.png

It looks like the title is "A-Power-Plant".

This leads me to believe that this section of the book has been printed out, laid on top of another book and scanned, so that it looks like a full book. Does anyone know what book it might be on top of?
Anyone interested in something like this should also check out PJAX. Push State and AJAX. https://github.com/defunkt/jquery-pjax

This is what GitHub uses between tabs on its Pull Requests page. I love how simple the implementation is.

Your app still needs to follow the convention of having links going to different pages with URLs. I know it's not "single page" and the interaction is not that "rich." But it's nice because all your logic is still on the server, all rendering and templates are on the server and the server responds with either a full page of HTML or a partial page of HTML depending on an HTTP header you set.

Oh yeah, it also works without Javascript, crazy!
Cross correlation post from the "I Knew a Programmer Who Went Completely Insane" thread:

Clueless company employee, who either doesn't understand his precarious, cannon fodder, expandable position OR is part of the management (computer science OR, both statements can be simultaneously true and most likely they are) says: "In my opinion, you should only use 80% of your working hours doing the "real stuff". Devote 20% of your working hours to non-technical work, active career development and image management."

Guess what any smart 10x unicorn would do? :P
I've worked on a lot of legacy Java code where these kind of null checks cause problems. The end up confusing things in corner cases.

You should verify arguments at a top level, then let the code underneath blow up with a NullPointerException if something unexpected happened. Your stack trace will point at where the problem lies.

I find for some reason that a lot of people want to use null instead of empty lists where you'll end up with this ugliness:

if (list != null) {
for (Thing t: list) {
processThing(t);
}
}

Instead of just passing in a Collections.emptyList() instead.
Obscureness is subjective. In my opinion this article would be worse if 50% of the least obscure features were not presented.
That was a poor choice. The local “a” shadows the parameter “a”. You can of course write:

addM :: Maybe Int -> Maybe Int -> Maybe Int
addM ma mb = do
a <- ma
b <- mb
return (a + b)

As an aside, the inferred type would be much more general, because (+) works on any number and do/return work on any monad:

addM :: (Monad m, Num a) => m a -> m a -> m a

Which means you could use it like this:

addM (Just 5) (Just 10) == Just 15

But also like this:

addM [1, 2] [4, 8]
== [1 + 4, 1 + 8, 2 + 4, 2 + 8]
== [5, 9, 6, 10]

Or like this:

addM (Right 42) (Left "NaN") == Left "NaN"

And in many more interesting ways. :)
At the very least, in the specific case of people firing their guns wildly into the air on holidays, I think it is fair to say that there is plenty of room for improvement.
There's a good reason we have amateurs as jury members.

Professionals often have an axe to grind, and will sometimes let their experience and ego cloud their judgement.

The Aaron Swartz episode come to mind.
As an engineer he should know that the ISS has to be rad-resistant. They'll upgrade soon enough.
Bullseye.

I think I've learned to work through this brand of bullshit without being consumed by it, but I've earned myself a pair of golden shackles in the process.

My recent focus has been devising an escape route. I believe it starts with recognizing what's really important in life and learning to want less. I'm not sure where it ends, but it's hard to imagine escaping most of the bullshit while working for anyone else.
You don't need root access on whatever OS you're running to unlock fastboot. You typically only need to access fastboot via USB, how else would you load an OS to a blank device?
Setting up 2 Factor Auth for your Google account and Microsoft account
Does that article title pass a type checker? How can you compare a type (Maybe) with a value (Null)?

Is this instead arguing Maybe vs pointers? No, that can't be right; pointers are just type-safe as Maybe, albeit less general.

I guess it's a dynamic vs static typing argument in disguise?
That's what I thought, but then that last one... I had no idea.
This just means that there is no redirect on www.bing.com via SSL. Bing.com (ssl) has a proper re-direct to non-ssl www.bing.com.

Most-likely an oversight, but it does suggest ssl isn't supported.
>That pattern just turns out to be very useful.

Like NaN, it can be hard to track down where things went wrong.
I wrote my own billing system in 2003. I used TrustCommerce as the provider. They actually had decent APIs even back then.
The point was probably that it is not obscure; it's what you had to learn when using plain C in the first week.
Don't worry, once I win the lottery, I shall create a paradise for workers.

Until then, hold your breath.
scala did it
Historical Recount of America’s Arcane Origins
I think there were a lot of us who got it. Palm's hardware division, marketing dept. and whoever sucked at wooing carriers didn't get it.
> Head spin

Reminds me of this part of Astronaut's training: Anechoic chamber [1][2][3].

‘In the anechoic chamber, you become the sound.’

[1] http://www.dailymail.co.uk/sciencetech/article-2124581/The-w...

[2] http://en.wikipedia.org/wiki/Anechoic_chamber

[3] http://www.bbc.co.uk/news/science-environment-21708581
Any idea when AngularJS Edge will be published?
> Let me modify the OP's comment, Jacques: _why was one of the first people to create art around and about our modern software community.

Let me modify jacquesm's comment so we can put a halt on this.

Fuck you for discarding the creative work of literally a whole generation of people in the software community before _why entered the scene.

I cannot use any term less hostile. It's that repugnant to me. It's such a toxic, repugnant, self-centered post you and the previous commenter have made that I was literally dragged back to HN after months of hiatus just to vent my anger.

You are wrong. You are imply everyone who came before was a mindless, emotionless robot. Art and programming have been intertwined since before programming was a real thing humans could do. See Lovelace's letters on her take on the subject if you want to talk about it. So there is that.

So to all you people who want to act like somehow you've discovered the secret of emotions and programming? You're telling all those who came before you to go fuck themselves. You have told them that your ignorance invalidates their work, then proceeded to wax philosophical on the tiny sliver of the body of work you are aware of like it's an entire universe.

It wouldn't be okay in any other medium, in any other artform, or in any other discipline. Period. And it's not okay here.

There. My jimmies have rustled free.
How do you propose to modify all of the ASICs in routers that are optimized to do lookups on packet headers at the speeds they need to achieve?

Routers today are doing 32x100GbE in a single chassis. That's an investment in hardware that isn't going to go away any time soon.

SCTP already solved this problem. Multipath TCP is an also-ran.
Nicely put. I think that you've really captured what about his writing and persona are so special to the community.

I think the sense of sensitivity you feel through his writing adds to that, too. If he's making a joke of you, it's a gentle one. Kind of the yin to Zed Shaw's yang.
Live Boston Update Thread [Part 5]
The noteworthy bit is that declarations are valid in the conditional "expression" of if-statements and evaluate to the declared variable. It's imo not obvious that declarations are expressions sometimes.
with two antennas (antennae ?) simultaneously broadcasting/receiving, i think battery life would be pretty low...
I'd love to know. I bought an N9 late in the game expecting its "openness" to work with all this year's upcoming mobile OS's, mainly Sailfish. So far all it can run is android.
It's Java ;P I haven't used C++ in a long time. But you are correct a reference does exactly what he wants.

For anyone who needs to look it up like me: http://en.wikipedia.org/wiki/Reference_(C%2B%2B)
It's true that there's always a procedure in place for bypassing the official policy as needed. However, it often comes down to a question of whether its faster to follow this procedure or to simply undermine the security. I've repeatedly seen people solve the problem of handling unsigned certificates by simply moving back to pure HTTP. This is a great security hole than the unsigned certs ever were, but it's perfectly valid with their security policy.

I can actually take your key analogy into true story territory. I worked at an office where a manager had to be gone for a month. He had the only key and the policy to get a new key wouldn't get one to us for weeks. It was also against policy for him to give the key to someone else while he was gone. The solution was to simply leave all the doors unlocked while he was gone.

I understand the need for security. I understand that security is your job and that you don't want to compromise for mediocre security. However, when you won't compromise, we don't get great security. We get no security.
If the interest rate on the $1M is 2% then each year the "cost" of the $50,000/yr job is $20,000. So even if we don't factor in inflation (which would certainly change these calculations), it would take more than 33 years to "pay off" the $1M. You'd have to have someone work well over 33 years at $50,000 to recoup much return on your initial investment of $1M. Besides which, as you pointed out, a lot can happen in 33 years...how many jobs remain today that were around 33 years ago? Some of them, certainly, but many of the current crop of high paying jobs have been created in the last 10-20 years by innovation occurring organically in the private sector.
Except that what it looks like isn't actually what it's doing (made even clearer by the a <- a example).

I like the Maybe concept and non-nullable types; I just think being able to overload operators like "=" and ";" in C++ and Haskell is optimizing writability over readability and in most cases, readability is by far the more important attribute.
The problem is that offline, there is an implicit vetting system.

I.e. if in your group of friends, one of the guy is always trying to hook up with a different girl everytime, quickly people will stop inviting him to events.

However, some social networks that have become "implicit dating websites" (meetup.com comes to my mind to some extent), there is no such self-regulatory system.
If this were just

if (mouse = dynamic_cast<MouseEvent *>(event))

then it would indeed just be an if condition expression that happened to be an assignment.

But the variable is being declared as well, so what's actually going on here is a declaration and an initialiser expression. There is actually new functionality here that needed a bit of language design thought, e.g., the declared variable's scope is the whole if statement, not just the condition expression.
I'm not. The private sector generates wealth. One purpose of the government is to facilitate that wealth creation by running deficits to ensure there is sufficient demand for what our productive output supplies (due to growing capacity, income leakages from savings and trade deficits, distributional inequalities, etc)
Maybe the FBI can buy them reddit gold. :-)
My favorite is that these are indeed "alternate operator tokens" an so you can use `compl` in place of ~ to name a destructor. Like, for explicit destruction:

MyType* foo = ...;
foo->compl MyType();
In my experience, Android multitasking still doesn't work like a desktop (or even my old n900.) Certain applications (those registered as services) can continue to work in the background, but many suspend entirely.

Sometimes I want to do something else while I wait for a large web page to load over my mobile data connection. On my n900 this worked fine, but as soon as I switch to another task, Chrome on Android 4.2.2 quits loading the page.

Plus, task switching is still a heavy operation on Android - swapping back and forth between two applications is a bulky, slow operation compared to the n900, which, itself, was bulky and slow compared to a desktop window manager.
The tech description lists an "Android Runtime" (https://sailfishos.org//about-technology.html), so maybe it'll be able to run older/smaller android apps like the new blackberry phone. Good for users and developers, and not a bad way to jump-start a new OS.
just had a quick look and am as excited reading this as checking out more espisodes of 'the office'! (I only started watching the american version recently. Originally I dismissed it as just another copy-cat of the original UK, but I'm beginning to get into it).

I didn't read any of it yet, but just the thought of having more to read about it makes my life already better :)

EDIT: I just realised who I was "recommending" this too. Well, at least it was worth it for me :)
Bugs have antennae, radios have antennas (or aerials).
We recently moved from dedicated to cloud servers, so we have a Chef recipe that we run using a knife command to target all web servers in parallel. The recipe looks at each of our git repos, finds ones that have been updated on the appropriate production branch, reclones them, then symlinks them into place, replacing the existing symlink to the old version. As a bonus, the deployment recipe also makes sure all permissions and symlinks are correct.

It works pretty well so far; we'll almost certainly be looking at ways to make it easier as it's currently a rather lengthy knife command.
That, and I wonder if he will get bummed out looking at something on a really high shelf, or a cobweb up in an unreachable corner. The old muscle memory quickly telling him how much force to kick off from the floor with to get there. And then his higher brain realizing that he is stuck to the floor. Like a 3-d prisoner forever trapped in Flatland.
In object-oriented modelling you often see the Null Object pattern being used to the same effect.

http://en.wikipedia.org/wiki/Null_Object_pattern

It needs static analysis tools such as Code Contracts (C#) or SpringContracts (Java) to make it really robust.