Arctic.js - A JavaScript Game Engine For Smartphones - <AUTHOR> http://denadev.github.com/Arctic.js/ <comment><AUTHOR> [Check out <http://www.functionn.in> for more web resources to keep you functionn.in']

Arctic.js is a JavaScript game engine, written specifically with smartphones in mind. It is optimized to run on smartphone browsers as smoothly as possible.

Arctic.js is written in JavaScript and uses the HTML5 canvas for rendering the games you create. Among the different features it provides are: hierarchical display lists, event propagation, and useful animation features.

Those features are similar to ActionScript3 APIs, which should make Flash developers moving to the web platform more at ease using it. Arctic.js is released under the MIT License.

BROWSER SUPPORT

Android2.1 (No Rotation) Android2.2 Android2.3 iOS3(can't use arc.display.TextField) iOS4 Safari</comment>


Ask HN: What is your new year resolution? - <AUTHOR> <comment><USER2> I plan on transitioning from a vegetarian diet to a vegan diet, retiring my ICE car, and making use of the transit hub by my new home as much as possible. I also am resolving to not take any flights or take trips outside my city. 2019 is the year I make climate change my top priority.</comment>


From the Big Short to Normal People: Books That Defined the Decade - <AUTHOR> https://www.theguardian.com/books/2019/dec/26/from-the-big-short-to-normal-people-the-books-that-defined-the-decade <comment><USER2> No Piketty? Come on now. You don't have to agree with it, but it was a big part of the "conversation" about inequality in the 2010s.

<comment><USER3> Strange, especially for The Guardian.

</comment></comment><comment><USER4> And here I thought the normal people reference was to "The War on Normal People" by Andrew Yang which,10 years from now will look like a glaring omission.

<comment><USER5> I do have quite a lot of sympathy for Andrew Yang, and I don't doubt the book is a well-crafted long essay of his central thesis of economic disruption.

But if it looks like a glaring omission ten years from now, it almost by definition is the defining book of _that_ decade, not the last one.

It would not even surprise me if Yang, if asked, would name some work that came before his book to be more deserving of distinction. Because while he is a very effective promoter of UBI and why it's needed, it isn't exactly _his_ idea.

</comment></comment><comment><USER6> It's The Guardian, so more of a list that defines their rather politically loaded view of the decade.

Obviously that sort of bias is not unique to The Guardian, but I'd prefer a list that genuinely sheds light on the times we are in.

<comment><USER5> Isn't this the institutional version of an _ad hominem_?

Every article from the Guardian, the NYT, or really any other large publisher gets this comment, and it's often voted to the top.

It adds nothing. Everyone knows half of the population doesn't trust any newspaper to get the date on the front page right.

So the Guardian thinks #metoo and the financial crisis were among the topics of salience on the last year? I would actually bet both Bernie Sanders and Rupert Murdoch would agree the financial crisis mattered. And even Harvey Weinstein would agree #metoo had some sort of impact.

Because we might no longer have a shared truth, but there's still quite a lot of agreement on _what_ to disagree about,

There is no "bias-free" book that shaped the decade. Unless you go by print run, and it's the leaflet that comes with every new iPhone. Or go by sales figures, in which case it's 50 Shades of Gray. Which is obviously wrong, but kind of fitting. After all, this seems to be the decade were anything but black and white disappeared.

<comment><USER6> Your first three paragraphs are rendered extremely questionable by the bizarre comments in the replies claiming The Guardian isn't biased.

That's why reminders of its very skewed perspective are needed.

The effects of the financial crisis (austerity) or the complete lack of accountability in the UK don't seem to be represented in the list as I pointed out - despite being of profound importance, instead The Big Short (excellent, but describing the venality of the previous decade) is.

Apart from that, I acknowledged the difficulty in finding a bias free source, but I don't think there are as many places in the supposedly "serious" press that the tone leaps out so regularly.</comment></comment></comment>


How My Gap Logo App Became Viral - <AUTHOR> http://jamesyu.org/2010/10/09/how-my-gap-logo-app-became-viral/

<comment><USER2> Launching an app quickly seems particularly effective, though I've noticed in the last year that people are very quick to launch tumblelogs around news events that catch on very quickly. The Kanye West "Imma Let You Finish" fad on <http://kanyegate.tumblr.com/> was a significant one in terms of traction.

</comment><comment><USER3> The most awesome thing is how such a dead simple thing could become so successful. Most people who do that kind of stuff see 13 users in their app, over its entire lifetime, and that's including their own mom. Anyway, congratz dude!

</comment><comment><USER4> Instant parody apps have a great potential to go viral. A few months ago I launched an even more trivial website about a local Polish event (too complicated to explain to non-Poles), it went 4k uu, 15k, 36k in the first 3 days, then it went down as it obviously only made sense when the topic was hot.

Congrats, coding for fun is great.

</comment><comment><USER5> You were a lot more confident that your app will go viral than I am about my apps :)

Have you launched similar stuff in past or was this your first shot at it?

<comment><AUTHOR> I've launched some similar stuff before, but nothing that got this viral. But in this case, I had that funny gut feeling that this would work. You should never, ever ignore that gut feeling -- you'll know it when you feel it.</comment></comment>


The Entrepreneurs of the Decade: 2000 to 2009 - <AUTHOR> http://www2.inc.com/ss/entrepreneurs-decade?utm_source=feedburner&utm_medium=feed&utm_campaign=Feed:+inc/headlines+(Inc.com+Headlines)&utm_content=Google+Reader#2

<comment><USER2> Glad to see Tony Hsieh on the list. He's quickly become one of the entrepreneurs I respect most.

It's amazing to look at this list and realize how some of these people were relatively unknown in 2000.

</comment><comment><USER3> Printer friendly (non-paged) version: <http://www2.inc.com/print/138>

</comment><comment><USER4> good list, but the gawker media guy doesn't belong on it. Completely different level compared to paypal, Google and Apple

</comment><comment><USER5> Do you guys think Elon Musk would be a good addition to this list?

<comment><USER2> No, for two reasons:

1\. His big success story, Paypal, has some weird edges to it. I don't know all the details, but it's not clear to me that Paypal's success was because of Elon and not in spite of him. Hope that doesn't offend anyone, just what my limited knowledge of the situation tells me.

2\. His latest ventures (SpaceX, Tesla, and SolarCity) are still too early to evaluate. Tesla in particular seems to have some challenges, and the legal battles and so forth don't help his image.

That said, I actually really admire Elon from the perspective of his aspirations. In my opinion, if you walk away from a deal with several hundred million, you could do a lot worse than asking what three big humanity-changing problems you can attack with that money.</comment></comment>


Ask HN: Have I been mislead with my job offer? - <AUTHOR> Half way through my last year as a comp sci undergrad I was hired as a "Entry Level Software Engineer" at a major tech company.
When I got my offer letter I noticed that the team I would be on was called "Client Technical Support". This immediately threw a red flag for me because it sounded like over the phone tech support. I emailed my interviewer to clear up what exactly I would be doing. I absolutely did not want to be doing tech support and wanted to be developing and growing my skills. I was quickly assured this was a bad name for the role and that it primarily was a development role. I accepted the offer and forgot about any of my concerns until I started.
Once I started, I quickly was told my role involves providing technical support, over the phone, for enterprise software and as they put it "no you will not actually be doing any coding, but don't worry you'll be looking at plenty of code and providing solutions for other engineers" They also assured me it was fun and I will be learning lots about one specific product.
I feel as though I have been mislead. I really want to be growing my skills. Should I stick it out at in hopes of moving into a developer role or should I begin looking for another job?
Much appreciated :) <comment><USER2> >> _I was quickly assured this was a bad name for the role and that it primarily was a development role._

Next time, refuse to start unless they re-issue the offer letter with the corrected job title. For any future contract, always ensure the final and corrected version of the contract is in hand before counter-signing. One way to do this is scratch out the incorrect words or terms, handwrite the new words, initial the change, and scan the signed paperwork back.

>> _I accepted the offer and forgot about any of my concerns until I started._

Everybody here agrees that the company lied, but next time accept the offer by scratching out the wrong words and writing in the correct ones. Then you will have legal grounds to fight back.

</comment><comment><USER3> Bail.

You were lied to.

That's a terrible way to start a business relationship. If they're willing to do that, you are almost certainly walking into a toxic waste dump of a corporate culture.

<comment><USER4> Yup bail. And burn any bridges. You were told a flat out lie. There's no universe in which entry level software engineer means phone tech support.

</comment></comment><comment><USER5> I am just adding to the existing crescendo but here is my take:

* If it is not written down, it is meaningless. Never believe anyone's verbal assurance, especially if it is someone whose compensation is tied to your assent (such as the interviewer, it seems.) This is true generally for many areas of life but is particularly true of transactional interactions such as buying a car, signing up for a job, buying a house, etc. Pretty much if the person dealing with you will suffer no consequences of lying to you once you have agreed, you should insist on seeing the concern addressed in writing.

* Better late than never re. departure. If your next potential employer quizzes you about the short duration, present the departure in positive terms ('misunderstanding in the details of the role', etc.) I will also roll out a platitude by saying that you get one shot at life and it is not worth it to be miserable. You have the fortune (depending on your country of residence, true for the US and Canada certainly) of being in a good job market so anyone with half a sense will snap you up pronto.

* The longer you stay in this job doing phone support and looking at code, the more time you will lose building up your future skills. Effectively, the longer you stay, the more you are dulling your ability to move to a non-technical-support job in the future.

* Stackexchange has a job-advice board and you should consider posting there to get additional opinions if you are still concerned.

EDIT: Added one more point re. career.

</comment><comment><USER6> _" I was quickly assured this was a bad name for the role and that it primarily was a development role."_

And then: _" No you will not actually be doing any coding._"

Sounds like they blatantly lied to you to get you to accept the job.

 _" Should I stick it out at in hopes of moving into a developer role or should I begin looking for another job?"_

What makes you think they'll suddenly start being honest with you, or start caring about what you really want to do?

I'd start looking for another job.

</comment><comment><USER7> For future reference, I'd always try and talk to the hiring manager and/or the person you'd be reporting to (if they are different) to see if there is a good personality fit.

