Smart Guy Productivity Pitfalls (2013) - <AUTHOR> http://bookofhook.blogspot.com/2013/03/smart-guy-productivity-pitfalls.html <comment><USER3> I could not disagree more with this article's tactical advice (though the intention is great). If I could go back in time and tell myself anything when I first got into engineering it would be "Be sure to take at least 20% of your day to not code, but rather to think about / engage with / socialize with others. Do not optimize for personal output, you will help the system most by improving the system rather than executing 25% more. And you can't improve the system unless you learn the social graces, speak the lingo, are in a good mood, appear patient, and aren't counting all the seconds that are 'wasted' by these interactions"

<comment><USER4> No offense, but compare your GitHub profile to someone who "grinds" like [https://github.com/bketelsen](https://github.com/bketelsen). There is far too much confirmation bias in regards to work-life balance and ability to actually produce. As far as clichés go, I believe that "if you do what you love, then you don't work a day in your life" == productivity.

<comment><USER5> In what world do you live in where you can judge someone's productivity by a public github profile?

</comment></comment></comment><comment><USER6> I think a lot of this comes down to what you want in life.

In my experience, if you're a reasonably intelligent and experienced software engineer, and make some smart choices about where to focus your effort, you don't _need_ to put in much of that effort to live what most people would consider an enviable life. So you do that, become envied, get the validation, and feel generally pretty good about yourself.

But there is this nagging sensation that you could do more.

And it's true, and that's what this article talks about.

And underlying that, I think it's important to look at the tradeoffs, and make a conscious decision about your life goals. As awesome as Carmack is, I'll bet not many have sat down and thought about what it would be like to _be_ Carmack and not themselves.

Of course, the magic is figuring out how to get as many of the benefits with as few of the drawbacks.

<comment><USER7> To me, the article is more about the delusion of how productive some people think they are. It's one thing to know that you really put out 2-3 hours of good code and be satisfied with it. It's another to think I've worked 10 hours a day while being distracted by Slack and surfing the web.

The best take away for me is to have a good measure of productivity and I think 'pausing the CD is a great idea.'

<comment><USER8> There's another delusion around spending 20 hours on the wrong code and declaring success. You were efficient but not effective.

</comment></comment></comment><comment> d--b I often find myself slacking when I have to write code I am ashamed of.

Writing new stuff from scratch is fun, I have zero problem being motivated to code things that are hard or challenging. And I can keep focusing for a long time.

However, if my task is to shoehorn some code that I know to be crap into my project for x or y reason, oh boy, then I can drag my feet for a looooooooong time.

<comment><USER9> This. 100%! I find whenever I have a career crisis, or lack of motivation, it is because of this right here.

So much code no matter where you go will be something like this. You'll have to make something work even though all the code surrounding your feature is a dumpster fire that is so hard to predict, that you'll pull your hair our worrying about all the ways your feature will break.

When I get to build a new system from scratch? It's a breeze! I get thousands of times the amount of work done in the same amount of time.

<comment><USER10> So much irony here. Some other poor soul has to come along and procrastinate fixing your old code because you didn't want to and moved on to some other company.

<comment><USER9> True, but not a decision of my own making. I'm talking about times where I explicitly recommend a refactor to get things in good working order, but I'm forced by my manager to not do that, and instead get it done ASAP.

</comment></comment></comment></comment><comment><USER11> _I distinctly remember him saying "So if I get up to go to the bathroom, I pause the player".

You know what's pretty hardcore? Thinking that going to the bathroom is essentially the same as fucking off._

This seems like it might be one of those times when the person doing the speaking is being interpreted to say something he didn't mean to say.

The author seems to be coming from the direction of "count the time you weren't working as unproductive time in the day", while it's unclear from Carmack's statements (the subset referenced in the article, at least) whether he was considering that at all.

For an alternative perspective, consider that Carmack might have tracked the time he actively spent programming, and used that to measure commits or lines written/changed over time. He may not have minded the occasional interruption to clear his mind and reset. This changes the tone considerably, from one of "ruthlessly cut out 'unproductive' time" to something like "track your productivity when you're working to spot trends", and all it takes is looking at the situation from the other direction.

<comment><USER12> Not likely. Carmack did a write up of a recent vacation: [https://www.facebook.com/permalink.php?story_fbid=2110408722...](https://www.facebook.com/permalink.php?story_fbid=2110408722526967&id=100006735798590)

</comment></comment><comment><USER13> I am continuously grateful that twelve years ago after dropping out of college with a complete lack of focus I came back a year later and learned how to _actually_ work hard. Outside of food and bathroom breaks, if a problem demands it I can work for hours on end without breaking focus (and love it!). It's one reason that open office floor plans or a culture of interruption are absolute hell on my quality of life.

I've struggled at times though to figure out how to balance the need for off the cuff collaboration with teammates with the productivity that comes with isolation. I settled for what I estimate as a 40% loss at my last gig because it helped boost my teams' overall productivity and improved the quality of our product. Having thought about it recently, I believe my ideal would be some kind of on/off cycle. Say, two days a week either remote or "quiet time" at the office, and three days anything goes.

<comment><USER14> How did you learn to work hard without breaking focus?

<comment><USER13> I'd say it was an unintentional lesson in the merits of grit. When I went back to school my attitude towards my non-computer science courses did not change -- I still very much disliked them. However what did change was that I decided I was going to graduate no matter what. It didn't matter how I felt or how much I'd rather do something else, I was going to study and graduate.

And I did. And it was hard as hell. But I graduated and for the first time I really felt a sense of personal accomplishment. I hadn't finished college because someone told me I was supposed to, I did it because _I_ wanted to.

Once I left college and I got to work full-time in my field of choice this lesson paid dividends. When I have a problem I really enjoy trying to solve, the hours can melt away. When I have a problem I really don't want to solve, I can still sit down and force my way through it. And don't get me wrong, my brain still fights against me in those moments ("Hey guy, go check Hacker News or Reddit!"). But most of the time I am able to recognize when it is happening and reign it in as necessary.

</comment></comment></comment><comment><USER15> I really liked this article and it's eerie at how I had those same productivity issues and ended up doing things similar to Carmack to track productivity.

Carmack used the CD player tactic to track his productive time, but a few years ago I used a schedule. I charted out every minute of my life. Every single time I context switched, I wrote down what I just did previously and for how long.

After doing that for a bit you begin to realize just how fucked up you are when you see a daily recap of "checked HN 25 times, checked email 20 times, watched 2 hours of Youtube videos unrelated to your field" and you barely inched forward on whatever you're working towards.

I found real deadlines really helps me. I mean, I had my next video course idea in my head for almost 1 full year and I kept putting off doing work towards it because I was getting small wins doing other stuff which prevented me from even starting something new.

Then someone hired me for freelance work and it just so happens what he wanted done matched what I wanted to do in my course almost exactly. It took me literally 20 hours (3 solid "no messing around" work days) to write about 85% of the material I wanted to do in the course. There's a lot more than just writing source code to finish a course, but that was something I managed to put off for an entire year but nearly completed it in a few days.

I don't know why, but when someone pays me to do something I shift from being a sloth into a hyper focused productivity machine. I haven't found out how to harness that power without external motivators and I've been at this for about 20 years (I work for myself, so I don't have a boss paying me).

I used to think I was never so stupid to have some type of fear of success but deep down I'm constantly battling my inner self on the topic so I'm beginning to think that maybe I have serious issues around that.

<comment><USER16> No idea if this will work but an interesting motivational trick could be to put aside some of your money into a separate account and use it as a budget to "pay" yourself for tedious yet important tasks you want done.

<comment><USER15> I never thought of doing that, thanks. Is this something you've done in the past?

On its own I'm confident that won't work because it's not new money, but funnily enough I have a deeply rooted scarcity mindset (I constantly think I'll wake up one day and won't be able to generate another penny), so maybe it would work in the end if I gave myself a no strings attached "reward fund" for completing tasks.

Some type of weird permission to spend X amount per month on non-essentials. I currently live so below my means that it would probably be comical for most people as an outsider.

</comment></comment></comment><comment><USER17> I love this post for celebrating hard work.

It feels like so much Silicon Valley culture is focused on giving programmers distractions at the office that are not work, like foosball tables and ping pong.

I like the idea that the reward of work is satisgsction with the outcomes rather than non work recreational perks.

<comment><USER18> where I work, we have that kind of entertainment stuff in ludicrous quantity, but it's literally never used, except for the interns on Fridays evenings.

I see that more as decoration to make the place look cool

</comment></comment><comment><USER19> How to be productive in two steps:

1\. Use the right tool for the job - pen and paper when the idea is new in order to nail it down, then code later once all the obvious pitfalls have been ironed out on paper first. It's amazing how going through a few use cases can drastically speed up development time instead of just diving straight in.

2\. Think about maintenance - write clean code, keep it simple, and write tests (or at least write testable code).

This article seems to suggest that you should work all day, consider toilet breaks as non-productive, and skip over exercise if you don't get your work done. A great plan if you want to work yourself into an early grave.

</comment><comment> le-mark _If my coworkers were grinding through stuff that took them 20 hours, I 'd be all "I work smart, not hard" with accompanying snarky eye roll, and I'd assume I could bust through an equivalent work load in four hours and still look like a goddamn superhero.

And sometimes I could, so, hey, validation! _

This was me for a lot of years, then like the author I joined a really high performing team. Those guys (all men) cranked out a lot of code. I even told my wife, I wasn't sure if I could keep up. I really had to up my game, but I did find a lot of their code really wasn't the highest quality and they tended to write more code than they needed. I learned a lot from the situation, and every team since has been even more low performing. It makes it really easy to excel in the typical, Dilbert, Fortune 500 development team.

</comment><comment><USER20> A lot of people hate it but I actually find the daily standup a good motivator to help getting shit done. The desire to be able to report something the next day helps keep me focused.

<comment><USER21> I think the accountability is _why_ a lot of people hate it.

<comment><USER22> No, it's because you're being treated like a child and it's micro management. No-one should have to justify their job every single day.

<comment><USER21> The daily stand up concept was popularized by Scrum which is pretty opposed to micro management and treating people like children. Maybe it gets used that way in some companies practicing cargo cult agile but it's not the purpose.

I've been the person not liking the accountability in the past as I've struggled with very 'bursty' productivity and so the original article resonated with me. I've also come to appreciate the accountability as the parent commenter has.

<comment><USER22> SCRUM _is_ micro-management and treating people like children. That's the core of scrum.

The reality of scrum is so far divorced from its claims it's a joke. Scrum is anti-agile, the antithesis of every agile principle. It's managers micro- managing their staff.

Fundamentally it's process and tools over individuals and interactions.

<comment><USER21> Scrum doesn't even have managers and doesn't specify any particular tools so I'm not sure what you're basing these claims on. By "the reality of scrum" do you mean that the way it's actually practiced in some teams is "far divorced from its claims" (probably often true) or do you mean that the framework of scrum is inherently flawed even if practiced as designed? You haven't made a case for that.

</comment></comment></comment></comment></comment></comment><comment><USER23> The advice is not all bad. I certainly agree that slicing a problem into small, concrete steps that can be achieved in less than a day (and then less than an hour, and then in the next five minutes...) as one of the central skills a programmer needs to develop.

I think what is missing is the exploration of how thinking of ourselves as "smart guys" makes us _worse_ at our jobs. Intelligence isn't a substitute for being a good programmer. Churning out lots of useful, dependable, maintainable code involves a large body of acquired skills, habits and knowledge. When we pretend what matters is how "smart" we are, we get defensive when we get advice that we could do better, because "what, are you calling me dumb!?!!" We also blame other people's mistakes on their lack of intelligence, instead of considering how they could learn or how the system could change to better support them.

Study after study shows that a growth mindset leads to better outcomes: programming should embrace it.

</comment><comment><USER24> I tend to think all the time in a coding problem, even while eating, going to loo, sometimes even in dreams. There is no bigger problem solver than a walk off the cold white screen. So productivity cannot be really measured in keyboard time.

<comment><USER25> Oh yeah, Rich Hickey's famous: "hammock time"

<comment><USER26> I think there's a distinction to be made with stepping away from the keyboard and thinking idly about a problem while doing something else and what Hickey means by "hammock time", which is a more dedicated application of thought to the problem domain, analysis, and design. Both can be useful, but I think they're different.

</comment></comment></comment><comment><USER25> I've been writing code for long time. No tool or methodology has helped me to become more focused, organized, productive and predictable as Org-mode. I do not start a task without clocking in or starting new org-pomodoro cycle. I take notes whenever I encounter a problem, get an idea or discover something new. Every morning I read my notes from the previous day, check how I spent my time. I'm not the smartest developer in my team nor the most productive. However, without Emacs and org-mode I don't think I would be even working in the same team.

<comment><USER27> I'll second that. And before anyone asks, it doesn't have to be org mode (although org mode is the best tool I've used). I have approximated the same with markdown when I've been trying to show how to do it to people who don't like emacs.

One thing I'll say is that it might not be for everyone. I attempted to show several people how I use org mode to organise myself and quite a lot of people are uncomfortable organising themselves. They seem to get distracted when they think too much about what they are doing and have trouble maintaining their concentration. It is actually the opposite for me. If I don't have my notes, I'm off thinking about what I want to have for dinner, how to save the world, wondering why you can't make a hard cheese from yogurt, etc, etc. Speaking of which... time to go to work...

* - In case you were wondering, pizza, you can't but you can do your best to make it a bit better, and you need rennet to split the kappa casein from the casein micelles in order for the casein micelles to stick together using dissolved calcium and phosphate -- yogurt solidifies by reducing the pH to the point where the casein is at it's ioselectric point (pH ~4.6) and it can glob together (but never as tightly as if you remove the kappa casein).

</comment></comment><comment><USER28> Biggest take away here is that working hard pays off. Not a huge surprise, but it does seem like our industry has forgotten that. The increasing acceptance of allowing remote work is a contributing factor. Many remote people are great, but not everyone should be allowed to do it.

<comment><USER29> I've spent almost my whole career as a remote worker. You're definitely right that not everyone can handle it, but my experience is that most of the time, unproductive remote workers get cut much faster than their co-located counterparts.

We all know people who are allowed to coast solely because they're friendly with a lot of people in the office. Many employees depend heavily on this halo effect, and expect to be able to wink and nod their way out of what is sometimes _sickening_ incompetence -- and the kicker is that much of the time, this works well.

It's psychologically easier for people to trim non-productive remote workers because there is no physical absence to miss, and the people in the company are less likely to have a deep personal bond forged over years of lunch breaks and the like. It's a purer professional context, at least as far as our profession is concerned.

Declaring yourself a remote worker is a declaration that your work product stands on its own as a representation of the value you provide, and that you don't need to depend on niceties like "he tells really funny jokes by the water cooler" to stay employed.

</comment></comment><comment><USER30> Needs (2013) here. Bookofhook is a really good blog though!

<comment><USER31> I just subscribed to rss, then saw the last post was 2014 so I think is dead.

</comment></comment><comment><USER32> I started running RescueTime in the background on my work machine, and I like it as a reality check mechanism. It's not enforcing anything or firing off crazy alerts if I get off task, it just silently records. Then at the end of the day/week/whatever I can see how much of my time was productive vs unproductive.

<comment><USER33> I've been wondering if there is an open, light alternative to RescueTime for some time. I don't really need their graphics package- just output an excel sheet with the data, do only _some_ data crunching and leave the rest up to me.

</comment></comment><comment><USER34> My productivity hack is to disconnect from the Internet. Being extremely focused and isolated can mess me up if my work requires external feedback. I can go way off on the wrong tangent. But, if I know precisely what needs to be done, disconnecting is the way to go, for me.

</comment><comment><USER35> If you're struggling with scrolling on a desktop, use the desktop link:

[http://bookofhook.blogspot.pt/2013/03/smart-guy- productivity...](http://bookofhook.blogspot.pt/2013/03/smart-guy-productivity- pitfalls.html)

</comment><comment><USER36> I always work with a picture of my gravestone in front of me engraved with the immortal words "I wish I'd spent more time at the office"

You are old a long time. Don't waste your youth on stuff that will be forgotten by the end of next year.

</comment><comment><USER37> For anyone who is interested, here is a nice app for productivity boost - [https://www.rescuetime.com/](https://www.rescuetime.com/)

</comment><comment><USER38> This is a great article, that I think can also be useful from manager/supervisor point of view.

I think 'mechanical' solutions can also help. I have been lucky that over the years when I felt like "slacking" instead of news or media, I would read technically relevant articles, or discussions.

Speaking of which, harray for HN! Billing R&D for this comment.

</comment><comment><USER39> I would be coding now except that I'm travelling in Japan and have not figured out how to replicate my usual "visit Starbucks" pattern yet - they have cafes but not with power outlets, generally, so I have gathered that coming to one tends to mean phone or paper work only.

What I have noticed about my coding habits is that I need a cyclical approach. For a lot of features the task is in fact smaller than I think and just needs an initial direct attack. When it isn't, even if I know what has to be done additionally, I can usually add a stub in the right places and fill it in iteratively. Stubbing often breaks me out of experiencing friction.

This works up until the relevant code stops fitting in my head. Then productivity slows to a crawl and I'm far more likely to wander off. I don't have a direct solution for that. Rewriting the module in question sometimes works, but it seems to work best after I let the existing code "mature". The rewrite tries to preserve the inner parts while changing the context to unlock some more potential.

And there is a hard limit on what I can do before my brain shuts down. There is an aspect of training to it, and energy conservation too. Familiar problems are easy to spam out high quality solutions for - pages of code that just work on the first try. New ones need an R&D phase where the first few attempts reflect a shaky, uncertain approach. At a higher level of evolution - <USER2> edge cases, synchronization logic, and state to track - the code tends to require more activation energy, which compounds slowing productivity.

So I currently think explicit iteration might be key: when activation energy feels high, do maintenance work, and if you can't find low-hanging fruit then it might be the right time to do an architectural change(not rewriting the whole program, but changing up the menu of modules and dependencies to reflect current needs). This is especially true if the overall design goals changed along the way because it's hard to change course after you built the features. New designs = new modules.

All of this is a bit different from the work-ethic mode of the article, to which I would point to physical training as the model: You don't go all-out on your training every single day, unless you're a pro with trainers and a good drug regimen that can optimize the recovery time/progression ratio. A more reasonable goal is once or twice a week to push yourself on something you can track easily - lift numbers, time/energy, etc. The rest of the time all goes to recovery or a basic level of maintenance. Distractions during the day mostly reflect wanting to have recovery time, but not having it instituted in a fashion that would do so efficiently - nobody teaches brain work as a thing that needs any kind of rest and recovery period, but the fact of the matter is that making many precise decisions is tiring, high energy stuff. Lowering the precision to "only add stub code right now" is both lower latency and helps conserve energy. Likewise the tendency of code to progress from visual mockup(feature reports itself as working and maybe surfaces an interface but doesn't use the "real" data structures) towards an optimized algorithm reflects an approach of energy conservation.

</comment><comment><USER40> hm, i like a lot of the author's suggestions, but they're missing one big piece of context.

underachieving is a symptom of work input not correlating to pay output.

why work more if you don't get rewarded for it?

for the joy of work?

sure, but then you are getting taken advantage of because you are putting more effort in than the company is paying you out. if you notice jobs that rely on the "joy of work" to get people to do them like science and video game development, you will find that wages are fucking awful for the effort that is put in.

and let me share a secret: that is 100% of the time going to be the case no matter what you do. they don't hire you for your own benefit, they hire you for their benefit. you get the scraps, even if those scraps seem like a lot of money to you. do not be naive about this because ignorance is to your immense detriment.

but let's say someone wants to be promoted. you might have to work hard to get promoted (assuming your social skills aren't enough -- they're far, far more important than actual productivity/quality) but you still probably don't have to be busy 100% of the time. you just need to produce X% more quality or volume than the next best person. greater values of X might get you noticed and promoted sooner -- maybe.

that isn't even fully up to you, at the end of the day. hence why "underachieving" is the norm.

hard work is not correlated to getting paid.</comment>


What would you do if the internet was down for 24h - <AUTHOR> Has anyone thought about this ? Would this be something bad for you ? Is it that important to you ? What do you do when you're not online ? <comment><AUTHOR> I actually though about this question as a way to understand the real value that internet has these days. Since we're connected most of the time, it seems that internet is almost indispensable but i think that the quality of it is actually decreasing. I think the more users the internet has, the less quality information has because the racio of content vs quality since anyone posts anything these days. Also there's a big addiction because of the power that the internet brings (instant information at finger tips). I would go for a walk, watch a movie, listen to music or even go for a jog.

</comment><comment><USER2> I go to the gym. I pick up textbooks. I take a nap. I watch any of the DVDs at home. I play video games that don't require an internet connection.

It's pretty easy. I worked overseas for a year and was frequently without internet access for 2-3 days at a time.

</comment><comment><USER3> I'm an addict and that comes without saying. Though every weekend I only dial in late evening - still I would not feel comfortable knowing there is no internet available anywhere in the world :-)

</comment><comment><USER4> Apart from my EDA software all my compilers, datasheets and other stuff run local so I would probably get more done as there is no email or internet to distract me.

</comment><comment><USER5> Probably go down to a local college with a bag of popcorn. And maybe something to record it.

</comment><comment><USER6> I'd be extremely concerned as to what took it down and act accordingly.

<comment><AUTHOR> Really ? Does it affect you that much ? Addiction ?</comment></comment>


Working with HTML5 Notification API - <AUTHOR> http://mrbool.com/working-with-html5-notification-api/27224

<comment><AUTHOR> You are correct, for good number of Ajax and DOM events, the jQuery can be utilized, however the tutorial takes into account less events, that is why it is advised to use the other way round. (answered from the author)

</comment><comment><USER2> I'm not sure if I would rather use a jQuery (or something similar) plugin or this method to do notifications. It seems using a jQuery plugin would be easier if I already had lots of AJAX and DOM events going on.</comment>


How Bank of America sniped my domain - <AUTHOR> http://harshnisar.github.io/posts/me-vs-bankofamerica/ <comment><USER2> I always get a bit anxious when searching for a good domain because I think someone might be analyzing these queries and might reserve the name before me if they want to.

</comment><comment><USER3> I've heard similar stories from people trying to buy from GoDaddy.

<comment><AUTHOR> Is it? I came to the conclusion it was my Twitter and GH goofup.

How would GoDaddy directly benefit from this?

<comment><USER4> There's a lot of stories about people searching for a domain on GoDaddy, seeing a good deal - and by the time they fill out the information the domain is purchased. By who? By GoDaddy.

[http://antigodaddy.com/](http://antigodaddy.com/)

<comment><AUTHOR> But this one was bought by CSC Global which is a corporation in itself. Ofcourse, unless GoDaddy sells the information and has some sort of partnership with CSC.

Tbh, I think CSC's modus has to be murkier than just scanning the interweb for empty pointing domains and clues.

Edit: Shit, the horror. [http://antigodaddy.com](http://antigodaddy.com)</comment></comment></comment></comment>


Programmers and Sadomasochism - <AUTHOR> http://alumnit.ca/~apenwarr/log/?m=200902#22 <comment><USER3> I'm not sure who this author is, but it seems to me he's overlooking the enormous benefit that when a strict xml parser barfs on a file, it's immediately and unequivocally clear which party in a multi party business process is causing a problem and should fix things at their end.

If it weren't for xml, endless (and therefore costly) discussions would ensue instead.

Also, on the more technical side, a barfing xml parser saves you from having to spend hours hunting for subtle bugs introduced by a permissive parser that is permissive in ways no one really understands fully.

</comment><comment><USER4> Option 4

Bob produces invalid XML file and gives it to Avery. Avery's permissive parser that he wrote in an afternoon reads it MOSTLY fine, but gets a few things wrong. Avery goes on with his work not realizing some of the data is incorrect, and Bob doesn't need to pay a contractor.

</comment><comment><USER5> The premise is a basic misunderstanding of HTML.
 does not parse as HTML because HTML-parsers are pragmatic and obeys Postells law. It parses because it is syntactically correct HTML. HTML does not require quotes around attributes if the attribute values are alphanumeric.

But if you write syntactically incorrect HTML, like forgetting to match a quote (
) you _will_ have a problem. The parser will not show an error, but the following content may disappear. Worse, the result might be diffent in different browsers. In the one you test with, things render like you intended due to the browser-specific error recovery rules. In the browser used by most of your audience, everything on the page until the next quote (in a different tag further down the page) disappers without trace.

HTML is a more complex grammar than XML which makes it harder to implement correctly. XML OTOH was designed with the KISS-principle. Clearly some characters needs to be quoted - eg. equals-signs or whitespace in an attribute value simply cannot be parsed unambiguously. Rather than having rules about which characters require quotes (does an underscore in an attribute require quotes? Does a dot?) XML just requires quotes always.

The poster argues that a parser should be able to parse malformed input, since there might not be an easy way to get the producer to conform to the spec. This is a good point, but there is no simple solution, because invalid XML is by definition ambiguous. In many cases it is possible to guess what the producer intended, however it basically have to be decided on a case by case base. You can't write a parser that can parse random invalid XML and always reconstuct the data structure that the producer intended. This would require that the parser was able to read the mind of the producer, and if that was the case, XML would not be needed at all.

In HTML5 there is activity to define canonical parse rules for almost any kind of malformed input. This allows more interoperable parsers, but the price is an extremely large and complex specification. Note also that this does not automatically fix mistakes. An HTML author might forget one of the quotes around an attribute value; with HTML5 there might be an official correct parse for this case. However there is no guarantee that this parse is what the author intended. There is simply no fool-proof way to fix content bugs on the client side. Postells Law have clear limits.

</comment><comment><USER6> While the author does bring up a good point, I feel that he just skims the surface of the major drawbacks of a permissive parser:

1\. It is hell to write a new parser for convoluted standards.

2\. permissive parsers have to waste more CPU cycles trying to fix everything (admittedly this is not as big of a problem in the current day and age)

3\. Weak standards leads to badly coded pages. Badly coded pages generally have bad design. Badly designed pages don't help anyone.

4\. It drives the people who care crazy (Ok, maybe that's not a real reason :))

5\. I'm sure there are others I can't think of.

<comment><USER7> Lets face it, its always best to accept poor formats. If you write the program to handle it and clean it then your fine. If one program before it has a bug and forgets a quotations then instead of your whole system failing and you needing to go through a long process of testing debugging documenting releasing you save everyone time and money.

<comment><USER8> I disagree. Postel's Law can be harmful. It's nice in theory, and if everyone was "conservative in what [they] send" or "liberal in what [they] accept" in the _same_ way, it would work well.

But it's a slippery slope. If one implementation accepts some obscure edge case, and someone relies on it, from then on every implementation must go out of it's way to handle it in the same way. This leads to complex and bloated software.

<comment><USER7> You provide a good argument, but what I was trying to communicate was that the sender is still sending an standard format. The coder just makes a bug in his XML and instead of bringing down the whole house its handled.

<comment><USER9> XML isn't "this sort of thing with tags and attributes". It's a rigidly- specified format, and for any given series of bytes and an encoding, it either is or is not XML. If there's a "bug in his XML", it isn't XML anymore.

You can talk about what to do with this not-XML, but you can't just pretend it is XML. It isn't, because XML is not just this fuzzy thing, it's a very, very, _very_ specific thing.

</comment></comment></comment></comment></comment><comment><USER10> Why do we need to spell correctly? Why can't we use "u" for "you"? Why do we need to end sentences with periods? Why do we have to use the correct grammar?

1) It's simpler for humans to read. The purpose of XML was to be somewhat human readable and quotes help with that. 2) It makes possible for people to throw together a basic parser if for some reason they don't have access to the libraries (embedded, new language, etc) 3) Life would be a lot simpler if everyone followed the law (or specs).

</comment><comment><USER11> Mark Pilgrim did it better:

[1]: <http://diveintomark.org/archives/2004/01/08/postels-law>

[2]: [http://diveintomark.org/archives/2004/01/14/thought_experime...](http://diveintomark.org/archives/2004/01/14/thought_experiment)

<comment><USER12> Well, if you're going to play trump cards, <http://news.ycombinator.com/item?id=447086>.

</comment></comment><comment><USER13> There's another missing point here. Where is the line between "slightly broken xml" and "horribly broken xml, since they actually sent a csv file". I could argue that a csv file is simply really bad xml, why can't you parse it?

</comment><comment><USER14> Well, its exactly this mentality that got us the web as we have it today (for better or worse). Clearly there are upsides to all this (some of which are covered in this article), but there are also many real downsides that the author completely misses.

For starters, it is now prohibitively difficult to create a brand new browser from scratch because you have to check against the millions of existing pages on the web, instead of simply implementing a standard. This is also partially why the web moves so slowly: I can tell you first hand from working on a browser that a lot of time that could have been spent implementing new features is instead spent "making things work like IE". Thanks to this, we now have a web where valid things don't work (huge pieces of HTML 4 and CSS 3 are generally missing), while crazy invalid things do work. There is limited time to work on things, and it is generally considered more important to emulate someone else's bugs so that the user won't go back to IE than implement things that have been in the standard since forever. Essentially what we have is the Parser's Prisoner's Dilemma.

One of the key features in our product (280Slides's PPT import/export) would have probably not been possible had Microsoft decided to accept any willy nilly OOXML. But, since they only read strict versions of files, as long as we conform to the spec we will be able to open (and compete) with PowerPoint.

Of course, all this misses the main point, which is that all this is really about is humand-editable file formats vs program-editable file formats. Most file formats (.doc .rtf .psd .ppt etc etc) don't have these strange problems with accepting bad input, and that's because they aren't written by hand. HTML is very much a hand written language and thus requires this. Many times XML does not have this same constraint. A lot of time it is applications that are generating XML, and so it is not so ridiculous to expect for it to be correct. So a good rule of thumb should be whether you expect the incoming data to be "machine generated" or "human generated".

The end "side note" that rendering on the web is different SOLELY due to implementation details and not at all due to parsing is also just plain false. Browsers are designed to accept all forms of tag soup, and when you have a web page with all open tags and absolutely no closing tags, guess what, your guesses as to what on earth it means is probably going to be different than that of some other browsers', and it will lead to different rendering.

This brings us to a problem that actually hurts users: part of the reason I have to check against every browser when I make a web page instead of just one is that it is not enough to see whether something is correct in one browser, because that browser may just be "being nice" to me. So, since correct rendering is not a sign of correct HTML, I must now test every browser to see whether it renders correctly as well. Thanks to this, we get the introduction of even MORE technologies, such as "strict" rendering, so the standard becomes even more convoluted.

<comment><USER8> Agreed. Furthermore, there's a big difference between what HTML and XML are typically used for. HTML is usually used to present some data to a human. It doesn't matter _too_ much if it looks slightly different in different browsers as long as it conveys the same information. But XML is used for storing and exchanging data. If different consumers interpret ambiguous cases (such as missing closing tags) differently, that could be a huge problem.

</comment></comment><comment><USER15> There's also a security reason for attributes to be enclosed in quotes when we're talking about dynamic webpages. Avery's permissive parser might parse the page "correctly," including an additional maliciously injected attribute like onclick=sendcookie(), which wouldn't have been possible otherwise.

</comment><comment><USER16> Too bad we don't use s-expressions.

<comment><USER5> How would that fix the problem? If you receieve invalid s-espression data - e.g. with unmatched parantheses or an unmatched quotation sign - how would you parse it into the structure that the author intended?

<comment><USER17> It wouldn't fix the problem, but since sexps aren't so damned ugly you probably wouldn't see as many errors in the first place.

<comment><USER5> Here is xhtml for a link with mixed content:

       News for Hackers!

How would you suggest equivalent s-expression syntax that leads to fewer errors due to its beauty?

<comment><USER17> Every Lisp hacker has written their own version of XML as s-expressions. Here's one that actually has users other than its implementor: <http://okmij.org/ftp/Scheme/SXML.html>

That snippet would look like:

        (a (@ (href "http://news.ycombinator.com")) "News for" (b "Hackers") "!")

I'm an Emacs user, so paren-based navigation, highlighting of areas within matching parens, and concision because of the lack of closing tags wins for me. Maybe for somebody using MS Notepad it wouldn't be so great, since they don't have paren-based editing features so closing tags may actually be useful.

The snippet you showed is so small that XML's verbosity doesn't become a problem, so it doesn't really matter in this case.

<comment><USER5> I honestly dont understand why you think the sexpr syntax will lead to fewer errors? The syntax is just as complex, and there seem to be plenty of quote signs and nested parentheses to forget or mismatch.

Of course I don't doubt that _you_ are able to write syntactically correct sexprs with the help of Emacs. A great number of tools (including Emacs I'm pretty sure) can help you the same way with XML. But for whatever reason - buggy software, bad editors, uneducated developers - invalid XML still happen. Why do you think substituting pointy brackets with rounded ones will change that?

<comment><USER17> >I honestly dont understand why you think the sexpr syntax will lead to fewer errors?

I already backed off on the strong version of the claim - that s-expressions would lead to fewer errors in general for the average person writing XML - <USER2> I still prefer s-expressions because as a Scheme programmer I am accustomed to using sexps and I find them cleaner and easier to us. People who don't use or don't like Scheme or Lisp probably wouldn't feel the same way. It would probably be harder to use sexprs in MS Notepad, like I said. Maybe even in vim.

>The syntax is just as complex, and there seem to be plenty of quote signs and nested parentheses to forget or mismatch.

Any decent text editor will highlight strings, so it will be difficult to mismatch quotes. In Emacs, I like paredit-mode, which inserts a closing paren every time you enter an opening paren, so you always have a balanced number of parentheses. Combined with editor features that highlight whichever s-expression the cursor is in, and auto-indentation which sticks out like a sore thumb if you make a mistake, it's rare to mismatch parentheses and easy to fix if you do.

I'm aware that there are Emacs modes for editing XML, and I tried them, but I still found it worthwhile to write in SXML and then convert to XML, because it's just cleaner and easier. Partly this is just because you use the same editor mode for editing an s-expression-based XML-alike as you would use to edit code, so the commands are already wired into your spinal reflexes, and bound to the most convenient keys. But it's also less verbose when you get rid of all the closing tags and half of the brackets, so you can see more of the data at a time.

Also, if you're using an s-expression based language (and I know most people aren't), it's convenient to use a data format which is simply part of your language itself.

Of course, YMMV. If you're using, say, Python, you might prefer to use something like looks like Python's dictionary syntax (JSON?). I don't really know what Python programmers do. But I do know that there's a reason that there are a jillion XML-knockoffs with different syntaxes - XML is friggin ugly.

</comment></comment></comment></comment></comment></comment></comment><comment><USER18> I dont really understand this argument, 1

1\.
Hello, world!
 is not easier for end users than
Hello, world!
, I would say its harder

2\. a tool can tell the end user that the former is right, if you depend on a variation of permissive parsers, you cant be told wether it will be accepted.

3\. end users shouldnt be using any of these, they should really be tool generated.

</comment><comment><USER19> Programmers think in terms of what is RIGHT and WRONG.

MBAs think in terms of PRIORITIES.

<comment><USER20> MBAs should think in terms of firing the programmer who writes his own XML parser or generator, or uses a language _lacking_ a mature XML library for production work.

Really, who in their right mind uses a homebrew XML parser for anything that matters? And that point just blows away the article's entire argument, at least with respect to XML.

</comment></comment><comment><USER21> I wish someone had invented YAML before SGML existed.

Then maybe we wouldn't have this problem.

<comment><USER22> SGML actually has some really nice properties explicitly designed to better handle parsing invalid files. The redundant close tags, for example, allow this is bold and italic but not bold \-- these sorts of errors are made by people and it was a goal to handle those sorts of situations. Whether or not that was a good goal? Well, I guess that's part of this debate.</comment></comment>


Ask HN: Books to learn advanced C programming - <AUTHOR> Hello,
I've recently been doing a lot of systems programming and low-level stuff. I'm hacking away on MIT's xv6 kernel for my OS course. I want to improve my C skills, and want to learn the limits of what can be done with C, the preprocessor etc. I'd be really grateful if some one could direct me to resources that would help me out in this regard.
I want to basically learn how to write robust, readable and production-quality C which doesn't crash to a segfault.
Also, is there a oft-used style guide for writing error-handling code in C?
Thank you. <comment><USER2> For good practices in writing high-reliability C, look at these:

[http://lars-lab.jpl.nasa.gov/JPL_Coding_Standard_C.pdf](http://lars- lab.jpl.nasa.gov/JPL_Coding_Standard_C.pdf)

[http://www.leshatton.org/MISRA_comp_1105.html](http://www.leshatton.org/MISRA_comp_1105.html)

[http://www.leshatton.org/ISOC_subset1103.html](http://www.leshatton.org/ISOC_subset1103.html)

[http://www.embedded.com/electronics-blogs/embedded- systems-d...](http://www.embedded.com/electronics-blogs/embedded-systems- design-magazine-archive/4216555/Embedded-Systems-Design--May-2011)

For the related topic of secure code, these books are good:

Mark Dowd. 2006. The Art of Software Security Assessment.

Robert Seacord. 2013. Secure Coding in C and C++, 2e.

For details on what is really going on inside C:

Paul Anderson. 1998. Advanced C: Tips and Techniques.

Kenneth Louden. 1997. Compiler Construction: Principles and Practice. Chapter 7.

For C gotchas and general good practices:

[http://www.cs.tufts.edu/comp/40/reference/CTrapsAndPitfalls....](http://www.cs.tufts.edu/comp/40/reference/CTrapsAndPitfalls.pdf)

Allen Holub. 1995. Enough Rope to Shoot Yourself in the Foot.

P.J. Plauger. 1991. The Standard C Library. (It is partly a reference, but also has detailed discussion of the technical considerations faced in writing reliable code.)

<comment><USER3> This is a good list. Reading and learning about the embedded world can help anyone grasp recovery and error handling techniques. Also, in C a solid understanding of errno and how to properly utilize it is important.

Also, at least personally, I stick to 3 key basic rules in C/C++ (I have a lot more, but these are important):

      1. Functions should do 1 thing and only 1 thing.  The minute a function tries to do 2 or 3 things, or it goes over 50-60 lines (with a few exceptions around conditionals) it is trying to do to much.

      2. Check all parameters for validity before doing anything else in the function.

      3. Check all return values.

Really solid and reliable code is usually way less complex then what you see in a lot of code bases. That doesn't mean it isn't a super complex problem getting solved, just that the reliability is gained by having simplicity at the lowest levels. As someone mentioned Doom is a good example of a solid code base that does some pretty complex things, but cleanly and simply overall.

</comment></comment><comment><USER4> I suggest C Interfaces and Implementations: Techniques for Creating Reusable Software by David Hanson.[1] It focuses on helpful engineering practices for reliably and efficiently implementing algorithms in C.

I also second the recommendation for Peter van der Linden's Expert C Programming for its masterful treatment of how C really functions, including the surprisingly frequent areas in which real-world constructs produce "undefined behavior" from the perspective of the C standard.

[1] [http://www.amazon.com/Interfaces-Implementations- Techniques-...](http://www.amazon.com/Interfaces-Implementations-Techniques- Creating-Reusable/dp/0201498413)

</comment><comment><USER5> "Deep C Secrets" is quite good.

[http://www.amazon.com/Expert-Programming-Peter-van- Linden/dp...](http://www.amazon.com/Expert-Programming-Peter-van- Linden/dp/0131774298)

</comment><comment><USER6> Of course there is the C programming language k&r and also Expert C programming which kind of cool also, but if you want to make really great software and write great code, then your only is not books but real OSS, go write some small project, improve it, present it to community and have it criticized , and so on in a loop, look for big projects source and learn from them, one fairly interesting project is radare2[1], it's a really cool project, please feel free to choose but look at projects already made and try to understand, you will learn a bunch from doing that.

[1] [https://github.com/radare/radare2](https://github.com/radare/radare2)

</comment><comment><USER7> Since it has yet to be mentioned yet, I'll suggest Modern C by Jens Gustadt [1]. The book itself starts from basics and works up, but I found it to be much more reliable and filled with more practical advice than the common K&R recommendation. Section / Level 4 is not quite in it's final form yet; however the book is mostly complete and gives a lot to think about. I suggest working through it, even if you skip the first few levels because of your base knowledge.

[1] [http://icube-icps.unistra.fr/img_auth.php/d/db/ModernC.pdf](http://icube- icps.unistra.fr/img_auth.php/d/db/ModernC.pdf)

</comment><comment><USER8> Expert C Programming: Deep C Secrets bu Peter Van Der Linden is a classic and must see.( __ _Highly recommended_ __)

C Interfaces and Implementations: Techniques for Creating Reusable Software by David R Handon is another must check out.

</comment><comment><USER9> Start writing every project, except web projects in C. You'll be an expert in a few years. You'll get really good at string handling. You'll start to "think in bytes".

</comment><comment><USER10> _Write Portable Code_ by Brian Hook is excellent. Under the guise of teaching the writing of portable code, he teaches you to write good code, just as you describe.

</comment><comment><USER11> The comp C faq is a good place once you have a little bit of C experience.

[http://c-faq.com/](http://c-faq.com/)

</comment><comment><USER12> this isnt a book...but i've heard the doom source code is quite good.

<comment><USER13> Certainly reading a lot of good C code is a part of this; for me, reading the predecessor _Lions ' Commentary on UNIX 6th Edition, with Source Code_ ([https://en.wikipedia.org/wiki/Lions%27_Commentary_on_UNIX_6t...](https://en.wikipedia.org/wiki/Lions%27_Commentary_on_UNIX_6th_Edition,_with_Source_Code)) was a key part of my learning serious C in the early '90s.

Plus of course hacking on programs, most often various ersatz Emacs versions that would run on a PDP-11. I.e. something I _really_ wanted to get working to my satisfaction.</comment></comment>


Ask HN: Hacker/Startup Living Spaces in NYC? - <AUTHOR>

I'm hoping to find out about any communities, hacker houses, or the like that have space for startup founders trying to live very minimally in NYC while working on their startup. Any leads are much appreciated! <comment><USER2> I don't know about any living spaces. I am aware of a hacker space (Brooklyn Resistor), community art space (3rd Ward), and some shared office spaces full of tech entrepreneurs (BetaWorks and General Assembly). Hope this helps.</comment>


Stanford Research on Happiness and Meaning - <AUTHOR> I'm currently taking a class from Prof. Jennifer Aaker at Stanford GSB. She's known for research on happiness - quite a profound topic. Here are some findings I thought are interesting:
50% of it is determined by birt or genetics. Circumstances such as marital status, earnings, and looks determine 10%, and the remainder comes from intentional activities or things we can do to change our happiness level.
Researchers postulate that each individual has a "set point" for happiness, which is largely determined by birth and genes. Deviations from that point tend to be short-lived.
How does money affect happiness? Once people are free from deprivation, the tie between money and happiness begins to fray. There's generally positive correlation but money yields diminishing returns.
Middle-class and affluent people are often stuck on a "hedonic treadmill" as they sacrifice personal relationships for diminishing returns.
They why do people pursue wealth? Psychologists argue that they are seeking "positional advantage." Most people are happy with less money on one condition - "everyone else is also making less."
In contrast, traits such as self-confidence and energy correlated with happiness.
What can we do to be happier?
(1) Time shift: First how many hours of deep, hard thinking do you get done each day?
(2) Work on projects you LOVE (not like): It releases happiness in your brain! People become more effective when the brain releases endorphines!
(3) Reframe expectations: An example: http://bit.ly/LouisCK10 People take technology for granted today and forget about the very recent past. Lowering expectations brings happiness. Take yourself less seriously.
(4) Create a reward system: Rewards make people happy. Try to create rewards, even small ones.
(5) Carve out clear areas of incompetence: Claim areas of incompetence! Admit it.
(6) Cultivate emotion contagion
(7) Create sticky memories: the "who" and "what" are important. Research (in the US) has also found that morning and night memories are stickier, as well as Christmas - the most memorable holiday. A few tips: "Perceived" free time is important! Social skills: Typically there are 8 close committed relationships. family, close friends, siblings, partners, etc. Dancing: makes people happy! Volunteering: People who report time and money report greater well-being!
Being Part of SOmething Bigger Not money! you just need enough money to live happily. Research also found that spending money on your friends and people you care actually makes you happier.
(8) Improve sense of humor!
She also discussed the "Six Selves Model": friends, parent, partner, work, community/spirituality, and health, which are the foundations of personal happiness. Try to allocate time over these different areas. Although you can be very busy, identify "temporal sweetspots". Allocate quality attention to each spot, even if it's temporal. She further suggested listing favorite traditions to build habits. <comment><USER2> This is the kind of 80-20 knowledge compression that I love seeing on HN and in general. Even if it's not completely new information, it quickly informs me on at least one good view on an important and largely overlooked issue. Now I can at least be well-armed for my google searches, without having to give up a (perceived) large chunk of time in reading a 10 page article or 20 minute TED talk.

</comment><comment><USER3> I noticed the following characteristic about one friend who always sounded cheery.

When things go wrong (and there's often 1001 ways things go wrong, and 1 way where they go right) - We often slap ourselves and say "It could have been better if.."

However, I noticed my friend tend to think along these lines - "It could have been much worse, but that didn't happen. Somehow we got through it."

What doesn't kill you, make you stronger anyway.

<comment><USER4> That's the way of thinking described in "How to make yourself happier in just a few seconds" <http://news.ycombinator.com/item?id=1152224>

</comment></comment><comment><USER5> I recommend reading up on behavioral economics, particularly the works of Amos Tversky, Daniel Kahnemann, and Dick Thaler. This is not pop psychology with truthiness like "money doesn't buy happiness" and "meditation is the way." Rather, it's well-researched works on happiness, fairness, and economics. Start with this great TED talk: <http://blog.ted.com/2010/03/the_riddle_of_e.php> and then consider Thaler's book "Nudge". You can also look at it from a marketer's perspective by looking up Rory Sutherland, starting with his TED talk <http://blog.ted.com/2009/07/session_2_runni_6.php>

</comment><comment><AUTHOR> It's great to see so many people are interested in this topic. To provide more color on some of the points above, here're some more details from research findings (most are direct quotes from her research article): How to reduce unhappiness? Overthinking can actually worsen sadness and make it harder to escape unhappiness. In ruminating, we just become stuck with our feelings. What do you do? Learn to disenage from overthinking about both major and minor negative experiences. Go for a walk, read, call a friend, etc. Or find distraction by thinking about something else. Thirdly, compartmentalize your feelings. Talking also helps you get over unhappiness. Often, shift thinking can help. That's also where meditation comes in. Socializing, exercising more and losing weight are more effective than watching TV. Someone asked why does deep, hard thinking make one happy? Research has found that "flow" often makes time seem to stand still. There's a strong correlation between the experience of flow in your brain and enduring levels of happiness. We experience flow when there's a good match between our strengths and the task we are engaged upon. A holistic view of life is critical to an ongoing level of happiness and meaning. Thinking of our lives holistically, as interconnected and overlapping domains, creates the possibility of multiplier effects. Finally, what's the impact of happiness to doing good business? Making your customers happy and your employees happy are crucial to building a strong business. Fostering a community and encouraging community services or charity are some ways to achieve so. Having a higher mission than pure profit pursuits has also been proven to make employees happier and businesses successful.

</comment><comment><USER6> _(5) Carve out clear areas of incompetence: Claim areas of incompetence! Admit it._

what?

<comment><USER7> Maybe a different way to say - "Accept who you are"?

<comment><USER8> I think it is more than just "accepting yourself". I have found that one of the best things I can do to convince people I am competent is to know those things I should not give opinions about because I just don't have adequate information. Admitting "I have no experience with that" (or some similar limitation) tells people that I am not simply being willfully unhelpful but, instead, I am trying to avoid giving bad advice. An awful lot of smart, educated people fall victim to the feeling that they _must_ have an opinion or answer on anything that comes up and get themselves in a pickle by then saying something really ill-informed. Knowing when to say "I simply can't help you with that because I lack adequate knowledge/skill/experience" is relatively rarely done and is psychologically powerful. I used to think it gave an illusion of greater competence than what you actually possess, but perhaps it works in part because "do no harm" genuinely provides superior quality than willy-nilly running around trying to work on things you aren't really qualified to do properly.

</comment></comment></comment><comment><USER9> For anyone else like me who wanted to know what emotion contagion is (#6 Cultivate emotion contagion), from Wikipedia:

\-- Emotional contagion is the tendency to catch and feel emotions that are similar to and influenced by those of others. One view developed by John Cacioppo of the underlying mechanism is that it represents a tendency to automatically mimic and synchronize facial expressions, vocalizations, postures, and movements with those of another person and, consequently, to converge emotionally.[1] A broader definition of the phenomenon was suggested by Sigal G. Barsade—"a process in which a person or group influences the emotions or behavior of another person or group through the conscious or unconscious induction of emotion states and behavioral attitudes". \--

More here: <http://en.wikipedia.org/wiki/Emotional_contagion>

</comment><comment><USER10> Thanks a lot for this. Very interesting list of actionable points.

</comment><comment><USER11> If you're at all interested in this stuff check out Stumbling on Happiness by Harvard psychologist Daniel Gilbert <http://bit.ly/cfze2u>. For a preview, here's his Ted Talk: <http://bit.ly/bRAkXW>

</comment><comment><USER12> I've found that intensive practice of meditation over the last 3 years including both a daily practice and going on more extended retreats has fundamentally shifted the way in which I perceive and engage with moment to moment experience which has in turn steadily raised my baseline level of happiness.

I fully understand this is subjective anecdotal data and that it's quite possible I'm fooling myself though I don't believe I am. I've heard similar reports from others who have engaged deeply with various contemplative practices.

<comment><USER13> Do you fully subscribe to the notion of pure meditation, in that you should feel neither good nor bad? Once I understood what it meant to fully meditate; give up desires to love, build stuff I have a passion for, tackle challenging problems, I found that the proposed benefits of feeling not bad just didn't seem to weigh out.

<comment><USER12> A notion of pure meditation doesn't have much meaning for me. It just sounds like someones attempt to take an extremely broad and varied set of useful practices and overly simplify in an effort to assert internally or externally that there is one right/best/pure/perfect way of doing something. I don't subscribe to that view. Like programming languages or frameworks or methodologies or any other set of maps and techniques they have their various levels of usefulness depending on person and circumstance.

Also, the idea of giving up desire, passion and things of this nature is often misunderstood. It is not necessary to give up ones humanity, emotions, loves or anything else. It's more about changing the way in which you perceive and engage with all experiences of life. It's not like I've stopped feeling bad. I feel bad plenty. It's more that feeling bad (and feeling good) is experienced in a very different way.

</comment></comment></comment><comment><USER14> _50% of it is determined by birt or genetics._

But this is a misinterpretation of what broad heritability shows.

<http://news.ycombinator.com/item?id=838534>

In other words, it may be that there are environmental interventions that can HUGELY influence happiness that just haven't been tried yet. Better understanding of the development of happiness over the course of life, a line of research evidently being pursued by your professor, may eventually show what some of those interventions are.

<comment><USER15> Agreed. I believe that "50% of it" is UN-determined. Genetics undoubtedly play a role, but environment (development, interventions, etc.) dually play a role.

The problem is that environment and its interventions can be a difficult variable to tie down in studies. Good call.

</comment></comment><comment><AUTHOR> One more note: Working for a larger purpose creates happiness and meaning. This is why volunteer activities, caring for your family and friends, supporting a charity, or working to live up to your moral principals all feel so good. Ultimately, we all seek a continuing experience. We thrive on feeling that we matter, and that what we do matters. We also experience meaning when we have a sense of "congruence and coherence" between who we are and what we do.

</comment><comment><USER16> For me it's quite simple, really:

\- think about the pleasant things in the past,

\- focus on the nice experiences and senses in the present,

\- and look forward to great things in the future.

</comment><comment><USER17> I wonder how thinking deep and hard for a few hours a day makes you a happier person, anyone ideas?

<comment><USER18> Thinking hurts. Your body releases endorphins to deal with the pain.

</comment></comment><comment><USER19> I appreciate it. This is great stuff.

It would be even better if you made it a blog post. Grey-on-white is hard to read.

Thanks! Great stuff!

<comment><USER20> It wouldn't be better at all. What made it so great was it went straight to the point without filling with the random-bullshit-to-make-it-longer many blog posts have.

<comment><USER19> My point is that it's annoying to read #828282 on #F6F6EF. It's unpleasant contrast.

<comment><USER21> Control+Option+Command+8</comment></comment></comment></comment>


Pipelines – A faster lower allocation stream stack for .NET - <AUTHOR> https://cetus.io/tim/Part-2-pipelines/ <comment><AUTHOR> Wielded for ALPN/TLS (SSL) and... HTTP2</comment>


A Farewell to Bing Cashback - <AUTHOR> http://www.bing.com/community/blogs/search/archive/2010/06/04/a-farewell-to-bing-cashback.aspx <comment><USER2> Looks like giving away money to get search traffic isn't a viable business model... whodathunkit?

Seriously, the really funny thing about BCB was doing my Christmas shopping last year. I never use Bing, except when I found out I could get 15% cash back for buying a laptop for my father-in-law through them. I got $75 cash (60 days later) and Bing got screwed... The only search traffic they got was FatWallet forum members clicking through to get their free money.

<comment><USER3> The huge newegg deal (was that Christmas?) was unbelievable. After deals/coupons/cashback I got a (low-budget but nice) 24 inch Samsung 1080p monitor for 170 USD (the cheapest 24" monitor on newegg now is 205 USD), and my friend spent about 1800 USD and thus got considerable cashback. Clearly that money was just straight from Microsoft's coffers, and I never once visited Bing (I learned of it from newegg's facebook page).

</comment></comment><comment><USER4> Yea it seemed ridiculously flawed. At one point they were offering 30% off whatever you bought on ebay, and I had Microsoft pay me $200 to get a new Macbook.

<comment><USER5> I got $150 off of a camera bought through eBay b/c of Bing. I can't imagine how they ever thought that made business sense.

</comment></comment><comment><USER6> I know of some people who were buying gold ounces at under spot once BCB was factored in.

</comment><comment><USER7> BCB is still alive and kicking until July 30th at 9:00 pm PST. Buy away fellow HNers.

</comment><comment><USER8> MS purchased www.JellyFish.com for $50M which became cash back live. Here is a post from the Jelly Fish founder a few months back of how Cash Back is working for MS: [http://flywheelblog.com/2009/05/why-microsoft-cashback-is- wo...](http://flywheelblog.com/2009/05/why-microsoft-cashback-is-working/)

I actually bought into it. It seemed like it was working.

</comment><comment><USER9> I never understood why microsoft doesn't roll out it's own adsense+adwords. It only makes sense to do it with bing.

<comment><USER10> I remember using Microsoft ClickTrade back in 1999 or so. It was actually quite reasonable then. It wasn't contextual like adsense, you had to choose your ads manually, but it worked ok enough. Then they shut it down.

<comment><USER11> All the CPC networks of the day shut down. Those that are still around dropped that pricing model in favor of CPA or CPM. The main problem was fraud. The companies weren't as sophisticated back then to be able to deal with click fraud like Google and Microsoft do now. It's still a challenge.

</comment></comment></comment><comment><USER12> > Shopping remains one of the most important tasks people engage in while > using search

Translation: shopping remains one of the most easily-monetized tasks people engage in while using search.

</comment><comment><USER13> Looks like a great way to burn through 50Million in 2 years:

<http://en.wikipedia.org/wiki/Jellyfish.com>

</comment><comment><USER14> Thanks for posting this. I was considering integrating BCB into my marketplace, but now I'm glad I procrastinated.

Guess it's just Google Product Search from now on out. I hate being so dependent on GOOG, but they've been good to me so far.

</comment><comment><USER15> The only time I use Bing is for Cashback. I guess I should have done some Googling with Bing while I was there, too. Oh well, it was good while it lasted.

</comment><comment><USER16> Another epic MS failure. They should just rename the company "XBox"

</comment><comment><USER17> Just like XBox business, Bing is also another loss leader for Microsoft. Obviously Microsoft would do anything to get market share since they have a gigantor war-chest. A year later with all the cheers from its usual supporters, Bing managed to get "some" increase on traffic. Well, I wonder how much of those are directly coming from Facebook search which Microsoft has a lot of stake in.

<comment><USER18> Are you sure the Xbox business is a loss leader?

<http://www.reuters.com/article/idUSTRE64R63P20100528>

 _The entertainment business is in a stronger position, providing most, if not all, of the $851 million operating profit the [entertainment and devices unit] made in the first nine months of Microsoft's current fiscal year._

<comment><USER19> Originally the Xbox console itself was a loss-leader, with the games being sold to make back the money.

Now, I'm not so sure if that would still be true given that they must have made back their initial manufacturing investments by now...</comment></comment></comment>


Amazon reopen wiped Kindle account - <AUTHOR> http://translate.google.com/translate?sl=no&tl=en&js=n&prev=_t&hl=no&ie=UTF-8&layout=2&eotf=1&u=http%3A%2F%2Fwww.nrk.no%2Fkultur-og-underholdning%2F1.8368487&act=url <comment><USER2> This is a good outcome and something that should probably be enshrined in law: if you've purchased ebooks (or in fact any digital media) then you should absolutely have access to it regardless of the state of your account. The only time this shouldn't apply (IMHO) is when the payment itself is in question (eg you used a credit card that got reported stolen so any items bought on suspect transactions may be suspended pending investigation).

It shouldn't surprise me that some give credence to conspiracy theories but it does. Amazon panicked and reversed itself because a story about removing DRM was on the front page of HN? Seriously?

What you'll find with customer service departments is that what they do is largely prescribed by scripts. Call centers work like this (to the point of there being checking to see that people don't deviate from the script). They will have procedures that must be followed.

The Mark Fiore example [1] springs to mind. Some saw some global conspiracy. The more likely explanation is that the procedures defined for those approving apps just hadn't taken such a scenario into account when being written ie it was an oversight (a "mistake" as Steve Jobs called it).

We're all too willing to accept bugs in software. Procedures that humans need to follow--particularly if they need to follow them rigidly--have bugs too. The more discretion you give those following the procedures, the more you tend to just add inconsistency.

[1]: [http://mediadecoder.blogs.nytimes.com/2010/04/20/pulitzer- wi...](http://mediadecoder.blogs.nytimes.com/2010/04/20/pulitzer-winners-app- is-approved-finally-by-apple/)

EDIT: to clarify, I think the original story getting as much of an audience as it did certainly helped and may well have been instrumental. It's kind of sad that that's the case. I was referring to some commenters putting forward theories about the DRM removal story being the catalyst for action here, which is ludicrous.

<comment><USER3> You really don't think the article getting published has anything to do with Amazon's about-face? I'm surprised. I usually assume that these kinds of stories _do_ cause companies to change their behaviour in specific cases.

Why do you think otherwise?

Note: I love Amazon and agreed with your defending of them in the original post. I'm honestly surprised that it isn't obvious that the article influenced Amazon here.

<comment><USER4> When's the last time a submission to HN got more than 1000 upvotes? When Steve Jobs died? I think the article's popularity (not just on HN, but HN's upvotes are a decent measure of how much an article will be re-shared) is most definitely a reason for this one person's problem being fixed.

<comment><AUTHOR> According to this:

<http://news.ycombinator.com/over?points=1000>

1000 points happened around a month ago as well, but before that there doesn't seem to be any, though I'd expect Steve Job's death to be much higher - perhaps it was hidden after a time?

<comment><USER5> This works only for entries that are in HN's memory cache. Older stories don't appear, unless somebody has read them soon.

For a full list of stories with high-scores you can consult HNSearch [1]

[1]: [http://www.hnsearch.com/search#request/submissions&sortb...](http://www.hnsearch.com/search#request/submissions&sortby=points+desc&q=+&start=0)

</comment></comment></comment></comment></comment><comment><USER6> So moral of the story? Make sure you have a blog with significant readership if you want good customer service?

<comment><USER7> Does anyone have any data about how often [Amazon] ignores or fixes customer service issues despite a lack of high-visibility blogging?

My 10th grade world history teacher had a small segment on the rainmaking rituals of some group of people. When rain was needed, they would continue the rituals until it rained. From their view, the rituals worked. I don't think clouds drift around waiting for the rituals to build up, and I don't think customer service departments sit around waiting for blog entries about their company.

I'm not suggesting that large companies are blind to signal from the public, or that they ignore it. But why do we think that without such signal from the public these fixes wouldn't have happened, other than a cultural aversion to large companies and their PR departments?

<comment><USER8> > I don't think customer service departments sit around browsing the internet > for blog entries about their company

This story bubbled up through HN, BoingBoing, and many other tech news outlets. Someone at Amazon inevitably saw it. Nobody's claiming they randomly stumbled across the original blog entry.

<comment><USER7> I'll reply to just this comment, although each response I've gotten is similar.

I'm not claiming that no one at Amazon was aware that the issue had public visibility. I'm not even claiming that the public visibility in this case didn't contribute to the swift, clear, and visible resolution we've seen.

Instead, I'm asking for evidence that high visibility correlates strongly with a resolution. Honestly, I will not be surprised if it exists. But no number of highly visible stories that are resolved will provide that evidence on their own.

Certainly, the _way_ in which a large company discovers that an issue has become highly visible is completely irrelevant. The question is whether, if an issue doesn't become highly visible, do they still try to resolve it or do they ignore it?

<comment><USER9> The only possible evidence for this would be either an internal email or an admission from Amazon.

Based on the email she got I'd say from Amazon's point of view the matter was closed. There had to be some prod to get them to take another look. If not the publicity, what was it?

<comment><USER7> Again, it's not about this instance, which is one data point on the side of "publicity -> resolution". And there are many more data points on the side of "publicity -> resolution". Instead, the evidence required is data points on the side of "no publicity -> no resolution". The fact that Amazon didn't solve the issue until the publicity exists doesn't count as a "no publicity -> no resolution" data point.

Somehow, this is less clear to others than it is to me. I'll break it out into some cases. If the data points are mostly

\- a mix of "publicity -> resolution" and "no publicity -> resolution", then publicity is irrelevant.

\- a mix of "publicity -> resolution" and "no publicity -> no resolution", then truly the moral of the story is to have publicity if you want a resolution.

\- a bunch of "publicity -> resolution", then we cannot make any conclusions!

We hear about the issues with publicity because, well... they have publicity. We make up the other half because it fits our preconceived bias.

<comment><USER9> I understand what you're saying. What I'm saying is, as a practical matter, there's no reason to believe her case would have been reopened without publicity. The Amazon rep said quite clearly from Amazon's perspective the matter was closed.

</comment></comment></comment></comment></comment></comment></comment><comment><USER10> This is the real outcome:

"Account status should not affect any customer's ability to access their library."

Amazon has realized that they can quarantine suspect accounts, but not cut off the customer's right to their purchased books.

Every other manufacturer is now going to follow suit. The end result is a win for the consumer.

<comment><USER11> Thank you for pointing out this important aspect of the story, when these public shamings lead to structural change it is much different than just switching the particular use case the produced the embarrassing result.

Welcome to the community! I would like to point out that sexually explicit usernames are not the norm here. Since your comment history and karma are tied to your user account and that account may persist for a long time, you might consider changing to a different name before you get too invested in this one and regret it later when it's too late to easily switch. Many users are known here by their handle and it is not uncommon for people to say things like "Send up the Patio11/Cpercival/Grellas/TokenAdult bat signal!" because users remember who made valuable comments and may recognize you by name. You are of course free to choose for yourself, your call.

</comment></comment><comment><USER12> It's astonishing to me how Amazon, which is more of a monopoly in many respects than Apple has ever been or Microsoft currently is, is essentially walmarting entire industries and gets almost no negative press over it. (It's even getting help from friendly congresspersons to strengthen its ebook monopoly.)

I've been forced to withdraw my $20 ebook from Amazon because I simply cannot afford to price it at $20 in the kindle store (Amazon pays the same royalty for books priced at $10-20 as books priced at $10, and it pays lower royalties than BN or iBooks). I'm not allowed to price my ebook so that I effectively get paid the same (which entails selling the book at $40 for Kindle and $20 for everything else) because that violates Amazon's "you cannot sell for less elsewhere" rules.

Similarly, Amazon sells book readers that are incompatible with rival book formats, including ePub. No-one complains.

<comment><USER13> Upon reading your comment I went to look up Amazon royalty information. Let me know if I got this right.

A book that is 3-10 dollars, sold in the first world, gets you 70% royalties minus a few cents for delivery. If you want to set a price over $10, then you only get 35% royalties.

So it's not that Amazon flat-out gives much lower royalties, it's that they give much lower royalties for books that cost more than ten dollars. They don't want to give you more than seven dollars per sale.

<comment><USER14> That's basically all true, except it's not always just "a few cents" for delivery, especially if you have full color photos or illustrations as a part of your eBook. On other platforms there is no delivery fee and no price range required to receive the 70% royalty rate. So there is a window for certain books where the Amazon rates are competitive, and of course they have the largest marketplace for eBooks so it's usually advantageous to play within those bounds.

</comment></comment></comment><comment><USER15> They reopened it because people heard about it and then started talking about stripping DRM and resorting to piracy, so somebody, somewhere decided to make this go away as fast as possible and as quietly as possible.

/cynic

<comment><USER16> I've never understood how DRM can be stripped from a mobi file. I've never been able to find the files when I looked on my ipod. (I think I've shown my lack of hacking on the ipod with this comment--eep!).

<comment><USER17> Usually you use a general computer to strip the DRM. On a Mac or PC you have a program masquerade as a client (like Kindle for PC) and then remove the DRM from the contents it get. MyTunes was for Itunes was like that in the past.

</comment></comment></comment><comment><USER18> Explanation/ update here: [http://blogs.computerworlduk.com/simon- says/2012/10/rights-y...](http://blogs.computerworlduk.com/simon- says/2012/10/rights-you-have-no-right-to-your-ebooks/index.htm)

<comment><USER19> "We would like to clarify our policy on this topic. Account status should not affect any customer's ability to access their library. If any customer has trouble accessing their content, he or she should contact customer service for help. Thank you for your interest in Kindle."

<comment><USER20> It's astonishing that they _persist_ with the robotic language in their clarification. Something tantamount to "We fucked up, sorry, dude" would help them so much more.

I guess it just reflects their attitude towards customers.

<comment><USER21> This is what any company with global brand recognition would say. Anything more would open them up to horrendous lawsuits, and anything less might cause more criticism. It's a well-crafted statement of fact with an invitation to solve issues through their customer service department—basically admitting they were in the wrong (but not too much), and that their policy has been clarified.

The robotic language is a legal _necessity_ for corporations and it does not reflect on their attitude towards customers in the least.

<comment><USER22> Nope. While "content-free" statements may well be encouraged by lawyers attempting to be risk-averse, there's no basis in fact or law for that. Indeed, studies in medical malpractice have shown that doctors and hospitals that promptly admit fault and apologize are less, not more, likely to be sued for malpractice.

The content-free statements are not only infuriating to your customers, they are actually counter-productive in a purely fiscal sense.

<comment><USER23> >Indeed, studies in medical malpractice have shown that doctors and hospitals that promptly admit fault and apologize are less, not more, likely to be sued for malpractice.

There's a huge context difference here. These studies are dealing with the doctor apologizing to the patient (or their family) and being less likely to be sued _by that patient_ (or their family). This has a lot to do with emotions and how the patient or their family feels about the doctor and the doctor's actions.

In the case of Amazon here, it's essentially making a statement to the world that could be used by anyone as part of a lawsuit. I imagine the class-action lawyers looking at these things aren't going to let their feelings about Amazon change their minds.

</comment></comment></comment></comment></comment></comment><comment><USER24> I find the lack of transparency on Amazon's part entirely unacceptable.

(I can imagine and understand -- although not always agree with -- the desire to e.g. keep some technical aspects of fraud detection private. Beyond that, I have zero sympathy.

And even in the event of some so-called "fraud detection", we have powerful entities who on the one hand want to benefit from a "global market" while on the other hand simultaneously seeking to restrict same when doing so is to their benefit. For example, taking advantage of lower "third world" production costs while insisting upon receiving "first world" prices for their own goods.)

P.S. I've had two friends communicate that they are backing out of pending Kindle purchases, since I shared this story with them. (In case any Amazon types are browsing by here.)

</comment><comment><USER25> Does anyone know if Kindle supports reading normal (by which I mean without DRM or so) PDF files, even PDF files where each page is an image rather than text? Is it possible to put PDF files on it through USB as "mass storage device", or at least in some way that supports doing it from Linux through USB? Is it possible to do this without Kindle account?

Because, the hardware of the device looks nice to me, especially if you'd add a water proof cover around it.

Thanks!

<comment><USER26> E-Ink Kindles can _technically_ display PDFs, but in practical terms, you wouldn't want to read a PDF book on one. Unless the PDF dimensions are just perfect (and it rarely ever happens, maybe the DX is better?) or you generated the PDF yourself, a PDF's typical page margin gets rendered, generally cropping off the text on the bottom and/or right hand side of the page. This means that you have to pan the PDF page back to a near-center position _every page turn_. It's disruptive to your reading flow.

<comment><USER27> When reading PDFs on my Kindle, I change the orientation to landscape. It's not a perfect solution, as diagrams are sometimes broken in half, but it works well enough for me.

</comment></comment></comment><comment><USER28> If the writer wanted to make Amazon pay for the wipe she has certainly achieved that with her post.

My Kindles hit Ebay a few hours ago. I'm out of the Amazon digital ecosystem.

<comment><USER29> What are you replacing them with?

<comment><USER28> I was already splitting my ebook purchasing between the Apple bookstore and Amazon.

From this point, ebook purchases will be through Apple or a purchase of the real book. I kinda miss the feel of a real book too so that's a nice change. If I _need_ a digital copy, and it's Amazon exclusive, then I'll be using "other sources".

<comment><USER30> Out of curiosity (I haven't purchased ebooks from either source), what makes Apple more reliable than Amazon?

<comment><USER28> They have yet to pull a stunt like this. As far as I'm aware, they are unable to remotely modify Apple devices. Until proven otherwise, I trust them.

<comment><USER31> Just wait.

<https://iphone-services.apple.com/clbl/unauthorizedApps>

Edit: And don't forget the remote wipe feature in Find My iPhone. [http://www.wired.com/gadgetlab/2012/08/apple-amazon-mat- hona...](http://www.wired.com/gadgetlab/2012/08/apple-amazon-mat-honan- hacking/)

</comment></comment></comment></comment></comment></comment><comment><USER32> I bet it was exactly like this:

1\. Kindle-wipe Story on Hackernews.

2\. One engineer at Amazon saw the story, told it some Executive above him

3\. The Executive "nerds, let them talk THIS is real business!"

4\. One day later "How To Strip DRM from Kindle E-Books and Others (wired.com)" on Hackernews

5\. The Executive "OH SNAP! REOPEN REOPEN REOPEN!!11"

<comment><USER33> Ha ha! Executives are dumb and also terrible people!

/sigh

</comment></comment><comment><USER34> Some people might be thinking "Well done Amazon for correcting this mistake" or "Amazon just caved due to pressure of bad press" but I am thinking that if Amazon can wipe a kindle remotely, I do not want such a device and will purchase a product which does not have this "feature".

Seriously, fuck them.

<comment><USER35> Better: buy a subsidized unit but don't buy their DRM ebooks ;) It's trivial to do.

</comment></comment><comment><USER36> Support Policy:

If you feel that your account has been erroneously disabled, then got viral with your story, only then will we investigate your claims.

<comment><USER37> More like, "if you have trouble with customer service, please contact customer service."

<comment><USER38> ... and after customer service has blown you off saying that from their perspective, the case has been closed and you have no avenues of appeal, _then_ try to make the story go viral....

</comment></comment></comment><comment><USER19> Like e.g. with Google actions without explantations, but the refusal to give them are the worst for me as a customer.

<comment><USER39> It's a standard "big-corp" thing. I can understand why they'd avoid saying why a credit card transaction was rejected, but they're missing an opportunity to remind the world that their corporation is actually made up of humans.

<comment><USER40> It's simply a shitty attitude, and being a large corporation is irrelevant.

<comment><USER39> Perhaps, but it's easier to hide behind the "corporate veil" when you're part of a huge company. You can get away with saying "that's not allowed" at every turn, while the CEO of a 20 person company is much more accessible to help deal with these problems. The reality is that most big companies would be much better off if their CEOs actually knew about issues like this ... I think most of them care about customer satisfaction quite a bit but are insulated from that level of detail.

</comment></comment></comment></comment><comment><USER41> If I were her, I would _so_ immediately copy the ebooks that are available again, for now, then find a way to free them from DRM and close my Amazon account myself.

Then I would go lobbying for a law that would make it a legal requirement to make digitally restricted products available to the user in unencumbered format if the user's account gets terminated or if the company goes out of business. So, basically the user would _buy_ the song/book/movie but hand over the appropriate _storage_ to the company for as long as the account remains open. Then, if the storage gets shut down the user would still own copies of his/her files.

</comment><comment><USER42> It's good to hear Linn has her stuff back but this doesn't guarantee future situations like this would have similar good endings. What I infer from 'no explanations' is it's mostly a PR plaster.

It's sad that such problems will be solved only by huge exposure to the story. Not something everyone can have all the time. Happy but sad.

</comment><comment><USER43> That's a very bad translation - although I'm still impressed because it's programmatic and the technology has come pretty far (and I am grateful to Google for providing Google Translate in general!).

So "Amazon did an about-face" actually means "Amazon did a change in direction" or even "Amazon did a 180 degree turn".

<comment><USER44> How is it a bad translation? I was headed to the comments with the intention of applauding Google for a truly incredible translation service! Reading that wasn't blocky or painful, like reading programatically translated texts used to be. Is the idea of what is said wrong? Did they make a huge mistake in any section? Or small mistakes everywhere?

As already commented, "did an about-face" is an English idiom

<comment><USER45> I'm not GP, but I also though "about-face" was an error.

I'm impressed as well, but there are errors like: "e-bokgiganten" (the e-book giant), "type IT consultant Linn.." (wrote the IT consultant..) and I don't think "Spread Monday blog post" is correct either? (On Monday the blog-post about .. spread) etc..

Still impressive though :)

<comment><USER44> Ah yes. I saw a few of those too. It's certainly not perfect. I actually skimmed the article rather than reading the details; and I was honestly impressed that I _could_ skim the article.

</comment></comment></comment></comment><comment><USER46> Have any native english publications covered this story? Strange that the only new source to publish a follow-up to what was a very popular story would be some random Norwegian newspaper.

</comment><comment><USER47> I am just surprised the way these companies work. They don't even owe as little as information to their customers and our government enable them to do that.

</comment><comment><USER48> Meta-comment: I've read the article in english and norwegian side-by-side, and I'm impressed by google's translation.

</comment><comment><USER49> I'm guessing one Michael Murphy is polishing up the old resume right about now.

</comment><comment><USER50> Doesn't matter to me. The fact that Amazon can break and enter into my devices with impunity is completely unacceptable. The fact that I can't back up my own purchases without hacking is completely unacceptable.

I'll continue using Kindle for free content but I'll be buying only real books unless there is very clear legislation, or a change in Amazon's technology, supporting my right to keep and control my own purchases. Amazon (and not just Amazon) has too much power here and has repeatedly demonstrated that they will abuse it.

<comment><USER51> You can backup your purchases using copy-and-paste to your hard drive. Or do you mean "remove DRM"?

I agree with your second paragraph.</comment></comment>