skysight-inc/HackerNews huggingface dataset:
I went to one of his seminars last year and I really enjoyed it. Yes, some of the material is old but he did a section on how you should get rid of powerpoint and start using slides that look like webpages.

People understand how webpages work and can quickly grab the information they want and it doesn't lull them to sleep like a powerpoint. He also said that baseball box scores on ESPN might be one of the best data representations. After you've seen one box score, you automatically get it from then on out.
This is definitely a good starting point. If you wanted to expand this, I would recommend diving into how the relationship between the real time an algorithm takes to execute and the order of the function, and constants or lesser order terms are unimportant with order notation (can best be shown with graphs, which has already been introduced).

One thing I would stay away from is the talk about "orders of magnitude" because the order of a function and an order of magnitude are very different topics, and it could cause a reader to make bad conclusions like "one algorithm takes 10 seconds to run, one take 100 to run, they must have different big-O notation". I understand why the analogy is made, it's because you're estimating things from a high level, but I think it could cause confusion on the fundamentals.
The problem with Assad (like originally with Qadafi) was that he was in the Russian sphere of influence, so he had to be replaced with a friendlier regime. Somehow, "we" thought the Arab Spring narration was "our" chance to achieve that. It's true that this development contains the possibility of a friendlier regime, which would not have been there with the previous status quo; whether this is actually likely though, it's another matter: the current track record for post-WWII regime-changes in the Middle East is dismal to say the least, and it didn't improve much in the last decade.

Call me cynic, but I believe "ordinary Syrians" are the last of "our" problems. Syrian middle-classes, like their Libyan and Egyptian counterparts, are largely compromised with the regime, and would have certainly favoured a peaceful (if lengthy) transition rather than a civil war where they stand to lose everything. Assad was not more brutal than, say, the King of Morocco, who does pretty much the same sort of thing but is in the Western orbit (and in a less strategic area).
What's inside Google's $35 Chromecast dongle
So for me the real life tends to be much larger applications. I tend to worry less about the efficiency of something like quicksort in haskell. If I need very high performance from something I tend to use C anyhow. This tends to be very small and isolated blocks of numeric code. Otherwise network latencies tend to overwhelm performance speedups.

All that aside if you think about the state of an application globally and don't worry about using state in small areas like quicksort then there are big wins to be had. When building scalable services STM makes it much easier to perform state updates and removes trying to reason about locks. Now this does require a big change in how applications are reasoned about and designed.

So having been involved in many things the world contains too much state. Much of the world could be more stateless. I write a lot less very stateful code than I used to. And the code that I do write tends to be more correct. The ability to easily mutate state is now something that scares me.

Also when used correctly haskell doesn't provide a little safety, it provides a lot of safety.
Ask HN: As a programmer, would you want a 3D Printable Modeling for programmers?
Lately, with the advent of 3D printing, I get lots of questions about how to make the 3D models for 3D printers. Coming from a programming background, this can seem overwhelming.

As a programmer or an engineer, would you like to read a primer to learn how to make 3D models using programming-based modeling CAD like OpenSCAD? Or would you find it easier to learn how to use an interactive CAD, like Blender, TinkerCAD, or Sketchup?
So what I take from this is that the previous implementation sustained a huge amount of code rot and new code got layered over it with a staple instead of proper re factoring.

So he put the whole mess in a bin and re-done it cleanly with Go. Now it's much nicer. Some of Go's attributes helped along the way.

Did I miss something?
Interesting story. Is this a "port" or a "rewrite from scratch"? It's kind of hard to tell.
I was thinking about that too, but since it is not possible to change existing items and the computation of those items must be re-entrant (groupcache just tries to avoid duplicate computations but does not guarantee it), there seems to be no reason for any distributed consensus. In fact, the groupcache design is astonishing simple.
Not huge. I know how to play, but I haven't played much. I think I'd be able to beat a 1024 byte Go game though :)
…and performs scrollback very poorly.