Ask what a typical day looks like and it will get them to start opening up about the position and what's to come. That might be projects or how you'll be mentored or anything to get you up to speed.

Like was mentioned, get everything in writing and if you emailed the recruiter, show it to your new boss and explain your expectations for this position. It might be a shady recruiter or a misunderstanding that got you here. All industries are small and everyone important is never more than a couple of degrees away from the person you could have burned. I'd give them a chance to make it right before you leave, if only so you can tell the next place that you gave them a chance to make the mistake right, it will show maturity and give them the feeling that you're level headed and that they would want you to work for them.

</comment><comment><AUTHOR> I want to thank everyone for their well thought out answers. Being new in the industry as a recent grad, I will take all your advice into my future search for a position more suited to me. If anyone else has anything to add that hasn't been previously mentioned I'd be happy to hear it

<comment><USER6> Good luck with your career, and I hope your future experiences will be more positive than this one.

One more thing: You may want to post a review on glassdoor.com to share your experiences with this company. It might save someone else the trouble you've been through.

</comment></comment><comment><USER8> They probably have a culture of deception at this place and the risk is that they will continue to lie and mislead you.

</comment><comment><USER9> I would say that if they have to mislead you from the start that there will be little you can expect from this relationship moving forward. You will not trust anything that your boss or this company promises moving forward so I would suggest you start looking elsewhere.

</comment><comment><USER10> That is, like, totally bogus behavior on their part. I'd say bail and find a mondo righteous job.</comment>


NYC Public Library posts free books on Instagram - <AUTHOR> https://www.wsj.com/articles/nyc-library-takes-novel-approach-posting-books-to-instagram-1534910461 <comment><AUTHOR> Starting today; get yours here: [https://www.nypl.org/blog/2018/08/22/instanovels](https://www.nypl.org/blog/2018/08/22/instanovels)</comment>


Spacewar: Fanatic Life and Symbolic Death Among the Computer Bums [1972] - <AUTHOR> http://wheels.org/spacewar/stone/rolling_stone.html <comment><USER2> I poked around to find the long-haired guy brandishing that controller, which led me to a page of some interesting snapshots of people from the early 70s SAIL: <http://www.saildart.org/saildart_pix_1974/index.html>

If your imagination of what the game looks like is lacking: <http://www.saildart.org/saildart_pix_1974/d/d7.jpg>

<comment><USER3> That 'long-haired guy brandishing that controller' today:

<http://www.crunchbase.com/person/bruce-baumgart>

</comment></comment><comment><USER4> Far out!

I recently finished "What the Doormouse Said" by John Markoff and it went into depth about this era in Silicon Valley. This is something you will want to read if you are into the history of computing.

