skysight-inc/HackerNews huggingface dataset:
I might be alone on this, but whenever I read things by John Carmack I get a vague sense that he doesn't really get object oriented programming. He always has a lot of interesting things to say, but it also kinda reads like a C guy trying to code in C++. I'm glad his thinking keeps evolving and he's not dogmatic about anything. I'd honestly love to hear his thoughts on C++11

"The function that is least likely to cause a problem is one that doesn't exist, which is the benefit of inlining it."

That's the equivalent of saying "the faster you drive the safer you are b/c you're spending less time in danger"

You'll just end up with larger monster functions that are harder to manage. "Method C" will always be a disaster for code organization b/c your commented off "MinorFunctions" will start to bleed into each other when the interface isn't well defined.

" For instance, having one check in the player think code for health <= 0 && !killed is almost certain to spawn less bugs than having KillPlayer() called in 20 different places"

I don't completely get his example, but I see what he's saying about state and bugs that arise from that. You call a method 20 times and it has an non obvious assumption about state that can crop up at a later point - and it can be hard to track down. However the flip side is that when you do track it down, you will fix several bugs you didn't even know about.

The alternative of rewriting or reengineering the same solution each time is simply awful and you'll screw up way more often
The author tried harvesting the next url from the `Older` button _before_ he tried

urlFragment = "p=" + i++;

...wut? :)
2 things real quick.

1) You broke the back button.

2) Download link is broken.
I did a write-up of something similar recently with Postgres, although I didn't do it with the key-value store types (i.e. hstore or json). The value of this is it shows you how you can use some of the built-in types - I don't know how it scales to 100 MM records though.

http://www.garysieling.com/blog/postgres-time-travelling-deb...
RRDtool – About RRDtool
How do you know when someone uses a text replacement extension?

Don't worry, they'll tell you.
Right. A survey showed that parents usually expect that children want more time with them instead of work, but that that's not usually what children want:

"One of Galinsky's more surprising findings centered around a question she posed to both children and parents: "If you were granted one wish to change the way your mother's/your father's work affects your life, what would that wish be?" Some 56 percent of parents anticipated that their children would want more time with their parents and for their parents to spend less time at work, yet only 10 percent of the children actually wanted more time with their mothers and only 16 percent wanted more time with their fathers. A far larger proportion, 34 percent, wished that their mothers would be less stressed and less tired, and 28 percent wished this about their fathers." - http://econlog.econlib.org/archives/2008/05/listen_to_the_c....
So this came out a few years ago [1] and then it seemed like it just disappeared. This is the second or third thing I have seen on this in just a few days.

What happened in the interim?

[1] http://blog.123dapp.com/2011/12/3d-scanning-for-posterity
The CIA has a history of funding black ops through drug running, regardless of which side they are supposed to be helping.
Working at Dropbox
"inlining" means that instead of hand-writing blocks of manually inlined code, you write a function, which can be inlined for you.

That's backwards: Carmack advocates to avoid writing such functions, manually inlining their code into the caller (with the possible exception of pure functions).
> What's the “six degrees” question?

That depends. Most likely it refers to six degrees of separation, as with the idea that a given person is likely to be connected to every other person on earth by a maximum of six intermediaries.

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

But with only the words "six degrees" as evidence, there are more possibilities, too many to give a definitive answer.
Excellent point. The video totally misses the "why" of this product.

Very difficult to get non technical peeps just suddenly ditch spreadsheets.

I think a focus on a specific use case i.e job would be better approach. Seems to be to broad in terms of the jobs that it is addressing.
Coding is not all about business
> Never heard of. Western european hemisphere here.

You've never heard of Dyson vacuum cleaners and Dyson "fanless" fans and Dyson handdryers? (Dyson is English).
This startup can make you invisible to mosquitoes. But it's not stopping there
> The alternative of rewriting or reengineering the same solution each time is simply awful and you'll screw up way more often