I still use it, though. Can't wait for them to iron out these issues.
Google: Start Developing native Glass apps, using standard Android SDK
I've fallen and I can't get up! Looks cool, but based on the design once it's on the ground I can't see how it could generate enough airspeed for lift to get back in the air.

Designed for single use ?
By default any message picked up from a queue by a consumer is removed (acknowledged), but you can configure the exchange so that it waits for an ACK from the consumer before removing the message. This gives the consumer the ability to return the message to the queue, but is dangerous because Rabbit will never stop waiting on the consumer to respond.
What I really hate is that you can pay for and install an app with an acceptable set of permissions, and then later the developer can add new unacceptable permissions essentially changing the product you bought. You can try to defer installation of the new version for a while, but it gets increasingly difficult.

I am of the opinion you should be offered a refund/uninstall if new permissions get added. Or have a way of disabling them like the posting is about.
I would agree with that characterization. He didn't present principles of design, or anything you could walk away with and apply. He showed various examples of design, said what he liked about them, intermingling snarky, off-the-cuff remarks. (He hates Microsoft, as he pointed out multiple times.) In addition, there was a lot of personal anecdotes that felt like self-agrandizement.

What was good about it was that an occasional comment was thought-provoking. And the price of the seminar was not a whole lot more than the retail price of his books, which were given to all attendees. So it felt like a good return on the investment. But in terms of pure instruction, it was indeed disappointing.
> pro-security candidates get more donations from the defense industry

My intuition tells me that these kinds of contributions are a bad thing, a potential vector for money to influence who gets elected and how they vote. Do you disagree with that?
> BTW, what do you consider "badly-behaved"? I've seen so many "good" apps ask for so much it boggles my mind (as someone else mentioned, WTF does a music player need access to your addressbook?).

Any app which requests a permission whose use isn't instantly obvious from the nature of the app. "Full network access" for a non-multiplayer game. "Location access" for anything that isn't a mapping app or point-of-interest finder (and even the latter ought to allow manual zipcode entry or similar). Contact access for any non-communications app. Phone state access for almost any app that isn't an dialer or call-control management app.

A music player that asks for access to your contacts would fall squarely under "badly behaved".
Amazing Maths Trick: How to square very big numbers in your head in seconds
The 3D Printing Crowdsource Boom is Here
I'm puzzled by this comment.

We optimise the standard library for the majority cases, and putting the download server into production helped us improve Go's HTTP stack for everyone. Similarly, when other users report issues with our standard library, we fix them.

The file you linked to contains some code to accommodate a bug that existed in Go 1.0 and was fixed in 1.1. Not sure what the relevance is here though.
I don't know first thing about math, but even I find that the classical definition (i.e. that find in the CLRS book) is pretty straightforward: given an input big enough, the running time will be at most that of a multiple of function g(n) if f(n) = O(g(n)), where f is the function that describes the algorithm's running time.
Going to be a long weekend for some folks. Good luck and hope it's fun!
O(N) is read "Order of N" because the O function is also known as the Order function. I think this is because we're doing approximation, which deals in "orders of magnitude".

It's a different meaning of "order", that has to do with the shape of the size-vs-time curve. It's the same meaning as the order of a polynomial ("x" is linear or 1st order, "x^2" is quadratic or 2nd order, etc).

but Big-O is all about the approximate worst-case performance of doing something.

It can be, but I think it's more commonly taken to mean the average case. One example is quicksort, which is O(n*log(n)) on average but can be quadratic (n^2) in the worst case.
The cutest picture of a frog ever
I'd be interested to know if this is another case of a software vendor "inventing their own crypto" and making a hash of it.

Maybe it will open some eyes in industry that you need to hire experts for that sort of thing, or at least demand external expert auditing of the software.
Just to put in a contrary opinion, I was really disappointed in this book and I don't understand the praise it gets. Here's my extensive review on Amazon: http://www.amazon.com/review/R11NYC3OE3LBE
Because no Western politician ever made decisions thinking about a non-exec directorship at some point in the future or campaign contributions.