[http://www.amazon.com/What-Dormouse-Said-Counterculture- Pers...](http://www.amazon.com/What-Dormouse-Said-Counterculture- Personal/dp/0670033820)

</comment><comment><USER5> _It was painful to assemble stuff, so they never listed out the programs. The programs and stuff just lived in there, just raw seething octal code. And one of the guys wrote a program called 'The Unknown Glitch,' which at random intervals would wake up, print out I AM THE UNKNOWN GLITCH. CATCH ME IF YOU CAN, and then it would relocate itself somewhere else in core memory, set a clock interrupt, and go back to sleep. There was no way to find it."_

This is awesome.</comment>


Ask HN: What to do to dramatically improve your programming skills in 3 months? - <AUTHOR> If you had 3 months and basic-intermediate programming skills, what would you do level up and how would you measure your progress? I'm looking to build a learning routine into my day to day and interested to hear what great programmers would advise. Thanks! <comment><USER2> What's your goal? skills for skills sake? become expert in specific technology? better job? promotion?

<comment><AUTHOR> To be more employable/skillful/wellrounded and structured in my approach to learning. I'm developing for VR in C# and C++ and finding that I want to get myself on a dedicated learning path to get more of a broad skillset versus what I happen to run into through my work.

</comment></comment><comment><USER3> exercism.io, do all the exercises in the language of your choice. I recomend Ruby and Kotlin first. But, it is like running, you need stamina and focus. Learn developing by testing while you are at it.

<comment><AUTHOR> Interesting, thank you!</comment></comment>


A call for industry-wide pixel-doubling - <AUTHOR> http://clipperhouse.com/blog/post/A-call-for-industry-wide-pixel-doubling.aspx

<comment><USER2> It's strange that you can get a nearly double-width monitor, but still 1050 pixels high. Why aren't monitors getting larger in proportion to an aspect ratio?

<comment><USER3> Economy of scale for hdtv displays.</comment></comment>


Heart Muscle Renewed Over Lifetime, Study Finds - <AUTHOR> http://www.nytimes.com/2009/04/03/science/03heart.html?_r=1&hpw

<comment><USER2> I love it when scientific controversy is resolved by reproducible experimentation.

Humanity keeps moving on in the quest for knowledge.</comment>


This Five-Letter Word Is Key to Marketing Success - <AUTHOR> http://www.fastcompany.com/blog/kevin-randall/integrated-branding/five-letter-word-key-marketing-success-b-r-n-d

<comment><AUTHOR> D--Differentiated: I think that this is an important concept to address because what I have often seen in companies which do not reach the level of creating a brand is that they play the game of forceful differentiation. Ideas need to be natural and authentic which in turn will enable them to be different than anything else that currently exists. It is also important to realize that contradictions lead to destruction and the size of the destruction is contingent on the magnitude of the contradiction. When developing a brand, this needs to be part of each individual within the organization. They need to become the brand and the CEO needs to be promoting this vision at all times. Contradictions in the workplace will lead to a company with a non-existent brand!</comment>


Travel re-imbursement for Y Combinator interviews - <AUTHOR>

I am curious about how YC reimburses teams they invite for interviews. Not so much as the amount but the form - do they write a paper check drawn on their local bank ? Or do they paypal ? Or do they ask for your bank information and do a wire transfer ? <comment> atom-morgan From every blog post I've read, their CFO writes you a check based on the amount you tell them. Honor system.

</comment><comment><USER2> Check</comment>


AT&T CEO interrupted by a robocall during a live interview - <AUTHOR> https://www.theverge.com/2019/3/20/18274519/att-ceo-robocall-randall-stephenson-live-interview-fcc-ajit-pai <comment><USER2> This honestly feels staged. I have never seen anyone in any interview receive a call and pull out their phone to see who was calling. So in this ONE case, someone was calling and he had to take out his phone? I imagine CEOs are getting called constantly, even when they are in interviews. How come they never pull out the phone for other calls? Do they just use airplane mode? If so, then why wasn't it enabled for this interview?

Just like most of what AT&T does, this is a lie. To what end I'm not sure. To show everyone their incompetence in dealing with the problem? To try to put pressure on the FCC to make some rules (that AT&T will fight against because it hates regulation)? Or maybe they're just trying to poke fun at the problem.

Edit: OK, so this was on CSPAN, not an actual TV interview. It does seem more natural than something that is clearly staged, so now I have my doubts.

<comment><USER3> My guess is this is leading up to a PR campaign where the industry will make a big deal about how seriously they are tackling the 'newly discovered' issue as an attempt to undercut a push for actual governmental oversight and regulation.

<comment><USER4> I mean, if they fix the problem, why would you be upset the government wasn't involved? If the problem persists, we can always have the conversation again. Barring anything else, government solutions tend to be inflexible (which is a feature, but should be much more selectively used).

<comment><USER5> Because the moment people aren't focused on the issue, it will return.

<comment><USER4> I doubt it. It may mutate, but regulation has never stopped that sort of thing. If anything, it gains legitimacy by finding a loophole (technical compliance), and it's unlikely anyone will build the political capital to amend the law. And even if they did, it will just mutate yet again.

<comment><USER3> Look at net neutrality, the official corporate statement is of course they support and free and open internet. However "According to lobbying disclosures filed with the U.S. Senate and reviewed by Sludge, Comcast, Verizon, AT&T and their largest trade groups, the Internet and Television Association (NCTA) and CTIA, have spent $190.3 million on lobbying the FCC and other government bodies, much of it to reverse net neutrality, since the 2015 rules were passed."

Source: [https://readsludge.com/2018/06/11/today-net-neutrality- offic...](https://readsludge.com/2018/06/11/today-net-neutrality-officially- dies/)

<comment><USER4> And the net result of that is what? Why would any business _want_ to have regulations passed dictating what they can do? You can support a free, open internet and still not want regulations dictating your behavior. They aren't mutually exclusive.

</comment></comment></comment></comment></comment></comment></comment><comment><USER6> I didn't do this but it has crossed my mind... The fastest way to end robocalls forever:

Sign up every damn congressional seat's phone number to ever scammy health insurance, hotel timeshare and PC help desk website's contact me form.

<comment><USER7> I assume you're aware, but it's known that companies give white-glove treatment to all congresspeople and their family and their friends.

From robocalls to health insurance to the credit reporting agencies to comcast, these folks encounter none of the problems regular folks hit.

<comment><USER8> The majority of these robocalls companies are fly by night operations engaging in illegal sales tactics. They aren't going out of their way to avoid members of congress.

Even if they wanted to, it's not like there is a list of personal phone numbers of important people to avoid calling.

>From robocalls to health insurance to the credit reporting agencies to comcast, these folks encounter none of the problems regular folks hit.

Sure some companies go out of their way to cater to them, and most of them (ab)use their position to make some problems go away. But most of the time people don't even know who they are. There are 435 members of the House of Representatives, and sizeable fraction changes every 2 years.

The majority of them aren't individually important enough to warrant that kind of extreme deference from every company.

</comment></comment></comment><comment><USER9> Regarding caller ID spoofing part of these robocalls... I would think the telco knows the number of each connected phone line, why can't they overwrite whatever number the caller supplies?

<comment><USER10> Historically, spoofing came from people with Primary Rate Interfaces (PRI, aka calling over T1), where you got to set the outgoing caller id because you might be running inbound calling separate from outbound calling, and you were presumed to know what you're doing.

In the last 20 years, give or take, the spoofing comes from VoIP carriers that are interconnected to the traditional telcos where you're receiving the calls. Your carrier has no idea which customer of the other carrier is making the call, only what the other carrier told them. The other carrier may also be passing through calls from another carrier -- there's a lot of traffic mixing going on.

</comment></comment><comment><USER11> Link to the video: [https://mobile.twitter.com/cspan/status/1108422307008184326](https://mobile.twitter.com/cspan/status/1108422307008184326)

</comment><comment><USER12> I use google voice to screen my calls, if there was a way on iOS to disable calls not via Google Voice on my phone that would probably solve the robo call problem for me.

</comment><comment><USER13> Context on the recent media coverage of robocalls:

"I Get a Robocall While Making a Video About Robocalls" by Vlogbrothers: [https://youtu.be/mNIgh3JMDcQ](https://youtu.be/mNIgh3JMDcQ)

"Robocalls" by Last Week Tonight with John Oliver: [https://youtu.be/FO0iG_P0P6M](https://youtu.be/FO0iG_P0P6M)

</comment><comment><USER14> HA HA HA HA

</comment><comment><USER15> PR stunt

<comment><USER16> True or not, the comment is rather unsubstantiated with just two words.

<comment><USER17> Most of the comments are unsubstantiated. So what? The sentiment is succinct. It's a useful contribution insofar that one may upvote, rather than adding to the noise.</comment></comment></comment>


Tell HN: Herman Miller (makers of the Aeron) running a 15% off sale until 6/14 - <AUTHOR>

All their listed authorized online retail stores are participating: http://www.hermanmiller.com/Where-To-Buy/Buy-Online<p>Herman Miller's Aeron chairs get a lot of love here on HN so I thought those who would prefer a new chair would be interested in this rare discount. <comment><USER2> Thats great, thanks for the tip.

Also worth mentioning to look out for dead pool startups for fire sale of office furniture.</comment>


Introducing Google News Badges - <AUTHOR> http://www.google.com/support/News/bin/answer.py?hl=en&answer=1237021

<comment><USER2> The study of game theory and incentives has become a big area of study in marketing. I worked in an experimental economics lab for a few years and a lot of the software we wrote and experiments we ran focused on little incentives like this for engagement.

NOTE: I realize this has probably been going on since the dawn of time, I am not suggesting I was working on something no one else had thought of, we are just starting to see it take-shape really specifically now in online services as they play bigger and bigger roles where it was previously absent.

It looks silly and insulting, but it works (on most people).

Look at Stack Exchange, I love when I login and see a new badge alert across the top... I have no idea why, but I suddenly feel like I care about that site about 15% more than I do other equivalent resources. I feel like my contributions matter so I care to contribute there as opposed to someplace else.

Look at the concept of Achievements on XBox and Trophies on PSN... the idea works, it creates this false sense of accomplishment and while 10% of the population might not care and might ignore it, I imagine 50%-60% are effected by it in some subtle positive way (like me) and the remaining 30% are actually motivated by it to do more of whatever caused them to "win".

I think this is an unexpectedly playful way for Google to dabble in incentives inside their products. If Google News traffic goes up, I imagine we'll see badges as part of our core Google profiles within the next year or two unified across all their properties (especially Google+)

My guess is that like our identities, the "badges" on your public profile (Facebook, Google, Twitter, etc.) will become something the big social networks move into; trying to keep you "building" on their network as opposed to another.

It works somewhat for Xbox 360/PS3, it was bound to bleed over into other arenas.

ASIDE: There was a startup about a year ago that specialized in exactly this: badges for your website. Golden Door, Red Door... something like that. I wonder if they'll see a big upswing in business as people get more interested in the idea.

<comment><USER3> Last year at DICE, Jesse Schell gave _amazing_ presentation on the topic: [http://www.g4tv.com/videos/44277/dice-2010-design-outside- th...](http://www.g4tv.com/videos/44277/dice-2010-design-outside-the-box- presentation/)

<comment><USER2> Piotr,

That was a brilliant talk, thanks for linking that.

</comment></comment></comment><comment><USER4> Why is everything about gamification nowadays? Do I really care about some badge telling me or others how "well versed" or "well read" I am about a particular topic? Shouldn't that knowledge be attained through conversation, instead?

<comment><USER5> Or you could look at it as a form of addiction similar to how WOW and other MMORPG games have you do mundane tasks to get a reward which is in and of itself meaningless. The more they can get you to read articles the more it benefits them. For some people it takes incentives other than knowledge to perform the act of learning.

<comment><USER6> The way I look at it, if a technique works for getting myself to learn stuff I'm happy to take advantage of it. E.g. if fantasizing about using obscure physics knowledge casually in a conversation is going to help me learn physics, and I want to learn physics, I'll fantasize away.

I don't see much utility in reading the news though. I'd much rather see this on a video lecture site.

</comment></comment></comment><comment><USER7> I'm actually impressed by how ridiculous, patronising and insulting an idea this is.

I even went hunting to find out if this was an old April Fools' Joke getting some new publicity.

<comment><USER8> I liked the original idea of PMOG (now <http://thenethernet.com/>) which seems similar: you would get points for exploring various sites of the internet and level up your character by doing so. What interested me was maybe some kind of feedback loop for correcting my self image. Perhaps I think I like to read lots of highly intellectual stuff, but my character would turn out to hang out on celebrity gossip sites a lot. Presumably then I could try to take counter action by reading more intellectual stuff, correcting my self image/alter ego.

In the end I never played, first because of privacy concerns, then because it didn't work with my browser.

I suppose those news badges are kind of the same thing, just not presented in an equally appealing way. So instead of making me think "yay, they made reading news even more fun", I think "they are trying to exploit a weakness of my stone age brain to make me do even more work for them for free". Yuk.

</comment></comment><comment><USER9> Interesting. I can actually see some use to having little badges on your Google profile indicating what topics you're interested in. I've stumbled upon a lot of Google+ profiles because of an interesting post, and these badges could be a nice quantitative way to see if I might be interested in following them.

I wish it worked off Google Reader, though, rather than News.

<comment><USER10> I'm sure everyone remembers this april fool's joke from a few years back:

<http://www.google.com/googlereader/reader-advantage.html>

I keep meaning to sew my gold patch on my backpack...

</comment></comment><comment><USER11> It's being marketed as something that helps people track articles and find new content, share content with friends, and spark conversations, but it's also framed in terms of earning/leveling up. I think there is a bit of disconnect there. People who appreciate the game-like elements may not get so much value from the discovery/social features (and vice versa).

If the badges result in significantly higher usage of Google News, some large news organizations will feel threatened. Making an aggregator more attractive means fewer people starting their search for news on CNN, BBC, Fox, nytimes.com and large local news sites like Boston.com. On the other hand, smaller/niche publishers that are featured on Google News will welcome more traffic.

</comment><comment><USER12> I was awaiting their big Google News announcement and really hope that this isn't it. It doesn't even incorporate the custom news sections I've already added. Furthermore, clicking on the suggested Politics section brings up an article from an outlet I specifically asked for less of yesterday- I'll stick with my normal Google News, thanks. I'll play Minecraft when I need a game.

</comment><comment><USER13> Off topic > I really enjoyed the background song in the video :) I'm wondering who creates all these Google presentational videos and soundtracks.

</comment><comment><USER14> This seems like a way to get people to start sending their web history to Google- in addition to search history.

</comment><comment><USER15> I bet this has something to do with the social news reader app that Google will be releasing soon.

</comment><comment><USER16> What is this, Google people rank for users' attention span on a given topic?

</comment><comment><USER17> Is this just to encourage people to stay logged-in/cookies on?

<comment><USER18> It does look like you need to have web history enabled in order to use it...

</comment></comment><comment><USER19> Huh. This is a pretty incoherent design concept.</comment>


MicroCOVID Project, Micromorts but for Covid - <AUTHOR> https://www.microcovid.org/calculator <comment><USER2> Epidemic modeler here. Do you consider the cases who carry the disease but not registered? (usually asymptomatic/mild symptomatic). Do you account e.g. for the delay between getting infected and being infective? Epidemic modeling is hard, risk estimation is harder, and combining it properly requires a lot of care.

</comment><comment><USER3> Weird title, I didn't get quoted my micromorts! I think that projects like this owe people a slight debt of education.

They should at least list the odds of all conditional outcomes in a way consistent with total probability. For example instead of quoting a probability of contracting covid which the authors can't acertain they should quote the probability of being false negative/positive etc.</comment>


Equifax finds additional 2.4M impacted by 2017 breach - <AUTHOR> https://apnews.com/55e081dd2fbe47ebb26cf82a0088b267 <comment><USER2> So when do we finally get to say they don't get to be a company anymore? They clearly do not care one bit about our data.</comment>


The Aggregate Magic Algorithms - <AUTHOR> http://aggregate.org/MAGIC/ <comment><USER2> For more of this, see "the Hacker's Delight": <http://www.hackersdelight.org/>.

<comment><AUTHOR> Thansk for that!

This is linked there too: <http://graphics.stanford.edu/~seander/bithacks.html> which is particularly useful</comment></comment>


Ask HN: How do you tackle information overload? - <AUTHOR> In the past year I've discovered a lot of sources for good content (Hacker News, Medium Blogs, Reddit, Podcasts, Youtube and some more).
I used to spend a lot of time keeping track of the news that they became a time hog.
Then I got to know about RSS feeds. It was simple, all news in one place. But as I add more sources, it has started to pile up on the unread count.
How do you guys take care of the information overload? <comment><USER2> [http://ontology2.com/essays/ClassifyingHackerNewsArticles/](http://ontology2.com/essays/ClassifyingHackerNewsArticles/)

</comment><comment><USER3> Block 45-60 min a week to catch up on reading, you can never keep on top of everything out there</comment>


Ask HN: Just lost $637,000 to a US company. How can we recover? - <AUTHOR> We just had a Telegram chat agreement with a company which was supposed to act as an exclusive distributor for our SaaS product for a fixed sum each month. We were supposed to market and develop our product. They were supposed to collect payments and act us our distributor in this scheme. The chargeback rate was very low, typical for a SaaS company. Now, that company is saying they can't remember any agreement. We had received a few payments from them in excess of 120K which made us trust them in the first place. And they are now saying that their lawyers will handle it. I've no idea what to do now. <comment><USER2> You need a lawyer. My instinct is that you're going to have a real uphill battle and the case may be a total dog due to the contract format, but that doesn't necessarily mean all hope is lost. Email me at email@example.com if you want a lawyer recommendation. I work on cases like this and know some attorneys who might be worth talking to.

</comment><comment><USER3> Time to lawyer up?</comment>


Swedbank terminates the secure E-card service - <AUTHOR> https://www.swedbank.se/privat/kort-och-betalningar/kort/logga-in-e-kort/#!/ <comment><AUTHOR> > Why does Swedbank remove service e-cards? >The reason we choose to remove > the service e-card is because the systems are getting old and can not be > adapted to today's needs.</comment>


Ask HN: What's the best way for an American to buy an unlocked Xiaomi Mi4? - <AUTHOR>

It would be hard for me to just fly to China to buy one, so what's the best American source? I see a few listed on Amazon and eBay but I'm afraid of getting ripped off. <comment><USER2> Via a quick Googling:

[http://www.expansys-usa.com/xiaomi-mi4-smartphone-quad- core-...](http://www.expansys-usa.com/xiaomi-mi4-smartphone-quad-core-3gb- ram-16gb-264909/)

[http://www.newegg.com/Product/ProductList.aspx?Submit=ENE&DE...](http://www.newegg.com/Product/ProductList.aspx?Submit=ENE&DEPA=0&Order=BESTMATCH&Description=xiaomi+mi4&N=-1&isNodeId=1)

Both are reputable.

<comment><AUTHOR> runjake i owe you a coffee if you ever get to nyc!

thank you!</comment></comment>


Supreme Court rules against Microsoft in major patent case - <AUTHOR> http://www.techflash.com/seattle/2011/06/supreme-court-rules-against-microsoft.html

<comment><USER2> To me, the scariest part was:

 _U.S. solicitor general, which represents the federal government, filed a brief in support of i4i, saying that the U.S. Patent and Trademark Office should not be second-guessed by a jury._

The Patent and Trademark Office absolutely should be second-guessed by a jury. Judges and juries are the only sanity-check the whole system has at this point!

<comment><USER3> Agree completely, had just copied the quote and was about to paste it to say the same thing. When we consider all the BS patents that have been rubber- stamped by the PTO, this is a very scary proposal.

<comment> steve-howard You had the quote on the clipboard but you checked for prior art before posting? A rarity on the internet indeed.

</comment></comment></comment><comment><USER4> It's so ridiculous theyre essentially patenting generic syntaxes for representing documents that anybody "skilled in the art" would come up with in 5 minutes. It would have been much better for small developers if Microsoft won this. It's funny how this is treated as a win for the little guys, who can't afford massive patent portfolios nor litigation battles like Microsoft.

<comment><USER5> "It's so ridiculous theyre essentially patenting generic syntaxes for representing documents that anybody "skilled in the art" would come up with in 5 minutes." now - sure but then? - apparently not as extensive litigation demonstrated. And that 'non-obvious' nature back then - that's kinda the point, hindsight effect is a powerful thing

<comment><USER6> There is however the argument of prior art, so it still takes a little brain- racking to do.

Patents are more about digging some holes in the forest and covering them up, after which you go home and cross your fingers that someone steps into one of them in the future.

<comment><USER5> I honestly don't understand the point you are making. Would you mind elaborating? Thanks.

<comment><USER7> There is a well-known patent strategy where you patent a technology, wait for other people to start using it, and then proceed to sue them for large amounts of money.

From the point of view of other companies these are hidden traps that could be anywhere. You're just doing business as usual, solving problems, and bam, you're told that you weren't allowed to think of obvious idea X because someone has a patent, pay up $10 million dollars. (Actual dollar amount varies widely.)

The really evil ones patent stuff, get their patented ideas into standards, wait until everyone is following the standard, then start filing lawsuits. Past bad experiences with this are why standards organizations usually require that participants license any relevant patents that are needed to implement the standards.

<comment><USER8> Also known as: <http://en.wikipedia.org/wiki/Submarine_patent>

Supposedly harder to pull off these days, but still happens.

Any examples of the evil strategy, as in patented stuff getting into standards?

<comment><USER7> <http://en.wikipedia.org/wiki/Rambus#Lawsuits> is the first that comes to mind.

</comment></comment></comment></comment></comment></comment></comment><comment><USER9> A few silver linings for accused infringers:

1\. It could have been worse -- as correctly pointed out by carussell, the Supreme Court decision merely validates the the way courts have been deciding cases for the past 25-plus years;

2\. The Supreme Court's opinion [1] urges judges to give specific instructions to the jury that it is allowed to take into account the fact that prior art introduced at trial was not considered by the patent examiner. _That_ will be useful for defense counsel -- you can never know whether a given judge will agree to give such an instruction, so it'll be quite helpful to be able to refer the judge to a Supreme Court "suggestion" on that point;

3\. The concurring opinion of Breyer, joined by Scalia and Alito, emphasizes that the clear-and-convincing standard applies only to proof of _facts_ and has nothing to do with the ultimate legal question of validity. That, too, will be useful in trying to get the trial judge to give the jury a specific instruction on that point.

[1] <http://www.supremecourt.gov/opinions/10pdf/10-290.pdf>

</comment><comment><USER10> This article, and much of the reporting on this case, is very confused as to what it's actually about.

The case actually has to do with a feature called "custom XML" which was introduced in Office 2003 (I think?) and basically allows databinding between Office docs and XML files with some custom schema. You have some data represented in XML, and it shows up in a Word doc presented in a certain way. Then you can edit the Word doc through the Word interface, and the data in the XML will match your changes. So the idea is to let you use Office as an editor for structured data. I dunno how well it worked in practice.

The actual patent claim was over some detail of how the databinding relationship was represented in the file format. This has nothing to do with the XML formats introduced in Office 2007 (.docx etc.)

</comment><comment><USER11> That is a scary ruling. It basically strengthens software patents (and all patents for that matter). But in particular solidifies that once you have a patent, you aren't likely to get them overturned in court.

If you can invest in a patent troll -- now is a good time.

<comment><USER12> If you look at the details of the case, you will see that this was NOT a patent troll. i4i had started work to integrate their product with MS Office and started negotiations with Microsoft for licensing; then Microsoft in effect said "no thank you" and proceeded to implement the same (patented) technology on their own. While I am opposed to software patents, and despise patent trolls, I believe that this case should definitely not be misrepresented and linked to patent trolls.

<comment><USER5> @aroberge - that is absolutely correct. Part of the reason that MS were hit so hard is precisely because they knowingly and willfully infringed.

<comment><USER13> Except that the big idea -- transform the XML and present it in Word -- is obvious.

<comment><USER5> @rwmj - the question is not whether it is obvious now but rather was their invention obvious then. Do you have any reason to believe it was obvious then? Remember that this very question has been litigated with MS doing everything in their power to demonstrate it was indeed obvious then, that there was prior art, and they failed! So it is easy to allege something like this now but I suspect that you are suffering from the hindsight effect and don't actually have any evidence supporting your claim of obviousness. I don't doubt your sincerity and I don't mean to be rude, I just don't think you are likely to have done the research (as MS and their attorneys did!) to prove it was obvious THEN.

<comment><USER11> The obviousness test is basically off the table after the patent has been granted. This is one of the things that is problematic with the system. Patent examiners tend to be too lenient, but the end result is you now hold a patent that is very difficult to overturn.

<comment><USER5> IMHO you are missing an absolutely critical point and are therefore falling prey to the hindsight effect. Let's imagine that you have a brilliant idea right now, one that NOW is not at all obvious. What does that mean? It means that NOW (a) there is no prior art (b) there may well be teaching away from the art, in other words, even though the field is a familiar one and you would think it obvious once pointed out, nonetheless there is no evidence that anyone has thought of it before (c) there is no public domain publication or record of a talk etc .... Such evidence is taken as evidence that it is not obvious. Now let's assume that you take your idea further and turn it from an idea - an insight if you will - into an invention. That may involve a great deal of time and money. In some cases it certainly does. Now let us assume that you release a product and it achieves great success. The very success of your product means that it will become a part of popular culture and there have been several studies that show that within a remarkably short period of time people take what was your innovation for granted and consider it obvious. Bear in mind however that it wasn't obvious when you thought of it and when its obviousness was considered, for example, by the patent office. Failure to recognize this and the associated hindsight effect leads to people making statements about how obvious something is when that is completely irrelevant. The question is not how obvious it is but how obvious it was. If a patent is granted it can always be challenged and invalidated if someone is able to demonstrate that there was indeed prior art. The patent is assumed to have validity but that does not mean that evidence of prior art will just be disregarded, it just means that the evidence has to be clear.

</comment></comment></comment></comment></comment></comment></comment><comment><USER14> This is an abomination. This patent clearly fails the obviousness test (that is, if somebody is capable of reading the patent all the way through without being disgusted and embarrassed for the "inventors"). Unfortunately, most of the software patents are like this: the Patent Office is clearly failing us. Math formulas are not patentable, and software is just that: math.

Seems like our only hope is if somebody powerful and famous, with a big software patent portfolio, can sacrifice it for the good of the industry and advocate for banning software patents. Steve Jobs and his position against DRM in music comes to mind as a similar move. Wouldn't it be great if leaders of the industry get together and petition/lobby for this change? One can only dream...

<comment><USER5> @romp please see my post above about 'the obviousness test' IMHO this relationship between patents and what is obvious is the source of a huge amount of misunderstanding about and opposition to patents. I have no problem with serious discussions about patent reform, but surely such a serious discussion should be based on a substantive understanding of reality not popular misconceptions? Let's all get clear on what is meant by 'obvious' in the context of patents and that will help us move things along.

<comment><USER15> So non-obvious (by the PTO's standards, or even by some wise person's standards) mathematics should be patentable?

<comment><USER5> No. Because the law is perfectly clear on this point. Algorithms cannot be patented.

<comment><USER16> computer code is 'just' an algorithm. that is simply true. if algorithms cannot be patented then neither can computer code.

<comment><USER5> data structures?

<comment><USER16> huh? they contain data. unless you are claiming that the presence of this:

struct twiggle { int t; }

somehow makes patenting the code that uses it a sensible idea?

</comment></comment></comment></comment></comment></comment></comment><comment><USER17> I think i'd feel a little more sorry for Microsoft if it weren't using software patents to fight Android.

[http://online.wsj.com/article/SB1000142405274870346610457552...](http://online.wsj.com/article/SB10001424052748703466104575529861668829040.html) (search for "patent fee")

<comment><USER18> I sooo agree with this. Microsoft seems bipolar in its attitude towards patents. I understand why they are happy to sue into markets they aren't dominate, and then be upset at being sued in markets where they are. But they are so enthusiastic at both ends..

I am extremely satisfied with the ruling in this respect. Companies that use silly patents deserve to have silly patents used against them.

I agree it could have consequences. But that's a different (and possibly more important) discussion.

<comment><USER19> That's a lawyers job. Londo Milari from Babylon 5. The perfect lawyer.

<comment><USER18> Peter Jurasik did a great job with that fun character. He and Andreas Katsulas had such amazing chemistry.

G'Kar is, by far, my favorite TV sci-fi character and the fact that Mollari was able to stand his own in such a huge shadow is a testament to Mr Jurasik.

<comment><USER19> Yea, he was amazing. Too bad he doesn't get more big roles.

</comment></comment></comment></comment></comment><comment><USER20> Scary and sad. The only good that can possibly come from this is that the industry giants start pushing in earnest for patent reform. If all the big software companies seriously want a change, I think it can happen.

</comment><comment><USER21> I like this bit from the article:

"Smaller companies that held patents worried that if Microsoft prevailed, it could lower the standard of proof for invalidating a patent, crippling small companies that depend on patent protection, legal experts say."

Other than patent trolls, which small (software) company benefits from (software) patents?

<comment><USER5> i4i is exactly such a small company.

</comment></comment><comment><USER22> I don't think the article does the case justice.

If you look at the holding, the Court just says that all invalidity defenses must be established by "clear and convincing evidence" (higher than preponderance of evidence but lower than beyond a reasonable doubt.)

It has been well-established that patent validity is a basic assumption. So, a plaintiff must prove patent invalidity by clear and convincing evidence. The issue here is once the plaintiff establishes patent invalidity, how much evidence does the defendant need to give to rebut the assumption of invalidity. The Court said that the higher standard of proof, not the lower standard of proof.

Maybe I'm being thickheaded here, but I don't see how that's terrible at all. In fact, it makes things equal. Once the plaintiff shows patent invalidity, it shouldn't be that easy for a defendant to rebut the assumption of invalidity.

<comment><USER11> Except for the fact that the PTO isn't an adversarial system. It would be different if prior to you getting a patent you had to go to court against companies who think you shouldn't have it.

And now that you have a patent and sue somebody, this other person may be able to put together some evidence that shows the patent is invalid, but they must climb a very high bar now.

In this case MS had prior art in a past i4i product that appeared to have the functionality that i4i had patented. i4i says it was different, but the source code had been destroyed. Had this challenge been brought up during the original patent examination, they could have pressed i4i to prove that this didn't infringe. But once i4i has the patent now MS must prove that it does, w/o the source code.

<comment><USER22> The plaintiffs trying to invalidate the patents have always had to climb a steep hill. My point is that this case doesn't change that. If you look at the statute and precedent, the plaintiffs always had to establish invalidity by clear and convincing evidence. (The appropiateness of that is a question for Congress, not the Court because the statute is clear on this point.)

So, this case just makes things equal between the plaintiffs and defendants. Once the plaintiffs do overcome the admittedly-high obstacle of proving invalidity, the defendant can't just put up a weak defense and get away with it. That's good!

Your problem with the patent system is completely valid, but the Supreme Court can't change law (or is not supposed to). Congress is the one who is responsible for this quagmire, not the Court.

The whole patent system is broken, and this case improves things by a nanogram (is that a word?)./

<comment><USER11> I don't disagree. And after reading the SCOTUS opinions, I think their reasoning was sound. Still disappointing in some sense, but it does read like the right decision.

Time to petition congress. It does feel like we're near an inflection point.

<comment><USER22> Sigh. I know...

I just think that Congress needs to be reeducated about the different needs of today's technology industry versus the old-days of steel mills. It won't be easy, but I'm confident it will happen someday.

The question is whether I'll be alive then (heh).

</comment></comment></comment></comment></comment><comment><USER23> The article talks about "taking the case all the way to the Supreme Court", but is that accurate?

Reading the Court opinion, it seems like they aren't examining the whole case, but only one particular question of law raised by the case. There's nothing written in the opinion examining whether the patent itself is statutory, novel, and nonobvious; only Microsoft's objection to its validity is mentioned.

Can any law gurus explain how this certiorari thing works?

<comment><USER22> Well, I don't know about law guru, but I did go to law school. Take that for what its worth.

I'm not an issues and appeals lawyer, but here's what I know about appeals. Appeals are only for questions of law, never for questions of facts. And the question of law must be unsettled (otherwise, why would SCOTUS take the case?) SCOTUS probably took this case to clarify the defendant's burden of proof regarding invalidity defenses.

Now, this particular case was about the standard of proof for invalidity defenses (and jury instructions). The trial court told the jury that MS had to defend against invalidity claim by clear and convincing evidence. Microsoft thought that was the wrong standard. SCOTUS said that the lower court was right.

So, since the lower courts applied the right standard, this is the end of the line. The verdict against MS will stand.

tl;dr: appeals (cetorari_ to SCOTUS) focuses on unsolved or ambiguous questions of law, not factual issues. (Mixed questions of fact and law is a whole 'nother story...you don't want to know).

<comment><USER23> Is SCOTUS restricted to just the questions raised to them, or can they make their holding on another question that wasn't raised? For example, could they have said in this case, yes, the lower court applied the right standard for evidence, but the patent itself is nonstatutory following the Flook precedent?

P.S. Law school qualifies as guru for any questions I'm likely to ask.

<comment><USER22> SCOTUS is indeed limited to the question raised during the appeals process. Even if SCOTUS thought "geez this patent sucks," they can't do anything.

Why not? Well, for better or worse, the American judicial system puts a lot of weight on trial courts and juries' ability to assess facts. The appeals system was set up in such a way to prevent higher courts from actually deciding the case. If SCTOUS had found that the lower courts applied the wrong rule of evidence (burden of proof here), then the case would have gone back to trial and retried (isn't that crazy?).

And trust me, law school doesn't quality everyone as a guru. I have some experience with appeals, but I'm far from an issue & appeals lawyer (they're pros at this). So, take my words with a grain of salt.

</comment></comment></comment></comment><comment><USER24> Isn't great news? It's a great incentive for large companies like Microsoft to start lobbying for a reform of patent law.

</comment><comment><USER25> Bah.</comment>


Realtime Dynamic 3D surface reconstruction and interaction...using kinect - <AUTHOR> http://www.youtube.com/watch?v=quGhaggn3cQ

<comment><USER2> I've done a lot of work in this area, and I can say that this is significantly faster and higher quality than the other Kinect-based 3D reconstruction techniques out there such as RGBDemo ( <http://www.youtube.com/watch?v=Cldf7UdFq1k> ).

It's also clear just how much of an advantage having a 3D sensor is for reconstruction when you compare this against 2D-camera-based 3D reconstruction software like Photofly.

</comment><comment><USER3> Wow. My mind is still spinning from the computer vision applications this could lead to, but the augmented reality segments (3:48 and 7:00) are particularly impressive on their own. I'd say this is our first glimpse of the second generation of AR.</comment>


Atomic Weapons: The C++ Memory Model and Modern Hardware - <AUTHOR> https://onedrive.live.com/view.aspx?resid=4E86B0CF20EF15AD!24884&app=WordPdf&authkey=!AMtj_EflYn2507c <comment><AUTHOR> Excerpts:

"Q: Does your computer execute the program you wrote?

A: What a quaint concept!

Think: Compiler optimization, processor OoO execution, cache coherency.

Compiler/processor/cache says:

"No, it's much better to execute a _different_ program.

Hey, don't complain. It's for your own good. You really wouldn't want to execute that dreck you actually wrote."

My Comments:

See the referenced document for the _why_...</comment>


Show HN: Object Playground - The definitive guide to object-oriented JavaScript - <AUTHOR> http://www.objectplayground.com/

<comment><AUTHOR> I'm pretty excited about this site. I love the code behind it--it evaluates arbitrary JavaScript, traverses the object-graph in memory, and then uses an Emscripten'd GraphViz to render it in SVG. I'm also proud of the screencast that goes along with it. And most of all I'm excited because this is the beginning of my attempt to do inbound marketing for my Let's Code JavaScript screencast [1].

I'm happy to answer any questions people might have about the site or the marketing sausage-making. For some background on the marketing piece, check out my comment on the recent SaaS thread here on HN [2].

[1] Let's Code: Test-Driven JavaScript is a screencast series on rigorous, professional JavaScript development. [http://www.letscodejavascript.com](http://www.letscodejavascript.com)

[2] My comment on the HN thread is here: [https://news.ycombinator.com/item?id=6038226](https://news.ycombinator.com/item?id=6038226)</comment>


Programming books I have read and somewhat liked - <AUTHOR> http://www.mostlymaths.net/2010/04/9-programming-books-i-have-read-and.html

<comment><USER2> The Little Schemer is an updated version of The Little Lisper. It also happens to be much cheaper: [http://www.amazon.com/Little-Schemer-Daniel-P- Friedman/dp/02...](http://www.amazon.com/Little-Schemer-Daniel-P- Friedman/dp/0262560992/ref=sr_1_1?ie=UTF8&s=books&qid=1271525497&sr=8-1-catcorr)

It's an excellent introduction to thinking recursively. The others in the series (The Seasoned Schemer, The Reasoned Schemer) are worth reading too.

<comment><AUTHOR> Thanks, I'll try to get myself a copy from a library. That's how I got to read the LL, and really loved it (that's why I have a try to A little Java).

</comment></comment><comment><USER3> Readers who liked that selection of books would probably get on well with Peter Norvig's "Paradigms of artificial intelligence programming: case studies in Common Lisp", which I consider a good candidate for Best Programming Book Ever.

</comment><comment><USER4> SICP is by far the best book I have read in my life.

<comment><USER5> That is very sad. I feel bad for you. There are so many wonderful books in the world - the fact that a programming book is "by far" the best book you've read in the world is just tragic.

Try these ones:

\- Narcissus & Goldmund by Hermann Hesse

\- One Hundred Years of Solitude by Gabriel Garcia Marques

\- Oliver Twist by Charles Dickens

<comment><USER6> Oliver Twist is certainly a great one. But my Dickens' favourite is David Copperfiled. I still read it from time to time and it is always a great journey.

<comment><USER7> My personal favorite is A Tale of Two Cities, but I haven't read enough Dickens yet to be sure what I have missed.

But while I heartily agree that reading classic literature is very worthwhile, I also think that reading a nonfiction book like SICP (Structure and Interpretation of Computer Programs) can be a deep and rich experience, a reading experience that can change someone's life for the better.

<comment><USER5> I loved a Tale of Two Cities. Amazing writing. Just amazing. The scene where they're escaping from Paris is just incredible.

</comment></comment></comment></comment></comment><comment><USER8> Efficiency tip: don't read articles with "top 10" lists.

<comment><AUTHOR> That's why I wrote it as 9. I just don't have 10 good programming books to give.

<comment><AUTHOR> Now I read my answer, I missed a :) at the end. Don't want to sound harsh, it was just a joke. I could have added Stroustrup's C++ to make it a 10, but I don't really like it, personal opinion, as I think a lot of people love it.

</comment></comment></comment><comment><USER9> Good list, i'd be interested to know how much you've made off the links to amazon in a couple weeks.

</comment><comment><USER10> I wasn't too interested in this particular post, but the _rest of the site_ definitely had some good reading! The little algorithm-into-Postscript- thumbnail was very attractive and it would be interesting to see some code for that.

<comment><AUTHOR> Glad you liked other things from it :) I think I have a direct link to my GoogleCode in the post about this C-2-PS, anyway here it is: [http://code.google.com/p/rberenguel/source/browse/#svn/trunk...](http://code.google.com/p/rberenguel/source/browse/#svn/trunk/CJuicer)

It is still a very very beta version, intended only for my own use. I have plans to rewrite big chunks of it, add some more tweaks and then document, but it is somewhat of quite a lot of work (although more and more people show some interest on it) and I have a lot other non-urgent non-important fun projects... Not enough time :)

If you have some question on how it works or anything, contact me as you see fit.

</comment></comment><comment><USER11> <http://isbn.nu/authorx/comer_douglas/>

</comment><comment><USER12> I'd feel a lot better about this post without all of the affiliate links.

<comment><AUTHOR> D'oh! You mean the Amazon links? Well... I'd love if someone would buy anything from my posts :) But in fact, I guess that almost everyone interested in these books... has these books already. I just put them whenever I write anything about a book. I also did it back in time when I didn't have an Amazon Affiliates account, just to give the possible reader a quick link to see reviews and contents.

<comment><USER12> Yes. The amazon affiliate links call into question your motives for posting this on hacker news.

It makes me wonder if the affiliate links are the purpose of the post.

<comment><USER13> Why do you complain about an individual sharing his thoughts, and not about NYTimes, which is stuffed with advertisement? Or like 90% other hn posts with advertisement on it's pages.

<comment><USER14> Perhaps because the advertisements are mixed with the content.

<comment><USER15> I don't think you can claim that mixing advertisements and content is a bad thing unless the advertisements are misleading. There is nothing misleading about those links.</comment></comment></comment></comment></comment></comment>


Being poor at modeling is essential to OOP (comment on LtU) - <AUTHOR> http://lambda-the-ultimate.org/node/3265#comment-48063 <comment><USER2> The thing about OOP is that you need your objects to belong to your solution domain, not your problem domain. If you get this backwards, you will likely be unhappy.

<comment><USER3> The thing about OOP is that it is described as way to make programming easier because objects are so "intuitive," and the examples for this are all toy simulations with naive object "models." What the post describes, and what everyone who actually does a significant amount of OOP programming eventually figures out, is that the only things OOP makes intuitive are stupid approaches. It's possible to program well in OOP languages, but there's nothing intuitive about doing anything non-trivial well, in any language.

I blame Alan Kay for inventing a new paradigm and then not explaining how it was supposed to be used (it's like Lisp meets biology!), thus allowing it to be taken over by others who filled the vacuum with a multitude of their own (usually half-baked) ideas bastardized implementations, and "software architect" positions.

<comment><USER2> I think you're right that there's a serious problem with how OOP is described. Why that's so is a full topic in and of itself.

In the case of Alan Kay, I can't help but feel like he was trying to create one thing but actually created another.

<comment><USER4> "Smalltalk is object-oriented, but it should have been message oriented." -- Alan Kay

[http://folklore.org/StoryView.py?project=Macintosh&story...](http://folklore.org/StoryView.py?project=Macintosh&story=Creative_Think.txt)

</comment></comment></comment></comment><comment><USER5> One word: Awesome.

More words: This sums up so much wisdom on how to do (or not do) OO. The whole thread is great, but that comment is definitely a highlight.

</comment><comment><USER6> Lambda the Ultimate discussing object-oriented programming is like backwoods Christians discussing Hinduism. "What do them folks need all them gods for anyways? An' that one Krishna, why's he look like a blue baby? Ah guess some folks'll believe anything!"

It just seems pointless to constantly profess such dismay and amazement at how clueless other peoples' programming paradigms are. Is there anyone who _really_ doesn't believe there's more than one self-consistent, sensible way to write code?

<comment><USER7> > Is there anyone who really doesn't believe there's more than one self- > consistent, sensible way to write code?

The existence of multiple ways to write sensible code does not imply that every way to write code is sensible.

BTW - Do you have any significant experience with "backwoods Christians" or are you just winging it from your ignorance? (I've run into several who taught themselves Greek so they could read ancient religious texts.)

<comment><USER6> I apologize for any offense. I don't mean to imply that all "backwoods Christians" are really baffled by Hinduism -- I also know some of the type you mention, the serious students who learn ancient Greek.

I was using the "backwoods Christian" stereotype to make a point in a (hopefully) humorous way, that people who are totally wrapped up in their own worldview often completely fail to understand the point of other worldviews, and don't even realize they're missing the point.

For what it's worth, I was raised in the back woods, and grew up around the kind of people I caricatured (who were thankfully always a minority). But since intent is hard to convey on the Internet, it would have been wiser for me to use talking animals like Aesop, or something else less likely to offend.

</comment></comment></comment><comment><USER8> Wow, looks like Programming Reddit found LtU. Sad.

<comment><USER9> 464 times

<http://www.reddit.com/domain/lambda-the-ultimate.org/top/></comment></comment>


Disinformation and 'fake news': Interim Report - <AUTHOR> https://publications.parliament.uk/pa/cm201719/cmselect/cmcumeds/363/36303.htm#_idTextAnchor000 <comment><USER2> Is anyone else disheartened by the fact that the discussion on "fake news" has focused around e.g. regulating social media, rather than just teaching people basic critical thinking skills?

<comment><USER3> Is anyone else disheartened by the fact that the discussion on "snake oil" has focused around e.g. regulating clinical trials and pharmaceutical manufacturing, rather than just teaching people basic critical thinking skills and label-reading skills?

Answer: No. Modern advertising techniques are effective enough that most people simply cannot defend themselves against them. Micro-targeting of extremist viewpoints is so effective that I tend to think of it as a low-grade basilisk attack of sorts, a political equivalent of the langford death parrot: If you don't have your special protective goggles on there is _nothing_ you can do to keep your opinion from being pushed around in depressingly predictable ways.

There are studies that demonstrate that information that you _consciously and correctly refute and disregard_ still affects your beliefs. And that's only useful if you're perfect; there's a rather nasty ratchet effect at work on your confidence bounds, so every single error leads to a nearly permanent skew that can be used to lever you arbitrarily far away from "truth". Even if you could correctly discard information that was outside believable confidence bounds, these systems can just denial-of-service your ability to gather competing information and pull off a good Cartesian evil demon act.

<comment><USER4> The logical consequence of the belief in people being unable to defend their minds against elaborate ads is that we should abolish democracy. How can you trust those stupid voters to make any choice if this choice is predetermined by ads?

Personally, I think people can defend themselves against lies (though it doesn't happen instantly) if they have alternatives. And that's why we should resist censorship, and not prescribe filtered news to societies.

<comment><USER3> > The logical consequence of the belief in people being unable to defend their > minds against elaborate ads is that we should abolish democracy. How can you > trust those stupid voters to make any choice if this choice is predetermined > by ads?

In many parts of the world and many parts of history, voters' choices are determined by quiet words from the secret police or louder words from the guys with guns. AFAIK we don't really have those problems in the US or places like the UK. Why? Because we have laws against it and game-theoretic payoff matrices involved in the enforcement and adherence to those laws that make it generally better for everyone if those laws are enforced and adhered to. I think that there probably _is_ a regulatory solution to this. I just don't know what it looks like yet, because it's a problem domain we haven't discovered a good notation or vocabulary for and can't discuss very well. I think that efforts like this report, which attempt to carefully define "misinformation" and "disinformation" to clear up the ambiguity of "fake news", are leading us in the right direction.

<comment><USER5> > In many parts of the world and many parts of history, voters' choices are > determined by quiet words from the secret police or louder words from the > guys with guns.

And, of course, they are helped along with the state-controlled media that is very careful not to air "fake news" and rigorous social media censorship to make sure news and opinions that are "misinformed" or "disruptive" to public peace are not widely disseminated.

The view that we need social media censorship to stop "fake news" is the view that one's owns beliefs are the ironclad, objective truth, and all other beliefs are wrong and should be censored, since they lead people away from the truth.

This isn't a road you want to go down if you want to live in a liberal democracy. This isn't a new argument for those opposed to democracy even in America. At the Constitutional Convention, we had plenty of arguments like this:

> _Mr. GERRY. The evils we experience flow from the excess of democracy. The > people do not want virtue, but are the dupes of pretended patriots. In > Massts. it had been fully confirmed by experience that they are daily misled > into the most baneful measures and opinions by the false reports circulated > by designing men, and which no one on the spot can refute. One principal > evil arises from the want of due provision for those employed in the > administration of Governmt. It would seem to be a maxim of democracy to > starve the public servants. He mentioned the popular clamour in Massts. for > the reduction of salaries and the attack made on that of the Govr. though > secured by the spirit of the Constitution itself. He had he said been too > republican heretofore: he was still however republican, but had been taught > by experience the danger of the levilling spirit._

There's always something "new." Other commenters in this thread note that legacy media doesn't have these problems, but that's almost entirely due to the massive corporate consolidation of news media. Back in early America, newspapers were _much_ different and more democratic, in the sense that a much wider variety of views were available; many were extremely shrill, and "fake news" was a problem. Even then, people made the same arguments for shutting them down and censoring them, and briefly succeeded with the Sedition Act, which was heavily abused to arrest people who even criticized the President. Nevertheless when the Sedition Act expired with Adams' defeat and freedom of the press was restored, America did not collapse, but prospered.

Advocating for "fact control" of social media is tantamount to arguing that only the opinions and preferences of the elite are correct, and we actually _need_ corporate control of the media to make sure we don't stray from the right opinions. This is an okay view, I guess, but it doesn't fit in a liberal democracy. But don't pretend this is a "new" problem domain. We're just dressing up old arguments in new clothes because the Internet re-democratized the media, which has for decades been captured by government (mainstream media in the US has become very close to state-controlled media thanks to the way reporting works now and the prevalence of "anonymous officials") and corporate interests.

</comment></comment></comment></comment></comment><comment><USER6> If you prefer reading this as a single PDF document:

[https://publications.parliament.uk/pa/cm201719/cmselect/cmcu...](https://publications.parliament.uk/pa/cm201719/cmselect/cmcumeds/363/363.pdf)

(From: [https://www.parliament.uk/business/committees/committees- a-z...](https://www.parliament.uk/business/committees/committees-a-z/commons- select/digital-culture-media-and-sport- committee/inquiries/parliament-2017/fake-news-17-19/publications/))

</comment><comment><USER7> The use of the term 'algorithmic auditing' heralds a shift towards a more regulated environment for software engineering.

This means that web software development may end up looking more like software engineering in the healthcare, aerospace, nuclear and automotive industries.

Sadly, there is a real dearth of good open source tools for (e.g.) requirements engineering, configuration management etc... Most of the integrated PLM solutions that companies use to help meet regulatory requirements tend to be expensive, complex, and awkward to use.

I think that there is a significant future need here.

<comment><USER8> I thought clicks and eyeballs were the only requirements for "web software". Selling your users' data seems to be the only business model left out there.

</comment></comment><comment><USER9> The basic problem is astroturfing.

In politics if I create a bot network to artificially boost the more divisive tweets, over time the entire political network may become more polarized and toxic. And it would necessarily elevate fringe candidates who are most equipped to deal with chaos. Its absolutely fascinating that you can create a real world riot just through a simple algorithm over time.

And politics is probably small potatoes compared to the commercial applications. Imagine if you can make your product go viral, suppress all dissent and at the same time sabotage your opponent's user base. And all that for very little investment. That is an unbelievable competitive edge.

So, the question is how do you stop this?

The internet is designed for anonymity and is not easily traceable across national lines.

So, if a Chinese/Russian company is involved in massive botting, what can you even do, except hire them yourself to stop your opponents gaining an advantage.

I am struggling to see a solution or how government involvement doesnt make this problem worse.

<comment><USER10> What makes you think such political botting even exists?

This Parliamentary report is extremely dangerous because the politicians writing it themselves appear to be victims of fake news, namely, deliberately created fake news about political bots on social media.

I used to work on anti-botting at Google and got suspicious about this story when the Times started pushing the idea that academics had found hundreds of thousands of "bots" pushing pro-Brexit views and that this is why Leave had won. Although this thread is full of people asserting that nobody fact-checks the media, some people do, and I spent a while tracking down the sources of this story and analysing them. I wrote up the results here:

[https://blog.plan99.net/did-russian-bots-impact-brexit- ad66f...](https://blog.plan99.net/did-russian-bots-impact-brexit-ad66f08c014a)

I was quite shocked by what I found: the claims were based on an academic paper that was riddled with bad science and outright fraudulent claims.

Unfortunately the establishment very much wants to believe this narrative. After publishing this analysis I got in touch with the journalist at the Times who wrote the original article and let him know, but of course, nothing ever happened.

At the end of the article I wrote that the abuse these academics and journalists were engaging in was very dangerous because they were distorting the beliefs of politicians. We now see the results.

</comment></comment><comment><USER11> Media and social media have all but lost their reputations, or at least in my eyes anyway. Does anyone still believe anything they read on social/regular media?

Everything is either regurgitated clickbait or a vortex of hate inducing fluff piece. Eventually you just desensitise.

</comment><comment><USER12> Off-topic: Why is everyone adopting the term fake news, thus leaving a linguistic legacy of that illiterate mafiosi? He obviously used that neologism due to his limited vocabulary, and popularized it further as a buzzword of his campaign.

<comment><USER13> > Why is everyone adopting the term fake news, thus leaving a linguistic > legacy of that illiterate mafiosi?

He adopted it as a way of neutralizing it because other people were using it about propaganda supporting him that appeared, at the time, to follow what RAND Corp had earlier described as the "firehose of falsehoods" propaganda model employed in recent years by the Russian government (and with the benefit of hindsight appears to have been, in no small part, actual Russian government propaganda, which would explain it following that model.)

So, I guess there is a sense in which it connects to his legacy, but not the way you seem to think.

> He obviously used that neologism due to his limited vocabulary

Trump may be an idiot, but the people crafting his campaign messaging were not, and his use of "fake news" was much more careful than you suggest (and effective, as your own mistaken idea of how it came to be prominent in the 2016 campaign illustrates.)

<comment><USER12> >but the people crafting his campaign messaging were not

Yeah, many people would dispute that. In particular, you can't forget that he rarely followed scripts. His team definitely observed and measured what people and the press responded to, and brainstormed how it might benefit them in the future. But it certainly all started as what he could think of or remember best.

The success of campaign slogans and buzzword relies heavily on creativity, luck, and your own success. The work the campaign teams invest is usually more about damage control than profound strategies on how to rule society.

>So, I guess there is a sense in which it connects to his legacy, but not the way you seem to think.

What are You talking about?

Fake news had been a trivial phrase, used in different contexts throughout the years but without any grand emphasis on its own existence—hence the lack of an entry in dictionaries. Even throughout 2016, it had no explicit connection to Trump. Hillary also used it shortly before Trump famously called CNN out as fake news. [1] Even then the term was an unnecessarily misleading trivialization. But Trump redefined and weaponized that afterwards as his own catchphrase.

[1]: [https://edition.cnn.com/2016/12/08/politics/hillary- clinton-...](https://edition.cnn.com/2016/12/08/politics/hillary-clinton-fake- news-epidemic/index.html)</comment></comment></comment>


How we built Dojo Learning - part 3 - <AUTHOR> http://www.dojolearning.com/siteblog-post-action/id.34/title.how-we-built-dojo-learning-part-3

<comment><AUTHOR> This is the third part of a six-part blog post I wrote talking about how we built our startup, Dojo Learning, from my perspective as co-founder/lead developer.

This post talks about how to discover the root of a problem so you can solve that, instead of chasing symptoms of a deeper problem.</comment>


So You Signed A Term Sheet? You're Not Out Of The Woods Yet - <AUTHOR> http://jordancooper.wordpress.com/2010/03/27/so-you-signed-a-term-sheet-you%E2%80%99re-not-out-of-the-woods-yet/

<comment><USER3> _(p.s. i don't use spell check…deal with it)_

No link. No further explanation. Nothing for me to distinguish this from laziness or irrationality.

<comment><USER4> Yup. I started reading, found myriad writing errors and thought "who is this guy?" Found that sentence in the bio. Stopped reading altogether.

Why should I deal with it? That's your first impression? That you're arrogant and unhelpful? I really don't think I want advice from someone like that - <USER2> should I believe you know enough to give good advice if you can't even write properly?

<comment><AUTHOR> you shouldn't...go sign a term sheet with someone you can't trust to be reasonable in round 2 negotiations because I'm not a good speller... i love it when snarky people on hacker news diminish honest and candid advice through the criticism of inane points.

<comment><USER3> One could be a bad speller, but still be conscientious about editing and be civic-minded enough to use a spell checker. If someone doesn't mind decreasing the S/N ratio of the web by failing to do the above, one is free to make that choice. I wouldn't trust such a person.

(Exercise to the student: Does it logically follow that I _disagree_ with the advice? That's _another_ symptom right there.)

<comment><AUTHOR> best of luck in all your endeavors</comment></comment></comment></comment></comment>


Rackspace vs. EC2: Performance Analysis - <AUTHOR> http://www.thebitsource.com/2010/01/11/rackspace-cloud-servers-versus-amazon-ec2-performance-analysis/

<comment><USER2> I was wondering why the text read a great deal like a VNR (video new release).

The analysis may be "independent", but the fine print at the bottom of the article indicates that it was paid for by Rackspace.

<comment><USER3> Fine print: "The Bitsource conducted an independent, third-party performance analysis of Rackspace CloudServers and Amazon EC2 on behalf of Rackspace Inc. The results were not influenced in any way by Rackspace Inc. as presented using the methods in this analysis."

<comment><USER4> _The results were not influenced in any way by Rackspace Inc._

Yea. Right.

Rackspace just loves to pay for random pseudo-benchmarks. It's their way to give something back to the community. Or something.

</comment></comment></comment><comment><USER5> Compiling the linux kernel seems like a poor choice of test, since it is not a pure CPU activity and will perform a significant amount of I/O.

In addition, it doesn't seem like compiling the linux kernel requires very much RAM, so you get the most bang for your buck using a CS VM with only 256MB and the cost only goes up from there as you add more RAM that the test cannot benefit from.

(Edit: I would love whoever downmodded me to explain why I am wrong.)

<comment><USER6> its a decent enough test, mostly because most geeks out there have done it themselves, so you can get a good 'feel' for a machine by knowing how long it takes to compile the kernel.

its not perfect, and yeah, its kinda a geeky-benchmark, but it doesn't make it an invalid benchmark, as long as it was conducted correctly.

<comment><USER5> I consider myself a geek (and most of my friends would agree) but it's been 15 years since I last compiled the Linux kernel :)

That said, I wouldn't rule it out as a test because of that, but I do think that if you are going to compare 4 different RAM sizes of CS instances, and compare the costs of doing a job using those different sizes then you need to pick a job that is going to make use of the RAM. You can see from the results that there is a small (time) benefit moving from 256 to 512MB (but not enough to offset the increased costs) and virtually none above that.

</comment></comment></comment><comment><USER7> Crank curmudgeon review: Loses big points for including illegibly down- filtered graphs in the page. Either make them readable or make them links. Using fancy animations isn't an excuse for including 600x266 pixel unreadable blotches in your document.

<comment><USER8> All the graphs have links to full size versions and the size in the article itself is dictated by the site (since the side bar is clearly mandatory) So I don't quite no what your problem is.

<comment><USER7> I can't read them. What's the point to putting them there if I can't read them? Just include a link saying "Graph...". Why format a graph to be 1200 pixels wide, with small fonts even at that size, and then shrink it by a factor of two?

I mean, the inline images might as well be pictures of puppies for all the value they provide to the page.

Edit: I should add that if the size of the images is dictated by the site, then some attention might have been provided to including inline images designed to be used at that size. It's not like it's impossible to display this information in an 600-pixel-wide format...

</comment></comment></comment><comment><USER9> It seems from the article that they only tested local disks on EC2, not EBS. It would be nice to get a comparison with EBS included.

<comment><USER2> Agreed. EBS is really where the rubber meets the road in scaling web apps for EC2--esp. a de-normalized datastore.

<comment><USER4> Amen.

Rackspace knows that very well, wonder why they didn't tell the author to use EBS for the comparison. Oh wait, I might have an idea...

Anyways, as usual, don't trust any benchmark that you haven't faked yourself. This one, just like all other rackspace/ec2 comparisons that you see cropping up these days, was paid for by Rackspace and obviously tweaked to produce their desired outcome.

Ironically they even point out the flaw in their setup by showing how the CPUs on the EC2 instances are not fully utilized.

Guess what that means? It means the test was I/O bound.

I'd be curious to see the test repeated, but this time with a RAID10 over a couple EBS volumes. Not sure Rackspace will pay for _that_ one, though...

</comment></comment></comment><comment><USER10> In my own informal experience, running identical CPU-bound tasks on Rackspace and EC2, it's just a lot easier to get good performance on Rackspace.

Instance size on Rackspace does affect performance (as their FAQ explains), but it affects minimum guaranteed performance; there's bursting up to the capacity of the entire machine you have a slice of. I know there's something unsettling about relying on excess capacity, but in practice any Rackspace instance will tend to beat any but the most expensive EC2 instance in terms of raw CPU.

The sweet spot of EC2 really is offline processing where hundreds or thousands of machines are spun up by software. If you want to manually fire up a small but flexible number of fast Linux machines, I would recommend Rackspace.

</comment><comment><USER11> Who makes a living compiling a Linux kernel? Perhaps web comparison benchmarks weren't selected because they weren't favorable to Rackspace?

Do they feel their cloud offerings are inferior to Amazon's?

</comment><comment><USER12> This is probably a little better comparison of CPU performance between the difference platforms and a couple others: <http://journal.uggedal.com/vps- performance-comparison>

</comment><comment><USER13> It's nice to see an analysis that looks at more than just CPU. Disk I/O can be very important in some cases.

It's also nice to see the tests being done over a period of time, rather than a single day.</comment>


Why Spinlocks Are Bad On iOS - <AUTHOR> http://engineering.postmates.com/Spinlocks-Considered-Harmful-On-iOS/ <comment><USER2> > since threads spinning on a spinlock are always runnable, this means that if > there's enough high-QOS threads waiting on a lock held by a lower-QOS > thread, the thread that owns the lock will never execute.

Is this true? OSSpinLock (at least on OS X) calls thread_switch for 1ms every 1024 iterations (which as far as I understand is basically sleeping[1]). Presumably it's not runnable while it's sleeping?

After 100 * 1024 iterations it will also ask to be throttled to the lowest priority for 1ms, again with thread_switch.

[1] [http://web.mit.edu/darwin/src/modules/xnu/osfmk/man/thread_s...](http://web.mit.edu/darwin/src/modules/xnu/osfmk/man/thread_switch.html)

<comment><AUTHOR> I didn't go into OSSpinLock specifics because I didn't want the distraction. The naive spinlock shown in the post certainly is always runnable. OSSpinLock's behavior helps with priority inversions, but it doesn't solve the issue with QOS. If there's enough threads of a high QOS blocked on an OSSpinLock it can still livelock. Only truly unbounded backoff can solve that in all cases, but that can lead to high-QOS threads being delayed for a long time (according to the Apple engineer it could result in "tens of seconds" of delay, which is obviously not acceptable for a high-QOS thread).

<comment><USER3> Why not "just" fall back to a mutex after enough spinning? I guess this would require an extra branch in the unlocking function (to check whether there are threads blocked in the kernel that need to be woken up), but that doesn't sound too awful especially as the branch would very rarely be taken. (It would sort of break OSSpinLock's ABI though. Sort of.)

AKA an adaptive mutex.

<comment><AUTHOR> (rewritten after looking up Linux's adaptive mutex)

Assuming you mean something like [http://stackoverflow.com/a/25168942/582](http://stackoverflow.com/a/25168942/582), you basically need a full mutex anyway, so I'm not sure why you wouldn't just use a mutex directly. I don't think you can really implement this adaptive mutex in userland because you can't just use a spinlock + a mutex (you'd have to lock the mutex every time anyway, which defeats the point of having the spinlock) and syscalls are not considered public API (the kernel is allowed to change syscalls between versions, libc/libsystem is the only public API for them).

FWIW pthread mutexes were sped up 2-2.5x in "new OSs" to compensate for spinlocks being illegal ([https://twitter.com/catfish_man/status/676852111527706624](https://twitter.com/catfish_man/status/676852111527706624)).

<comment><USER4> > you'd have to lock the mutex every time anyway

I don't understand. Could you explain this in more detail?

In Linux, adaptive mutexes are implemented entirely in userspace with futex as the primitive syscall. This is because atomic CAS (cmpxchg, ldrex/strex, etc) suffices to ensure synchronization during the spinning.

<comment><AUTHOR> syscalls aren't public API on Darwin platforms (e.g. iOS, OS X). The only supported interface to syscalls is libc/libsystem. And I'm not aware of any equivalent to futex. So AFAIK there's no way to implement a userspace mutex that isn't just a wrapper around a system-provided mutex (e.g. pthread_mutex, or a serial libdispatch queue). And if you're wrapping pthread_mutex, adding a spinlock doesn't provide any benefit.

FWIW, libdispatch itself definitely uses Mach SPI. For example, skimming through the source, it calls thread_switch() using a non-public option (there's 3 non-public options to thread_switch now, two of which are intended for dealing with the QOS issues that my article talked about; the private os_lock_handoff_s that the objc runtime uses internally uses one called SWITCH_OPTION_OSLOCK_WAIT and libdispatch appears to use the other, SWITCH_OPTION_OSLOCK_DEPRESS, as well as the third option which was added just for libdispatch called SWITCH_OOPTION_DISPATCH_CONTENTION).

</comment></comment></comment></comment></comment></comment><comment><USER5> If a scheduler change breaks userland apps, that sounds like a scheduler bug to me... Any word on whether there is going to be a rollback/further scheduler changes to make spinlocks useful again?

<comment><AUTHOR> There will not. QOS was a very large and intentional change, and it's critical to getting great performance out of iOS and to make the fanless MacBook work at all.

In general, Apple has never encouraged anyone to use spinlocks, and as I mentioned at the end, as long as your critical section is really tiny and CPU- bound you're unlikely to actually have a problem in practice. Note that spinlocks have always had a problem with priority inversion (OSSpinLock's back-off algorithm is just to call syscall_thread_switch with a 1ms delay every 1024 iterations, which is not bad but doesn't solve all priority inversions anyway).

</comment></comment><comment><USER6> Honestly, naive spinlocks in a mobile OS just generally seem like a bad idea. You just aren't going to get great results.

<comment><USER7> Agreed. This is one of those areas that most mobile developers are better off with a little less rope to hang themselves.

The expression hurry up and wait comes to mind. I would rather have a thread sleeping while it waits for slightly less perceptual performance than a thread spinning and chewing through my battery because it's waiting as fast as it can.

</comment></comment><comment><USER8> The article suggests that new Macbook/OS X might be just as bad, but the linked twitter thread ([https://twitter.com/Catfish_Man/status/676851988596809728](https://twitter.com/Catfish_Man/status/676851988596809728)) makes the situation there sound rather less serious. The issue appears to be slow progress, rather than a total lack of it.

(I had the same problem years ago with somebody's spinlocks on Windows running on a single-CPU system; the obvious functions to yield a timeslice will yield only to a thread of equal or higher priority, meaning you can starve a lower- priority thread. But even when this happens, the lower-priority thread does get a timeslice eventually - which sounds like the OS X situation.)

</comment><comment><USER9> Great writeup. Brings me back to my OS class... fun times :)

</comment><comment><USER10> I wonder why they're writing a new KVO library, given that KVO is very awkward in Swift. Something like ReactiveCocoa's PropertyType/MutablePropertyType is a much safer approach.

</comment><comment><USER11> it seems to me spinlocks are fundamentally dangerous in user space because you cannot disable preemption in user space as you can in kernel space.

</comment><comment><USER12> Did Apple seriously silently change all programs to use what seems to be real- time scheduling?

That obviously breaks the whole system, spinlocks or not (threads doing long CPU-bound computations will block everything else).

<comment><USER13> No? Really? Seriously? See also pthread_spin_lock on your friendly neighborhood Linux box or other post-2001 POSIXy system.</comment></comment>


How to Read a Paper [pdf] - <AUTHOR> https://web.stanford.edu/class/ee384m/Handouts/HowtoReadPaper.pdf <comment><USER2> The paper says University of Waterloo?

Very useful as somebody who doesn't read papers very often though. I often get lost in the details in the first pass.

</comment><comment><USER3> [https://news.ycombinator.com/item?id=21979350](https://news.ycombinator.com/item?id=21979350)</comment>