He might not have communicated it completely correctly, but I believe he wasn't advocating for getting rid of functions to reduce redundancy.

He instead was advocating getting rid of functions that simply provide documentation of the process, and instead find a way to inline those functions clearly.

> However the flip side is that when you do track it down, you will fix several bugs you didn't even know about.

I think he is saying a class of bugs is avoided. For instance if I do X, Y and Z where all are only ran when the player is alive and Y might kill the player, leaving the player alive avoids a bug in Z if it assumes that the player is alive.
I'm assuming this was posted because it was brought up during Jonathan Blow's talk last night: http://www.twitch.tv/naysayer88/b/572153991 (which have been interesting, (and Twitch is a great format for these))
OpenMandrivaLx 2014.1 Released
Does anyone know anyone who works at AOL?

When I was looking at the default root certificate repositories that the major browsers and operating systems use. They are mostly your regular list of CAs and governments, but there's one name that popped out as unique: AOL.

America Online has two legacy certificates[1] in the Microsoft[2], Apple[3], NSS[4], and Android[5] default list of root CAs. I'm assuming this is from back when AIM was all the rage, but remarkably AOL has been keeping up the audits[6] for them. Does anyone have any more info on the history of these certs?

I think might be a great opportunity to address the two problems above. Could AOL start offering free SSL Certificates?

Pros:

1. Their root certificates are already in everyone's list (backwards compatibility).

2. Their core business model is not issuing certificates (not seen as a racket).

3. They would get a huge press coverage for being a "savior of HTTPS" or some such spin (positive spotlight for AOL).

4. There would now be competition in the free SSL cert market (maybe other CAs would start offering free options, too).

Cons:

1. This would be a cost for AOL. Perhaps other tech companies could partner with them to subsidize the cost of issuing the certificate? Perhaps there could be kickstarter to pay for the costs? Perhaps AOL could spin off a non-profit foundation or donate the certificates to Mozilla?

2. Unforseen technical problems associated with starting to chain to a certificate that hasn't been in active use for a long time. I have no idea what these could be. Thoughts?

3. SSL certs would likely be issued with no warranty (since they are free). Not a deal breaker in my opinion, because the scope for these could be for non-commercial use.

Anyway, just tossing out this idea for feedback. There's no sense in pursuing this further if there's technical reasons making this impossible.

Again, does anyone know anyone who works at AOL? I would love to talk to someone there about this.

[1] - https://pki-info.aol.com/AOL/

[2] - https://social.technet.microsoft.com/wiki/contents/articles/...

[3] - http://support.apple.com/kb/HT5012

[4] - https://www.mozilla.org/en-US/about/governance/policies/secu...

[5] - https://android.googlesource.com/platform/libcore/+/master/l...

[6] - https://pki-info.aol.com/AOL/2013_AOLRoot_Audit_Attestation....
Children suffer enough "abuse" in our society, even without the bad
effects of the Internet or technology in general.

They don't choose their names. They don't choose their religion. They
don't choose their political views. For fuck's sake at least let them
grow up to the point that they can choose for themselves if they want
to share content of themselves with the entire world.
I think I might support this, but I'm not done thinking about it.

