text: On the one hand high frequency dating is a good thing because it adds liquidity to the market.
  On the other, it raises the risk of of increased volatility and flash crashes (when your partner finds out).
  On the one hand high frequency dating is a good thing because it adds liquidity to the market.
  On the other, it raises the risk of of increased volatility and flash crashes (when your partner finds out).
  And, why not? The pieces were believable: OpenCV, NLTK, some scripting and API twiddling. The virtual assistant wasn't much of a stretch either.
  Especially if you're familiar with modern online dating sites now. Still thinking that online dating is like browsing an organized list of potential dates where an online host helps you with searching is naive. Craigslist personals are still like that, stripped down, no profile, anonymous and no algorithms.
  OKCupid, like other dating sites, makes money via ad revenue, not by connecting you with a partner, so what's their priority? Who knows if your experience is affected by:- how often you visit the site- if you use an adblocker (they know, and they let you know they know)- if you're on a free account- message response rate- if you use their features (quickmatch, etc.)- how many questions you've answered (at a tech talk recently, Sam Yagan co-founder said answering more than 10 questions was pointless)- your quantcast/cookie/tracker profile- sentiment analysis of your profile/messages
  Here's a fun anecdote: As a new user of their iPhone app, I was interested in using the Locals feature (to see who was available on short notice for a date). The first day it worked, let me see those in my vicinity. The next day it was completely removed from the app. No warning. Something (I was a new user) must've decided that that feature wasn't for me.
  This goes beyond dark design patterns which attempt to influence your behavior (i.e. on another dating site, you have to pay to send messages, and attractive people send you collect messages, that you have to pay to read.). With dark design, if you're aware, you know what the site wants you to do. If your online dating success is controlled by black box methods without feedback, they silently judge.
  So, how soon before hackers decide they're tired of being gamed and start using tools they're familiar with defensively? Could this be the start of a new arms race?
  I had originally thought that the below post was a parody. I'm told it wasn't, though in my defense it definitely reads like a parody... I mean the perfect cutlery... the most meaningless item in anyone's house??
  This reminds me of another parody post here a while ago about someone who said they'd bought the perfect cutlery.
  They went a bit further and beat the joke to death talking about the difference between several cutlery sets. It was bit better because it started out with some good points bout optimizing your life and buying the best and then it jumped into how to buy what is probably the least important thing in anyone life...cutlery
  I think this hacking your life is starting to jump the shark:)
  Here is the other parody post:
  But I think we can take this further, surely she's into automation too? So he-bot and she-bot are the ones that actually get together.
  But then why bother with the physical world if it's all software? The entire exchange can be virtualised and simulated at high speed, then you only need to actually bother the meatspace human if the whole thing has been electronically predetermined to be acceptable to all parties.
  That way you can find the perfect match in seconds. Unless, of course, they were a little creative or devious in their parameter settings, but nobody would ever do that, right?
  Must work, guy goes on 2-3 dates a week.
  However, having finished the post, I now think that a long term relationship leading to marriage and children would be possible. Some tweaking might be required. Ideally, a long and meaningful relationship could develop with 0 physical contact.
  "I guess I see whats supposed to be funny here, Rob, but I dont think everyone will. As the man behind an awfully high-profile startup, I dont think this is likely to attract any beneficial attention to you, and may very well attract some negative attention. Even if this is meant in good fun, Im not sure its in your best interests."
  Amy Webb: How I hacked online dating...
  Additionally, the robot self destruct seems like overkill. It would be better to simply wipe them and start over. After all it, it wasn't a hardware failure that resulted in a bad date, but a software problem!...
  I actually know a few programmers, who are also pick up artists, that do something similar but less complex.. they write scripts that spam msg to girls on dating site and just shot gun approach.
  I think I've found my next project...
  I...
  Anyways, it would be nice if we in the settings could apply our own penalizing to subjects that we don't care about or that we find controversial instead of having others decide for us. But that would mean that submissions ranked differently for different users, of couse...
  *
  In order to prevent flamewars on Hacker News, articles with too many comments will get heavily penalized as controversial. In the published code, the contro-factor function kicks in for any post with more than 20 comments and more comments than upvotes.
  Is a vigorous discussion bad? Should everyone commenting also upvote?
  I understand that for some people the moderation choices offend them, I think that is unavoidable, but the goal is, I believe, to make a 'better' collection not to shoot down particular articles.
  Discussion here:
  If you do comment, however, you can be as verbose as you like (as long as you are bland enough not to provoke replies.)
  I wonder if this will change the strategy some post authors have of "hosting comments on HN" (and replying to every comment, even just to say "thanks".)
  EDIT: and to edit your posts instead of replying.
  I think this is penalisation of comments is a shame - I certainly come to HN for the comments, not the articles (although they're interesting stimulus for discussion).
  It's a shame for those articles sparking insightful discussion though.
  It seems like a weighted penalization could be implemented, potentially looking for red-flag words like "pedantic", or "not to be *". Or maybe it already is.
  Hope I didn't just set it off. :)
  On the other hand, if you are an article writer and add a "discuss this on HN" link in your articles, you should remove the link as soon as you get a good ranking. Or actually don't ask people to discuss at all, because it is harmful, just ask them to vote and have your own comment system for discussion.
  HN basically reinvented "sage", the concept from 4chan and its Japanese origins where people sometimes comment on a thread just to get it closer to the comment limit before it would no longer be bumped up to the front page when replied to.
  Would love to see ideas that broke from the model of a single ranked list: let folks tune their personal penalty amounts and gravity; add random jitter to rankings and throw a couple random new stories onto each list; classify/cluster users by their votes, so people who vote for jokes or NSA articles or their neighbors' articles (automatically) see more of those things.
  It's maybe a bit much to ask PG and co. to architect radical alternatives to HN, because HN is a handful as it is and, besides, I hear they have day jobs. It could be cool to let a thousand flowers bloom: publish most of the now-hidden ranking data (maybe not all, because it can be useful to obscure how anti-spam algorithms work); let users opt in to publishing anonymous votestreams for clustering, etc.; then let other folks use all of this to make their own homebrew HN frontends within certain limits.
  I suppose that, too, is kind of a pipe dream, because opening HN up for people to easily build their own frontpages is far-from-trivial for both tech and policy reasons. But it's a nice pipe dream.
  People expect machines they interact with to behave in some kind of logical manner. After 2 or 3 times of submitting an article that HN has traditionally liked -- and watching it tank -- just not that motivated to submit more. After submitting my own articles, having people stop me in the hall and tell me they liked it and voted up for it on HN, only to see it have no votes? Not so motivated to submit more. After the tenth conversation about how people expect HN to act one way and instead it acts another? Not so crazy about it.
  I think the problem here is that PG wants folks to participate, but only to a certain extent. People want to interact with the system, but on some kind of mutually-fair terms. I'm not sure PG's goals line up with the average user any more. There are good reasons for this, and I'm not trying to trash the entire effort. It's just that this is a tough problem. I don't think you can code your way out of dealing with messy human issues at scale. If you could, we'd all be managed by computers in 50 years, and that's not a future I would wish for my children.
  Rings true to me and, if indeed accurate, it seems like a good practice for HN.
  Applying an automatic penalty to certain topics / tactics which are likely to gather excessive upvotes, due to the nature of the content vs. it's quality, helps ensure you've got a diverse mix of content occupying the front page. Which is generally good for the overall user experience.
  Otherwise, the front page will be a massive list of shock jock posts about the NSA.... [since controversial posts about those subjects will get sympathy votes, regardless of their actual contribution to the community...]
  Apparently being brutally honest about VC means that everything I say is of low value.
  For more, go here:...
  And given that the hackaday article is blossoms, don't be surprised to see it fall.
  It would be interesting if it somehow incorporated other elements to determine article "value":- Open rate- Ratio of comments to opens- Time spent on article or comments- Depth of comments
  ==Why there will never be a Flat tax...
  There were also statements in some previous comments that this transfer was made for free. It is true enough that a Bitcoin transfer doesn't inherently incur a processing charge from a merchant payment processor, but as merchants learned back in the Middle Ages when charging interest was formally illegal, the price of a transaction can hide financing and processing costs. We don't know what was agreed with whom by whom to make this transfer happen. The transfer may have occurred at a higher than list price for something that was bought, to make up for the ongoing inconvenience of receiving a payment using the new Bitcoin payment mechanism.
  [1] One example, among many:...
  A direct (i.e. not based on third party credit, regulations, etc.) transfer of wealth of this magnitude between two entities usually consists of a heavily guarded, insured, physical shipment of cash or gold. Depending how safely you want to make the transfer, and how far the entities are on the globe, it can cost hundreds of thousands to millions of dollars.
  Bitcoin has real value. It solves problems on an incredible scale. I wish I realized this months ago....
  Talking numbers, you could sell them all on BTC-E right now, bagging you just $7M, and take the price down to ~$36. You can spread that around the exchanges of course, if you're quick, but you're still nowhere near $147M at current market depth.
  Click the yellow circles to expand the tree nodes.
  ...or DPR associate moving around his money? ;)
  This is a little misleading. This could be a business etc.
  A mining pool or exchange transferring from one wallet to another (ie. to cold storage)?
  You wouldn't want a typo in your address for that amount of cash! I'd probably break it up into a bunch of smaller transactions just to be safe.
  Time: 17:30 - 1738
  roughly 5pm europe time, past the 9-5 general business hours . If all the parties or just the reciepients are based in europe, between legal and illegal.. I would tap this as illegal. It just doesn't make sense.. for someone doing a legal transfer of this size, after business hours, unless.. senders were based in US.
  Going through the direct senders (1 step back), the time with least 1k BTC+ transactions was 0200, 0400, 0500.. while with most big transactions were made around 1300, 1500, 2100 .. suggesting that these transaction were roughly either made from US to Europe, if of legal nature.. or within europe.. suggesting something shady. Very very crudely speaking.
  Yeah, everything is possible, and the above is not necessarily true, but it appears so, at least to me.
  Amount: 194k bitcoins
  Multiple connected accounts who sent to the above address seems to have had 220k+ in total recieved and looking at denomination, it didn't seem like lot of normal people were involved. Besides, with this kind of money involved it is wise to have 10 or less people involved who are highly trusted. This appear so also, with how countable no of bitcoin addresses were used to say "bounce" the trace of that money. Skill wise, these are not normal people.. but given HOW this ended up in public domain, they could have done slightly better.
  I get the feeling you get from govt hired people doing such things, no offense.. but somewhere below the elite, but above the average joe. It is also possible that a bigger or equal (more likely) sum was also transferred elsewhere.
  Movement seem to have stopped.. due to attention it has already garnered or is it the actual resting place? If it would be illegal, one would have had no problem keeping it in multiple bitcoin wallets in smaller amounts. But if it is someone, with legal force on side.. say govt agency, it would not have problem leaving the bitcoins in such limelight, for a long time, as long as they believe that bitcoin is actually 100% and not 99.9999999% impregnable.
  Motive, as discussed slightly above, can be mainly either "convenience of centrality" > or > "hiding a bigger sum" .. well I at least won't be putting my money in BTC for my own reasons. I got that feeling today to use it.. but I resisted.
  BTC is genuine, but the currently it seems like a pyramid fraud system which is perfectly legal strictly speaking. More people putting in money in BTC system.. already rich getting richer.. tickle down effect :? Well 150 million.. has really left a lot of questions .. or its nature, motive, ownership, moral, etc. Who would answer? No one.. ironically.. thats a big problem as well a big benefit of BTC. I'm sorry.. lot of things I said above are based on feelings, but to tell you the truth, before today, BTC was in a nutshell somewhat easy to understand.. but 150 million.. is a figure that can give any guy a lot of different vibes, speculative as well as wild goose chase type.
  Seems very reckless. All your eggs in one basket....
  If this same owner splits the holdings up slowly, transfer wallets, and then recombine it again, it might spike up once more. People will definitely catch on, but it might bring up the value a couple hundred dollars in the hype.
  Might make millions in the confusion.
  I can see my copy of Michael Abrash's Graphics Programming Black Book Special Edition sitting here, which was such a treat to read when it came out, because it has so many great chapters on the development of Quake and little stories about John's discoveries and thought processes throughout the development of the game.
  But, then I thought... wait... this is a new beginning. I wrote about this previously, but, look for gaming to start heading in the direction of VR with technology like Oculus Rift. Also, with someone of the caliber of John Carmack involved (now totally focused on it because of the resignation announcement) with not only his passion and skill, but his ability to work with graphics hardware manufacturers and driver developers to effect change and garner the necessary support and backing, expect to see vibrant, compelling developments in this field.
  In case you missed it, check this video out of John discussing some of his VR work. It is from E3 2012:
  That momentary sinking feeling has faded away now... great things are ahead!
  I loved Id back in the day. When all it took for a game studio to be great was the most advanced code, Id was king! Then FPS games became more like movies, and Id became a bit like Michael Bay. They still pushed the technology forward, but almost everyone was making FPS's that had better plots, characters, etc.. The technologies Id licenses to other game studios are put to better use by them than in Id's own hands!
  VR has been around for decades, but it has always sucked. Low resolution displays and poor head-tracking have historically been problems, but latency has long been a problem that trumped all others. Carmack and Oculus were already working on getting Rift's latency down to levels that would make VR a less nauseating experience for users.
  This move just means Carmack is finding his work at Oculus more rewarding than at Id. That means we can probably expect great things from Oculus in the near future.
  I really wish him the best of luck, truly one of my favorite people in tech. I hope we still can get his annual keynotes, because they are great to listen to.
  On one hand, it's exciting to see John working on VR tech. I really do hope we see something amazing out of it. But it still feels wrong, an id Software without Carmack. Hopefully they can continue on and reclaim some of their former glory as well, and let's hope Carmack keeps in the spotlight.
  I really hope that he will be able to push the limits of possible about graphics technology once again.
  I'm not into VR, but this could be one of those "this changes everything" moments.
  The only thing id has had going for it are Carmack's engines. In recent years his stuff has been as amazing as ever, but so many commercial engines are only a fraction of a step behind, and the difference hardly matters.
  Design-wise id is a complete mess. They're stuck back in the 1990s. RAGE appears to have had no leadership and no vision, and the actual design work that shipped is amateur-hour at best....
  Like reading iWoz... a lot of stories of brilliant engineering at an elite level.
  You'd think his having a leg in gaming and a leg in VR would create a wonderful synergy. Knowing all the in's and out of both worlds he could have insured great integration of Doom 4 with the Oculus rift - making sure iD was on the technological forefront while the Oculus would have a great demo from day 1.
  (see the Leap Motion for an example of what happens when you don't have a good demo day 1)
  this is a guy who has no business making games. And none of his games have been good for a long time (and they were always pretty bland, Quake was the peak).
  Having Carmack out of id's games is a good thing. Having him geek out on technical problems without being allowed in game design decisions of any sort is also a good thing.
  Graphics get prettier, but gameplay stays the same, or even gets worse because the prettier graphics require higher budgets which require lowest-common-denominator appeal to recoup.
  So it's good that he is trying something truly new now, where he has a chance to make a difference again.
  So he's leaving just before starting to work on the voxel/polygon id Tech 6 hybrid gaming engine. Darn it!...
  Hopefully id Software will continue that without him, but I doubt it.
  My father did 23 and me, without giving any family medical history and it concluded that my father was at a much higher risk factor for things that his mother was ultimately afflicted with. So, it works to some extent.
  On the flip side, long story short, I had a CT scan done on my chest that checked out fine, but the doctor that reviewed it said I might have and unrelated problem - Patent Ductus Syndrome. Nothing heart surgery and a lifetime of supply of Coumadin couldn't fix. A few months later I got an Echocardiogram which conclusively said the doctor was wrong.
  Quick, stop doing CT scans!!!??? Are we're all so afraid of our own shadow that heroes at the FDA need to protect us?
  It would be better if 23AM presented medical genomic information in a neutral way, with external links to descriptions of genomic variations but no assertion of diagnostic significance at all, or even a mention of how to obtain a diagnostically significant result.
  Unfortunately, the way 23AM is packaged (see the website), they are incentivized to do the opposite; positive results are recognized by their clients as valuable, and, whether 23AM likes it or not, so are the negative results.
  Your genome doesn't change, and who knows where that data leaks to later? Who knows what healthcare providers will vacuum up such leaks?
  Who knows what kind of discriminatory practices will be undertaken by service providers, insurers, or even employers in the future?
  Haven't y'all ever watched Gattaca?!
  Keep your private information private. Nobody else will do it for you.
  EDIT: Oh, and USA PATRIOT too.
  Many simple take-home tests that are arguably much more time-tested, reliable, and accurate than 23andMe's DNA services are FDA-regulated. If your basic take-home pregnancy test is FDA regulated, why should 23andMe be exempt? Or would you prefer a world where all of these tests were unregulated?
  Not everyone does their research. Not everyone is intelligent enough to understand the implications of medical tests, drugs, and devices - regulation protects the vulnerable among us.
  As an aside, I've worked in medical devices for most of my career. All other things remaining equal, engineering teams in these companies are no different, talent-wise and quality-wise, than most teams you'd see in other industries. Take the sloppiest engineering team you've worked with, now imagine them working on a clinical product with the potential to cause real harm to people (physical or psychological).
  It is the regulation (FDA and others) that ensures that these teams "raise their quality game", so to speak. It is not perfect by any means, but I don't dare imagine the alternative. Yes, the regulation is a massive pain. I experience it first-hand. It slows things down, has massive associated costs and can even stifle innovation. The general trade-off, however, is worth it, IMHO.
  I think there are benefits to both approaches of genetic testing; 23andme has a lot of data it collects and can do interesting statistical studies/reporting that other more research-oriented companies cannot. However, like I said before, you can't view a test like that as medically actionable. In the end though, the more testing there is (as long as the messaging is clear and consumers do their homework), the better oFf the world will be.
  Now, can we see some real-world statistics by the government-licensed medical profession? I wonder what a side-by-side analysis of the errors 23andMe has made vs. those the medical community has made might look like. I wonder how the real-life consequences might stack up.
  As far as I know, 23andMe has never accidentally amputated the wrong limb, so it's at least go that going for it.
  Interesting tidbit: you can always double-check the reports 23andMe gives to you by getting followup tests someplace else.?
  - privacy - security of data - wrongful use of data - spread of misinformation - mind fucking that ensues after reading your results - probably a lot more
  Sorry if I seem overly critical about a service like this, but it just doesn't seem worth it to me.
  That way we don't have to stress that there is some likelihood that we might get some dreaded disease but our doctor could talk to us if the risk is high enough or if we start having symptoms that match one of our genetic risk factors?
  Anyway, it's probably good they're being reined in from making medical claims. I don't think the tech is quite there yet. But, as a tool alongside many others, it's cool. And, I love that they're doing original research with their surveys...it's a super cool idea to combine lots of crowdsourced data and DNA results of thousands of people to find markers for diseases and traits.
  I plan to keep recommending 23andme to folks who can afford it and folks who can grasp that a DNA test isn't a reliable indicator of disease and that it is merely a probability indicator.
  It's a service built on learning algorithms to correlate features (DNA SNPs) with diseases. As with any learning algorithm, results should be interpreted with care. That doesn't lessen the fact that predictions it provides can be helpful.
  As an aside, 23andme has a solid API. It's opened up (with consent) a huge DNA dataset for developers to mine. I'm excited for the science that can be learned from this data.
  This incident seems to me like a big win for the 23andme model. They made an error but followup by a single individual means the same error won't happen again for anyone in their international clientele. Errors in other health systems don't get globally corrected so quickly....
  If anyone is interested in playing around with it, I threw it up at JSFiddle here:
  Excellent demo.
  BTW geistner waves reference here:
  Now instead of a small executable, we need a large executable to sit on top of a large API on top of the CPU before even touching the GPU, and a network connection to download all the dependant APIs and libraries every time the page is loaded.
  The only impressive thing about this demo is how many YCombinator readers are impressed with blinkenlights
  It would've been nice to have an 'I don't care, proceed anyway' button. The check excludes Safari 7, which runs the demo just as well as Chrome.
  ^ removes the hasWebGLSupport() invocation.
  Very nice demo, though!
  Are people with better graphics cards seeing 60 (or even 30) fps? I'd love to be able to see this in all its glory.
  [1]:
  Is that some sort of fluctuating perlin noise?
  most programmers can come up with a much better solution to this problem if removed from google and forbidden access to gpu gems.
  this is at least well presented though...
  its a shame the code has been posted. whilst i normally assume that demos like this are unlikely to be smart or impressive these days - this time i know for sure. its actually a good deal worse than i ever would have imagined.
  i'm still quite torn whether all this horsepower is a good thing or not.... on the one had we get a demo like this without much in the way of understanding or resourcefulness. on the other hand we have hundreds of man hours being wasted at dev studios because clever efficiency is rapidly becoming a thing of the past...
  Here's some more info on the company they lost to:...
  TL;DR: They're patent trolls.
  MARSHALL, TX
  From Wikipedia:
  Marshall has a reputation for plaintiff-friendly juries for the 5% of patent lawsuits that reach trial, resulting in 78% plaintiff wins.
  I've stopped myself getting surprised for any patent suits where troll gloriously wins and that decision comes from a court in Marshall. This town's economy probably runs on lawsuits that trolls bring in and jury members from the town seem to have special incentive to favor plaintiffs almost 4 out of 5 times!
  Then later on after the idea of an unbiased jury took hold, there arose a justifying theory that the jury could tell by careful observation whether or not a witness was telling the truth. This theory is dubious enough when applied to simple questions of outright lying. When it comes to judging expert witnesses testimony, it is totally bogus.
  If they don't want to create a patent office court to adjudicate these cases, at the very least Congress should authorize the appointment of special masters to do fact finding in patent cases.
  Someone named Michael Jones patented using SSL with RC4. Which in seems was a known and used combination at the time he did so, as was testified by the expert witness? But the jury thought that not relevant.
  The patent would seem to avoidable if say using AES instead.
  Caution: I don't know what I am talking about and just looked the above up on wikipedia, which I probably misunderstood. Hopefully someone who understands this in more depth will post.
  Given that, surely any jury made up of locals has a huge incentive not to kill the golden goose and deter patent trolling by letting defendants win. Is there not a conflict of interest here?
  >  was ordered to pay $2.5 million for, but the company then knocked it out on appeal. Soverain's damage request was huge for Newegg: $34 million.
  I think I see the trailer for the TV Mini series right there :-)I think I see the trailer for the TV Mini series right."
  When things go wrong in California or New York or Massachusetts, those states aren't blamed: the individuals take the heat! (What a concept!) But whenever something bad happens in Texas, somehow all 26 million of us are involved and culpable.
  Case in point: a few minutes ago there was a post here saying we should poison the water in East Texas to stop this. Thankfully, it has been deleted.
  Battling bigotry with bigotry is not likely to work. When Hollywood pushes for another batch of draconian copyright laws no one here raises up there hands and hopes for the "big one" to knock LA into the ocean. When municipalities go after Uber or AirBnb no one begs to push that entire state out of the union. Why the double standard?
  (I know why, no need to answer that question)
  Certainly as a Texan and tech person I'm not a fan of this ruling but the vitriol displayed here towards an entire state verges on disgusting. FWIW, I grew up in the Bay Area and across California, I'm not some Pineywoods hick who never left the trailer park.
  I am, however, quite tired of the hatred and, frankly, gleeful malevolence sometimes displayed on this site towards Texas.
  Nearly 8 years ago. Unfortunately nothing whatsoever has changed....
  I mean at the end of the day this lack of timely reform is fundamentally making people look for asymmetric ways to entirely avoid problems. Is that the way society should be driven? I think that is an unstable driver of future events --- a society that cannot reform itself in a timely manner, that cannot properly forecast events and repercussions, is a society that is forgetting it's responsibility for balancing itself.
  I really do not like this behavior; it is abhorrent of a society that can be a seer. I mean there is the usual belief that we are all equal and deserve equality --- but that cannot happen as long as we inherit citizenship, wealth and networks. It is a nice belief but simply cannot be rendered in any sort of predictable manner.
  This creates a situation. Their are private discussions on the ongoing nature of patents --- but I feel that more than anything people are forgetting that as the point of a corporation is it's superhuman predictable nature, that the further antagonization of new corporations will balance itself not with a mutated form of socialism but with an asymmetric alliance of corporations - one which favors unpredictability and an increased rate of change.
  Wealth and the rate of innovation are separate --- and that fiction will reveal itself at a much faster rate if proper steps are not taken in a timely manner.
  Of course he does. It's the very judicial system that presented him with an easy $45m. He is a parasite (quite literally) and he knows it.
  And then the defense surprisingly declined at the end to rebut the damages claim of $5.1 million:
  "Then came another stunner: Newegg rested its case. It did so without putting on its expert witness to rebut TQP's $5.1 million damage claimeven though documents in the court docket clearly indicate the company had such a witness."
  [1]...
  Business idea: a service that investigates your stack (with your permission) and verifies that you're not likely to be sued.
  Props to Newegg for fighting the good fight.
  Most of us not in the IP industry think a lot of these suits are ridiculous, and it's because we don't make our lives by the reality of how IP law is structured.
  These cases are ridiculous because IP law is ridiculous. It's not Marshall, TX's fault that IP law is ridiculous, and these juries very well may be the most knowledgeable jurours out there. That fact is dangerous, however, because this town's specialized experience makes it as if these companies are arguing cases in front of a jury of paralegals instead of representatives of the public, which absolutely will bias results.
  Part of the reason we have juries is to balance the law with common sense. Common sense means something different when you're almost as knowledgeable about the law as the lawyers in front of you.
  To other commentators: no offence meant for people of Texas, if it is how it works, it is just cold-blooded business decision, nothing more....
  Seems to be more of a TQP slant to it.
  On one hand, it's yet another nail in the coffin of innovation in our country. On the other hand, shame on Newegg's lawyers for being so hubris.
  I still feel fortunate to live in this country but the dysfunctional patent system has nothing to do with it.
  The status quo is this: When you receive a letter from a patent troll, you're already out at least $50k or so, possibly several $100k or even more if you decide to fight on longer. You can receive such a letter simply for scanning and printing a pdf file, or operating a shopping cart on your site.
  This situation must be fixed.
  Definitely small enough for the entire town to know and understand that voting in favor of a plaintiff today brings more money to your town tomorrow.
  We're not bummed about additional incentives to avoid this broken approach to TLS, are we? This is actually a fucking good thing.
  It doesn't help that juries are apparently the dumbest people on earth.
  If that's the case, the United States needs some serious judicial reform.
  An overview of CLS is a good starting point:...
  The RBA is the banks' bank which holds bank's AUD denominated deposits in their separate accounts. Once the bank-to-bank net amounts have been calculated the RBA shuffles around a few numbers in databases to execute all the interbank transfers.
  It sounds like in the USA banks have to have accounts with each other in order to affect transfers. The RBA effectively adds a layer of indirection and in some ways ensures banks are meeting their capital requirements.
  Edit: I didn't read far enough. The UK has an impressive implementation of a Real-Time Gross Settlement system. My thoughts on the US interbank transfer system were coloured by a recent NPR Planet Money podcast (-...) where they compare the US and UK systems.
  I would also rather ask not how Bitcoin can squeeze into the banking system jigsaw puzzle, but how this puzzle can be optimized to be as effective as Bitcoin.
  All the ground work has been laid - and I think many people would be interested to know the mechanics behind what happens when the Bank of England "cuts rates" or "raises rates".
  The only other place I've seen this explained well is at the start of the book "Pricing Money" by J.D.A Wiseman - but that's not available online.
  I did not study extensively the banking system, but I figured that the central bank was the missing part of the post right away. How did I do it? Because the central bank should do exactly that: CONTROL THE BANKS IN ORDER TO AVOID THEM GOING BURST without anyone noticing (rings a bell?). Now the fact that they NEVER do, is a nice topic for discussion, why exactly to we pay them? Just to guess what the right monetary policy for the next 6 months will be?
  This post explains why sending money from a banks perspective might be expensive. But what it really shows is that it does not have to be if everyone was doing their job right (central bank included) and be held accountable when shit hits the fan.
  As of today exchanging BTC (an asset anyway) to currency is expensive and not straight-forward. How exactly is someone going to exchange 150m BTC in USD/EUR without getting noticed? In what amount of time???
  BTC is not optimal for this kind of transactions. An inflationary e-currency, widely acceptable and easily exchangeable would be one hell of an option, but good luck persuading people to use it if you re not a government.
  This was my experience as well. I can't understand why everybody fell for the hype. Loads of money are transfered every hour.
  And we don't know anything about the $150m Bitcoin transaction. Maybe the owner just moved it to one of his other wallets.
  Why not put Alice and Bob side by side?
  It always starts with a desire to be safe. And that comes from fear. It seems Americans today are afraid of more things than ever: pedophiles, guns, terrorists, lawsuits. Some news reports are ridiculous by foreign standards: teachers not being allowed to shake hands with students out of fear of sexual harassment allegations, boys suspended from school for drawing guns, bystanders not administering first-aid to accident victims out of fear of lawsuits, and of course the terrorism hysteria for which I have no words. I'm fortunate enough to have visited the US and have met mostly great people, but going by news reports the entire society seems paralyzed by fear.
  I always thought of freedom as inversely proportional to safety. If you want to be perfectly safe, you'll never leave your house in case you catch a germ, get in a car accident or even slip on a banana peel. You'll never eat store bought food without first running it through a spectrometer. You'll want everything controlled, predictable, seen ahead of time so that nothing unexpected gets thrown your way.
  I guess this is what surveillance is trying to do. Rather than accepting a level of risk as the price for being free and handling disasters when they do occur, we seem to be increasingly trying to avoid danger at all costs. And the cost seems to be freedom.
  It's almost as if the author of the US national anthem knew this when he ended it with "land of the free and the home of the brave" (correct me if I got that wrong). Maybe he knew you couldn't have one without the other. I guess the brave isn't home anymore...
  /disjointed philosophical rant
  Conventional wisdom says the Cold War was between the doctrines of Capitalism and Communism and that the doctrine of Capitalism won.
  It doesn't look like that view was right.
  The doctrine of the KGB and Stasi is winning over both of them.
  It's like a feller can't even write a serious editorial in support of American liberty without kowtowing to irrational fear-mongering anymore.
  The battle to keep us jumping at shadows has been won so conclusively that no one even bothers to stand up and say anything like:
  You are safe. Your family is safe. You are safer now than you would have been at nearly any other time in American history. Your children will probably view these years of The Terrorist Menace in much the same way we view McCarthyism and the excesses of J. Edgar Hoover - a humiliating betrayal of everything that was supposed to make America different from the rest of the world.
  There is nothing patriotic about being afraid all the time.
  But that won't sell, and the Senators who wrote this know it. I don't fault their judgement, but it makes me really sad.
  I argue that the weight of evidence says the opposite. First the "there is no question" bit is wrong, because clearly there is a huge question. Further, people that want power tend to be attracted to positions that give it to them. We see this in things like police, lawyers, and politicians.
  Note that I do no mention the military, because in the US the military is largely about subservience and not about control.
  There is also little evidence suggesting that the men and women working for the NSA are patriotic. I argue that they are not. Patriotism involves holding up the rights of citizens as defined by the Constitution, especially against those who would change or remove these rights. Further, patriotism involves defining new law, as needed, explicitly in the spirit of the Constitution. Under this definition, it is very unclear that the people working at the NSA have been remotely patriotic. Quite the opposite, in my view.
  Last, I believe we are fundamentally less free and less safe now than we were 13 years ago. The erosion of freedom and safety is often a very gradual process. When I say we, I do not refer to We as in The United States. I refer to all the people living under it, both citizens and non-citizens alike.
  I have to be more cautious of what I say at 33 than I did at 21. I seriously consider alternatives to flying during the holidays because "safety" has become a physical impediment to travel. I have to think twice about what I should pack in my luggage, for the certainty that someone will search my belongings.
  When I see police, I do not feel safe. I get more nervous and afraid. These are people walking around with weapons who can hurt, imprison, and murder people almost at will and we as citizens have almost no recourse to defend ourselves without being further harassed and harangued.
  That is not how someone should view their police departments. Yet I do, because in my short life I hear more about police brutality than stories of police helping people. My own experiences were particularly forged by being arrested at a peaceful protest (FTAA) and trying to watch the inauguration parade in DC in 2005. I stopped respecting police officers a long time ago, though I view them as a necessary evil.
  So to wrap. We are less free and less safe now than before, the people working for the NSA are working towards their own ends or the ends of people wanting power, and there is nothing patriotic going on. We are in pot being slowly boiled.
  When the axis powers threatened to plunge the world into 1000 years of darkness, the only thing we had to fear is fear itself, now - that's not good enough - we must fear the unending threat of terrorism. Letting the NSA run wild is a logical result from this mentality.
  If I were to run dragnet, I'd accept protecting the interest and privacy of all Americans back home, but strike a deal with GCHQ or some other Government agency and provide them with all the tools and tech to snoop on my fellow citizens. No legal hassles, no constitutional violation. Cost? Well that could be worked out given the advantage the data gives me to remain in power.
  Supposedly, "N.S.A." will not trigger HN's keyword penalty :)
  [1]...
  I think we need to rethink some things:
  1. In the short term, one of the biggest changes that has to be addressed is the current court doctrine that privacy has not been violated if no people are actually looking at the data. Given that much of the surveillance is directed by automation, we need to recast that doctrine to include some of the automated analysis of the data. It's a thorny question, and one that will take some time and effort to get right, but there's no time like now to start.
  2. We need more forceful and more transparent oversight of surveillance. There is a risk that the surveilled might change their tactics based on lessons from oversight reporting, but it seems clear at this point that the trade off is necessary. To quote the editorial: "The usefulness of the bulk collection program has been greatly exaggerated. We have yet to see any proof that it provides real, unique value in protecting national security." Trade-offs are only worth making if you get something. Time to revisit the trade-off.
  3. We need to address both the big piles of data in the government's hands and those in private hands. This is going to require rethinking ownership of the data, and probably moving the US more towards an EU-style privacy directive. Again, a longer process, but one that needs to start now.
  4. As a country, we need to start toward a more rational view of terrorism risk. Plenty has been written about how disproportional our response has been. Time to rebalance the scales.
  In the end, we're going to continue to have big piles of surveillance data as long as we continue our technology trajectory. We need to start figuring out how to work with it, rather than try to stop it.
  If legislation were to declare that the names and numbers used to identify a computer on a network could not be legally used to identify either the physical location of the computer or the human that might have been using it, I think it likely that the number of VPN access points and Tor exit nodes would increase wildly overnight.
  End-to-end encryption of all electronic traffic, everywhere, is the only reasonable solution.
  My main issue is that this has not become a debate, it's still an order. And it's an order that violates our fourth amendment right. This right was part of handshake for a new system, and it cannot be violated save for some rare situation we could all agree is reasonable.
  No one should think this is reasonable... security is lax, control of the data is lax ("corporate store"? Are you kidding me?). The situation is flipped here. Without leaks, we would actually be suffering more. Security clearance is not protecting us, it's using and abusing us. It's being used to hide things that would harm us more if they were never leaked. And FISA courts are used to give us some illusion that rules will be followed while having it waved in our face that we're lucky to have them. This is crazy.
  Try to accommodate any warrantless surveillance in the fourth amendment's text without creating either a comical contradiction that violates its entire spirit or removes it entirely. We know that being ok with these citizen data programs amounts to being ok with not having this right, but we're still talking about it. I want to keep my right. And since the amendment was added in response to writs of assistance, unchecked delegation of authority so scarily similar to this reasonable articulable suspicion thing we are seeing today in both this and Stop and Frisk, i think we'd all be better suited to start with our right and add any exceptions as-needed, not have them added for us. I'm assigned a threat score even before i'm suspicious? To find out whether i'm suspicious? To then act on me because of this suspicion? All while making money off of me based on my actions? You want to buy my actions? Ok, name a price, i'll consider it.
  I don't want to start this privacy war this gang wants me to. I'd rather we follow the law and consider those who don't criminal. Privacy is a buffer against abuse, not a place to hide dirty secrets. We can't predict or even see or notice all of the horrible loss of self control that might come about because of this collection. The chorus of "Nothing to Hide" in response rings eery in my ears.
  Cool writeup though!
  My problem is likely in one of our addons, but this kind of debugging, this whole genre of problem solving is entirely beyond me. How do I get to this level? What do I need to learn? To study?
  It's just a little depressing to read something like this and see how far the road ahead goes, despite how far I've already traveled...
  I made a very basic Node.js module in C++ with V8 and it was surprisingly difficult to make a good (idiomatic JS behaviour, believably bug-free) wrapper for a straightforward class and factory method. I say this coming from Boost Python and Luabind, where there are some tricky parts to bind complex classes, but simple ones are easy enough, and once written, obviously correct.
  Perhaps a better call to action would be:
  * Talk to us about how we can solve your problems
  * Chat with us
  * We can help you too
  * What's up?
  Edit: Actually, it loads fine in a private browsing tab, so it must be a bad interaction with some extension. Oh well.
  Many people here express their feelings that math or computer science papers are very difficult to read. Some even suggest that they're deliberately written this way. The truth is that yes, they in fact are deliberately written this way, but the reason is actually opposite of many HNers impression: authors want to make the papers easier to understand, and not more difficult.
  Take for example a page from a paper that's linked in this article. Someone here on HN complains that the paper talks about "p being absolutely continuous with respect to the Lebesque measure on En", hundreds of subscripts and superscripts, and unintuitively named variables, and that it makes paper very difficult to understand, especially without doing multiple passes.
  For non-mathematicians, it's very easy to identify with this sentiment. After all, what does it even mean for a measure to be absolutely continuous with respect to Lebesgue measure. Some of these words, like "measure" or "continuous" make some intuitive sense, but how can "measure" be "continuous" with respect to some other measure, and what the hell is Lebesgue measure anyway?
  Now, if you're a mathematician, you know that Lebesgue measure in simple cases is just a natural notion of area or volume, but you also know that it's very useful to be able to measure much more complicated sets than just rectangles, polyhedrals, balls, and other similar regular shapes. You know Greeks successfully approximated areas of curved shapes (like a disk) by polygons, so you try to define such measure by inscribing or circumscribing a nice, regular shapes for which the measure is easy to define, but you see it only works for very simple and regular shapes, and is very hard to work with in practice. You learned that Henri Lebesgue constructed a measure that assigns a volume to most sensible sets you can think of (indeed, it's hard to even come up with an example of a non-Lebesgue-measurable set), you've seen the construction of that measure, and you know that it's indeed a cunning and nontrivial work. You also know that any measure on Euclidean space satisfying some natural conditions (like measure of rectangle with sides a, b is equal to product ab, and if you move a set around without changing its shape, its measure shouldn't change) must already be Lebesgue measure. You also worked a lot with Lebesgue measure, it being an arguably most important measure of them all. You have an intimate knowledge of Lebesgue measure. Thus, you see a reason to honor Lebesgue by naming measure constructed by him with his name. Because of all of this, whenever you read or hear about Lebesgue measure, you know precisely what you're dealing with.
  You know that a measure p is absolutely continuous with respect to q, if whenever q(S) is zero for some set S, p(S) is also zero. You also know that if you tried to express the concept defined in a previous sentence, but without using names for measures involved, and a notation for a value a measure assigns to some set, the sentence would come out awkward and complicated, because you would have to say that a measure is absolutely continuous with respect to some other measure, if whenever that other measure assigns a zero value to some set, the value assigned to that set by the first measure must be zero as well. You also know, that since you're not a native English speaker (and I am not), your chance of making grammatical error in a sentence riddled with prepositions and conjunctions are very high, and it would make this sentence even more awkward. Your programmer friend suggested that you should use more intuitive and expressive names for your objects, but p and q are just any measures, and apart from the property you're just now trying to define, they don't have any additional interesting properties that would help you find names more sensible than SomeMeasure and SomeOtherMeasure.
  But you not only know the definition of absolute continuity of measures: in fact, if that was the only thing you knew about it was the definition, you'd have forgotten it long ago. You know that absolute continuity is important because of a Radon-Nikodym theorem, which states that if p is absolutely continuous with respect to q, then p(A) is in fact integral over A of some function g with respect to measure q (that is, p(A) = int_A g dq). You know that it's important, because it can help you reduce many questions about measure p to the questions about behaviour of function g with respect to measure q (which in our machine learning case is a measure we know very, very well, the Lebesgue measure).
  You also know why the hell it's called absolutely continuous: if you think about it for a while, the function g we just mentioned is kind of like a derivative of a measure of measure p with respect to measure q, kind of like dp/dq. Now, if you write p(A) = int_A (dp/dq) dq = int_A p'(q) dq, even though none of the symbols dp/dq or p'(q) make sense, it seems to mean that p is an "integral of its derivative", and you recall that there's a class of real valued functions for which it is true as well, guess what, the class of absolutely continuous functions. If you think about these concepts even harder, you'll see that the latter concept is a special case of our absolutely continuous measures, so all of this makes perfectly sense.
  So anyway, you read that "p is absolutely continuous with respect to Lebesgue measure", and instantly tons of associations light up in your memory, you know what they are working with, you have some ideas why they might need it, because you remember doing similar assumption in some similar context to obtain some result (and as you're reading the paper further, you realize you were right). All of what you're reading makes perfect sense, because you are very familiar with the concepts author introduces, with methods of working with them, and with known results about them. Every sentence you read is a clear consequence of the previous one. You feel you're home.
  ...
  Now, in alternate reality, a nonmathematician-you also tries to read the same paper. As the alternate-you haven't spent months and years internalizing these concept to become vis second nature, ve has to look up every other word, digress into Wikipedia to use DFS to find a connected component containing a concept you just don't yet understand. You spend hours, and after them you feel you learned nothing. You wonder if the mathematicians deliberately try to make everything complicated.
  Then you read a blog post which expresses the idea behind this paper very clearly. Wow, you think, these assholes mathematicians are really trying to keep their knowledge in an ivory tower of obscurity. But, since you only made it through the few paragraphs of the paper, you missed an intuitive explanation that's right there on that page from an paper reproduced by that blog post:
  Stated informally, the k-means procedure consists of simply starting with k groups each of which consists of a single random point, and thereafter adding each new point to the group whose mean the new point is nearest. After a point is added to a group, the mean of that groups is adjusted in order to take account of that new point
  Hey, so there was an intuitive explanation in that paper after all! So, what was all that bullshit about measures and absolute continuity all about?
  You try to implement an algorithm from the blog post, and, as you finish, one sentence from blog post catches your attention:
  Repeat steps 3-4. Until documents assignments stop changing.
  You wonder, but when that actually happens? How can you be sure that they will stop at all at some point? The blog post doesn't mention that. So you grab that paper again...
  My math starts getting pretty shaky around Calculus; vector calculus is beyond me.
  I did about half the machine learning class from coursera, andrew ng's. Machine learning is conceptually much simpler than one would guess; both gradient descent and the shallow-neural network type; and in fact it is actually pretty simple to get basic things to work.
  I agree with the author that the notation, etc, can be quite intimidating vs what is "really going on".
  however, applied machine learning is still friggin' hard; at least to me; and I consider myself a pretty decent programmer. Naive solutions are just unusable in almost any real application, and the author's use of loops and maps are great for teaching machine learning; but everything needs to be transformed to higher level vector/matrix problems in order to be genuinely useful.
  That isn't unattainable by any means; but the fact remains (imho) that without the strong base in vector calculus and idiosyncratic techniques for transforming these problems into more efficient means of computations; usable machine learning is far from "easy".
  For example, a matrix factorization could be explained with two arrays, a and b, that represent objects in the prediction:
  It's that simple. Multiply the weights of a by the weights of b, calculate error and adjust weights, repeat.It's that simple. Multiply the weights of a by the weights of b, calculate error and adjust weights, repeat.
  for each example for each weight w prediction += a[w] x b[w] err = (prediction - actual_value) for each weight w a[w] += err x small_nuumber b[w] += err x small_number
  K-Nearest Neighbor/KMeans are based on an even simpler operation:
  Then make predictions/build clusters based on the smallest aggregate distance.Then make predictions/build clusters based on the smallest aggregate distance.
  dist = 0 for each weight w: dist += (a[w] - b[w])**2
  There are more advanced concepts. There are some serious mathematics involved in some predictors. But the most basic elements of statistical prediction are dead simple for a trained programmer to understand. Given enough data, 80% solutions can easily be achieved with simple tools.
  We should be spreading the word about the simplicity of fundamental prediction algorithms, not telling people that it's hard and a lot of math background is required. Machine learning is very powerful and can improve all of our lives, but only if there is enough data available. Since information tends to be unevenly distributed we need to get the tools into the hands of as many people as possible. It would be much better to focus on the concepts that everyone can understand instead of keeping statistics secrets behind the ivy clad walls of academia.
  However, the higher level point of the post "ML is easy!" seems more than a little disingenuous. Knowing next to nothing about machine learning, obvious questions still come to mind:
  Since you start with random points, are you guaranteed to reach a global maximum? Can it get stuck?
  How do you know how many clusters you want? How do I pick K?
  This assumes that distance in the vector space strongly correlates to "similarity" in the thing I'm trying to understand. How do I know my vector model actually does that? (For example, how does the author know "has some word" is a useful metric for measuring post similarity?)
  I like what I got out of the post a lot, but the "this is easy" part only seems easy because it swept the hard part under the rug.
  When you write an academic paper, it's basically a diff on previous work. It's one of the most important considerations when the paper first comes out. The reviewers and the people up-to-the-minute with the literature need to see which bit is specifically new.
  But to understand your algorithm from scratch, someone needs to go back and read the previous four or five papers --- and probably follow false leads, along the way!
  It's another reason why academic code is often pretty bad. You really really should write your system to first replicate the previous result, and then write your changes in on top of it, with the a _bare minimum_ branching logic, controlled by a flag, so that the same runtime can provide both results. And you should be able to look at each point where you branch on that flag, and check that your improvements are only exactly what you say they are.
  When you start from scratch and implement a good bang-for-buck idea, yes, you can get a very simple implementation with very good results. I wrote a blog post explaining a 200-line POS tagger that's about as good as any around.[1] Non-experts would usually not predict that the code could be so simple, from the original paper, Collins (2002).[2]
  I've got a follow-up blog post coming that describes a pretty good parser that comes in at under 500 lines, and performs about as accurately as the Stanford parser. The paper I wrote this year, which adds 0.2% to its accuracy, barely covers the main algorithm --- that's all background. Neither does the paper before me, released late last year, which adds about 2%. Nor the paper before that, which describes the features...etc.
  When you put it together and chop out the false-starts, okay, it's simple. But it took a lot of people a lot of years to come up with those 500 lines of Python...And they're almost certainly on the way towards a local maximum! The way forward will probably involve one of the many other methods discussed along the way, which don't help this particular system.
  [1]...
  [2]
  Stated informally, the k-means procedure consists of simply starting with k groups each of which consists of a single random point, and thereafter adding each new point to the group whose mean the new point is nearest.
  Admittedly, it's not the prettiest English sentence over written, but it's just as plain and simply stated as the author of this article.
  The article itself is interested in proving asymptotic guarantees of the algorithm (which the author of the article seems to completely ignore, as if it were not part of machine learning at all). Of course you need mathematics for that. If you go down further in the paper, the author reverts to a simple English explanation of the various parameters of the algorithm and how they affect the quality of the output.
  So basically the author is cherry-picking his evidence and not even doing a very good job of it.
  It's great that we can stand on the shoulders of giants, but having a certain understanding of what these algorithms are doing is critical for choosing them and the parameters in question.
  Also, K-means is relatively easy to understand untuitively. Try doing that with Latent Dirichlet Allocation, Pachinko Allocation, etc. Even Principal Component Analysis and Linear Least Squares have some nontrivial properties that need to be understood....
  My point here is: You don't need hard math (most of the times) because most machine learning methods are already coded in half a dozen different languages. So its similar to fft. You do not need to understand why fft works, just when and how to apply it.
  The typical machine learning workflow is: Data mining -> feature extraction -> applying a ML method.
  I often joke that I'm using Weka as a hammer, to check, if I managed to shape the problem into a nail. Now the critical part is feature extraction. Once this is done right, most methods show more or less good results. Just pick the one that fits best in results, time and memory constrains. You might need to recode the method from Java to C to speedup, or to embed it. But this requires nearly no math skills, just code reading, writing and testing skills.
  etc.
  Seriously: The writer would not be able to write anything about K-Means if not for people looking at it from a mathematical view point. This angle is of tremendous importance if you want to know how your algorithm behaves in corner cases.
  This does not suffice, if you have an actual application (e.g. a recommendation or a hand tracking or an object recognition engine). These need to work as good as you can make it because every improvement of it will result in $$$.
  Sure, the basic concepts are easy to understand. Sure, you can hack together a program that performs quite well on some tasks. But there are so much (interesting) problems that are not at all easy to solve or understand.
  Like structural engineering it is easy to understand the concepts, and it is even easy to build a pillow fort in the living room, but it is not easy to build an actual bridge that is light, strong, etc.
  Machine learning is easy only if you know your linear algebra, calculus, probability and stats, etc. I think this classic paper is a good way to test if you have the right math background to dive deeper into the field:...
  While the article doesn't have this title (why would you even choose one with such a high bias?), I presume the submitter decided upon this title after being encouraged by this affirmation of the article's author: 'This data indicates that the skills necessary to be a data wizard can be learned in disciplines other than computer sciences and mathematics.'.
  This is a half-baked conclusion. I'd reason most Kaggle participants are first of all, machine learning fans, either professionals or 'amateurs' with no formal qualifications, having studied it as a hobby. I doubt people with a degree in cognitive sciences or otherwise in the 'other' categories as mentioned in the article learned enough just through their university studies to readily be able to jump into machine learning.
  I will reply to each of these points:
  1. Research papers are meant to be read by researchers who are interested in advancing the state of the art. They are usually pretty bad introductory texts.
  In particular, mathematical details regarding whether or not the space is closed, complete, convex, etc. are usually both irrelevant and incomprehensible to a practitioner but are essential to the inner workings of the mathematical proofs.
  Practitioners who want to apply the classic algorithms should seek a good book, a wikipedia article, blog post or survey paper. Just about anything OTHER than a research paper would be more helpful.
  2. Mathematical notation is difficult if you cannot read it, just like any programming language. Try learning to parse it! It's not that hard, really.
  In cases where there is an equivalent piece of code implementing some computation, the mathematical notation is usually much shorter.
  3. k-means is very simple, but its the wrong approach to this type of problem. There's an entire field called "recommender systems" with algorithms that would do a much better job here. Some of them are pretty simple too!
  As someone who uses machine learning heavily in my own research, a lot of this seemed like "common sense" to me when I read it, but on reflection I realized that this is precisely the stuff that is most valuable and hardest to find in existing papers and blog posts.
  Also - maybe "article recommendation" is "easy" in this context, but other areas such as computer vision, sentiment analysis are not. Some other questions I might ask
  How do you know how well this algorithm is performing?
  How are you going to compare this model to other models? Which metrics will you use? What statistical tests would you use and why?
  What assumptions are you making here ? How do you know you can make them and why?
  There are a lot of things that this article fails to address.
  Disclaimer: I realize more complex models + features don't always lead to better performance, but you need to know how to verify that to be sure.
  But it would help to highlight some of the fundamental challenges of a simplistic approach.
  For example, how is the author computing the distance between points in n-dimensional space?
  And does this mean that a one-paragraph post and a ten-paragraph post on the same topic probably wouldn't be clustered together?
  In the context of fraud detection (one of the main areas I work in these days), a model that is right for the wrong reasons might lead to catastrophic losses when the underlying assumption that made the results valid suddenly ceases to be true.
  Aside from the fact the techniques he mentioned are some of the simplest in machine learning (and are hardly those that would immediately come to mind when I think "machine learning"), the top comment on the article is spot on:
  > "The academic papers are introducing new algorithms and proving properties about them, youre applying the result. Youre standing on giants shoulders and thinking its easy to see as far as they do."
  While understanding how the algorithm works is of course important (and I do agree that they are often more readable when translated to code), understanding why (and when) they work is equally important. Does each K-Means iteration always reach a stable configuration? When can you expect it to converge fast? How do you choose the number of clusters, and how does this affect convergence speed? Does the way you initialize your centroids have a significant effect on the outcome? If yes, which initializations tend to work better in which situations?
  These are all questions I might ask in an interview, but more importantly, being able to answer these is often the difference between blindly applying a technique and applying it intelligently. Even for "simple" algorithms such as K-Means, implementing them is often only the tip of the iceberg.
  There is no reason to believe the results are any better than a random method in respect of the goal (and it's reasonable to believe they may be worse) - we would have to measure this separately by clickthrough rate or user satisfaction survey, perhaps.
  I believe you would get far better results by always posting the three most popular articles. If you want to personalise, post personally-unread articles. A lot less technical work, a lot less on-the-fly calculation, a lot more effective. The machine learning tools do not fit the goal.
  The most effective real example of a "you might also like" section is the Mail Online's Sidebar of Shame. As best as I can tell, they display their popular articles in a fixed order.
  Machine Learning seems to make it easy to answer the wrong question.
  Except:...
  I didn't know k-means clustering was that simple. I am taking notes...
  This is cool. It is 2-means clustering and we can extend it to 5 or 13...This is cool. It is 2-means clustering and we can extend it to 5 or 13...
  * pick two centers at random run 15 times: * for each post, find the closest center * take the average point of your two clusters as your new center
  We don't need any more math, as long as we don't ask whether this algorithm converges or how quickly
  Maybe that's the case. And maybe the title of the submission ruffled some feathers but the thrust of it is that ML is approachable. I'm sure there's devil in the detail, but it's nice for people who are unfamiliar in a subject to see it presented in a way that's more familiar to them with their current background.
  I have a university background in Maths and Comp Sci so I'm not scared of code or mathematical notation. Maybe if I'd read the comments on here I'd get the sense that ML is too vast and difficult to pick up. I'm doing Andrew Ng's coursera course at the moment and so far it's all been very easy to understand. I'm sure it gets harder (I even hope so) and maybe I'll never get to the point where I'm expert at it, but it would be nicer to see more of a nurturing environment on here instead of the knee jerk reactions this seems to have inspired.
  In the end, libs are there for simpler use cases or educational purposes. Realistically, that's more than good enough for 90% of people.
  That being said, it's not impossible to learn. Oversimplifying the statistics, tuning, and work that goes in to these algorithms you're using though? Not a good idea.
  From my limited text comprehension abilities, the author did not say that the whole field is trivial and that we should sack all academics.
  Instead, the argument is that basic Machine Learning techniques are easy and one shouldn't be afraid of applying them.
  Seemingly arcane mathematical notation is what frightens off beginners in many cases, though. Once you've understood that - for instance - a sum symbol actually is nothing else but a loop many things become a lot easier.
  However, the devil's in the details. Many edge cases and advanced methods of machine learning are really hard to understand. Moreover, when 'good enough' isn't just good enough any more things tend to become very complex very quickly.
  The post doesn't really go into centroid selection or evaluation, or the fact that clustering on text is going to be painful once you move to a larger dataset.
  [1]...
  I disagree in so many ways:1. complex algorithms are usually very short in practice (e.g. dijkstra's shortest path or edit distance are the firsts that come to mind)2. ML is not just applying ML algorithms: you have to evaluate your results, experiment with features, visualize data, think about what you can exploit and discover patterns that can improve your models.3. If you know the properties of the algorithms you are using then you can have some insights that might help you on improving your results drastically. It's very easy to apply the right algorithms with the wrong normalizations and still get decent results in some tests....
  He seems to have this remarkable gift of making moves which aren't just strong, they get inside his opponent's head and cause them to either overthink/break down. I'm interested in the technical details behind this metric. Has anyone heard of it before?
  Regardless, congrats Magnus. You are truly a generational talent, and I'm excited to see what your win will do for the game....
  Allow me to go on a tangent to let me tell my personal story with chess. I began playing at age 7 when my elder brother borrowed a chess board from a friend. It was a nice break from the physical altercations between us(read mat fights). My maternal grand ma called it "Satan's Game". And my mother toed the line. Why? I don't know the exact reason, but I guess it was an amazing time sink. Or maybe they both had watched this Hindi movie by Satyajit Ray: The Chess Players(). When the game s between my brother and me became violent(You moved it when I was off to the toilet...) it was banned from our home. But we didn't give up. Our summers were spent playing chess in a nearby mango orchard or the graveyard a mile away. The chess board made out of paper with plastic pieces was the only "toy" we never broke. Those were the best days of my life. And it's still safe 20 years later. With every piece intact. What a game.
  The discussion of "mind games" {"nettlesomeness" here) is something that SC2 has an obsession with, and certainly can play a massive part in pro tournaments, and I'd never considered it applying to chess... but now that I think about it, everything in SC2's meta really came from Chess to begin with, only applied in real-time with 300+ actions per minute and hundreds of pieces with few illegal moves. And yet I struggle more with grokking the advanced strategies of Chess than I do for StarCraft!
  Edit: Thank you for all the useful replies! In reply to some of you, I am a complete beginner at Go. Maybe the word 'boring' was not carefully chosen. As a programmer, I should have known better - that things may seem boring (tiresome?) until you become more fluent with them. I should certainly give Go another shot...
  He comes from a Nation consisting of 5 mill. people, compared to Anand's billion people.
  This is probably the greatest sports achievement our country will ever make, as there are really no comparable sports achievements in the world, not now, anyway.
  IMHO: They should knight him the second he gets of the plane when he returns home. Because no other Norwegian has ever accomplished anything close to this, with regards to bring honour to our nation.
  Gratuler Magnus!
  I'm not much a chess player myself but it still very satisfying seeing so much attention brought to a intellectual sport. I hope at least some of it will stick around.
  He took queen with queen, clearly, knowing it would be lost to king, and then again the pawn with knight. He had a knight, of all things!
  Where do we go from here?
  However, one of the organize-all-the-things guys on the internal operations team once caught me in a coding marathon in one of those offices and sent an email to the entire company "reminding" everyone that those offices were for God-knows-what-he-thought-they-were-for, not for work. So I returned to my ergonomic island and toiled away, surrounded by the noise of a hundred private conversations.
  I've always thought since then that if that had panned out, that you could choose at any moment if you wanted to be in the open room or in a private room in the perimeter, that would have been the ideal layout.
  I am one who needs some control over his environment. In the majority of cases, these means peace and quiet particularly/mostly from human noise, as well as a lack of visual distraction. (Although there are times when I work well -- best even -- in a frenetic environment; however, these are limited in both type and frequency.)
  I'm a bit older, and I fell into a generation that was subscribing to and prescribing whole-heartedly the "open", "collaborative" environment.
  It did not work for me. Yet I received unrelenting pressure, including from medical professionals, that I was the one who... "simply" needed to learn to adapt.
  Well... now we know a bit better. (Although I don't trust society to have truly "learned" this in any permanent fashion.) But the chronic stress of this situation has caused for me major adjustments in career and, eventually, rather run me down.
  To put the bottom line at the bottom, here: If a situation is not working for you, IT IS NOT WORKING FOR YOU. TRUST THIS. TRUST YOURSELF!
  "Professionals" of varying occupations and levels of training will all -- ALL -- tell you all kinds of crap. Even several years of medical school does not divorce most from their prejudices nor from cultural suasion.
  Don't waste your time -- your life -- running yourself down trying to live up to someone else's idea of the "right way".
  I was going crazy the first 6 months here because I was holed up in a office by myself with little in-person communication. There was no benefit to being in the office versus working remotely. My first attempt was to get the company a HipChat account for engineers to stay more connected. I even pushed for a couple of monthly engineer events so I would have an opportunity to interact with other engineers.
  Open office setups can go horribly wrong. Never allow anyone who spends time on the phone into the open office setup. That stifles all interaction due to the need for silence. Additionally, engineers are forced to listen to a single side of a conversation that likely has nothing directly to do with the engineers. Project and account managers have a valuable job, and engineers should not need to be distracted by work that is not related to what they need to accomplish.
  Additionally, I believe an open office for engineers should be reasonably small (4-10 people), and there should be some common responsibilities or projects between the engineers.
  Other steps can be taken to give people the appropriate space for the task at hand. I've used a stand-up desk for the past three years. I hardly ever spend a whole day standing. I alternate between sitting and standing as my body gives me signals. Similarly, having quiet space (alternatively headphones, if desired) to crank on certain work can be useful useful. That said, three of the four of us have not used solitary space in the past 2 months.
  Basically all of this is to say the issue is not black and white. If you prefer to work in a private office, like more than half of the engineers at my company do, that's fine. If you prefer to work in the company of others, that is fine too. Not everyone wants to work at a startup, and not everyone hates working for big financial companies.
  
  Image of an office circa 1937:...
  I've never liked the open office layouts anyways. The two companies I worked for used it and it was tremendously noisy and so I usually did anything I could to avoid having to work in the office. Either by going to the cafeteria to work, or staying home. It made both of the teams I worked on very inefficient. The exact opposite goal it was meant to address.
  The problem is that people look for ideological purity and look to absolutes because an unambiguous answer seems simple, whereas the reality is quite grey. The reality is that some people work better in cubicles, and some prefer open layouts. To complicate things even further, some situations call for one, others call for the other.
  I see a similar debate going on between proponents of traditional schools (rows of desks, and teacher in front) and structure-less/self-pacing schools. Which is better? Well, some kids thrive in one, others thrive in the other. Worse, some kids get absolutely destroyed within the wrong king of system.
  There are no simple answers.
  It's definitely not anti-open. They basically found that closed offices benefit individual engineers the most while open plans benefit the team. Interestingly, while noting the need for concentration, they note a whole bunch of ulterior careerist motives for developers wanting to work in private.
  They found that the nature of communication was markedly different in each environment. Open was not only more frequent and immediate, it raised the bar for what was considered a frequent amount of team interaction, suggesting greater knowledge-share. The conversations were also shorter and subject to "cues" about whether it was a good time to interrupt someone. And the stronger social bonds encouraged more people to ask for help and bounce crazy ideas around.
  They do note that it comes at the cost of distractions, and in the end they call for a balance....
  This is a bit bad, but I just wear PPE Ear Defenders all day, on top of in ear headphones. With both of these, I can't hear a thing.
  The eerie quiet is great for short bursts of concentration, but it also means I can turn my music up to a normal level without worrying about escaping noise annoying my colleagues.
  It looks very nerdy, and people need to email me or wave if they want something (which cuts down interruptions a lot). I take them off about half the time so as to be social, which I guess is like leaving an office door open.
  Sort of sad it's necessary though. Hope this helps people with a similar situation.
  Ear defenders, buy good ones ->
  Basically, they were in mental cubes when they were lacking physical cubes.
  P.S. The company I worked for went with the open office, productivity plummeted and the office is now closed. When I pointed out the above issues in the pictures I was told: "You don't like it? Maybe you need to work somewhere else". Well, now, they all work somewhere else.
  Pretty much everyone on the team loves it, and has felt a major boost in productivity and team cohesion, as virtually anyone you might need is "right there" in the room with you, and you can tune in to some of the chatter for an organic understanding of what everyone's up to. I imagine if everyone were in offices it would feel dead and empty, and totally kill the team spirit.
  I think the only thing we're missing is more ad-hoc space - more conference rooms for breakout groups and individuals seeking temporary escape from the floor.
  The other 5% of the time is great - as other people have already mentioned, it's really easy to listen in to conversations and get an idea of what everybody is up to.
  Everyone having their own private office was detrimental in the opposite way. Everyone was closed off and really inaccessible. Knocking on someone's door felt invasive and wrong, so people would avoid doing it.
  Cubicles give everyone privacy and space, but not so much that it stops collaboration dead. The impediment to interruptions seems to be at just the right level.
  I'm also interested in offices that have open collaborative spaces combined with private offices. I've never had that and I think it could be a good compromise too.
  It's weird that the author notes that, but then proposes that the solution to focusing on one half of the vacillation is to just focus on the other half instead. Surely the ideal is to support both.
  If I could I would run an experiment like this:
  1. Have a large number of small, quiet office-like spaces.2. Have a big open plan area.3. Have a fixed schedule during the day where for a certain number of hours, everyone is required to be in the open plan area.
  You can still hack there if you want, but you're expected to be there, and you understand that during that time you're free to interrupt and be interrupted.
  The reason for making the open space mandatory is so that people actually go there. If it's optional, then it looks like people only go to the open spaces to not do "real" work. Since no one wants to be seen slacking, the open space just ends up unused.
  Look at it from the startup's side of things: The ideal office that we'd all love to work in - that perfect 4-6 person bullpen with private offices surrounding (x number of 4-6 person teams), is _expensive_. Very few companies can afford a build-out like this until much much later in company-life.
  If we're talking about an Apple or Google, fine - let's have the debate. But for a vast majority of early-stage startups, this simply isn't a viable discussion to have. Office space is very limited in many parts of the big tech hubs, and often it's a matter of just getting an affordable space in the first place, much less being able to build out the perfect working environment. And the fact of the matter is, most spaces are open and filled with $200 IKEA tables because that's all the company can afford.
  So I'm not sure what the answer is. On the one hand, you can say "well, budget more for office space", but we all know it's not that easy. It's not a small expense -- big buildouts for private offices costs tens of thousands of dollars (or more), precious capital for a small business.
  Some bright spark changed that - got rid of the counters, and made the offices all open-office plan. You wait off to the side, and when it's your turn for whatever, someone comes and fetches you to their desk in the open-office plan with some space between desks. Instead of shouting your personal issues across a counter, you could discuss it in a normal tone, and if it was private, you could be quieter or more subtle about the topic. Aggressive incidents dropped off a cliff - and there was much less of an 'us-versus-the-gummint' mentality seeded by the demarcation line of a [fortified] counter.
  So in this particular use-case, an open-office layout was clearly superior for employees, bosses, productivity, and clients.
  I'm guilty of participating, too, but no more. My assumption will now be that any article with a headline that presents an absolute for a subject that is a matter of preference is garbage. It's all part of growing up, I guess.
  Headphones would be too distracting for me--however I am developing tinnitus, which has become a blessing in disguise.Although I find it difficult to listen to music now, I would rather listen to the ringing in my ears than office chatter.
  If you're trying to build software in an open office where people are constantly talking then I'm sorry, good work will not get done. Decisions to change your office layout should be in the interest of boosting communication, team cohesion and productivity. Cubicles are too restrictive, completely open is too distracting.
  Now, as a self-employed individual I rent a seat in a shared open office to maintain that focus. It's far too easy to turn on the TV or play a video game or linger on the phone with a friend when I'm working from home. In a different setting -- with people around: all focused on work -- it's much easier to maintain a focus on work and getting done what's important.
  However one thing we do is, that it is perfectly within your right to work from home if you feel you have enough to get on with and people do this often.
  As to headphones, we have golden rule, if they are on, the building better be on fire if you disturb somebody. Not quite a sackable offence but damn close. :)
  I've also found that sites like offer a 'break' from the music. They can kill any background conversation distraction. ANY. Investigate white noise.
  As to socialising, jokey things still get passed around. We're encouraged to use IM, and we also go in groups to the coffee machine which is kept in a cafeteria area, away from workers where you can chat freely and loudly.
  I personally hate open plan offices, but in my 20+ years of working, I've only worked in an office once and that still had 4 people in there because they could squeeze that number into it.
  I don't work in an open office, but I wonder what it smells like. When in closed meetings or an elevator I can keenly smell people, sometimes good (women's fragrance) but most of the time distracting (perfume, odor). I'd hate to be surrounded by distracting smells all the time.
  This can be fixed with proper ventilation (and proper hygiene let's hope), but ventilation can be hard to come by in the non-summer months. (without freezing everyone out)...
  Here's an example. (Ignore the desk, which looks a bit fragile. I'm just asking about the hood.)...
  This of course gives those willing to make offices for everyone (like, say, Fog Creek) a competitive advantage. But your average corporate manager doesn't care about that. They still get their office and get paid.
  It's the price paid for what often seems like blind fad-following; rather than analyzing whether X really makes sense given the attributes of the organization (people/culture, type of work, department, etc.), it's adopted, used, and eventually, revolted against. A more thoughtful, situation-specific analysis might produce better results.
  I can imagine private office might be preferable if you really work on your own. But I work in a team, and I prefer working in the same room as them.
  Though the stories about noise suggest that some people are sharing a room with a hundred people, and that's just ridiculous. 6, 12, or even 20 programmers in a room don't make a lot of noise. The occasional question or discussion really isn't that distracting (though nerf-gun battles certainly are).
  Just keep it sane. Put people in a room with the people they need to be in a room with. Don't make them hide from their team. Don't put them in a crowd of noisy strangers.
  There's good and bad ways to do this.
  Having a private office is bad for some employees and some people's productivity.
  I went from an open office that I loved to having my own office, which I hate.
  I could write this same article saying the opposite things and it would be no less correct.
  I hate my office. In the almost 2 years I've been at my current company I feel like less of a team member than I did in 2 months at my last job.
  In essence they found that performance was roughly the same as before but the employees preferred the new arrangement and that communication was improved.
  Here is part of a summary of the article, made when revising for an exam:
  > "The most important and most obvious conclusion that this paper found is that the non-territorial idea works. It not only reduces facilities costs by eliminating the need for rearranging walls, air ducts, etc. every time an area is re-organized, but it also allows for the allocation of space based upon an expected population density at any point in time. More important than the cost savings, however, is the fact that people find it comfortable to work in."
  The open plan arrangement is not only to benefit the employees, which it may or may not do, but to reduce costs. Office space isn't exactly cheap in many locations.
  [0]-...
  This is in sharp contrast to my last job, a fully open office where it was pretty much one gigantic room and everyone was LOUDLY talking over one another. Pretty much had to have the headphones on the whole day just so people wouldn't bother me. I'd even have them on without playing music just to signal to people not to come around...that's how annoying it was. It was truly interruption-driven development at that place.
  I think the breakthrough will come when workplace interiors get much more modular and flexible. I'm envisioning different teams getting to choose (within reason) what types of setups they would like from enclosed offices to bullpens to cubes to open desks.
  And I can even see planned re-arrangements every 6 months or so to eliminate the moss.
  The other thing I enjoy that I didn't expect was the social aspect, where I can chat with everyone in the room before work starts in earnest in the morning, or after 6-ish when we're all ready to leave for home anyway.
  In particular, the "babble" generator. The babble blends with actual conversations so you can no longer distinguish spoken words and reduces what would otherwise be attention grabbing conversations a to coffee shop level din.
  Not complaining, just sharing a different situation.
  The balance is quite subtle, as usual. So-called brain-storming sessions (which in the language of normal people is called a discussion group) could be very effective (only if participants have something to be stormed) while meeting of committees of idiots is always a disaster. The first activity is centered around subjects and goals, while the second is dedicated to the action itself and a sense of self-importance.
  In other words, for those who think of software development as an assembly line (which is very wrong) mass-production best practices are quite appropriate, while others, who think of it as a process of writing poetry, the best practices appropriate for a writers and thinkers should be considered.
  Unfortunately, idiots dominate the world.
  You just have to know how you work best, and hope your company can support it. If you're a startup, be flexible about optimizing workers' time...
  Obviously you can still code in an open-office and you can still collaborate working from home, but it's sub-optimal. With the setup above, you're in the right environment for the right type of work most of the time, and employees love it.
  Lots more about this here:...
  I've worked in open office, half-cube, full cube, shared office, and sole office. Of all of those, sole office was best for concentration and shared office was best for collaboration.
  Everyone knows open offices are worse but they are also far cheaper, if productivity is down 15% but TCO of the office space saves more then that's ok.
  Labour is a commodity, it has value but so do many other factors.
  Part 2 perhaps will talk on this issue.
  Has anyone thought about doing a study on the effects of people wearing headphones all day to drown out these distractions? I mean ear infections and hearing loss must surely be long term side effects.
  End rant.
  - cell phones- chats- social networking- random web surfing
  (when my neighbor does it)
  Maybe I'm not just concentrating enough at work. But perhaps there is a way to solve these problems?
  All this point about not being able to focus and getting disturbed all the time is hardly an issue. Most co-workers are respectful of your time whether they are in open office or closed office. The ones that are not respectful will bother you regardless of where you sit. Behind closed door ? No problem, I will give this guy an annoying phone call.
  Now is there a binary answer to this ? Of course not. But claiming that Open office plans are completely useless is stretching it a little too far.
  Software design has as a fundamental problem being able to express yourself in a way that is clear and remains clear as things change. Basic principles of good software design, like reducing cohesion, remain good principles no matter what "paradigm" you think you're using. When you change paradigms, be aware that the basic principles remain the same no matter what label you give them. And since design is all about tradeoffs, if you are going to have to violate a principle, you might as well do it in the clearest and most straightforward way possible.
  Let me give an example. A singleton is bad for all of the reasons that a global variable is bad. If you need one, I prefer to make it a global variable simply because that is honest about what design principle has been broken. (Unless I want to make it lazy - then it is easier to write with a singleton!)
  So learn the principles. Figure out what they look like and are called in your paradigm. Get on with life and solve real problems.
  Let me give a concrete example. I learned more about good OO design from the first edition of Code Complete than any other book that I ever read. Even though it was entirely about procedural programming. Because the principles that it discussed, from how to name functions to the value of abstract data types to information hiding, all apply directly to OO. And to functional programming. And to aspect oriented programming. They are truly universal. Learn the principles, they are more important than the labels.
  Why OO? Classes exist to decouple behaviors from data. In fact, their purpose is to think in terms of cohesive sets of behaviors instead of data-driven functions.
  Does this apply to any possible case? No, it's a leaky abstraction.
  Why FP? Functions exist to decouple behavior from other behavior. In fact, their purpose is to think in terms of completely decoupled sets of behaviors instead of cohesive functions.
  Does this apply to any possible case? No, it's a leaky abstraction.
  Why AOP? Aspects exist to decouple behaviors that apply across classes. In fact, their purpose is to think in terms of orthogonal sets of behaviors instead of hierarchical sets of behaviors.
  Does this apply to any possible case? No, it's a leaky abstraction.
  Why Procedural Programming? To separate the functionality of the application in separate behaviors. In fact, the purpose of procedures is to think in terms of behaviors instead of sequences of operations.
  Does this apply to any possible case? No, it's a leaky abstraction.
  Why Declarative Programming? To express solutions in terms of goals instead of behaviors. In fact, its purpose is to think in terms of desired state, not sequences or compositions of behaviors.
  Does this apply to any possible case? No, it's a leaky abstraction.
  Why Logic Programming? To explore the logical consequences of given facts, instead of focusing on behaviors or desired outcomes. In fact, its purpose is to find new truths starting from given truths.
  Does this apply to any possible case? No, it's a leaky abstraction.
  Why spaghetti code? Wait, no that's just crap ;-)
  You can still write functional code in OO. Heck if it makes you feel better, you can just make a macro to rename 'namespace' to 'class' and then you can write code like
  Namespaces are generally an improvement over globally defined functions as it lets you mix and match libraries without having to worry that you included the right header files, etc. Again, pragmatism.Namespaces are generally an improvement over globally defined functions as it lets you mix and match libraries without having to worry that you included the right header files, etc. Again, pragmatism.
  namespace Utils { function thingy() {...} }
  The dialogue of the article is entirely about coupling, and in OOP figuring out how to make a loosely coupled system is what separates the grand masters from the beginners. Designing a loosely coupled system is incredibly hard and requires years of deliberate practice to master. So when someone who's a beginner or not very good at OO design claims OO isn't a valuable paradigm, I don't listen. Bad OO can be less valuable than no OO, just like anything else, and just like anything else, that doesn't make the whole paradigm bad.
  I've explored functional programming in a couple of college courses now, and find it very intriguing. When it's time to go a make a system, however, I find it difficult to boil down functional principles into the system I want. This is a complaint in the same vein as the OO complaints. Functional programming is incredibly impressive when designing a behavior, but what separates the masters from the beginners seems to be when it's time to model an entire system. This is the current separation in my mind: OO is designed and really good for modeling a complex system that involves lots of mutation, and functional programming is really good for modeling and separating behavior within a system.
  I don't think we have grounds to say one is better than the other yet. Both OO and Functional have their niches where they're amazingly effective, and both have a giant gray area where it's difficult to mold the pure paradigm onto a solution.
  I think the best solution so far is a mixture of the two, such as we see in Scala. Though, a mixture too has its own set of drawbacks. Mainly what seems to be an explosion of language complexity and a giant need for design conventions and limitations when there are so many possible routes to a solution.
  The best of the current climate is a mixture of the two, with a framework that clearly defines and separates where and when to use one paradigm over the other, so you aren't bogged down with the additional complexity.
  This abstraction works well with classical desktop apps (lots of code, one big heap, pointers are always valid), but breaks down badly when your program is about communicating data and you start to cross memory address barriers.
  A lot of modern apps are about data. You see a lot of networked apps, db apps and layered apps with different technologies in every layer, communicating with each other only through shared data formats. Such an app is primarily concerned with shuffling data around, and oo breaks down into a horrible mess. Each transition to a data representation requires a complete serialization of the object graph to a reasonable data representation and back again at the other side. This means that you essentially have twice the amount of work than if you would operate on the data directly as you would do with FP.
  Once the amount of "internal juggling" with the data exceeds a certain limit, OO might be beneficial. But for data-centric apps, forget it.
  To enforce an invariant but of course. Just ask Bjarne.
  [1]
  Classes are a tool you can use to design a solution to your particular programming problem. Sometimes the problem with call for a few large classes. Sometimes it will call for an evenly balanced network of small classes. Sometimes there will be a lot of DTOs, and sometime none. Sometimes large classes will cause maintenance problems because there is a lot of complexity confusingly jammed in one place, and other times they will be a boon because you don't have to look in lots of confusingly named files to discover what you are looking for.
  Criticizing a design by how well it conforms to abstract rules, rather than criticizing its fit to the actual problem will often lead to confusion.
  These rules of thumb are useful, but only as a way to question whether your design is a good fit - I.e. "Would it be better if this class had more behavior or less behavior? Would it be better to split this class into smaller components, or should this group of similar classes be coalesced into a single entity?"
  I would hazard to guess that functional programming or any other solution will go through the same type of evolution and we will be looking back in 10 years at how immaturely we used the technology. Then we will circle back to yet some other technology that was previously used and went out of style, with some new insights added.
  It seems to me that we go in a great big circle over and over again, picking up a little bit of new info each time around.
  That's one of the benefits of OOP: it forces you to think harder about where things belong, and this really helps as codebases grow. A "utils" class is often a sign that things could be better organized.
  I'm interested in this concept, but I'm not sure how to go about applying it to my own work as a front-end web developer. Most of the resources online are theoretical.]:
  Do put your object in classes, but don't put behaviors there. Use classes to allow static type checking so that functions taking them can guarantee certain field exist.
  Separate behaviors out into its own module. I'd avoid calling them classes here because there will be confusion. Interactions between objects can be implemented in FP style. This is where you get to use map and reduce.
  I've been learning about DCI (data context interaction) recently. I can't say I've fully grasped it yet, but it did opened my mind on how to do design differently.
  I believe this distinction is a critical one because an application with a lot of shared state is more difficult to scale than one without. As another poster pointed out, in a shared addressed space such as a desktop app, this isn't a concern. But if you want to scale an application across multiple address spaces, communicating and synchronizing the state of objects between these spaces tends to be difficult.
  So, my tendency is:
  Small and shared address space? Tend to use OO patterns and implementations.
  Big and distributed address space? Tend to use FP patterns and implementations.
  Note, I don't consider OO vs. FP a language choice I consider it a programming paradigm choice.
  Both have merit depending on the skill-set and staff available to you, scale of project and existing infrastructure.
  I was however very disappointed when the author bundled interfaces into the mix as if it was the same as the rest of it. The interface enables you to support many different types of behaviour and enables you to structure your libraries in different ways. It's a different aspect from just classes themselves.
  Genuinely I don't think shit like this is healthy. Smacks of religion.
  I've seen some nice slides from Clojure talks that talk about how many OO abstractions are complected (combined) versions of simpler abstractions. If anyone has seen the slides I'm talking about, please share. For example, a class is combination of a namespace and ___. Possible answers include mutable state, shared data, and so on.
  But also the old question of where to put a method seems like unecessary mental overhead for solving a problem. Use modules and just pass things in. You could probably even put some syntactic sugar in the language so that you could use the "object".method notation on the first argument passed in if you really wanted to.
  So someone give me clojure with optional typing, a Python-like syntax, and get off my lawn!
  And then you can build a class like LEGO, literally.
  Because, it has Class and Roles, a class can extend another class. And a Role can be built with multiple roles. And a class can be built with multiples Roles.
  Your OO is outdated if it doesnt implement classes, roles, types and at least method modifiers.
  And your language should allow first function class to allow functional programming if you desire.
  Perl has all that and comes installed in any unix/linux/mac.. try in your terminal: $ perl -v
  Every linux/unix/mac system runs perl. So your company is probably using perl and they dont even know.
  Ultimately, classes are about code organization and reuse. Done properly, it leads to a well maintained program. Functional programming...it still needs to be organized somehow, whether you put them in classes or namespaces, the last thing you want is spaghetti code. Now depending in the type of programming, you may need to preserve state, which can be quite challenging in a purely functional environment.
  I don't know if I am understanding it correctly but one of the reasons I absolutely loved Backbone.js was that it kept state of our DOM. Is this relevant to above discussion? because state surely looks pretty beneficial.
  some language designers see and fully appreciate the benefits of both. They start putting class synonymous structures in FP languages or FP functionality in OOP languages. This is the future of the mainstream (Ex: EcmaScript 6 has classes/types, C# has Linq, closures, lambdas ETC).
  The core argument is more of philosophical in nature in terms of paradigms, because from functional programming view a function just acts on a data transforming it to other form. But in pure OO world (like Java) one can not dare to think beyond objects so for them it has to be in a object.
  I'm not the original author. It was posted on russian HN/Reddit clone Habrahabr: featured translations of "30 LOC of javascript" topics from HN, some people continued it for a bit, and this one was created as an ironic answer to that.
  [1] Edit: "Games" in scare quotes because the lose state doesn't (can't) persist in a way that requires player action.
  Edit: Managed to make it the whole way through by leaving the ship in the bottom left. And then when the bonuses kept flying by uncontested because the game was "over", I was able to click on them after a few tries. The issue must have been that the cursor wasn't where I thought it was. Still very cool!
  EDIT: yep, definitely proxy, seems all the stuff from is blocked.
  I ended up building a generator for the CSS+HTML and at the time I had a PHP script (2+ years ago, I would use Node now) that could allow me to pick the number of lanes, the difficulty etc. Now it's just a single snapshot. I built it in about a week. There is a new bug apparently where the cursor is not changing as expected in chrome.
  Like, at all. Sorry. If you enable it and reload this page you'll be good to go. Need to know how? Go here." Okay, that's funny.When Javascript is on: Ah, Nice little game. Interested how it needs a .js file with just a comment. Can we improve this to remove it?
  Edit: oh, so maybe the overall website need JS, not the game(?).
  He's got Alzheimer's and documented his personal tour of looking into his end of life options.
  A person who is slowly succumbing, immobile, on the brink of death and suffering has nothing to offer or worthwhile to live for. Their life is effectively over and they're simply waiting for the moment their biological functions will at last cease.
  Yet the Christian right insists that the agony be prolonged to a maximum. The religion is notably fascinated with martyrdom, asceticism and persecution complexes. But that suffering has no purpose in overcoming tribulation when you're a near-lifeless bag of meat. Then, of course, very few Christians actually ascribe to the ascetic life as laid down in their scripture.
  Sorry for your loss..
  On another note, the only good thing about people being sick is that you can prepare for their death and thus when they die it can be more of a celebration. The funeral won't be as hard emotionally, and because they were sick, you are comforted by them not suffering any more.
  >.
  Please talk to your family and your doctor about your wishes in terms of life-sustaining care. Even in your 20's, in perfect health, please take some time to become informed about what the options are and how you can express what you want done or not done (this may be a DNR, a MOLST, a living will, or any of a myriad of other options depending on where you live).
  If the decision you come to is anything short of "do absolutely everything possible to prolong my life" then be sure to have that paperwork in a safe and readily accessible place (and let your family members know where it is).
  A million interests prevent you from doing a million things every day, but apparently it's only objectionable and worth remarking about when it's the government. And it's not even like I disagree with him -- yes we should allow assisted suicide. But boy oh boy is it hard not to notice that he wastes no time thinking about why things are this way, or which interests specifically may be preventing things from changing. Nope, it's just THE GOVERNMENT. Short circuit, do not pass go, no further critical thinking necessary.
  "The Nanny State Didn't Show Up, You Hired It"...
  Helping someone die who made their wishes clear, I'm perfectly okay with. But assuming someone wants to die, I'm not.
  Whether his father made it clear or not, I don't know. It just isn't in the post.
  Stories like this are a grim reminder of how much work we really must do. "Fixing" the human body is a really hard problem.
  Thanks for trying, Jack.
  I dont forsee euthanasia ever being legal in the US given the absurd response to medicare requiring just basic end of life planning with a doctor.
  Today patient has to pay lot of money to be kept alive. Also deciding about death is expensive and this burden would be on government.
  In a few decades elderly people will be 40% of population. Government will probably have to pay bills for most of them. Only then will this become norm, but in really hideous way.
  And I'm a libertarian that strongly believes that government should keep its nose out of my life.
  So, of course, I'm going to play devil's advocate, at least a bit. Because if you can't defend the other side's points well, you shouldn't be in the argument.
  Here's the thing: physician-assisted suicide is one thing if the doc gives you the pills and you take them on your own. It's something else if the state requires doctors to assist you, or the state requires insurance companies to require doctors to assist you. Then we're getting into the state telling doctors what types moral views they should hold.
  Hey, I'm all for you shooting your cat if it's sick. What I'm against is the community all making some collective decision about who's got to go and when, and who has to do the work. That's fucked up. This thing has to be a personal choice among everybody involved: docs, nurses, family, the patient. I could imagine in many cases the patient wants to whack themselves and the family hates the idea. Fine. Then let the guy do it. On his own. Or perhaps the docs have given up hope, but for religious reasons they will never pull the plug. Fine, then let the patient do it. There's a decision to be made, somebody should make it, and the rest of society should butt out -- either from disapproving or forcing everybody else from doing things they don't want to do. It's just as bad to make somebody kill somebody else as it is to make somebody keep somebody else alive in this endless suffering nonsense.
  The problem here is a search for some universal rules for a very personal thing. I don't see that playing out too well.
  In many cases, we have elderly losing their minds while family members hope against hope that they recover. What to do then?
  With the lack of a living will, I think the family members get to decide. That's why we have living wills. I don't like that result, but there it is. (I'd also add that this means the family members should be able to dose up grandma with enough morphine to put her out of her misery -- and I imagine such a thing happens a hell of a lot more than we will ever know. Institutionalizing people and placing all of this in bureaucratic hands is the crux of this problem.)
  Also Scott, sorry to hear about your dad.
  Every person should do this, because without this clear and legally binding statement of your wishes, medical people are compelled to do everything possible to preserve your life.
  Part 1 establishes who can act for you when you can't act for yourself (i.e. in a coma). Unless you are legally married or a minor (when your spouse or parent can act), nobody can intervene to make medical choices for you. Under privacy laws, nobody can even ask about your condition. So your live-in lover or best friend is helpless to change how you are cared for -- unless they are named in a document like this one.
  Part 2 expresses your wishes on how you want to be cared for at end of life. If Scott Adams's father had filled out this form and checked 2.1(b), none of that tragedy would have happened! And you can add more conditions. On my form, for example, I specified that if I was unable to read, to watch TV, or listen to audio with comprehension, and had no reasonable prospect of regaining those abilities, my life was over and I wanted to refuse all medical interventions except pain management. My idea being, to die quickly of pneumonia is nearly as good as assisted suicide.
  However you fill it out, do fill it out, and encourage your loved ones to do so as well. A stroke or fall or collision can wipe out your consciousness at any age, and this form relieves your survivors of a lot of horrible choices.
  [0]... PDF)
  "Interchange uses media queries to dynamically load responsive content that is appropriate for different users' browsers.
  Offcanvas Javascript (Originally bolt-on, not bundled)
  "Abide is an HTML5 form validation library that supports the native API by using patterns and required attributes."
  Zepto support has been removed from Foundation 5.
  Docs are continuing to look better, and they still have docs back to Foundation v2.
  Thanks Zurb!
  I love Foundation, but I had to switch to Boostrap because I found it... ugly. And Bootstrap is great to quickly create "pretty" prototypes. But I've always found Foundation having better... foundations. I've used both on numerous projects and here's my take :
  * The grid system now looks like bootstrap, and I don't like that. You have to choose the type of column you want to use (and I don't want to be bothered by that). so no .six anymore, it's .medium-6 or .large-6 or .small-6... They should call the .small-6 just .six so we know its the default one.
  * It does look a bit better, although they removed styling of the radiobox in forms? Why?
  * Overall I still prefer bootstrap's theme, I wish Foundation would offer an optional theme like bootstrap 3 does.
  * OffCanvas menu is great ! I can already see plenty of applications (but for mobile only)
  * The CLI is a nice thing to have but I'm gonna stay away from it. I like the easiness of copypasting files to quickly begin a small project.
  * Documentation is hard to go through, doesn't allow to glance at what it offers. It's a huge improvement from F4 or F3 though.
  * I use sublime text snippets all the time and this might be a huge addition!
  * I like the JS that verifies forms. I usually always use this on my projects so it's nice to have it by default.
  Overall I don't really know if I should switch back to Foundation. But I'll definitely use it for my next project to see how good it is.
  1:
  Also, the medium/large screen sizes in Interchange don't align with the media query sizes. Interchange says 1024px wide is large, [2] but the media query says 1024px wide is medium. Or is it just a documentation error?
  [1]
  [2]...
  Thanks to the Zurb team! I'll definitely be ripping off lots of ideas for my company's tortoise-speed Drupal sites.
  Bootstrap has more styles so you can...bootstrap. Foundation is meant to be a foundation to build on.
  That being said, of course their functionality is very close, but be aware of the core differences in outlook between the 2.
  Predictable, simple and quick to iterate - everything I wanted.
  I'm going to give this release a try. The interchangable items based on device widths looks fantastic! I'm really excited to give Zurb a try. :)
  However, after taking a look at Foundation 5's plugins, I will definitely try using the framework if I need to undertake a website with more ambitious functionality.
  I'd rather not have to install ruby too just to rebuild the css. When one of these is announced I usually find myself navigating the various poorly-maintained python modules that process the source files, get lost, give up, and go back to plain css.
  Perhaps I could just add a bit of css to a static build instead? Are there any shortcomings to that?
  Some pain points from using Foundation (4) in our latest project:* topbar sucks* custom forms are horrible (they seem to have been removed from 5, or maybe justs the docs are missing)
  Also, using under_score instead of camelCase in javascript is a questionable choice with no real benefits.
  Can't wait to start playing with version 5.
  Of course, one uses SASS and one uses LESS. I knew LESS, so I picked Bootstrap.
  But I'm more than willing to switch.
  My main platform so far has been extremely buggy too and is not even primarily made to create websites. I've been using Google Web Designer. Take my advice with a grain of salt as I represent hobbyist developers who thought "hey, i'd like to build a site. what tool should I start with?" I would not invest $200 to enroll in your intro course for something that gave me an initial first impression of being flimsy. However, it is equally likely that I am unable to realize the full potential of your product with my limited understanding of web development at first glance.
  I'm excited about seeing how Macaw works and am going to begin a new project with Bootstrap soon. While my main focus has been purely static web design I plan to incorporate dynamic applications within my approach very soon.
  "We believe that a formal notification to the Supreme Court of the government'smisrepresentations in the case--both relating to its notice policy and relating to its practice of'about' collection under Section 702 of the FISA Amendments Act--woulcl be an important stepin correcting the public record and would be in the interests of the public as well as of theAdministration and the Supreme Court."
  What was Clapper v Amnesty?
  It sounds like Solicitor General Verrilli made a lie of omission in the court. Is that considered a lie under oath?
  What obligation does Solicitor General Verrilli have to the three Senators to answer their questions? What consequences might he face if he choose to ignore the letter?
  Realistically, what could this mean for the original Clapper v Amnesty case, and how might it affect the public in general?
  I know it's doubtful, but one can hope.
  Good on them... that's what representing the people is about.
  To remove the hard dependency on the AUFS patches, we moved it to an optional storage driver, and shipped a second driver which uses thin LVM snapshots (via libdevmapper) for copy-on-write. The big advantage of devicemapper/lvm, of course, is that it's part of the mainline kernel.
  If your system supports AUFS, Docker will continue to use the AUFS driver. Otherwise it will pick lvm. Either way, the image format is preserved and all images on the docker index () or any instance of the open-source registry will continue to work on all drivers.
  It's pretty easy to develop new drivers, and there is a btrfs one on the way:
  If you want to hack your own driver, there are basically 4 methods you need to implement: Create, Get, Remove and Cleanup. Take a look at the graphdriver/ package:
  As usual don't hesitate to come ask questions on IRC! #docker/freenode for users, #docker-dev/freenode for aspiring contributors.
  My goal is having a team of developers use Docker to have their local development environments match the production environment. The production environment should use the same Docker magic to define its environment.
  Is the idea that developers define their Docker environment in the Dockerfile, and then on app deployment, the production environment builds its world from the same Dockerfile? How does docker push/pull of images factor into that, if at all?
  Or is the idea that developers push a container, which contains the app code, up to production?
  What happens when a developer makes changes to his/her environment from the shell rather than scripted in the Dockerfile?
  What about dealing with differences in configuration between production and dev? (Eg. developers need a PostgreSQL server to develop, but on production, the Postgres host is separate from the app server - ideally running PG in a Docker container, but the point being multiple apps share a PG server rather than each running their own individual PG instance). Is the idea that in local dev, the app server and PG are in two separate Docker containers, and then in deployment, that separation allows for the segmentation of app server and PG instance?
  I see the puzzle pieces but I am not quite fitting them together into a cohesive understanding. Or possibly I am misunderstanding entirely.
  I mean, it'd be neat to be able to do a "pull" of diffs from one image into another related image. Merge branches and so on. I don't know, possibly this would be just too unreliable, but I would have previously thought that what docker is doing right now would be too unreliable for production use, and lo and behold we have it and it's awesome.
  I see lots of people are getting some generic Docker questions answered in here, and want to ask one I have been wondering about.
  What is the easiest way to use dockers like I would virtual machines? I want to boot an instance, make some changes e.g. apt-get install or edit config files, shutdown the instance, and have the changes available next time I boot that instance. Unless I misunderstand something, Docker requires me to take snapshots of the running instance before I shut it down, which takes an additional terminal window if I started into the instance with something like docker run -i -t ubuntu /bin/bash. I know there are volumes that I can attach/detach to instances, but this doesn't help for editing something like /etc/ssh/sshd_config.
  So much for feature #7. Documentation should be part of the development/release process
  FSMs are often used when modelling physical devices - think microwaves, elevators, CD-players, something with buttons or sensors, something event-driven, embedded controllers, also network protocols, text parsers, etc. Basically, whenever we must ensure correct behavior having few constraints on sequence or timing of inputs.
  How can you actually apply it in your everyday programming? Look at your class. Every method call is an event that can cause a transition. Member variables are the state. Theoretically changing any bit of any member variable gives you a different state. In practice you only care about the bits that affect your control flow. Figuring out how variables map to states is the tricky part. Sometimes one variable corresponds to several states (say, when airspeed goes over V1 a plane transitions from can abort to must takeoff state), sometimes several variables define one state (say, when ignition=on and door=closed car is ready to drive), sometimes you'll need to add an extra variable to distinguish between states. Then you draw a table with events on one side and states on another and look at each cell. This is when you have all those precious "oh, crap, what if the user hits play when the song is already playing" moments. And voila - now you know that your class behaves correctly because you've systematically considered every possible scenario. It takes enough effort that you probably don't want to do it for each and every class, but when you do it - it's magic :-)
  [1] Any computation with finite memory, to be pedantic
  Studying finite automata equips you with a bunch of knowledge about their behavior, which equips you with a bunch of knowledge about the behavior of a variety of other subjects, because they can be projected onto automata (can be reduced to automata, can be morphed into automata, ...).
  The link lists a bunch of properties of, and relations between, various kinds of FA's and explains how these are useful to other areas of CS and even to regular programming. But you cannot be expected to have these thoughts as sudden epiphanies. At most you can at a later time realize a certain property exists, realize the same property exists for FA's and realize that makes sense, because of the relation between your subject and FA's. You can then further realize that you know immediately know a lot more about the subject as well. Some of these realizations may strike you with a physically tingling sensation of aesthetically pleasantness which some call 'enlightenment', but YMMV.
  Such theoretical basis (and even their practical considerations) seems much more important than "What are the advantages of latest fad.js"
  > Turing machines (we think) capture everything that's computable. However, we can ask: What parts of a Turing machine are "essential"? What happens when you limit a Turing machine in various ways? DFAs are a very severe and natural limitation (taking away memory). PDAs are a less severe limitation, etc. It's theoretically interesting to see what memory gives you and what happens when you go without it. It seems a very natural and basic question to me.
  I like to think of it the other way, though. A DFA with a stack is a PDA. A DFA with two stacks is a Turing machine. Looking at the 3 different classes as DFAs with 0, 1, or 2 stacks is just so beautiful...
  Edit: I'm currently learning there, and enjoy it a lot. Especially in video 6, you may listen to the stories of Junglee startup, Started in the mid-90s by three of his students, Ashish Gupta, Anand Rajaraman, and Venky Harinarayan. Goal was to integrate information fromWeb pages. Bought by Amazon when Yahoo! hired them to build a comparison shopper for books. They made extensive use of regular expressions to scrap..."
  You could then (attempt to) convert NFAs into a DFA using Myhill-Nerode theorem to determinise it; I say attempt as it was possible to make it consume huge resources if you gave it the right/wrong kind of regexp. It also did minimisation and a few other bits and bobs.
  To say this gave me a good understanding of regular expressions is an understatement, and once you understand the basics then all of the parts of more complex regular expression languages become a lot easier! That was my enlightenment.
  See for example:
  Additional discussion:
  I don't understand this one. Surely a modern processor is like a Turing machine and not a finite state automata. For example, a DFA/NFA can't express simple algorithms like matching parentheses, while obviously a modern processor can.
  State machines can do regular expressions, but they can't parse matching brackets,
  Stack machines can do BNF grammars - but they don't have counters; also Stack machines are more general than state machines; each regular expression can be expressed by an equivalent BNF grammar.
  Turing machines can parse Perl - that means any language that depends on the context; this is because Turing machines have counters/memory. Also Turing machines are more general than stack machines; each BNF grammar can also be parsed by a Turing machine.
  All this business of deterministic/non deterministic machines is about efficiency of the parser; nice to know.
  A flow chart with a truth table, which is used to map all of the possible ways to arrive at one or zero by carrying out a set of steps, which may follow recursive paths, such that the similarities of different paths to identical outcomes can be better understood.
  Where (
  ) and () and (
  reduced = all roads lead to one or zero
  ordered = applying good organization to the steps of the decisions in the flow chart, even when steps in the decision tree can be carried out in a variety of ways)
  W.r.t cellular automata, I made this video, and if this isn't enlightenment, I don't know what is:
  Meanwhile, 23andMe went ahead and began marketing and selling their product, despite the FDA's concerns.
  Relevant quotes:
  > Most of these uses have not been classified and thus require premarket approval or de novo classification, as FDA has explained to you on numerous occasions.
  > However, to date, your company has failed to address the issues described during previous interactions with the Agency or provide the additional information identified in our September 13, 2012 letter for (b)(4) and in our November 20, 2012 letter
  > To date, 23andMe has failed to provide adequate information to support a determination that the PGS is substantially equivalent to a legally marketed predicate for any of the uses for which you are marketing it; ...
  > ...we have proposed modifications to the devices labeling that could mitigate risks and render certain intended uses appropriate for de novo classification.
  >...
  > Thus, months after you submitted your 510(k)s and more than 5 years after you began marketing, you still had not completed some of the studies and had not even started other studies necessary to support a marketing submission for the PGS.
  The gov wants to decide what's best for the people. Should the people decide differently, using their wallets for example, this anomaly will be quashed.
  This trend is especially strong in the medical field - gov approval required everywhere, then people wonder why medical things are so damn expansive.
  I use 23andme and I'm happy with the information provided. I know it's not reliable - it's not a lab test anyone will use to base important decisions on, since it is not a full sequence of genes.
  Yet, by being commercially available and easy to use, it is paving the way for commercial offers of full genome sequencing, which I damn well intend to use when they reach the $500 threshold.
  However, gov actions like this one may very well make that impossible, making sure the only full genome sequencing offers there will be will be "FDA cleared" at a huge markup.
  Suggestions to "medical" like companies - get out the gov eye. Move your business to Asia, the caribbean or wherever the gov will not get in your way like this. I want to keep using (and recommending) your products!
  So this isn't really a case of the gov't stomping on the little guy before he has a chance to grow; 23andMe has had its chance to grow into a fairly big deal, and now it's time to start playing by the rules.
  July and Sept 2012 - 23andMe submits a form to the FDA saying "our test isn't really useful for diagnosis and thus shouldn't fall under these rules"
  Nov 2012 - FDA says we don't agree with you you need to either prove your effectiveness or change your marketing
  Jan 2013 - 23andMe says "it will take us a couple months to do the tests, we'll get back to you"
  Nov 2013 - FDA says, "its been 11 months and you never got back to us. Stop selling and let us know within 15 days what you're going to do explicitly because you ignored us for close to a year"
  [1]...
  Perhaps the startup echo chamber has more respect for unchecked opportunism; if that's the case, someone should make a startup called 23andMeFree (monetized by ads, duh) that has you spit in a tube, send it to some PO Box, then randomly generate positive and negatives across the board. If you wanted the scam to last longer, you could even generate random values based on statistics of certain characteristics. A true libertarian must support such a business.
  I cannot imagine someone getting surgery or chemo solely based on a 23andme heads up warning and without consultation with a specialist physician.
  As someone working in medical devices, this dramatic language is extremely frustrating.
  23andMe helped me catch this early enough with the assistance of my physician that I was able to get treatment long before I would have developed symptoms. If I never used 23andMe I probably would not have had this diagnosed until years later.
  A Class III ruling would destroy the personal genomics market, because it would mean extensive clincial testing and documentation about the development of the device. I hope it doesn't stand.
  No joking around.
  Ideally, the FDA would have independently-generated evidence indicating that the product in question is unreasonably dangerous or ineffective for some intended purpose before issuing a cease and desist order. Instead, they simply assume guilt and place the burden of proof upon the vendor.
  Given that the FDA has vastly more resources than 23andMe, and companies like it, this makes the FDA seem like bullies against microbusinesses, and like the captured servants of agricultural and pharmaceutical megabusinesses.
  The closest they come to calling her a "quack" is when they state "...We still do not have any assurance that the firm has analytically or clinically validated the PGS for its intended uses..."
  The bigger question is why is the FDA having a seizure over this? Could it be the potential for added treatment and preventative healthcare measures that insurers vis a vis the Affordable Care Act and not looking forward to paying for? (Not a rhetorical question, just asking)
  Obviously, it would have been preferable to have the company and FDA work together to announce how FDA regulations apply before an enforcement action. But, now that it has happened, the process has started. If the company can come out of this with some kind of FDA approval, then that cloud will be lifted and they can keep on working. And then the company will know exactly what rules they'll have to play by. So, depending on how things work out, it could end up being a positive for the company.
  Now that the FDA has played their hand, I'm very curious to know how the company will respond.
  Before the FDA gets its hooks into it and the price goes up...
  Instead of whinging, FDA needs to partner with NIST to come up with quality control protocols so doctors know the error distribution in data that they receive.
  This will simply result in this type of testing to move beyond FDA borders. Great job FDA, you're helping kill a successful and profitable US company. Un-F-ing-believable.
  Ah, yes. Mavericks, California. It's a great little offshore town, just off Pillar Point. I love that town.
  Kidding aside, this is a great article.
  Related to this story, the Windows 3.0 visual shell was originally not supposed to be Program Manager and File Manager. It was going to be a program called Ruby that I worked on with Alan Cooper and our team.
  Ruby was a shell construction kit with a visual editor to lay out forms and components, which we called gizmos. You would drag arrows between gizmos to connect events fired by one gizmo to actions taken on another.
  The shell was extensible, with an API for creating gizmos. A really weak area was the command language for the actions to be taken on an event. It was about on the level of batch files if that. But we hoped the API would allow for better command languages to be added along with more gizmos.
  BTW, this project was where the phrase "fire an event" came from. I was looking for a name for process of one gizmo sending a message to another. I knew that SQL had triggers, but for some reason I didn't like that name. I got frustrated one night and started firing rubber bands at my screen to help me think. It was a habit I had back then, probably more practical on a tough glass CRT than it is today.
  After firing a few rubber bands, I knew what to call it.
  (As one might guess, I've always been curious to know if the phrase "fire an event" was used before that. I wasn't aware of it, but who knows.)
  Anyway, Ruby didn't become the Windows 3.0 shell after all. The went with ProgMan and FileMan instead. To give Ruby a better command language, they adapted Basic and the result was Visual Basic. Gizmos were renamed "controls" (sigh), and my Gizmo API became the notorious VBX interface (sorry about that).
  And we still don't have a programmable visual shell in Windows.
  I called DEC and they too believed it existed, so they (while I was still on the line) called their contact at IBM. After being transferred twice, we arrived at the person who could mail me the driver, but I would have to sign an NDA. Myself and the DEC rep explained we didn't want source or a beta driver, just the release one. He insisted every customer had to sign. I said I'd think about it. After hanging up, the DEC rep couldn't stop laughing. He asked if I wanted a free copy of NT compliments of DEC. I took it and it had the correct driver.
  I tried, but they had no chance.
  When I would take the OS/2 system offline and replace it with a Windows cage the payment network would sometimes tell me the uptime on the deprecated machines . . . one network operator claimed 8 years of uptime at one particular machine. I have no way of confirming that, but I definitely felt the OS/2 machines were rock solid, especially compared to the vulnerable Windows machines. Most small banks with NCR machines are running two software packages (APTRA Edge or Advance) with default admin passwords and are really behind on the monthly bug patches. Eek.
  The OS/2 machines required you to input config info in hex though, so I was glad I didn't have to work on them in the field too much.
  Somewhere in the Usenet archive is Gordon trolling the OS/2 users for weeks (or months?) on end. I can't remember the exact details, but he had a bet with several people that Windows would have multitasking, or that OS/2 wouldn't have some sort of multitasking before Windows. The bet was to fly the winner to any city of their choice and buy them dinner.
  The discussions were quite heated and it was particulary memorable because he was one of the first 12 employees at Microsoft.
  At the time, IBM had sent in scores of company reps to train up our floor staff on the advantages of OS/2 over the always-soon-to-be-released Chicago. They did a good job getting all of us to "drink the Kool Aid". I received a free (not pirated, promotional) copy of blue OS/2 Warp 3.0. It was a fantastic operating system for running a DOS based multi-node Telegard BBS and it did well with Win16 applications.
  The impact of Windows 95 coming on the scene, though, is difficult to fully appreciate unless you were there. We had been selling pre-orders for months and there were a myriad of promos. I remember some of those preorders were sold under the threat that there wouldn't be enough copies to go around on release day. I had been playing with pirated copies of the betas of Windows 95 for the prior two months. Even in its beta form, it ran circles around Windows 3.0/3.1 in terms of reliability. I even remember reloading my PC with the most recent beta after release because a DOS application I used ran more reliably in it than in the RTM code.
  Then launch day came. It was unlike anything I had ever seen in terms of a software release. We closed up at 9:00 PM and re-opened at 12:00 midnight to a line of customers that went around the building --- A line of customers ... for an operating system. We joked at the time that "Windows really was that bad". There were tons of additional promotions to ensure people came and lined up--Some RAM / hard disks selling under "cost" and others. And the atmosphere of the store felt like a party. We had theme music playing (start me up?) and some Microsoft video playing on our higher-end multi-media PCs. It was obvious to us, on the floor, trained by IBMs marketing machine, that Warp died that day.
  As an anecdote to the stories about IBMs marketing being a little off: I remember around the release of Warp 4.0 I saw an advertisement at a subway station something along the lines of "Warp Obliterated my PC!"-- that tagline, evidently, meant to be some hip new use of the word obliterated.
  As well, I worked at a bank, and as the article correctly stated, the entire bank was run on OS/2, most notably the ATMs, except the ATMs I worked with was using OS/2 2.0.
  However, when Windows NT 3.51 came out, that was the game changer. I was the only person I knew who even knew what it was (I read about it in a magazine at the time), and I was able to get a student-priced copy at my college bookstore. I started using it, and it was awesome, everything just worked, except for some games. You couldn't even compare NT 3.51 to OS/2, it wasn't even in the same level. The look and feel of NT was exactly the same as Windows 3.11, and all the programs worked.
  Even Windows 95 was limited by many system calls being funneled through single threaded BIOS or DOS 16-bit land.
  I find this hard to believe, given that Rexx was developed by IBM.
  The idea being that Windows 95 was internally called Windows 4.0 with the codename Chicago.
  I keep on searching for it but can't find it anywhere.
  And Bill Gates on OS/2 in 1987: "I believe OS/2 is destined to be the most important operating system, and possibly program, of all time."
  (...all the events from this stretch of computing history seem so weird to me, like from a steampunk-like alternate reality movie. There's surely lots of context missing and stories that nobody will ever tell, since most of the decisions taken by all the key players seem so anti-business. Computers may have changed a lot from back then, but business is still business and all the decisions made seem either "irrational" or based on "hidden information" that is not part of the story.)
  The special effects were created on Amigas:
  Also, while looking at Video Toaster's entry on Wikipedia, I found this gem:
  "An updated version called Video Toaster 4000 was later released, using the Amiga 4000's video slot. The 4000 was co-developed by actor Wil Wheaton, who worked on product testing and quality control.[6][7] He later used his public profile to serve as a technology evangelist for the product.[8] The Amiga Video Toaster 4000 source code was released in 2004 by NewTek & DiscreetFX."
  One of my cow-orkers at Apple had worked on the OS/2 Presentation Manager at IBM. I tried talking with her about it, but she said the experience had been "absolutely awful" and she didn't want to say much else.
  IBM never had a chance.
  Anyway, the machine IBM gave me to use was a PS/2 Model 80. This was a 1988-era machine that had been brought to the semi-modern era with 20MB of RAM memory installed via several MCA expansion cards. Against my best expectations, the machine ran well, despite the fact that its CPU was at least 10% the speed of the then-state of the art.
  From what I remember, the OS/2 LSE product itself was fairly solid. However, the biggest memory I have from that summer was the afternoon we spent playing around with the Microsoft Windows 95 beta disk we received for compatability testing. Towards the end of the afternoon, we tried to DriveSpace (compress) the disk. We got bored during the wait for the compress, so we pulled the power on the machine thinking that would be the end of it. However, once we powered the machine back up to install OS/2, Windows 95 just resumed compressing away like nothing happened. A few weeks later, a friend and I went to CompUSA for the Windows95 launch. Even at midnight, there was a line out the door, winding past the Windows 95 boxes, then the Plus Pack, then Office 95, and then memory upgrades... Didn't hear much about OS/2 after that...
  I'm glad it ended up the way it did, Microsoft at the time was betting on openness being a feature, and I think they helped move the computer and software industries they have gone in since, towards greater openness (and thereby professionalism).
  People associate Microsoft with closed source, but it is of course relative, they were in their day the vendor who was banking on openness and courting developers harder than the others.
  I own a copy of the OS/2 Galactic Civilizations 2.
  I think it was Next computers who got first on this.
  ."
  Not quite the same situation, but they have many similarities.
  The SIQ was a "synchronous" input queue and the problem has been understated in the article and comments. It was really bad. The base OS was incredibly stable, but the GUI shell, not so much due to the SIQ problem.
  There were a number of Unix and Unix-like systems in addition to the ones already listed: Coherent, Interactive, and SCO are some that come to mind. They were pretty expensive IIRC, around $1000 to license.
  Probably all Windows by now...
  Bad example. Really bad example: Not even IBM could standardize on a single OS for the System/360.
  The System/360 went through a few OS iterations before OS/360 came along: OS/360 was late, as recounted in The Mythical Man-Month, so DOS/360 came along, then BOS/360, then TOS/360, and even PCP, which didn't support multiprogramming. Other OSes were CP-67, which became VM, MFT, MVT, and still more OSes on top of that.
  To this day, there are multiple OSes for the architecture descended from the System/360, including Linux.
  A couple of decades later, Dave Cutler is still around at Microsoft and worked on the hypervisor for the Xbox One at the ripe young age of 71, allowing games to run seamlessly beside apps.
  From...
   dont have to think about what operating system is there."
  My personal favorite is IM Greg Shahade (aka curtains), who has hundreds of these videos online [1]. There are also a bunch on youtube from other sources, but in my opinion curtains is the most entertaining (he is also quite good, the 49th ranked player in the US).
  [1]:...
  This isn't correct information anymore, in my opinion. Chess engines have improved tenfold over the last four years (when the author says he stopped playing). The increase in the strength of chess engines has subsequently caused an increase in the "humanity" of chess engines, meaning that, instead of playing bizarre moves that are strong yet incomprehensible to humans, they play principled, sound moves that are strong tactically and strategically.
  The main thing that you will miss as a sub-2000 player (or ever, really) is tactics, which is exactly where computers excel. A computer will be able to tell you tactics you missed and will allow you to experiment to see how different moves would have improved your game.
  I agree that you should analyze games with your opponent after the game (and also with stronger players), but keep in mind that, if you're both sub-2000, you'll both miss obvious tactics even as you review the game, which doesn't really improve your chess thought.
  One last thing: the 400 points in 400 days training comes from the book Rapid Chess Improvement, which I do not recommend for the beginning player (the knight exercise is good, though). In it, Michael De La Maza wastes time blasting Jeremy Silman and the strategic approach to chess games. Some people like the book for the mild drama it started, but the tl;dr is "tactics, tactics, tactics," which pretty much everyone will tell you.
  I've tried several things to get back into chess but so far I've gotten the most "bang for the buck" on , go to Training > Chess Tactics. It's fabulous, it feels very useful and it's even highly addictive. And for chess videos I warmly recommend ChessNetwork on YouTube. Lastly, I found a really nice app on iPad just called "Chess", which lets me squeeze in quick games in-between events and it's optionally computer assisted, which can help find interesting moves.
  I have this suspicion that some part of my brain is damaged and I'll never be able to play chess. I've made many attempts at learning, but have never improved over randomly moving pieces around the board.
  Any advice on a resource that will help me at least not embarrass myself, even if I still can't win? "Play more chess" doesn't seem to be the answer. I don't think practice helps if you are practicing poor chess.
  There are stronger chess engines for iOS available for free (Stockfish and Smallfish), and Shredder has some interface annoyances (the move list only shows the last couple of moves, making it annoying if you want to jump around while analyzing a game), but its saving grace is that it seems (both from what I've read and what I've experienced after a few games with it) to be better at playing at a lower level.
  Many engines, when asked to dumb it down to give the human a chance, play like a grandmaster and then suddenly make a dumb sacrifice or ignore an attack on a piece--and then they go back to playing like a grandmaster.
  That doesn't give the human a good game. It gives the human an ass kicking, then a brief moment of hope, and then teaches the human that even if the engine gives him rook odds or more it will still destroy him.
  Shredder's lower levels seem to me to actually play pretty much like humans of that level. It keeps track of how you do against it at various levels, and by default automatically adjusts its level based on your performance.
  [1] the sale is still on. I have no idea how long until the price goes back to $7.99. Also note that unfortunately Shredder for iPhone and Shredder for iPad are separate apps.
  For the love of god people. Please stop requiring a database connection to serve static content.
  (Context: I have been an 1800-rated adult myself who recently got up to 2000 with a lot of hard work.)
  Everything you need is in that book. It's not too long, and very readable. It has a very common-sense approach. Look for the 21st century edition at used book stores or your chess club:...
  chesstempo.com is good for practicing tactics between games.
  GM Ziatdinov is unique in that he gives the blueprint that he claims will get anyone to master level (2200+) [1], and it's dead simple. It's much of the same:
  1. Study tactics a ton [2]2. Memorize 300 key positions and games3. Now you are a master
  His definition of "memorize" is that you understand the key position/game instantly and without thinking, the same way you walk or read your native language. 300 doesn't sound like a lot, but to understand each key position to the depth he advises, we're looking at the 10,000 hour rule for all 300 positions.
  For comparison, either he or another GM claimed that super-GMs know 1000+ key positions/games, and Magnus Carlsen has said he has memorized 10,000+ games.
  [1]...
  [2] He used to have a few thousand tactics problems on his website. He said to do 1-10 quickly until you could get through them without a mistake. He emphasizes quickly, it's about getting new patterns in your brain, not figuring it out on your own. After 1-10 are perfect, do 11-20 until perfect, then 1-20 until perfect, and repeat until you can do all 1-4000 (or however many). At that point he said you will have the tactical ability of a GM.
  I became a National Master when I was 13 and I played a lot as a kid.
  Learning positional strategies and all the fancy openings from the books was great. But was useless to improve my results when I was beginning. When I analyzed my games with the help of computer, I found 90% of the games were decided because me or the opponent missed a simple tactic which is just 1 or 2 moves deep. If this is the case in your games you should study tactics until you can find all 1-2 move tactics. It sounds easy. But I have seen a number of class A players miss these simple tactics numerous times.
  Finally you will understand opening and positional strategies only if you can spot tactics in them. Once you do not find any tactical mistakes in your game you start to play positional chess. You will appreciate making good positional moves when you do not make silly mistakes.
  Here are two programs: and.
  I think it's inspiring for every chess player, or even those who don't play (yet).
  Part II:
  I don't get it... Wolfram is a money-hungry egomaniac. For example, unlike the other big Ma competitors (Maple, Matlab, Magma) not a single source line of Mathematica code is exposed. He's litigious, he labels everthing "mine", he endlessly praises himself. He wrote this insulting "don't worry your pretty little head with our source code, it's too complicated for you" piece:...
  So... gratis Mathematica on Raspbian... what's the catch? Is it to lure us to the cloud?
  Edit: To clarify, my guess here is that they want to give people a taste of Mathematica on weak hardware in order to lure them to a subscription model on "the cloud" where much more processing power will be available, just like widespread university site-wide licenses and turning a blind eye to student piracy are great marketing strategies.
  Is there any evidence to support my wild theories?
  > Despite the hype it is a more closed platform than many other things you could buy
  Claiming to be open, but still encouraging and endorsing non-open-source software.I was startled to read why R.Pi is unsuitable for education [1]
  [0]:
  [1]:...
  I do wonder how much pressure they're feeling from the likes of IPython these days and if that was a motivating factor.
  The other part is I don't think I've met a regular Mathematica user that actually likes it, so this may turn out to be a bad idea!
  Note that it includes a beta version of the new Wolfram Language!
  FriCAS/Axiom running on ARM board (ie. Raspberry Pi) on top of Clozure CL (on Ubuntu/GNU/Linux)
  If one managed to hack the binaries and include them in an iOS app, would Wolfram permit that?-...
  I find that it's fine for most things but slow for visualizations (and you need an x server running, not making the most of the emulated hardware).
  (Can anyone succeed in using this method and then adding it as a remote kernel to a normal desktop Mathematica session?)
  I've recently started using Quora a bit more. Unlike StackOverflow, they use a WYSIWYG editor. I've found this significantly less convenient than StackOverflow's markdown. Similarly, switching from Word to LaTeX was an improvement for most tasks once I got used to it.
  Unfortunately, LaTeX has a bunch of its own shortcomings not related to it's non-WYSIWYG nature. For common tasks, I think going from markdown to LaTeX is ideal. Markdown itself is far from perfect, but it's the best compromise I've found especially with Pandoc's extensions.
  So here's my idea for a great emacs-based document editor: markdown with inline math previews coupled with a full live preview to the side. All the necessary modes for this already exist (like whizzy TeX and AucTeX's previews), so it should be much easier to put together than a full WYSIWYG editor. More productive, too.
  I can't believe Stallman doesn't know how to use Org mode. If he is interested in selling people on Emacs, then Org mode is one of the killer features for the presentation. I don't expect him to know something he has no use for, but he should know the most popular components in the Emacs ecosystem. Org mode is one of the only reasons I started using Emacs.
  WYSIWYG only shows you the end result, with no clean way to see how you got there. Was this font introduced because of some theme? Was it applied because of some toolbar button? Is it the result of some template? Was it copied from somewhere else, thereby baking someone else's theming into the copied text?
  These are the questions that make WYSIWYG so confusing. These are the things that make explicit markup so straight forward. I don't think you can have WYSIWYG without the confusion or while maintaining the power of explicit markup.
  If anything, Markdown or RST or Org provide a compelling middle ground: Markup is still explicit but minimal, and styling tries to come as close as possible to WYSIWYG without sacrificing control.
  This, I think, is a far more compelling route to take than WYSIWYG or LaTeX-style explicit markup.
  RMS whines : "25 years ago I hoped we would extend Emacs to do WYSIWG word processing. That is why we added text properties and variable width fonts. However, more features are still needed to achieve this.
  Could people please start working on the features that are needed?"
  And he's 100% accurate, it has been 25 years, and there is an open source WYSIWYG word processor, called Libre Office these days, but that isn't what RMS wants. He wants someone to do the work to make his tool of choice into something which can do what he wants to do in it.
  A lot of people go this way, and we see several tools that all do variations on the same thing in their own peculiar way (Vive du choix!) but that means it is really really hard to figure out how to get somethings done when each set of tools rely on their own set of other tools.
  The nice thing about Cathedrals is that you know what is expected of you :-)
  Some of the people responding are steering the discussion to a layout language with a preview window. I don't know if they are doing it because they prefer to work in such a user-hostile mode (I did this for a book, in Eclipse. Ugh.), or if they think this is a more sane goal.
  WYSIWYG has its own issues. most users of word processors have no idea that paragraphs are objects in an object model, but the command structure only becomes clear when you realize that. Most users just hack at a document it until it looks right enough. At the really diabolical end of the spectrum I could show you an Ericsson documentation template that manages to manifest dozens of bugs in Word, laying in wait to eat your previous hour's work. I'm sure you have inherited documents like that.
  It's all more or less a kludge, and WYSIWYG never is quite, nor is it real direct manipulation. At best it is something like "moderately friendly visual document CAD, if you get the trick behind the slick appearance."
  Anyway, since we'll all be long dead before his plan starts to work, I think the better solution is to support inexpensive software. For example, I pay for Sublime Text. Recently I bought PixelMator and Sketch, and I'm planning on learning how to use them soon. :-)
  Sure it would be great if Free Software ruled but faster change comes with a paid ecosystem. The real problem was that software was expensive. If it's simply inexpensive, we'll get most of what we need.
  The implementation will look vastly different if you define 'where' as a printer, desktop, tablet, mobile phone, wearable device, etc. It sounds like RMS means his desktop/laptop computer. On the upside, you have a user archetype: Richard Stallman. A good product manager would start building up a list of user stories:
  - As Richard Stallman, I want *goal* so that *benefit*.
  As someone aware of gnu, but not an active participant, how effective are requests like this? Does "Can people start working on this?" actually get results? I'm curious as this gets to the heart of why they may have trouble finishing things. (You can't toss money at someone to do the dirty work)
  I'm coming with an open mind, and would like to hear either side of this.
  However its the only application I didnt know how to copy and paste in when I started using it, its still the only application I use that I dont know how to resize the text in.
  It would be kinda nice to see people work on those type of things.
  It's easy to use, too. Select the text, ALT-o b = bold, and so forth.
  Still, a true WYSIWYG editing mode would be cool once in a while. Although, it's not that much trouble to select text and paste into a nearby LibreOffice window for true formatting.
  i don't agree with what those kinds want.. but they should be allowed to have it. :)
  We used to need firewalls at the edges of our home networks to keep bad actors out. Now we need firewalls that point the other direction to keep the bad actors on our networks in.
  I am imagining some kind of add-on to DD-WRT or derivatives that will put up a real-time graph of devices on my home network and draw lines representing outgoing TCP and UDP connections while also logging them in a tabular format. Both forms would be clickable to drill down for more details (including session packet captures if enabled) as well as set policies like a per device white-list of acceptable IP addresses to connect with.
  I know all of this is possible with individual tools like tcpdump or wireshark and ip-tables configs, but that is too painful. I'm looking for a robust GUI on top of all that.
  Will love that when you buy a tv, you buy just the monitor. Without the tunning hardware or the crappy ooss. Like when you do with projectors.
  Then you buy any chromecast, raspberrypi, or something that you can hack.
  I can see for 2014/15 having a lot of startups creating small devices to connect to monitors only that tune internet in the same way they tune digital-tv.
  Once you have competition in that market, you can start thinking in security.
  Most of the commenters there don't buy that story, just like here. Full story (dutch):...
  Having to change my router's password to something insecure just to accommodate LG's retarded software sealed the deal : I will never buy anything LG again.
  I've really enjoyed using my LG TV/network informant. I'm wondering whether LG has any other exciting products I could use.
  Do you happen to sell a camera that monitors my location? What about a vacuum that phones home with my fingerprints? Or perhaps a washing machine that steals my dreams?
  Thanks for developing the products of The Future!"
  But i think a lot of these companies know that it would be legally hairy to get into vigilante DRM justice, so instead they just surreptitiously collect data that will let them plot their next move. maybe that's paranoid, but comeon in this day & age everything is logged. Even if they are serving 404s, it's trivial to log that data anyway (as was pointed out) or maybe it goes straight to server logs and someone in LG analytics says in the future "well, that data is there somewhere... we may as well use it"
  it's hard for me to imagine someone at a corporation standing up and going "NO! that's violating our users' privacy". they pretty much consider any info they can get to hit their servers to be their property no questions asked
  Falsehoods programmers believe about gender:...
  Falsehoods programmers believe about names:...
  Falsehoods programmers believe about addresses:...
  Falsehoods programmers believe about time:...
  More falsehoods programmers believe about time:...
  Falsehoods programmers believe about geography:
  [1]...
  In short, you can draw categories to include or exclude as precise a number as you like, you just have to be willing to draw really, really complicated boundaries.
  This is a completely wrong way to approach the problem. Because the questions should all divide the population into two parts the questions should be 'matched' to each other. This approach is a bit like doing a PCA by figuring out one component, then the other, then the rest...
  One way to solve this problem is to have a lot of yes/no questions (like a big Karnaugh-table), then everybody would have a long bitstring as his unique ID. Now you need to compress that bitstring -- like the minimization of the Karnaugh-table.
  -- you need to generalize this for N number of questions (which can be done), then you'd have 33 complex questions like'is it true that (you live in NAANDyou are male)OR(you live in CanadaAND you are whiteAND) .. and so on and on.
  Reminds me of Panoptic by the EFF:
  Everyone's ID would change as time passed (if they move, if they age, if they get a sex change, etc).
  The best questions for this are inherently "irrelevant", since "relevant" questions tend to be statistically linked. So, questions like "Was the second letter of your first girlfriend's middle name between A and M?" is better than "Were you younger than 20 when you had your first girlfriend?", since we can likely guess the latter based on the other statistics.
  It's very unlikely every ID will be unique if only asking 33 yes/no questions. I mean, look at two twins living together -- very few questions will be able to differentiate between them.
  I think it's possible to do based on a random snapshot in time, however less possible if it's meant to last a lifetime.
  I also think the questions exist, but not in a manner that we'd be able to come up with on our own. As in, I believe that a program that knew every detail about every human could create 33 yes/no questions that differentiated people, however I don't believe we could do it ourselves.
  I also wonder how many questions would be required to ask non-yes/no questions and get a completely unique ID for everyone. For example, questions like "weight? languages spoken? birth place?".
  That means to come up with them is identical to finding an optimal compression of identifying data.
  Necessarily, as the second question already implies, for this question to correctly divide the population in half, you would have to group large amounts of small populations together, resulting in very long questions.
  For example, if you'd like to make another geographical question that's independent of the second one, it would have to divide in half every population of the 6 countries you mentioned. The next question would necessarily have to divide those 12 again.
  By the way, the first question you ask is already suboptimal when combined with the second question, as those countries together probably do not have a clean 50% male/female split. (if they do, you should really explain that as it's not obvious)
  - Birthday (19~ bits)
  - Rough Location (remaining bits)
  And base the questions around those two, for example, where you born on a 1-15th, does the city you were born in start with the letter's a-k. This part would be an exercise in statistics, I would think.
  edit: And one bit for if you were the first to be born of two identical twins =p
  Picking discrete questions like this is equivalent to building a decision tree for humanity. This is actually something that could be approached as an engineering problem (and there are mechanisms for optimizing decision trees).
  The problem still remains in the face of both the technological capabilities of decision trees, and practical implementations like Hunch.com, that decision trees are reductive and discrete. Reality is neither discrete nor reductive.
  It may very well be the case that there is a set of questions that could uniquely identify humans, but the insight that could be drawn from those questions might be essentially pointless.
  For example:
  * Were you born in the northern hemisphere?
  * Were you born on an even numbered year in the Gregorian calendar?
  * Is the country of your birth governed through a representative system?
  So maybe we get to assume we have some oracle that helps us simplify the hard questions.
  At that stage, it's easy. Begin with, "Assume we build a list of people sorted by time of birth (with some arbitrary tiebreakers, like proximity of birthplace to Barbados, or darkness of hair color...)."
  Question 1: Are you on the top half or bottom half of this list?
  Question 2: Are you on the top quarter or bottom quarter of the half?
  Question 3: ...
  An optimal, though inelegant solution to that goal might look something like this:
  "Is the {1..33}th bit of sha1(name : location : date of birth) 1?".
  Clearly you'll have tons of collisions with that solution, as you would have with any solution using 33 independent questions.
  To uniquely identify people, we'd either need to use more bits, or look very closely at the population and derive very specific questions.
  To properly mimic this property with yes/no questions, you will have to come up with questions that divide the whole Earth's population equally AT EVERY NEW QUESTION. Even the most obvious one, "are you (fe)male?" is slightly biased toward men (according to wikipedia). At every question that skew your 50/50, you'll have to add another question beyond 33 to catch up with this.
  It's a little spammy nowadays, but it's had enough input that it seems pretty amazingly accurate at "guessing" what / who you are thinking of in ~ 25 questions.
  Doesn't this sound like perfect hashing with limited memory.I don't really think that this can be done with such memory constraints.Even now we cannot produce a perfect hash function that uses 1 bit / key.The theoretical best we can do is 1.44 bit / key. And the practical best we have done till now is 2.5 bits per key. [1]
  This may just be possible without the memory constraint that is , you answer N number of questions which uniquely identify you. (where N > 48 )
  [1]...
  Just because two things aren't statistically linked does not mean that they will never overlap.
  We don't have true constraints on space though; why limit to 33 bits? How could we still provide a meaningful UUID to each person?
  A UUID based on time and location of birth might be more feasible than any other approach, since neither will change and it's the least likely to be ambiguous. Capturing UTC at the time of cutting or otherwise removing the umbilical cord could be one way of choosing as precise, non-debatable a timestamp as any. Adding lat/long and, say, the first byte of the UTF-8 character of the mother's name (or an aspect of the mother's UUID?) could get you the rest of the way there.
  Of course, this falls over in places without access to precise timing and geolocation.
  With 40 or 45, we could relax that a bit and use questions that are actually meaningful. Two people who are within a few bits of each other would actually be similar in ways we care about, unlike two people who are similar because their transliterated last names both appear in the last half of the alphabet.
  Are there 33 genetic markers that each has no correlation on the presence of the others?
  Or even twins who are still babies, no work required? Some cultures wouldn't even have named them yet.
  For example, "are you below the median age at this exact second?" That is not a knowable answer, and changes by the second, but it does give you an exact 50/50 split.
  Repeat N times for each split and we're getting very very close.
  Some hard problems :-1. Distinguish twins2. Using characters in names as some like Chinese use non-ascii names.
  I ask because questions like number of siblings, favorite movie, etc. would change over time.
  [1]
  I'm instead left wondering how many extra questions (35 bits? 36 bits?) it would have to be expanded to in order to produce unique results but without having to be particularly clever in producing the questions. I bet it wouldn't take as many extra as one might be inclined to think.
  If an early answer states the candidate lives in the north hemisphere, there's no point in asking them if they live on a landlocked African country... or whatever much more complicated questions could arrive.
  "Do you live in China, India, The United States, Indonesia, Brazil or Pakistan?" is not good question.
  This is not possible unless the categories _precisely_ bisect the group each."
  I don't follow patent troll cases too closely because they make me so angry, especially given that so many of them end up with the troll winning, or at least going right back to doing what they were doing after losing in court in a specific instance, but not losing the patent (or they just continue attacking people with other patents in their portfolio in the rare event the patent is invalidated). So, when I see a positive story...and this one looks pretty positive to me.
  I worry vaguely that the judge or jury might not recognize the vast difference between Diffie and some unknown asshole who makes his living testifying in court as an "expert witness" in patent cases.
  That said, I'm pleased that we've finally gotten a number of jurists now who are better able to navigate the complexity of the Internet, programming, and 'process patents' when they involve Internet programming. I also find it remarkable that the Trolls have trained up a specific jurisdiction by over using it and are now at a disadvantage there. No doubt they will start looking for somewhere else to file soon but the effect will be the same as opinions and case law flow out of the east Texas courts.
  I am perhaps an optimist, but I believe we have turned the corner on stupid patents. And more and more of them will be brought down and fewer of them will be of use to trolls. With luck in another 10 years people will be able to talk about the 'bad old days' of patent trolls as being behind them.
  I am surprised he was allowed to get away with it.
  Dr. Rhyne, who will lead the three-day Boot Camp, is a broadly experienced expert witness who has provided in-courtroom testimony in over three dozen federal patent cases and ITC hearings over the past thirty years. He will be joined by legal and technical staff members from Patent Calls, as well as selected guest lecturers.
  Carefully designed to be a program that will be Conducted by Experts for Experts, Boot Camp participants will learn that serving as an expert witness is a unique and productive way to use their technical knowledge. By their nature, patent trials are highly charged competitive environments for companies and attorneys who have a great deal at stake, Dr. Rhyne has explained, and an expert witness is often a key part of that process. I am pleased to have this opportunity to share my experience as a witness with others.
  Patent Calls Patent Expert Witness Boot Camp will provide an opportunity for individuals who have some patent expert witness experience or who are aspiring to become an expert witness to benefit from both intensive instruction and interactive training that are intended to increase their effectiveness and appeal to potential clients. Participants will receive a highly integrated combination of classroom instruction, team exercises, and simulated examination and testimony that will serve to challenge them and thus maximize their learning experiences....
  Which contrasts nicely with the questions put to Diffie about his status as an expert witness:
  Fenster noted that while Diffie was testifying in court for the first time, he had other expert witness work lined up. His rate varies from $500 to $600 per hour, and it's $700 for testifying in court.
  "Your agent helps you to get expert witness jobs, is that right?"
  "Actually, no," said Diffie. "My agent handles the arrangements with my clients. All of the jobs have come in directly through me."
  Also weren't most of the questions that the TQP lawyer asked ad hominem? I understand that he asked those to discredit Diffie, but they still seemed very disrespectful. Almost anyone in the crypto field would back up Diffie's reputation, so that was a rather stupid move on the part of the TQP lawyer IMO....
  And then it became:
  So probably this year it will be Miley Cyrus...
  PS: thinking about it, I'd vote for Satoshi. We should do a HN POY.
  PS2 : done!
  I had no clue so many people shared in my belief that Snowden has done something great. I figured the media had corrupted most of the people into thinking he'd done something deplorable, because no one has been taking to the streets or to the polls or to the anything to demand changes based on his revelations.
  Past generations would have, but that's not the case today. We think he's great. We just don't care to actually support him.
  Historically, I feel like there was a notion that someone was "too popular to execute." But, even though the vast majority appear to support Snowden so much that they declare him POY, I don't think we'd do a thing if the US raided his home in Russia and put a bullet in him. We'd be mad, and we'd write blog posts about it, and maybe some people would DDoS attack a website or send a bunch of pizzas to John Kerry, but there would be no political turnover. There would be no justice on Snowden's behalf. At best, it would be like Guantanamo, where some new POTUS candidate promises change so we elect him, then does absolutely nothing. And we'd happily just not care.
  0/10 would not vote again
  Snowden seems like the best bet for sheer impact/newsmaker. Tho I'm not sure how 'international' TIME is these days, and perhaps Snowden is only really know in the West.
  He needs to be like batman, sacrifice his mind, body and freedom for a cause that people will remember him for.
  But he's in Russia and he's never coming back to the US so this will be a on going thing for years even decades where no one but few people will remember him and our blight.
  Error (api.go:209) forerunner/api.getPollById: exception: can't connect to new replica set master [ec2-54-225-59-0.compute-1.amazonaws.com:27017], err: couldn't connect to server ec2-54-225-59-0.compute-1.amazonaws.com:27017
  I'd say those numbers sound about right...
  GPT LOADEDEVENT LISTENER EXECUTEDload listener, textContentGPT LOADEDBlocked a frame with origin "" from accessing a frame with origin "". Protocols, domains, and ports must match.GPT LOADEDEVENT LISTENER EXECUTEDload listener, textContentBlocked a frame with origin "" from accessing a frame with origin "". Protocols, domains, and ports must match.EVENT LISTENER EXECUTEDold height: old width: scroll height: 55 scroll width: 275new height: new width: Blocked a frame with origin "" from accessing a frame with origin "". Protocols, domains, and ports must match.Uncaught SecurityError: An attempt was made to break through the security policy of the user agent. 93c0d7430d30e77dc6a5f0275dfcb679.js:48Uncaught TypeError: Object #<Page> has no method 'init' 528c2242c903451bee0013d3:812Blocked a frame with origin "" from accessing a frame with origin "". Protocols, domains, and ports must match.Invalid App Id: Must be a number or numeric string representing the application id. all.js:56The "fb-root" div has not been created, auto-creating all.js:56FB.getLoginStatus() called before calling FB.init(). all.js:562Blocked a frame with origin "" from accessing a frame with origin "". Protocols, domains, and ports must match.Posted 2 errors to errorception.com 50eb3228903069e001000036.js:12Blocked a frame with origin "" from accessing a frame with origin "". Protocols, domains, and ports must match.
  BTW, just voted for Miley. She definitely made my year.
  I encountered many of these while reading through Understanding The Linux Kernel [0] and The Linux Programming Interface [1].
  Both are great books which are primarily about the "how" of the kernel, but cover a lot of the "why" of the design and algorithms as well.
  0:
  1:
  In addition to getting a better understanding the standard data structures, hearing a candidate say "well the Java collections library uses this strategy..." is a strong positive signal.
  [1]:
  [2]: He suggested reading the libraries here:
  Up to that point, this (new) headmaster was seen by the students as "that non-tech guy here to administrate the school" and he was opening my eyes on the biggest codebase residing on my own computer that I never bothered looking through: the Linux kernel code.
  As someone says further down the comments, this is not a specific Linux thing: looking at how Java HashMaps works or how Ruby implements "map" are great resources and you'll always get bonus points in an interview for referencing algorithms from "proven" source codes.
  My other problem with algorithms textbooks is that I get into arguments with other developers about how much we need them. At least here, I can say "Look bucko, the Linux kernel itself uses them."
  I decided we can do programming at the API level and never have to think to how that API gives us the right answer. Lower-level programming is responsible for optimization when our number of data points gets larger.
  And we could go even lower level and ask why the algorithms work in the first place - which is the computer science aspect. I routinely deal with developers who feel they do not have time for this.
  Also, if the data is small enough scale, we can brute-force it and nobody will notice.
  EDIT: Removed part of my comment, per the blog author's response below.