Politics is a mucky business full of self interest the world over, let's not pretend that's a problem for China alone.
Board games are to the start-up world as golf is to the corporate world
There's no need to be a Negative Nancy, especially when you're affiliated with the project you're promoting (without disclosing it).
> It's like a some kind abstract form of 'cartel', i.e. "I support you, you support me".

It's called "families" and "communities" and is the basis for human civilization. My children aren't going to grow up around poor third world people, nor marry them or raise their own families with them. Some poor third world person isn't going to come to my aid if I'm in trouble. They're not going to be my friends, my coworker, or even the guy who might find my phone and return it to me. They won't be voting for the government that governs me. Any rational person has tremendous incentive to make sure the people closest to them, and more broadly the people in their own body politic are cared for before others.
Unfortunately, there are some misconceptions that are propagated in this article. Kudos on the effort, but some statements are just flat out wrong, such as this statement: "Big-O is all about the approximate worst-case performance". Big-O has nothing to do with worst-case, but is a bounding function. An O(n) algorithm is also O(n^2), O(2^n), etc. Those are valid bounds on the O(n) algorithm, just not the smallest.
Must MJ smokers I know in Cali actually don't light up any more. They use some sort of steaming device that basically transfers the active ingredient into the air without the ash and burning....
From the article it does sound like Volkswagen asked them to redact the codes and they said no, whether they asked for further redactions is unclear. If it was a simple case of asking them not to publish the unlock codes and they said no, that sounds a bit odd, you don't need the codes to show there's a flaw in the system.
This is probably a valid concern for some services. Do you keep the address in log files somewhere?
Rabbit really is awesome. Even on top of that you can setup reply-to queues so that a publisher can wait for a response from the consumer. This is nice if you have, say, an image processing server and want to give it an image to process and block until you get a response that it's done.
The `StateT` example in the article is unfortunate, as it reinforces the misguided notion that handling state in Haskell requires complicated machinery, such as monad transformers. This is simply false. You can use a mutable reference, like this:

import Control.Monad
import Data.IORef

main = do
ref <- newIORef 0
forever $ do
val <- readLn
modifyIORef ref (+ val)
total <- readIORef ref
putStrLn ("Total: " ++ show total)

Haskell's libraries haven't been designed to make this use case as concise as possible, but nothing prevents you from introducing more succinct notation. To illustrate this point: In Haskell, the `forever` control flow operator is not a language keyword, but a function you could write yourself. In Python, could you write `print` yourself?
> at most that of a function multiple

I think you meant "constant" multiple of g(n)
Provisioning is back up, I'm able to see the site, log in, and look at all of the devices, certs, etc
I have a client whose concept is to do exactly this. Expect to see some details about it. It's going to change everything, especially for indie bands.
>In Python, could you write `print` yourself?

In Python 3, where print is a function? Yes.

In Python 2, not with exactly the same syntax, but you could certainly write a function to provide the same features.
Apple Dev Portal Coming Back Online
Now online:

Certificates, Identifiers & Profiles
iTunes Connect
iOS Dev Center
Mac Dev Center
Software Downloads
Safari Dev Center
Bug Reporter

Still pending:

Member Center
Program Enrollment and Renewals
Apple Developer Forums
Videos
Xcode Automatic Configuration
Pre-Release Documentation
App Store Resource Center
Technical Support

Source: https://developer.apple.com/support/system-status/
It means stable api as in they won't be adding or removing major features.
No, far from it. I continue to be bemused by many programmers' fetishization of text.

This is the sort of thing I like to work with:
http://www.recordjob.de/wp-content/uploads/2009/10/Reaktor5_...

This one is aimed somewhat more at roboticists, and has a Ruby interface: http://www.dsprobotics.com/flowstone.html