One thing that would happen immediately: people would stop discussing marital affairs via telephone. (And there'd be a brief spike in murders if the historic data were released!)

The knee jerk reaction is to extend that idea to would-be terrorists, too--to imagine that they'd simply change their communication habits (they already try to avoid monitoring, I presume).

But, let's think a little harder, and let's start with the married folk.

Bob and Mary are married. Eve is Bob's co-worker. Don't you think that Eve-Bob communication is going to contain some tell-tale signs _before_ the affair? Could Mary (or Bob, or Eve) use this information to prevent the affair (or proceed in a less painful manner, depending on their situation)?

I was interrupted and now I've put that line of thought on hold and developed a new one.

Remember IRC? Did you ever choose your stance in a dispute by reviewing the logs? ...Was there anything wrong with that? Wasn't it generally helpful?

Of course in that world, PRIVMSG does exist. In our world, it doesn't.

I dunno.
Couldn't agree more. Side project that I wanted to share but apparently wasn't show ready with my spelling and prose. Fixed and thanks for the suggestion!
As an EMT/Paramedic, the single best thing I’ve been able to do for patients is take them home (or really, somewhere, ANYwhere other than a hospital or nursing home) to die, in peace, in comfort, and with dignity.

We spend more to keep people alive, often in misery, in the last two years of their lives than we often do in the two decades preceding it. Quality of life doesn’t have an ICD9/10 code, though.

I’ve pushed back at doctors and nurses, similarly, who have discharged patients to home, having blithely signed the form that “patient requires transport in fully-equipped ALS (advanced life support) ambulance” (and the bill that goes with it), when the patient is able to walk without assistance, has no complaints or pain, and is generally and hemodynamically stable.

It’s obnoxious.
A story linked four times in the past 24 hours:

https://hn.algolia.com/?q=fbi+boss+smartphone#!/story/foreve...
I run an Owncloud instance on my own server for sharing photos and video with remote family members. Even then, I end up loading a USB stick every six months and posting it (parents in rural Australia and sluggish Internet).

You're right, it's a calculated risk, but posting photos of small children to Facebook, YouTube or any of the big public sites just strikes me as a bit thoughtless.
Most of our engineers are on the rotation. For us, having a good PagerDuty setup is much cheaper than an unhandled outage.
Nuzzel – News from Your Friends
Also adds consistency, which I'm sure is important in realtime games
That's good advice as far as maintaining privacy and safety of children are concerned. but it's completely unresponsive to the question of why it's so easy to just copy and slap a new title on someone else's content in pursuit of easy cash, which could just as easily happened with an amusing cat video or whatever. Are you saying that one you put something up in on a public site like youTube or Facebook, it's OK for other people to rip it off?
I did not know this programming language and found it very interesting. mainly because it is similar to Python.
But that isn't the kind of inlining he is advocating.

He is talking about

f _ = do_work 12

let a = do_work 12 in a + a
Dyson took 100 year old design of industrial saw dust vacuum cleaner and just changed target demographic of a product.

He basically went "this 100 year old thing, but on a MOBILE DEVICE!11"
Principled my ass. And I am not sorry about the parent, I am sorry about the
child who has such a stupid parent.
I share pictures and videos of my kids on Facebook so that my technology-averse mother can see her grandkids. It has been very difficult to get her to use any social media at all. A password protected site, where there is no push to her tablet is a non-starter. For better or worse, Facebook is the lowest common denominator now, and as much as I dislike using it, it's become the standard. I currently see no better alternatives that my fairly large extended family and circle of friends can adopt easily.

So yeah, if you want to keep your pictures private, keep them private. If you want your family/friends to see them there are very few alternatives.

Edit: Apple's PhotoStream oddly enough is a close second contender. It's mobile-centric which is great, supports albums, allows multiple people to share pictures, and pushes notifications. The downside is obvious: Apple-only hardware. At least some people who normally would want these pictures/videos cannot get them this way. There is a web link you can set up, but then there is no push to phone, which sucks.
Manfred Memorial Moon Mission (4M)
As a minor note, conditional checks can have significant performance impacts if you don't consistently handle the conditional.

As an example performing an operation every other frame can cause your CPU to thrash due to always taking the wrong path. (I of course am oversimplifying and OOO CPUs are quite complex)
The problem with every allegation of quote stuffing I have ever seen is that it always looks like this:

1) Blast quotes

2) ???

3) Profit

Same problem in this thread. It would be a much more convincing argument if you could spell out the actual trade.
WordPress Security – Brute Force Attacks Abuse XMLRPC – Sucuri Blog
>> It also sounds like performance is a secondary, but still important, concern in this post.