This is a flatter (non-nesting) system, but the one which I use most because it's so fast to prototype in (and these days I care more about composition than systemization): http://bagger288.com/goldenmaster/wp-content/uploads/2009/12...
I meant a multiple of a function g(n), corrected ;)
+1 for real data points. Thanks!

That said, people who bum around can go a long time on very little cash. Imagine if you only had to pay for food and sometimes got it free crashing with friends with chickens, etc.. Housing - crashing places, parks outside, tents, etc.. Transportation - hopping trains.
That's a great point.

Since you can't get iOS games in the humble bundles, that demographic of buyer isn't represented...
Ahh yes. Let's berate the OP for being intimidated by a topic and then diving in and learning it on their own. This will really encourage others to learn on their own and contribute back.
Because a lot of people make a lot of money off of those solutions. No one in Washington gives a rip about what's right, wrong, or most effective.
Maybe..will put 'em in a separate CSV file...
This article leads me to wonder. Has the US Government ever requested the master private keys for the main certificate authorities, such as Verisign?

It actually makes sense in a criminal investigation to spoof a real site in order to phish for passwords or the personal information of criminals. A similar method was used before to get cable thieves to call a phone number on the screen thinking they were giving their information to win a free item.

However, having the capability to impersonate any company, group, or individual has an enormous potential for abuse.
Yes. In my opinion the biggest win comes from goroutines and Go's runtime, which essentially allow you to write asynchronous non-blocking multi-threaded(!)code that looks like synchronous code and is as easy to read and reason about.
This leads to a huge reduction in complexity compared to the callback spaghetti you often get in other async frameworks. Basically putting concurrency first in the language and not relying on libraries seems to really pay off.
I'll agree it's somewhat refreshing compared to the standard design, but anything that requires a "scroll down" notice needs some further work in my opinion. The full screen background images switching from section to section is interesting but the left side being left column being taller than the right feels awkward and unbalanced.

Either way, nice to see that B.Gates is actively blogging and continuing his philanthropic efforts.
Well, whether we like it or not, self-taught programmers are held to a higher standard. It doesn't help us to further the stereotype that self-taught programmers are afraid of the basics, haven't attained a general education in computer science on their own, or are less reliable than their peers who have degrees.

Not trying to berate the OP. I'm trying to say I wish OP had framed it better.
A pet peeve of mine since you mentioned codeine, that neatly shows just how fucked up government regulation in this area can be:

There's good evidence that restrictions on quantity of acetaminophen/paracetamol sold in a single transaction reduces overdose deaths. E.g. in the UK it is estimated that restrictions to 16 (in regular shops) or 32 tablets per sale (in pharmacies) has saved 600+ lives since 1998. There are still 100+ deaths a year from it, though.

Yet the sale of pure codeine is substantially more heavily regulated than the sale of co-codamol and other variations of paracetamol/acetaminophen or ibuprofen mixed with codeine at ratios that means that anyone with a serious codeine addiction finding themselves unable to get a prescription or find a dealer for pure codeine might find the mixed products available over the counter as their only source at times. Yet chances are they will have to take a potentially dangerous dose of other painkillers to get their codeine high.

So, we have evidence that people often intentionally or accidentally die of acetaminophen/paracetamol as well as ibuprofen overdoses. Yet we consider it acceptable to require codeine to be mixed with these (and other) drugs for over the counter sales.

Codeine alone is one of the safest opiates we know, with a substantial safety margin for use, but also highly addictive, and so chances are a subset of users will get sufficiently addicted to be unable to properly control their usage, even in the face of taking substantial risks.

In other words: Fuck off and die a painful death if you get addicted enough to fail to manage to resist (or pay attention to) taking too much of the other drugs it's mixed with. Oh, and when you die, remember it's because we intentionally ensured you had a supply that was effectively mixed with poison.

That codeine addiction is often the result of its extensive use as a prescription painkiller and in hospitals exactly because it is so safe on its own just makes the whole thing more offensive.
:D, Get Income invest on your own business, then get customer to make it grow. It must more satisfied then look up for investor :)

Btw you must see in the end, is there FBI or any kind police knock on your door :p

So make sure your business clean!!! Cheers
At time of posting, about 1/2 is online

https://developer.apple.com/support/system-status/
I think I want my legislators insulated from money overall. They should not have their chances of election boosted by their cash flow.

Of course, this doesn't help the problem of poorer candidates trying to run against candidates who are already wealthy to begin with. But I think it could be a start.

There has to be some way to equalize the playing field so that everyone running for office has a voice. Otherwise the democratic process is distorted.

Here's a radical idea: what if we outlaw electioneering? No advertising, no campaigns, just structured dissemination of information via debates and perhaps online charts comparing differences in candidate views.
I'm really surprised that only 1% of sales is from the Mac App store. A good wake up call for me, certainly. Now I want to see a game that is on iOS and XBox live, and the differences in revenue.
Thank you! That's a pretty exhaustive list :) I'll add them soon!
Note, this is only a partially recovery: https://developer.apple.com/support/system-status/

The forums, tech support, pre-release docs, program enrollment/renewal, and member center are all still down.

The big thing that's returned are the dev centers and certificate issuance.
Just by accessing the addressbook you already have the means to spam everyone, if you are a bad actor.

To prevent that from happening you've got to deny access to the addressbook altogether, which isn't desireable if you don't want to kill the market for Voip/Chat on mobile phones.

Apps like Whatsapp, or the Voip/Xmpp client I am working on for my company just need a way to determine who on your contactlist is available for chat/Voip via your app.

Also: how do you think that apps like Skype enable you to call some landline number for a cheaper rate? They do this by creating a local dialin number that routes the caller to the actual destination.

What could work is that the OS gives hashes instead of the real numbers to the apps, but that would suck for anyone that had a web service that needs those numbers. (for say creating a cheaper dialin number to call some of your contacts)
If you hear hoof-beats, you'd expect a horse, not a zebra (unless you are on a Safari).

It's not that uncommon that 35 year old people die at home. Common causes are suicide, unintentional overdose, aneurysm (brain, AAA), arrhythmia, a fall.
Better than they were when there were strong legal reasons not to disclose one's status as a junkie, I dare say.
Well, it's not really fair to compare the cost like that. I don't have a laundry line-item in my budget that I have to justify to a comittee- but I do have hundreds of dollars to spend on dumb ideas every week. Spending some of my disposable income on getting my laundry nicely cleaned and folded might be enjoyable enough to justify.

In the same way that I know I can cook dinner at home for just a few dollars, I still go out to restaurants several times a week and spend $20 or more on a meal. Sometimes I'd juat rather not cook, and I won't really notice the difference in the price, at least not in any long-term sense.
Exactly - if you hold my phone up to a light, you can easily see my unlock pattern in the fingerprints left on the screen.
"it would be tricky to get all the rules of chess into a JS file"

Check out chess.js, https://github.com/jhlywa/chess.js, it does a pretty excellent job. The combination of chessboard.js and chess.js would result in a pretty sweet browser-based chess game.
I've always wondered on the psychology of these voting decisions. Investigative journalists outside looking in can can easily see the forest for the trees, but I am curious as to whether or not the politicians themselves are acutely aware of these conflicts of interest or if it is subconscious.
That isn't the lesson of the 3/5ths compromise:

The founders were hashing out how each state would be represented by Congress. They decided each state would have representation proportional to its population. The problem: some states had tons of slaves. Slaves weren't allowed to vote--that was never in question--but slave states still wanted them to be included in the population count to get more representation.

Giving slave-owners more votes by counting their slaves fully would have been much worse, not better, for the slaves.

(An irrelevant tangent, I know, but this historical event is always mentioned in the wrong context and I think the truth is more interesting.)
Oh yes of course! Thanks, me too now :)