Not exactly. He points out that in real time systems, worst case execution time is more important than average execution time. You have to render a video frame in 1/60 of a second or it will need to be displayed twice. In that case, getting the job done faster on average doesn't matter. This can change a bit if something like power consumption becomes relevant - then you've got conflicting requirements.

Real time keeps performance a top priority, we just look at a different metric.
Ugly web design: Is it a matter good taste?
it is often better to go ahead and do an operation, then choose to inhibit or ignore some or all of the results, than try to conditionally perform the operation.

The way we have traditionally measured performance and optimized our games encouraged a lot of conditional operations [...] This gives better demo timing numbers, but a huge amount of bugs are generated because skipping the expensive operation also usually skips some other state updating that turns out to be needed elsewhere.

Now that we are firmly decided on a 60hz game, worst case performance is more important than average case performance, so highly variable performance should be looked down on even more.

Two words: Battery life. In case of mobile devices, this is not sound advice.
Yup, exactly, but it was new to me and didn't stick at all. Only now do I know what I should've done while there.

My dad got his degree; he was first generation and didn't get a lot out of it, so I'm basically a second first generation college student and have had to pick up most of this myself. My kids will get a lot more out of their experiences than I did though.
The older I get, the more my code (mostly C++ and Python) has been moving towards mostly-functional, mostly-single static assignment (let assignments).

Lately, I've noticed a pattern emerging that I think John is referring to in the second part. The situation is that often a large function will be composed of many smaller, clearly separable steps that involve temporary, intermediate results. These are clear candidates to be broken out into smaller functions. But, a conflict arises from the fact that they would each only be invoked at exactly one location. So, moving the tiny bits of code away from their only invocation point has mixed results on the readability of the larger function. It becomes more readable because it is composed of only short, descriptive function names, but less readable because deeper understanding of the intermediate steps requires disjointly bouncing around the code looking for the internals of the smaller functions.

The compromise I have often found is to reformat the intermediate steps in the form of control blocks that resemble a function definitions. The pseudocode below is not a great example because, to keep it brief, the control flow is so simple that it could have been just a chain of method calls on anonymous return values.

AwesomenessT largerFunction(Foo1 foo1, Foo2 foo2)
{
// state the purpose of step1
ResultT1 result1; // inline ResultT1 step1(Foo1 foo)
{
Bar bar = barFromFoo1(foo);
Baz baz = bar.makeBaz();
result1 = baz.awesome(); // return baz.awesome();
} // bar and baz no longer require consideration

// state the purpose of step2
ResultT2 result2; // inline ResultT2 step2(Foo2 foo)
{
Bar bar = barFromFoo2(foo); // second bar's lifetime does not overlap with the 1st
result2 = bar.awesome(); // return bar.awesome();
}

return result1.howAwesome(result2);
}

I make a point to call out out that the temp objects are scope-blocked to the minimum necessary lifetimes primarily because doing so reduces the amount of mental register space required for my brain to understand the larger function. When I see that the first bar and baz go out of existence just a few lines after they come into existence, I know I can discard them from short term memory when parsing the rest of the function. I don't get confused by the second bar. And, I don't have to check the correctness of the whole function with regards to each intermediate value.
I generally save "very sad" for when someone, you know, dies or something.

I mean, if she really cared, she could have the content removed entirely. Rather than say, caring enough about getting credit by having the formerly anonymous child be linked to her blog.
I think it's obvious that rising interest rates are bad for the bond market? I am not an expert and could be wrong, but I think that's one of the basic bits of the bond market that someone like me is capable of understanding.

The special knowledge would be knowledge of when interest rates will rise... and if you had that knowledge... god damn, you could make some money.

The yield curve is not currently negative... but it still seems pretty flat to a non-expert like me[1] - which I believe signals a belief (on the part of people buying bonds) that rates are going to stay low for a long time. (and that the economy is going to be shit for a long time.)

[1]http://www.treasury.gov/resource-center/data-chart-center/in...
Read here and find out why biicode rocks: http://docs.biicode.com/biicode/biicode.html#basic-concepts
Isn't that what Latin was for? I think that English is the Latin for computing.

>However in all other situation i believe translation of domain-specific words does damage in the long term.

I disagree a bit - I agree with everything that you said about it being a difficulty for experts, and that experts should know the English terms for things, but not everyone is an expert. We don't expect people to refer to common plants, animals and diseases by their Latin names, but we absolutely expect specialists to.
I'm not sure if the "forever" keyword was ever involved, but two examples that spring to mind are Google Apps and Dyn, both of which have discontinued their free tier.
It depends. Free software (Free as in free speech, not free beer) can still be sold and used to make a profit.
IMHO a bare-bones PC is a bit over the top for a home setup. Broken laptop is the way to go if you want to get the power requirements and noise down. Really it comes down to whether the broken laptop will do what you need it to and the price is very competitive compared to even the most basic (and slow) VPS. You can also pop in an SSD and the broken-laptop server sings along.

I should define broken - this is where a keyboard or screen has died yet the actual gubbins work as Intel intended. What you don't want is where the CPU has fried the thermal paste and gone hot for an extended time. That won't run good even if 'fixed'.

A broken-laptop-server will also contain battery backup. The power supply is definitely hot-swappable if you happen to have another power adapter for it.

Really there should be some USB-stick version of a common version of Linux that is completely optimised for power management with the intended use being a redundant laptop turned into a home server. It could have wake on lan magic packet in use too, effectively making it a device that only uses power if you actually use the device. This would be a complete contrast to the normal over-engineered server arrangement.
That's funny, our internal hubot implementation at PagerDuty is called Pagerbot.
> If you want your family/friends to see them there are very few alternatives.

Email? Not even joking.
How about Dropbox (edit: or anything like dropbox)? Set them up with their own free account and share a folder with them from your account. Put photos and videos there. They'll sync automatically, and you can access them from a tablet too. https://www.dropbox.com/features/photos
Hubot has pagerduty integration already:
https://github.com/github/hubot-scripts/blob/master/src/scri...
That's how the Kimono Labs scraper works.

The code I use in my actual final parser is:

bf_url = "http://www.buzzfeed.com/%s?p=%s&z=%s&r=1" % (category, current_page, access_token)
The gx2.2 instances will run you $0.650 per hour of compute time and have K520 (?) in them, which works pretty well. There are a few preconfigured instances, but if you want to make your own and go through the hassle, it will take about two hours to set up. When you're spinning up your instance, do a search for CUDA and you'll see a few Ubuntu preconfigured images with Theano+PyLearn2 already installed. Spawn them on the aforementioned GPU instance and you're good to go.
I think the article was about "manual inlining" rather than the kind of automatic inlining that a compiler does. Its less about raw perfomance (inlined functions have less function call overhead and open opportunities for cross-function optimization) and its more about correctness and predictability of runtime. For example, he mentions that he prefers having a dumb and sequential code flow that always runs at 60 FPS than something clever and full of conditionals that runs at 120 FPS most of the time but falls to 30 FPS every once in a while. In addition the predictable runtime there are also many bugs that happen when stateful functions are called in the wrong order and this is less of an issue if you always call them once in the same order. For example, he mentions that he would rather check for `health <= 0 && !killed` at the end of your game loop instead of potentially calling KillPlayer() in 20 different places, which might end up doing slightly different things in each frame.

As for pure code, the reason he has become more bullish about functional programming is that it by definition is less susceptible to all these subtle order-of-execution issues. You are free to structure your code in whatever way you like and split it into as many functions as you want and still have the peace of mind that you will never access an uninitialized variable or use a dead object.
I don't think our society has answered that yet. It's a relatively new phenomenon in our society and culture. Sharing/Pirating music and videos is so rampant, and it doesn't really "feel" wrong to those who do it, as if anything in digital media should be free to all.

And when the government tries to address this, the public pushes back (SOPA, etc). So, is it OK? Maybe...