Can I Be Trusted? - <AUTHOR> http://www.schneier.com/blog/archives/2013/10/can_i_be_truste.html <comment><USER2> You'd have to define trust to understand and then answer the question.

Trust is the inverse of what most people think it is.

Trust isn't about what someone will do, it's about what they won't do.

You might trust a guy with your life by asking him to hold a ladder whilst you climb up it, but you probably wouldn't trust the same guy with your medical history and insights into your state of mind and personal relationships.

Yet you would trust a doctor with your medical history, and you would trust a psychiatrist with your mental wellbeing.

The basis of trust is a belief that the person/entity you are trusting _won 't_ do something. In the case of that ladder, that the guy won't let go. In the case of the physician and psychiatrist that they won't share information about you.

The NSA stuff can be seen in that light, there is a betrayal of trust as the basis for trust in a government spy agency was that they wouldn't do a certain thing... spy on their own people. The rest is all forgiveable (you pretty much should expect them to spy on everyone else whether you agree with it or not, that's their purpose).

When it comes to Bruce Schneier the question is "Do you trust Bruce Schneier?", but this seems to just beg the next question, "To not do what?".

I trust Bruce Schneier to not sacrifice his own principles and belief system in backdooring some code or otherwise compromising his work.

But I don't necessarily trust Bruce Schneier to hold a ladder that I'm standing on (he may well have a sense of humour that reflects silent cinema, and being up a ladder was never a good thing when a Loki character was holding it).

<comment><USER3> Astute. edit: thanks (didn't know what a Loki was)

<comment><USER2> Loki is a Norse God.

[http://en.wikipedia.org/wiki/Loki](http://en.wikipedia.org/wiki/Loki)

He's frequently referred to as the `God of Mischief` in that he's a trickster and capricious by nature.

</comment></comment></comment><comment><USER4> After the wall came down, the stasi shredded a lot of their files. But they were reassembled a few years ago and they revealed that some of the dissidents at the time were snitching on their fellows in return for less harsh treatment.[1]

I don't think Schneier is similarly compromised - to give out misleading interpretations of the NSA leaks - but we can't know that with 100% certainty as long as the documents he's commenting on are not public.

[1] [http://articles.latimes.com/2009/nov/01/world/fg-germany- sta...](http://articles.latimes.com/2009/nov/01/world/fg-germany-stasi1)

<comment><USER5> It's a little offtopic, but those shredded files were put together with software (they scanned all the scraps and put them back together with algorithms). Here is a link to the research article (couldn't find a free source, sorry): [http://link.springer.com/article/10.1007/s00287-004-0395-8](http://link.springer.com/article/10.1007/s00287-004-0395-8)

<comment><USER6> Wow. anyone got an English free link describing this work?

<comment><USER7> Sure, see [http://www.npr.org/2012/10/08/162369606/piecing-together- the...](http://www.npr.org/2012/10/08/162369606/piecing-together-the-worlds- largest-jigsaw-puzzle)

You don't even need computers to piece together shredded work. Iran pieced together the shredded US Embassy documents by hand, and China pieced together shredded Soviet atomic bomb documents. You just need time and lots of people. Shredded material is often not well-mixed, so there is a great deal of spatial locality.

The thing that distinguishes the Stasi case is that they produced a lot more records, and German workers cost more than Iranian or Chinese workers. That's where the computers came in.

These days, with cross-cut and confetti shredders, the computers would become even more important.

<comment><USER8> Maxwell brothers spring to mind. Panicking and using a single cut type shredder to shred documents after Captain Bob's demise. I gather assembled piece by piece over months by UK forensic science employees.

They should have just had a barbecue.

</comment></comment></comment></comment></comment><comment><USER9> I think a fair bit of his non-cryptography security advice of the past 10+ years has been...different than a lot of people I know better and have direct evidence of their competence would give. Increasingly so recently (the past year or two). As a cryptographer, particularly on the symmetric side, he does a good job (at least, the other people who I know who are good at that also think he does a good job; I understand number theoretic cryptology better than I understand the more complex details in designing symmetric stuff). He also went way far over to the "high level policy/politics" side post-BT acquisition vs. actual implementation work, other than crypto competition entries, as far as I can tell.

So, it's not so much "not trust" as "critically evaluate what he says each time".

</comment><comment><USER10> > I'd help, but that seems unfair.

He missed the perfect opportunity to quote HPMOR.

> I have heard such requests before, and experience leads me to refuse. Either > I will do too good a job of prosecuting myself, and convince you that I am > guilty - or else you will decide that my prosecution was too half-hearted, > and that I am guilty.

</comment><comment><USER11> If the goal of the hypothetically-compromised Bruce Schneier is to reinstate public trust in weak crypto, he's doing an exceptionally bad job.

To the extent that he maintains crypto is still a plausible defense, there's a _huge_ asterisk next to 'crypto' that boils down to: you really can't know whether you've _actually_ got strong crypto. [1]

For anyone who doesn't have a burning interest in privacy or security, for the regular joe on the street, Schneier's collected reporting reads: they won, it sucks, we need to fight back at the ballot box.

[1] Due all his reporting on the NSA: tapping every wire; injecting vulnerabilities and backdoors, whenever possible, in crypto libraries, crypto programs, services, operating systems and hardware; by hook or by crook, having access to just about every vendor and service providers keys and internal data. And if they want into your computer, specifically, Schneier maintains they're basically in. Hardly a reassuring word among them.

</comment><comment><USER12> No, I do not. I have no reason to distrust him but equally no reason to unthinkingly trust. I listen to his opinions and take them into account.

<comment><USER13> Seriously, this is the only rational response. This is what rational people do: weigh opinions and make their own decision. It's as if we're trusting this guy with our bank account information or something.

</comment></comment><comment><USER14> Bears repeating: trust but verify. Trust the math but not personalities because allegiances can change. And as cperciva writes ([http://www.daemonology.net/blog/2013-09-10-I-might-be-a- spoo...](http://www.daemonology.net/blog/2013-09-10-I-might-be-a-spook.html)), verify through actual code reviews.

</comment><comment><USER15> I trust the _real_ Bruce Schneier, not his NSA clone!

</comment><comment><USER16> _So far, I haven 't seen the good reasons why I might be untrustworthy. I'd help, but that seems unfair._

The better question to ask would be _" Why might I be trustworthy"_ which he could then try to answer. Not that I don't think Schneier is untrustworthy..

<comment><USER17> Yes, he just have disclosed the reason not to be trusted. He conflates absence of evidence with evidence of absence.

<comment><USER18> _> He conflates absence of evidence with evidence of absence._

Absence of evidence _is_ evidence of absence. The false statement of that form is "absence of proof is proof of absence".

If absence of evidence _wasn 't_ evidence of absence, then, at best, the presence of the event and the presence of evidence are have no bearing on each other & are independent (in the statistical sense, i.e. the "evidence" is not evidence at all), and at worst, presence of evidence corresponds to the event not happening (i.e. the "evidence" is backwards).

<comment><USER19> Absence of evidence is [pretty much the weakest possible] evidence of absence. It is most useful for things which are readily apparent. It is not particularly useful for determining questions where the evidence is not readily apparent (such as, obviously, 'Is the NSA spying on Americans?').

One may easily use the absence of evidence of woolly mammoths to conclude that woolly mammoths are extinct. Given their physical size (they are easy to detect) they could not remain hidden from view. We can assume (from our knowledge of other large mammals) that they would leave signs of their presence wherever they trod (footprints, dung, etc.) It is not so easy to use absence of evidence to disprove the existence of neutrinos or tree shrews. Both neutrinos and shrews are hard to detect. There are few people even qualified to attempt to detect them, fewer who are interested, and even fewer who have the resources and opportunity.

A relevant question is "Is it possible for spies to conduct espionage undetected for an extended period of time?" The answer is yes, there is ample evidence of that. Schneier is clearly in a place of trust in his community, making him a high value target. The standards of evidence for betrayal of trust being high (and difficult to define), mean that Schneier could potentially be a spy/collaborator in some capacity, and/or could become one at any time.

</comment></comment></comment></comment><comment><USER20> Always funny [http://www.schneierfacts.com/facts/top](http://www.schneierfacts.com/facts/top)

</comment><comment><USER21> Reading the comments below Schneier's post, I was reminded again just how much the Internet has changed how we interact. Here is an expert creating a space and inviting anyone with an opinion to gather and discuss whether he can be trusted, while he quietly (and amusedly?) observes. I can't imagine anything analogous to this IRL.

</comment><comment><USER22> Yes, I do trust him.

His work is out in the open for all to see. I'm sure that he has a very large target on his back for what he has accomplished. There are more than a few government tools and internet fools who would consider their careers made if they could point to any technical compromises in his work. They haven't been able to.

</comment><comment><USER23> Trust is not boolean. I have a reasonable amount of trust in Bruce Schneier based on the information I have available.

</comment><comment><USER24> I trust Bruce Schneier to believe what he says when it comes to cryptography.

I would also be fairly confident that what he says is correct.

When he strays outside of his area of expertise into politics, I think he is naïve.

</comment><comment><USER25> I kinda trust a person whose best advice is _" trust math"_. Of course, to a certain level as still the best advice is _" trust noone"_..

</comment><comment><USER26> On a "what do I do?" practical level, its not about trusting him.

The point is his suggestions or advice point people in a direction that they or people they trust can verify. If he were spreading false information, by now, he'd be shown to be unreliable. But for many, many years, he has consistently been not proven intentionally false. I word it carefully because he has been wrong, but being wrong is not being false.

</comment><comment><USER27> Well for one, he uses Windows on his super secure airgapped computer. That must mean he is in bed with the NSA!

</tinfoil>

The top comment on the site pretty much covers it: trust, but verify.

<comment><USER28> Haha. And I use Linux -- and I usually leave SELinux turned on... so my OS is infested with NSA-written software.

(I do think about this sometimes... I guess I just hope that "with enough eyes, all bugs are shallow". I hope.)

</comment></comment><comment><USER29> It depends on what's at risk. So far he hasn't asked me to meet him in a cornfield or other out-of-the-way location.

</comment><comment><USER30> Thats a recursion

</comment><comment><USER31> Verify and Trust

</comment><comment><USER32> No.</comment>


Why do you want to pursue a startup? - <AUTHOR> <comment><USER2> I don't want to be pre-Matrix Neo.

Actually, the last company I interned with was a very nice place to work. The atmosphere was casual, the people were great, and I found lots of interesting things to work on.

Some people fear that a life comparable to Dilbert's awaits them if they get on the corporate track. Others, including me, realize that one can be creative and successful in the corporate world.

But that's not for me. Nothing compares to building and actualizing my own vision. I mentioned my internship earlier -- it was a great experience, but I realized that this wasn't for me. My co-founder feels very similarly and it was from this mindset that our best ideas came about.

Founding a company has always been one of my most consistent aspirations and there's never been a better time to go for it. And my final reason: it's fun as hell.

</comment><comment><USER3> "This is your life and it's ending one minute at a time." While we are at it, we might as well create something beautiful. YouTube, Google, and MySpace managed to change the very lifestyles of its users; if you could build something that amazing, why wouldn't you? :)

Whatever we do here will eventually be lost in time. And those who do remember our dream, they too will inevitably perish. To me, creating something of great value to others is the only reason why we even matter. Besides that, our worth is simply that of the atoms that make us.

Put simply. a startup is my opportunity to change the world.

</comment><comment><USER4> It fits who I am as a person better than anything else that I've tried.

I don't think I can avoid it... I've tried, but I keep coming back to the idea of starting a business.

I enjoy the creativity and the stimulation.

To solve the money problem.

</comment><comment><USER5> Two reasons, which both boil down to "freedom":

1\. So that I can spend my time implementing my own vision rather than someone else's.

2\. For the money, which gives me the freedom to decide who is worth impressing.

</comment><comment><USER6> People are forced to use tools that are inadequate or clumsy. I want to help those people.

</comment><comment><USER7> Creating something of great value to others is the ultimate challenge. It makes everything else look like a joke.

<comment><USER8> And (for me) to create something beautiful. The products; the processes and machinery of the business; the carefully crafted image; the thriving corporate culture; the systems for watching the market, the competition, and the systems for maximizing the money that you and your employees can thrive on. To see someone you've never met seriously passionate about your product. To be able to craft and share the results of your imagination- having a piece of yourself in the hands of thousands- enriching their lives and creating opportunities for them.

All of it created with sweat and anxiety, most aspects failing at some point and being brought back from the brink. I can't think of a more complex system to build- needing inspiration and creativity and luck in so many disciplines- with unlimited capacity when you finally get it right.

<comment><USER7> Beautiful.

</comment></comment></comment><comment><USER9> I've spent the last two decades making other people rich. I've worked on cool stuff but been ordered to do dumb things. Yeah, I got patents and promotions but the time I spent preparing for them, or implementing DRM or copy protection could have been better spent making better products. I want to make myself rich this time (or at least a little better off) by focusing on something that someone really needs - not a fickle consumer, but a business customer who will pay to be able to do something faster or cheaper or with more precision, or to do something that wasn't previously possible. A month ago I walked and I'm not looking back.

</comment><comment><USER10> Entrepreneurship is the only way to transcend the class structure of American society.

Without college educated parents, you are born into the lower (working) class. You can move up to the upper (professional) class in a generation by getting a college education and working a professional job for a major corporation.

A lifetime of corporate work provides no means to advance to the ownership (ruling) class. I refer to people like Rupert Murdoch, Dick Cheney, the Waltons, and Bill Gates as uber-capitalists -- they have enough money to truly make an impact on society at large.

I'm starting a company now so I can be able to make a true positive impact on the world in my lifetime.

</comment><comment><USER11> My company recently went through layoffs and it seems that the only people who got canned were the ones who have been there for 15+ years. These layoffs didnt seem to be performance based. They seemed to be "size of pay check" based ( people who have been there longer obviously make more money that the newer people). I don't want to be the "guy who got laid off" in 10 years time ( I've been there for 6 yrs). I want to make enough money to be able to decide whether or not I have to work, and not be forced to be "code monkey" for a large company, that won't even bat an eyelid when its time for them to show me the door.

</comment><comment><USER12> Basically following reasons -

I read somewhere that paul said he wanted to do via-web to solve the money problem once and for all. I think that is a real good motivation.

Second, probability of trying 15 different things in next 5 years and having one homerun is not as low as one would be tempted to think.. That still saves you 20 years of doing job and you are firing on all cylinders when you really are doing what you like the most, so the odds definitely are with you...

Third there is a certain degree of ego satisfaction when 1000s of people are using what you created (again one starts with a hope right?)

</comment><comment><USER13> By having our works exposed to the market, we get direct feedbacks that erase some of our delusions we have about ourselves, so we can have peace of mind and don't live the rest of our lives unconsciously envy those who we perceive to be less capable than us.

</comment><comment><USER14> Because I want to get it right this time. In my previous startup I never felt more alive, creatively engaged and felt like I was doing the best work of my career. Life is short and no job holds the attraction to me that a startup does.

</comment><comment><USER15> Ithaca

As you set out for Ithaca

hope your road is a long one,

full of adventure, full of discovery.

Laistrygonians, Cyclops,

angry Poseidon - don't be afraid of them:

you' ll never find things like that on your way

as long as you keep your thoughts raised high,

as long as a rare excitement

stirs your spirit and your body.

Laistrygonians, Cyclops,

wild Poseidon - you won't encounter them

unless you bring them along inside your soul,

unless your soul sets them up in front of you.

Hope your road is a long one.

May there be many summer mornings when,

with what pleasure, what joy,

you enter harbours you're seeing for the first time;

may you stop at Phoenician trading stations

to buy fine things,

mother of pearl and coral, amber and ebony,

sensual perfume of every kind -

as many sensual perfumes as you can;

and may you visit many Egyptian cities

to learn and go on learning from their scholars.

Keep Ithaca always in your mind.

Arriving there is what you're destined for.

But don't hurry the journey at all.

Better if it lasts for years,

so you're old by the time you reach the island,

wealthy with all you've gained on the way,

not expecting Ithaca to make you rich.

Ithaca gave you the marvelous journey.

Without her you wouldn't have set out.

She has nothing left to give you now.

And if you find her poor, Ithaca won't have fooled you.

Wise as you will have become, so full of experience,

you'll have understood by then what these Ithakas mean.

K.Kavafis

</comment><comment><AUTHOR> For me, it's all about creativity. I love trying out new ideas.

</comment><comment><USER16> Meaningful work that inspires others.

</comment><comment><USER15> come on everyone, stop denying it!

you just want to conquer the world ;)

<comment><USER17> WOO HOO!! I'll join you. :) In all seriousness, its about building something that I can say "Yeah, that was me." not hide my face anytime someone mentions the product. It is nice to have the freedom to build effective, beautiful products, and the money is a nice kicker too, but it really comes down to not regretting my life. 20, 30, or 40 years spent building things for other people, things that aren't the best, or things that aren't pride inspiring, its not for me thank you.

</comment></comment><comment><USER18> we each have one life to live, this makes the most of my life and takes the most out of it.

</comment><comment><USER19> I want to make stuff that doesn't suck with people that don't suck, and I want a piece of the risk and rewards.

</comment><comment><USER20> Because I don't feel like doing anything else.

-Zaid

</comment><comment><USER15> come on everyone, stop denying it!

you just want to conquer the world ;)

</comment><comment><USER14> .</comment>


The Charming Genius of the Apollo Guidance Computer [video] - <AUTHOR> https://www.youtube.com/watch?v=xY45YE7ggng <comment><USER2> The part about core rope memory was pretty interesting. Star charts and other bits of data were actually woven into a form of read-only memory via loom:

[https://youtu.be/xY45YE7ggng?t=1155](https://youtu.be/xY45YE7ggng?t=1155)

[https://en.wikipedia.org/wiki/Core_rope_memory](https://en.wikipedia.org/wiki/Core_rope_memory)

</comment><comment><USER3> If you like this, you may also like this book that goes into crazy detail about the design and architecture of the AGC:

[http://www.amazon.com/The-Apollo-Guidance-Computer- Architect...](http://www.amazon.com/The-Apollo-Guidance-Computer- Architecture/dp/1441908765)

See also Fran's pages; she does some reverse engineering with X ray micrographs:

[http://www.frantone.com/designwritings/design_writings_LVDC....](http://www.frantone.com/designwritings/design_writings_LVDC.html)

</comment><comment><USER4> Also of interest might be John Pultorak's DIY AGC[1]

[1]: [http://www.galaxiki.org/web/main/_blog/all/build-your-own- na...](http://www.galaxiki.org/web/main/_blog/all/build-your-own-nasa-apollo- landing-computer-no-kidding.shtml)</comment>


How Amazon Deleted Me and All My DRM Without a Second Thought - <AUTHOR> https://gist.github.com/softwaredoug/6f74748822bf52728545 <comment><USER2> As this emphasizes, You don't own these items, you're merely leasing them. That's why I've spent exactly $3.98 on two Amazon Kindle books (a bunch more at $0), both in part to tell me if I want to buy more from the respective authors. Vs. a few hundred in non-DRMed digital books and music, the latter all though Amazon (would be a lot more if I didn't have a massive bias towards physical media and a very good insurance policy).

A good example of one of the own goals of Google+: their Real Names policy + account consolidation meant violating, in their view, the former meant loss to all of the latter, including most catastrophically GMail.

Oh, yeah, per his tweets, he lost the remaining balance of his Prime account. Nice way to reward loyalty.

<comment><USER3> In general, one cannot revoke a lease without recourse.

<comment><USER4> yeah, but what are the terms of the license/lease. I haven't read it/don't know, but what if the terms are basically "you have access for as long as we feel like giving you access"

<comment><USER2> Take it to court and terms that ... convenient to the vendor very possibly would not hold up. For something like books, with versions that are tangable and massively litigated on over half a millennium, I suspect Amazon would lose badly, after of course the other side spent many times the losses.

At least in the case of Amazon, with its reputation being such a big factor in its success, if you had to go to court the bad PR from such a white line case would almost certainly result in a quick and favorable settlement.

</comment></comment></comment></comment><comment><USER5> It is a cautionary tale. And one where, like people who "bought" their original DivX disks learned, and other folks have learned.

That said, Amazon will fix this. They are still in business and you can sue them both for breach of contract and to collect legal costs of suing them. Sometimes just a letter will fix it. But the next course of action is to create a new account as they asked you to do, and then provide proof of your previous purchases on the old account and tell them to transfer them all to the new account. I would do that in a letter (written).

</comment><comment><USER6> This is an extreme way to handle unauthorized access. Just have him change his passwords, don't destroy his account.

It also shows the perils of DRM. Thousands of dollars can disappear in an instant for whatever reason, and often there's little we can do about it.

<comment><USER7> > often there's little we can do about it

They could issue a refund, unless Amazon thought his previous purchases were also unauthorized.

</comment></comment><comment><USER8> Companies continue to store more and more customer data and property online, out of direct control of the customer, and in increasingly proprietary formats, all governed by vague and often unfriendly terms of service, and all of it at risk of compromise and theft, and all of these companies are racing to provide less customer service than their competitors so that they can operate at slightly lower cost. The only way to resolve disputes is to raise a big stink on discussion sites and social media and hope the story gets enough traction that somebody somewhere at the company can be moved to care.

Everybody keeps doing it because, "Hey, it's always worked out fine for _me_. _I_ have never had any trouble with Amazon's | Apple's | Paypal's | Google's | Facebook's | LinkedIn's | Microsoft's | Github's | Craigslist's | YouTube's customer service."

(A few people think this situation isn't too great for the consumer and try not to participate, but we're crazy.)

It's too bad this happened to him, but this isn't exactly news. This story has been repeating itself for a decade at least, just the names and details keep changing.

<comment><USER9> Here's to the crazy ones.

( Sorry, I couldn't resist. I found it funny in a sad/ironic way. )

</comment></comment><comment><USER10> Hope this gets sorted, Amazon clearly need to improve how they handle such situations. If all else fails complaining to your credit card company should get a refund.

<comment><USER11> Clearly they don't need to improve. "BWA HA HA HA" and all that.

</comment></comment><comment><USER12> You know... I'm thinking about all the times I've heard people laugh that I have four full shelves of computer books. Hardcopy books. Actual books.

It reminds me of how people used to laugh at me for wearing my neck protector on my body armor in Iraq and the Philippines. It wasn't required to wear it, but I always did. People laughed, until they heard about a friend of mine whose neck was ripped open by shrapnel that would have been stopped by the same protector. He bled out on a random, dirty street in Baghdad.

I'll take hardcopy, thanks.

<comment><USER2> As someone who started using tape backup in 1978 (sic) and first bought body armor in 1984 (sic), yeah, I hear you. And my personal anecdote is how multiple forms of backups saved my critical data from this: [http://www.ancell- ent.com/1715_Rex_Ave_127B_Joplin/images/](http://www.ancell- ent.com/1715_Rex_Ave_127B_Joplin/images/) (rsync.net, since the disk backups in the bathroom got trashed). Fortunately haven't had to put body armor to real use.

But between the way I prefer to use many computer books (multiple windows on a big screen), the ease of saving them to multiple backup sites (every time I buy digital media I upload copies to rsync.net and ironically Amazon's free (5GiB?) service, plus they're in my normal backup systems), how fast their content gets obsolete, and their lower price, I tend to buy them. But only for the perishable stuff, I get e.g. CS books in hard cover.

As I noted elsewhere, you also want those physical shelves backed up by a good insurance policy, and for you I recommend USAA, my father started with them in the 50s, and especially due to tornadoes and the like we've had to make a lot of claims.

<comment><USER13> (Note: "Sic" doesn't mean what you think it means.)

[https://en.wikipedia.org/wiki/Sic](https://en.wikipedia.org/wiki/Sic)

</comment></comment></comment><comment><USER14> When you buy files with drm, you get what you pay for: nothing.

<comment><USER15> I download my Kindle books, strip the DRM, and store them in Calibre with backups in AWS' Glacier.

Doesn't work for everyone, but its easier than lugging a book collection across the world. I'm paying for convenience.

</comment></comment><comment><USER16> Piracy: The Better Choice(tm). [http://www.theinquirer.net/inquirer/news/1043337/hd-disk- for...](http://www.theinquirer.net/inquirer/news/1043337/hd-disk-format-wars)

Seriously. If there's any book you've paid actual money for, then an ePub copy as well is a sensible backup. Don't let your stuff be hostage to DRM.

</comment><comment><USER3> Could there be legal recourse via small claims court? They basically revoked $1,000 dollars worth of media licenses without recourse.

<comment><USER17> Since Amazon locked him out of the account and apparently can't access its contents, he can't even present any information about what was on it. He'd have to get into discovery or get some court order against Amazon just to recover a record of what he wants to sue over.

<comment><USER18> He'd have records in e-mail as to what he's purchased.

<comment><USER2> Good point, but the Kindle has been out for 8 years, and I'll bet a lot of people have lost at least some of the email over that time.

(Of course, I say this as someone who during that period used rsync.net and LTO-4 tape to make sure that didn't happen even in the face of a tornado that trashed my apartment.)

</comment></comment></comment></comment><comment><USER19> When I do buy Kindle books, I make sure I can remove the DRM and backup offsite. I should not have to do this.

</comment><comment><USER20> > In a move that angered customers and generated waves of online pique, Amazon > remotely deleted some digital editions of [ _1984_ and _Animal Farm_ ] from > the Kindle devices of readers who had bought them.[0]

That's when I stopped leasing DRM stuff from Amazon and other sellers.

[http://www.nytimes.com/2009/07/18/technology/companies/18ama...](http://www.nytimes.com/2009/07/18/technology/companies/18amazon.html?_r=0)

</comment><comment><USER9> Why do we have to resort to public outcries to get attention from a company?

If the user agreement really allows this, then it is time to stop supporting them.

<comment><USER21> He's probably trying to warn others thinking it's something nobody knows. Of course, we've all been warned about DRM for years now, but people seems to ignore the risks.

</comment></comment><comment><USER11> I only read the tldr, but really, hasn't this been obvious since these schemes existed? It's at once the ultimate lock-in (can't rage quit) and the ultimate lockout.

</comment><comment><USER22> Did you ask the account team to restore your purchases to the replacement account? If so, what was the response?

The mere fact that they didn't think to do it for you honestly doesn't seem like it's as serious as you make this sound.

<comment><USER23> Apparently there's no way [https://twitter.com/softwaredoug/status/628911762105049088](https://twitter.com/softwaredoug/status/628911762105049088)

<comment><USER22> Follow-up: "We have re-opened your account and everything is intact." Amazon's customer service came through after all.

</comment></comment></comment><comment><USER24> This seems annoying but it's clearly still in progress - Amazon didn't tell him to fuck off, and are still working on a resolution. For the digital haters - houses burn down too.

<comment><USER2> There is no sign from his writings about this that Amazon is working on a resolution, no doubt that's why he's thrown it into the court of public opinion. ADDED: just checked his linked Twitter feed and Amazon restored his accounts with no explanation to speak of: [https://twitter.com/softwaredoug/status/628978794129436672](https://twitter.com/softwaredoug/status/628978794129436672) The tweet with the largest number of retweets got only 15....

As for "houses burn down too", tornadoes trash them as well, e.g. [http://www.ancell- ent.com/1715_Rex_Ave_127B_Joplin/images/](http://www.ancell- ent.com/1715_Rex_Ave_127B_Joplin/images/) and I lost over 200 physical books, records, CDs and DVDs. But since I had a good insurance policy, I got them replaced or otherwise covered, which I seriously doubt is possible with DRMed digital media (just tried some searches with no luck).

</comment></comment><comment><USER23> Write a song about it.</comment>


Men would rather receive an electric shock than think - <AUTHOR> http://www.wired.co.uk/news/archive/2014-07/04/electric-shock-therapy-better-than-thinking

<comment><USER2> As far as I can see, it's not "being alone thinking" it's "being without any mental stimulation".

If someone says to me: "here's a really hard problem, no go in that quiet room and come back when you have the answer", that would be "being alone thinking" and that would be fine.

OTOH, if someone just puts me in an empty room with nothing to do and nothing in particular to think about, I'm going to get bored very fast, which is going to make the time seem to go even slower.

The actual report is behind a paywall so I can't see the details but I suspect there could be hugely varied outcomes for the choice to administer a shock based on how the intensity of the shock is described (and how bad it turns out to be in reality). The finding that women are 25% less likely to shock themselves might just mean that the men are more adventurous or less risk- averse, not that "men don't like thinking".

I highly doubt many of them would have chosen to administer the shock if it was presented as "definitely lethal" or "excruciatingly painful", whereas I can imagine that while bored someone might simply be curious to find out what a mild electric shock feels like. FWIW I've had lots of 240V shocks and they aren't as painful as you might expect; not at all painful in fact, most of the time.

As far as I can tell, it's not that anyone chose the shock _instead_ of continuing to stay in the room, which might have been more interesting. That fact that someone apparently shocked himself 190 times implies that the time in the room was fixed regardless; it also implies that the shock wasn't particularly painful.

<comment><AUTHOR> Good points - I think the results might have been slightly different if they had been given a particular challenge to think about.

Re your last point: maybe that individual just enjoyed it!</comment></comment>


Kairn is a new task manager focused on speed - <AUTHOR> https://techcrunch.com/2020/05/06/kairn-is-a-new-task-manager-focused-on-speed/ <comment><AUTHOR> I like the focus on making it easy to get items into the todolist</comment>


Nimblecode: Type code and race your friends in JS, Python, and Go - <AUTHOR> http://nimblecode.io <comment><USER2> Hello HN, this is Mark and Rick from nimblecode here. 4 of us built this application over the last month and we'd love to hear your feedback and suggestions. Bug reports are welcome - it is still very much a WIP! Thank you.

</comment><comment><USER3> Go seems to be much harder to type than Python. Would be nice if each single player level linked out to a docs page that could teach me the syntax that I was typing out. I wasn't familiar with the function* syntax in JavaScript for example.

</comment><comment><USER4> I think the code quality is better than race.</comment>


Systemd-homed merged as a fundamental change to Linux home directories - <AUTHOR> https://www.phoronix.com/scan.php?page=news_item&px=Systemd-Homed-Merged <comment><USER2> I read the design document for this.

What's the point? This is not the 1990s. Who exactly is this for?

Who actually has multi-user systems. _Really_ has them.

Clients are either all single-user laptops (at home and at work), or single- user workstations. Very rarely they're multi user workstations, but then they use something non-local for their home directories anyway, so again who is this for?

This isn't the 1990s with 100 users on your computer club Linux server. Everyone just gets their own VM, now.

Honestly, who still runs a 1990s style shared shell server?

And per-user /home encryption on a shared system just sounds like a threat model contradiction. If you want to protect the users from each other then turning a blind eye to the regular local root exploits sounds odd at best. On servers for cifs /home if my home directory is secret, why would I expose it to every server I log in to?

And if not for human user accounts, how will this help anyone run their docker containers or any other type of service?

Am I just out of touch? Does this actually have users? Does it actually solve a problem?

It _breaks_ many use cases, that's very obvious.

<comment><USER3> Anecdotally, my laptop is being used by two users. It irks very much that neither Ubuntu nor Fedora can easily support a common directory for data to be shared between users. I ve created custom bash commands to fix group file ownership and similar issues arising from sharing a directory between two home users.

<comment><USER4> It should be easy to do this? Create a group, place the two users in that group, create a directory and setgid it to the group.

<comment><USER3> That works when copying but not when moving files. For the latter case you need to manually edit those properties.

</comment></comment></comment></comment><comment><USER5> I really hope this gets nicely abstracted away into a NixOS module soon. I've been looking for a solution to securely suspend to RAM by clearing the LUKS keys and reopening the LUKS volume when resuming. It looks like systemd-homed will be the first viable option to accomplish that.

</comment><comment><USER6> Interesting,

I don't really understand why distribution maintainers are allowing this one project to have so much control over the operating system.

<comment><USER7> I think the fact that all major distros have gone the direction of systemd is probably a good indicator that it makes sense to move there.

I'm sure the distro leads are smarter than I am, too.

<comment><USER8> They had no choice. After the udev fiasco running the Linux kernel without systemd becomes prohibitively complicated for many use cases. The main GUIs were similarly captured (e.g. with logind). You obviously can still run a Linux kernel based system without systemd but it is already hard and will get harder to run the larger userland components that other distros get "for free".

If you don't like systemd then the only sane option for you is to make the jump to FreeBSD.

<comment><USER9> Gentoo is looking at you disapprovingly .

<comment><USER7> I used gentoo without systemd for some time but things became problematic. Bluetooth headphones were barely functional, Firefox required pulse audio or sound didn't work out of the box.

I'm not in love with systemd, personally. But it's harder to live without it than with it.

</comment></comment></comment></comment></comment><comment><USER10> Without the amount of changes systemd makes to the operation of a system, at this point it should be thought of as a new operating system that shares a kernel with Linux.

<comment><USER11> We're not there yet:

Every program attempts to expand until it can read mail. — Zawinski's Law

<comment><USER12> All that's missing is a gvfs module to mount your IMAP directories...

<comment><USER13> From a UI perspective, this is brilliant. Windows had it with a shell extension that essentially turned Windows Explorer (not IE) into what would later be Outlook Express. It's awful that they opted out of making the desktop Explorer smarter and went the stand-alone application route.

</comment></comment></comment></comment><comment><USER14> I recently migrated to FreeNAS/FreeBSD. It's joyfully oldschool sysadmining, and for hobbyists/home server owners, it's so much nicer.

For business vs systemd... you gotta keep your crew busy with change, right?

<comment><USER15> For business we want something that works. At my last three jobs in a row I've had problems that systemd has been solving in an elegant, robust way. (Eight years ago it was startup ordering bugs with Upstart in an appliance; four years ago it was cleaning up a pile of cronjobs and handling the ordering relationships between them; today it's cleaning up a single cronjob that starts a big supervisord.)

For home use, sure, there's a joy to making things work. Same as some people enjoy building a computer from parts - but you'll never see a business telling their employees to go to PCPartPicker and put something together.

<comment><USER14> > Upstart in an appliance

> single cronjob that starts a big supervisord

/me screams

Seriously, why? All of those you're listing are monsters, and they should never have existed in the first place.

<comment><USER15> Because real-world systems aren't as pretty as hobby systems.

</comment></comment></comment></comment><comment><USER16> I think this is going in the opposite direction of where I'd like to see Linux and UNIX home directories going, but it's still an interesting change.

Has anyone played with it any? I know it just got merged, but I figure one of you may have tried it prior to that, so I might as well ask.

<comment><USER17> I agree that this is not the direction that I want Linux to go. I object to systemd all by itself for the same reason, and it's why I'm moving from Linux to BSD.

I haven't played with this, though. I don't have a use case for it.

</comment></comment><comment><USER18> 21k lines of new code added in systemd to maintain home directories?

What would happen if the daemon goes down or has security hole? Are users screwed?

<comment><USER4> Yes. I have already set up a VM for a friend where the root user could login but regular users could not.

Took some research and at least an hour of my time... something was not set up in the user slice configuration for systemd's liking.

</comment></comment><comment><USER19> I seem to recall this is incompatible with cronjobs, which puts it pretty far to the the game console end of the tool spectrum.

<comment><USER20> Pretty sure it also breaks ssh logins. This needs more discussion before blessing it. Systemd has bled far, far, beyond an init replacement.

<comment><USER11> > _Systemd has bled far, far, beyond an init replacement._

This has been my main objection to it: feature creep (with tight coupling between 'components').

</comment></comment></comment><comment><USER21> I'd much rather see easily portable desktop environments configs e.g. in KDE and xfce

<comment><USER22> How would that work?

<comment><USER21> I was thinking of a tool that would list GUI and integrated apps (maybe with a bunch of advanced options), you'd select which of those you'd like to backup and would give you an option to save a file which you'd then be able to import on another machine. It'd only dump non machine specific settings into the file.

But in order to do this there should be some kind of a standard so that pretty much any app could integrate into such tool if it listed allowed settings and its locations.

</comment></comment></comment><comment><USER23> Can systemd dynamically load new kernels at this point?

<comment><USER24> Systemd can launch an Emacs session, so...</comment></comment>


Continuous Design and the NoPSD Movement - <AUTHOR> http://thoughtworks.github.io/p2/issue02/continuous-design.html <comment><USER2> Wow, that is a lot of text to describe-- _I think_ \--a process most of us non-designer types who have to do nominal design at times have used for years without assigning it a name. Namely, we tweak CSS (and markup as needed) until the page looks good. We don't have an image-editing tool, nor do we want to invest the time necessary to learn how to use one. By comparison, we know what the CSS rules do. So we just design using CSS.

It's obvious that even some who call themselves "designers" would use the same process now that CSS3 gives us so many graphic effects.

Calling this _Continuous Design_ or _NoPSD_ speaks more to a somewhat irksome need to brand everything than it does to a new "movement."

<comment><USER3> I've often just seen it referred to as "designing in the browser." Simple enough I'd think.

Unfortunately any designing that's dealt with clients knows it's much easier to convince them of something they weren't previously aware of when it comes off as some new movement/idea/trend/etc. It's why Apple brands everything they introduce to their products, even if it's a technology thats been around for years. Telling client, "I know most designers do PSD mockups first, but I just design in the browser instead," likely wouldn't go over very well as they feel they're getting less than they otherwise would, even if the missing part is wasted time.

I personally havn't come across a client that'd go for pure designing in the browser (yet). Instead I've generally just encouraged a hybrid approach where the final PSD's are subject to changes and subtle tweaks once in development so that the PSD's can be seen as a rough draft and not necessarily a pixel perfect execution.

My most recent client was skeptical, but I think I managed to sell it with something like: "Does a painter paint a painting of his painting before he paints it?"

<comment><USER4> I suspect most clients will never be comfortable with "designing in the browser" for exactly the reasons you state. It does come across as amateur.

There is another reason this wouldn't work for most projects. Many, many projects are not just web based. They are part of an overall campaign that includes assets for all different types of media, especially print. Designers have to create assets for all potential media in the campaign, designing in the browser would be duplicating work.

However, if all you're concerned with is a pump and dump web product, then this approach may have merit.

<comment><USER5> What do you mean by "pump and dump web project?"

</comment></comment></comment></comment><comment><USER6> 37 Signals also skip Photoshop in their process: [http://37signals.com/svn/posts/1061-why-we-skip- photoshop](http://37signals.com/svn/posts/1061-why-we-skip-photoshop) (2008) so the NoPSD movement is not new really.

It depends on the skillset, if you only have a designer they will probably end up with Photoshop and Illustrator comps, if you have a UX/UI person they can probably work faster and make a better/real-world comp in html5/css3 etc that is also truer to the medium. Everything looks so good in PSD/AI and then the conversion leads to problems, better to comp in the final format nowadays.

<comment><USER7> the average UX person is not capable of doing HTML5/css3 in my experience.

</comment></comment><comment><USER8> Designer here. The specific downsides addressed in the article, IMHO, can be a problem of process, not tools. On my projects (I work at Hashrocket, RoR shop) we put clients through an initial look & feel phase to nail down general palette & styles, and move forward with PSDs that are approved prior to HAML/SASS slicing and actual implementation.

However, we always (always always) treat the PSD step not as Final Design, but as a high-fidelity communication tool - the next step after our wireframes (which are as un-designed as possible) and story cards. When requirements change, we loop back as far as necessary; for small changes, new stories and in-view UI adjustments suffice; for more fundamental changes we'll go back to the PSD.

Don't get me wrong - being able to maintain design quality in the face of change is one of the most difficult aspects of being a designer on an agile team (and getting design involved in the entire delivery process is absolutely essential) but the tool you use to build initial design isn't necessarily going to solve that challenge for you.

Personally I find it healthy to be able to concept layout & UI without making stylesheet & DOM structure assumptions. Designing via code, for me, blurs my focus - when I'm making decisions in Photoshop, I'm aware of the CSS that will be required to replicate it, but I'm not having to actively execute on them. Designing and coding take very different parts of the brain for me, if that makes any sense. Try drawing a picture while listening to a podcast vs. reading a book while listening to a podcast.

> "When it comes to products, user experience trumps pretty pictures. It's not > easy for most designers to do, because you have to rebel against everything > you've been taught as a designer: fight the pretty pictures, fight the urge > to tweak your drop shadows or find the perfect border-radius."

This is more than a little patronizing. Delivering a polished, professional design and being flexible to changing requirements aren't mutually exclusive goals.

</comment><comment><USER9> The only way in the real world to kill to PSDs is to have an easy-to-use WYSIWYG web design tool which would allow designers (and the non-technical) to eliminate HTML production pros. This has existed for desktop publishing since the 80s when programs like PageMaker eliminated the need for designers to work with phototypesetters who entered everything by hand.

I suspect the reason that this hasn't happen is because HTML has always been an evolving standard. So while you can use your copy of Quark from ten years ago today, you wouldn't be advised to do that with a ten year old copy of Dreamweaver if you want to make an HTML5 site.

Another reason Photoshop comps exist is because of clients who can't comprehend the abstract. As someone who does IA I can tell you that time I've had many clients (who are very intelligent) who just can't go from the abstraction of quickly done wireframes that show navigation to what the final site will be. So until you have clients like that (and maybe they're a generation away) you'll need Photoshop to what that final site will look like. And I say that knowing that Photoshop is really a hack given what the sites can do.

<comment><USER10> Instead of designers being dependent on WYSIWYG, let them learn HTML/CSS. It's not hard, and is a valuable skill to have.

<comment><USER11> Raw HTML/CSS is god awful - especially HTML, which has to be about the most unfriendly possible syntax to type out on a keyboard.

Currently I'm loving Jade/Stylus to implement a fairly static website design, and that's just building it with a simple script (with Live.JS to preview changes).

<comment><USER12> So your complaint about HTML is simply about typing it? You've piqued my curiosity, what's so horrible about the syntax in that you dislike typing it?

<comment><USER13> This is about to turn into an argument about why designers need to learn vim.

<comment><USER12> That, hmmm, that actually sounds like fun.

</comment></comment></comment></comment></comment></comment><comment><USER14> It's a good thought, but it's named wrong. Emphasis on 'psds vs not psds' makes it seem like it's about the tools, but it's not: it's about the process. Most of the problems stated in the article can be solved by simply not outsourcing design and doing it in-house. After that, all you have to do is learn how to iterate quickly. Designing for software products and designing for marketing/advertising are very different processes because they have very different needs. Software goes out and is updated as it lives and is used. Ad campaigns and branding materials very rarely are. I think the big thing here is that we have to recognize that, and not try to do all design in the same way.

<comment><USER15> This is similar to why NoSQL was a hard sell after the novelty wore off. People have uses for SQL _and_ its alternatives. Similarly, NoPSD is a fantastic, catchy term but of course we'll still want PSDs for graphic work. The point of NoX movements isn't really "None" just "Much less" and as a shorthand of expressing a way to do things differently.

</comment></comment><comment><USER16> Those large, fixed next and previous arrows are horrible. Does the author REALLY want me to consider skipping next or forward throughout the duration of the article? Probably not. Put the buttons at the bottom where they belong, similar to how Medium does it.

</comment><comment><USER17> This design-in-markup concept has been around for a while (I like the new term "NoPSD" though). I tend to flip both ways on this issue. For expediency's sake, and often in terms of usability and performance, designing in CSS definitely wins out.

The problem is that you end up with bland designs that tend to conform to the whims of the technology rather than the type of creative elegance that a PSD affords. Because photoshop is removed from the tech, a designer in Photoshop can use their imagination a little bit and force pushing the boundaries of the technology in ways that a developer typically wouldn't. Even when you are a developer and aware of the tech, spinning the design in Photoshop (and even better, further abstracted down to pencil sketches etc) just always gives more creative and aesthetically pleasing results in my opinion.

</comment><comment><USER18> I havent touched photoshop for interactive design in 5+ years.. First I switched to Illustrator, because photoshop is for photography not graphics.. and then 2 years ago I switched to pure CSS/JS built on top of HTML. I will do nice sketches of wireframes/ideas and then dive straight into the code. It's much faster production time.

I have been trying to get fellow creatives to make this switch, but it falls on dead ears, most of them cant write code and so they dont want to switch process's..

Which makes me wonder, if they cant write HTML at a minimum, why are they designing interactive?

<comment><USER19> Do you sketch on paper or in a wireframing tool?

<comment><USER18> Paper. Many of the designers I sometimes work with who do not know code, design really bad web products..

</comment></comment></comment><comment><USER12> The biggest problem with this is the apparently large number of designers out there that design for the web but have no idea how web pages work. It's not just that they don't know HTML or CSS coding, but that they don't how it works in the browser. I've had numerous discussions with designers of why their pretty design is simply not workable on a web page, not including the fact of the rendering differences between browsers. They expect pixel perfect matching of the mockup and almost always fail to understand why this is incredibly difficult to do. Plus the fact it's a wasteful exercise to begin with. The visitors are not going to care that the last sentence in the third paragraph breaks differently between IE, Firefox, and the mockup.

Forget about trying to explain how a responsive site works and that, yes indeed, they need to design several versions of the same page as the layout will change as the media queries kick in. The main reason for doing so is to prevent surprises when they look at the site on their phones. But since they don't understand how it works they can't design for it anyway.

I've always felt, based on job interviews with prospective designers, that the schools train backwards. They start with design concepts and at some point they introduce web design almost as an afterthought that barely touches coding. If a student wants to be a web designer they should learn how to code HTML and CSS before getting heavy into design. That way they know what they're designing for.

</comment><comment><USER20> Does "spike out a mainframe in two weeks" mean anything? I assume it's meant to be a designer parody of developer talk, but it just seems an odd phrase.

<comment><USER21> This page: [http://scaledagileframework.com/spikes/](http://scaledagileframework.com/spikes/) talks about the "spike" term (which I had never heard, but I've not worked with Seriously Formal Agile folks, as far as I know).

It's summarized as "Spikes [...] are a special type of Story used to drive out risk and uncertainty in a user story or other project facet".

It seems they "drive out risk" by focusing on analysis and research, rather than implementing stuff. I think.

<comment><USER22> You don't have to be a "Seriously Formal Agile folk" for a "spike" to be a useful concept. It just means that for a certain feature, you admit that you really don't know how hard it is, so you give yourself some time to get a better sense of it, usually by doing a quick and dirty version of the feature that you may or may not end up using. I'm sure you've done the same thing for years without needing a word for it, but hey, it can be useful to label concepts.

</comment></comment></comment><comment><USER23> The best designers I have worked with have been able to write textual documentation about what they want to achieve, doodle in whatever medium they prefer until they have visual concepts, and then work with me to turn those concepts into functionality.

Delivering PSDs is worse than useless, and the results of a skilled UX/IX designer working directly on the implementation are always better than either of us would have come up with alone.

</comment><comment><USER24> Depending on what I'm working on, I'll either skip photoshop almost completely, or I'll design almost every single thing in photoshop first. It's really up to the task at had. That said, I've started using Sketch for quick ui mockup work, and I'm really impressed. Granted, there's some serious performance issues they need to work out, but it's been pretty good so far.

</comment><comment><USER25> Hardly a new practice or even "movement". Its just a way of development, a process, I've been doing it since I was thirteen.

</comment><comment><USER26> I've been designing and prototyping this way for a few years now.

I still keep Photoshop and Illustrator around to prototype look and feel or specific design elements that can't be more readily achieved with CSS. Colors and type can at times be faster to experiment with in one of those tools. But I haven't sliced a PSD in years (except when developing another designer's work).

The other benefit is that your design can be readily kept in source control, in branches if need be, and if you have a good process in place and are thoughtful in your markup conventions, can be swapped between almost seamlessly.

Firebug/CDT are great for quickly tweaking a design...I imagine (hope?) the next wave of web design software would be much like those, except with an easier way to edit markup, work directly on files and integrate with source control. I suppose you can get some analogous with a browser reload plugin hooked to your text editor or filesystem.

<comment><USER7> I second this.

There is a few tools I would like to see developed to help this process, so I still need illustrator or fireworks (haven't used PSD for a long time after religiously using it for almost a decade) for a few things, especially when sketching concepts, but other than that it's easier and faster to script it.

Now if someone would develop a proper animation tool then that would get me excited. Something like how Flash was in the beginning. I know how to user after effects and can kind of get around Quarts, but they are both every cumbersome and not by default very well integrated into the design process.

<comment><USER27> The animation software Bret Victor demos in his "Inventing on Principle" talk looks pretty cool [1]. I don't know of anywhere the software from the talk is available though.

[http://vimeo.com/36579366](http://vimeo.com/36579366)

<comment><USER7> Yeah I love this work and have been following him all the way back from when he wrote Magic Inc.

I am not convinced about his particular way of doing animation though.

</comment></comment></comment></comment><comment><USER28> Webflow appears to be a tool that would help bridge the gap between Photoshop and handcoding designs in HTML/CSS. Just finished watching their video where they build a responsive website with it: [https://vimeo.com/69534373](https://vimeo.com/69534373)

<comment><USER29> (Founder here) Yep, that's the plan :)

</comment></comment><comment><USER19> I was actually questioning my current design process yesterday while mocking up a landing page in Fireworks. "Why not start the process in HTML using CSS3?" I thought. However, beyond basic layouts, I find it hard to programmatically mix and match colors, fonts during the creative process.

With that in mind, I always felt Photoshop was the wrong tool for the job, hence my preference of Fireworks over Photoshop. Moving to a fully code-based workflow would probably work better with some additional tooling in place.

I've been looking at Sketch and Edge Reflow. Any other suggestions?

<comment><USER30> Why not simply define the mood (or theme) of the site in FW - perhaps design some of the key elements. Once you're happy with that, you move into the browser and get to grips with the structure of your layout.

</comment></comment><comment><USER31> I think I stopped using PSDs about a year after I learned CSS. I tend to design sites directly in HTML and use PS or FW to create various elements.

Now that I use Compass/Sass, it's even faster.

</comment><comment><USER32> I too have replaced Photoshop with designing direct with CSS3 and using and online editor like pixlr.com/editor/ when thats needed. Works great!

</comment><comment><USER33> I wish this were more readable, the "grey on light grey" is nice but it seems that each day the foreground grey gets lighter and lighter...

<comment><USER25> Their line-height needs to be higher just for starters...

</comment></comment><comment><USER34> Though continuous design makes sense on paper, I am skeptical about the practicality of it. It was a big jump for developers to move to TDD & continuous delivery practices. I think unless a set of designer friendly tools and practices emerge, NoPSD requires a bigger cognitive "jump".

I for one am rooting this movement goes forward, since I like most did suffer the PSD to HTML cycle overhead.

<comment><USER35> Highly practical.

More than just making the design process much more conducive to iteration, you also have a designer doing the implementation. This is great, because it means that you no longer have to explain that a certain design treatment can't be done in code. Moreover, if there's a problem with the experience of using a certain element, the designer can change it on the fly with little overhead.

</comment></comment><comment><USER36> Happy to see a catchy name for this. Been trying to push it for a long time: [http://weblogs.asp.net/jgalloway/archive/2009/10/15/the- desi...](http://weblogs.asp.net/jgalloway/archive/2009/10/15/the-designer- developer-workflow-crisis-that-everyone-s-ignoring.aspx)

</comment><comment><USER37> the closest 'starting piece' of the noPSD movement I've seen was this one at quora (2011): [http://www.quora.com/Joel-Lewenstein/Joels-Posts/Life- Withou...](http://www.quora.com/Joel-Lewenstein/Joels-Posts/Life-Without- Photoshop)

I like avoiding photoshop for web design, but I've usually only seemed it championed by webapp businesses so far, not so much at places oriented towards more 'brochure-ish' sites - like another commenter said, even younger folks who arent used to tech can't interpret a wireframe as design progress. Also, similar to wasting time on a PSD that doesn't make interactive sense, I've fallen into a personal trap when designing code-first to stare too much at different SASS frameworks.

</comment><comment><USER38> I do this. Or at least I started now. I only use Pixelmator for making icons and smaller images for in-app icons. But most of the time, I style using code on iOS. The CPU can take it these days.

Unless you're doing patterns like linen, cloth and leather crap. Which... I don't even like.

</comment><comment><USER39> I would like to find a version of this manifesto that might be a little more approachable for some traditionally minded design folks that I work with. I guess I'll just have to write it myself.

</comment><comment><USER40> You would think someone with such strong opinions about Design would have bothered to actually Design their own site instead of being pretty blatantly "inspired" by Medium.com.

</comment><comment><USER41> The jab at HURD seems unnecessary and potentially distracting.

</comment><comment><USER42> Why the hating on the HURD?

</comment><comment><USER43> What is wrong with designing in Photoshop? I use PSD's as sort of a visual playground to experiment with new styles and prototypes of website assets (buttons/navbars/other reusable assets).

Getting real sick of the anti designers, simply because they can't design. Tired of all the new super easy flat UI's, and bootstraps. Put as much work into your design as you do the rest of your product.

I can't stand designing on the fly. A wireframe is fine, sure, but I prefer to lay things out at a basic level in Photoshop purely for dimensions. I know exactly where things are supposed to go, how spaced apart they are, etc. Then when I code it, I know whether I'm doing it right or wrong rather than fiddling with values to and fro and constantly judging whether X or Y is off.

Design assets.

Layout wireframe.

Code wireframe.

Import assets.

<comment><USER7> I can design, but I have to say that I do not believe the future belongs to PhotoShop.

I think you illustrate one of the problems with the "PSD" approach. You seem to think about design in this medium as a composition. But IMHO it's only a composition the same way a game is a composition. I.e. always in flux.

And it's a mistake to claim that just because people do flat ui they don't put enough time into the design.

<comment><USER43> I only mention flat UI and bootstrap because 90% of these 'startups' I see are god awful poorly laid out defaults.

I miss actual design on the web, something fitting to whatever theme or persona the website hopes to engage the user in.

<comment><USER7> A business is very rarely build on design the way you and I probably think about good design.

I appreciate pixel-pushing as much as anyone else, but I also have been in the design world long enough to see that for most startups it isn't and shouldn't be their first priority. Especially since most of them are going out of business in less than a year.

I always try to look at refined design as a way to optimize a product. Of course some basics are needed, but that's why we have design patterns.

<comment><USER43> I like to treat all aspects of launching a product with equal perfectionism. I don't believe one aspect of launch should be shunned. Yes they may go down in a year, but working on a pristine design doesn't take that much time and makes it that much better.

Of course it isn't high up on priority, but it is a task that should be taken seriously and completed eventually. Right now, it's usually an after thought which to me looks like neglect.

<comment><USER7> That's fine if you have an infinite amount of money. To almost everyone else, priority is the norm.

<comment><USER43> Whipping up a template or general theme in Photoshop now takes "infinite money". Enjoy your bootstrap, I'll just leave your site.

<comment><USER7> Enjoy your strawman, I'll just leave this conversation.

<comment><USER43> Enjoy your departure.</comment></comment></comment></comment></comment></comment></comment></comment></comment>


The best paper airplane in the world - <AUTHOR> http://www.zurqui.com/crinfocus/paper/airplane.html

<comment><USER3> I would have won a paper airplane contest in elementary school if the teacher hadn't been lame about it. The rules were to build a paper airplane with paper clips, paper and tape. Clearly, most of the kids were going to build silly airplanes that barely flew, with the best sticking to more or less standard designs that still wouldn't go all that far. My design was very simple: wad a lot of paperclips up into a compact ball and wrap it with paper and tape. I knew I could hurl it a lot farther than even the viable plane designs would go, because I could sink way more energy into propelling it. It was clearly superior, so the teacher disallowed it:-/

<comment><USER4> It seems thinking outside the box isn't encouraged in schools. Is this because schools (especially schools for children) are more about socialization than they are for learning?

<comment><USER5> It seems that when you're asked for a plane, you're expected to create a plane, not a wad of paper.

Presumably, this was during a unit on areodynamics, and the idea was to demonstrate an understanding of areodynamics, and not to show that you can throw balls farther than you can throw planes.

If the teacher had asked for the object that would go farthest, instead of specifically asking for a paper plane, then you would have a point.

<comment><USER3> 1\. There were no rules on what the 'plane' was supposed to look like. Creativity was encouraged and normally rewarded in this class (I liked the teacher a lot, actually, and was irked also because it was out of character for her to forbid thinking outside the box).

2\. It wasn't during a unit on aerodynamics, and in any case, "the motion of air, particularly when it interacts with a moving object" is quite relevant to wads of paper, meteorites, missiles, arrows, helicopters, and various other objects that are not airplanes. It might have been a good opportunity to explore why something like my wad of paper would go farther than most planes, as well as the relative real world advantages of different things.

</comment></comment></comment></comment><comment><USER6> The reason this flies well is that it is a proper airplane. Most paper airplane designs I have seen don't have a horizontal stabilizer, which will usually doom the plane to crash.

Without a tail section, most airplanes are unstable in the pitch plane - <USER2> resultant force from the aerodynamic lift doesn't work from the same point on the wing as the center of gravity. An additional horizontal lift surface is required to make sure the plane doesn't pitch up and stall.

The point the author makes about the center of gravity is good - with the center of gravity far forward, the airplane will have a smaller angle of attack (and hence less lift) for any given airspeed, and hence the plane will end up in stable flight at a higher speed, with a resulting higher margin for how strong gusts are required for it to stall and crash.

This is pretty basic applied aerodynamics, but not very common knowledge among the kindergarten teachers who teach the art of making paper airplanes.

This thing _might_ fly if you remove the tail, because the center of gravity is far below the resultant lift center - there is some trick here that can allow you to get by without a horizontal stabilizer. Paragliders and hang gliders use this, but I don't know why it works. Actually, the instructions on this site are pretty neat and probably a good way to learn about practical aerodynamics. On the "how to fly" page, they explain how you can trim the plane for higher or lower speeds by adjusting the tail section and making "flaps" - changing the shape of the wing in order to alter the lift coefficient (how much lift you get at a given airspeed and angle of attack)

</comment><comment><USER7> If Japan can pull off this paper airplane that's launched from the International Space Station and returns to Earth (reaching speeds of Mach 20), then I'd have to vote for that:

<http://news.bbc.co.uk/2/hi/asia-pacific/7230949.stm>

<comment><USER8> I'm pretty skeptical of the heat resistant coating mentioned in the article...

</comment></comment><comment><USER9> Ok, I just made it. It takes about 30 minutes to put together. The instructions are easy to follow but halfway through I changed to watching the video. Which is linked to in the instructions.

Mine fly's really well, it has a lot of lift so it could almost use some more weight in the tail section.

I added some tape to the tail section to hopefully add some weight. It didn't really help and thus my reaction is to say it isn't the "best" paper airplane. I don't think there is any "Best" paper airplane.

<comment><USER10> Try tweaking down the trailing edge of the wing and/or the trailing horizontal edge of the tail, to counter it. Mine was diving, and tweaking these surfaces upwards made a dramatic difference.

He talks about this after the instructions: <http://www.zurqui.com/crinfocus/paper/air-fly.html>

</comment></comment><comment><USER11> Mine flew surprisingly well. Took around 20mins to build and I've just lobbed it out of my balcony on the 30th floor lol. It was too dark outside to follow but will try again in the daytime :D

<comment><USER12> Add light. Or use glow-in-the-dark paper.

</comment></comment><comment><USER13> would have come in handy at the GT vs LSU chick-fil-a bowl where disheartened Georgia Tech fans were bored and made paper airplanes out of BB&T fliers on every seat.

"The second half so lacked in drama that fans began throwing dozens of paper airplanes from the second and third decks, cheering when a plane reached the field." - AJC.com

</comment><comment><USER8> _"24. Carefully tear off strip of paper. Save the strip of paper because you are going to need it to make the tail."_

In my opinion, a proper paper airplane is made from a single, uncut paper. If you break that page into pieces, you might as well be using multiple pieces of paper.

<comment><USER14> Mine too. You take a single sheet and fold it. No tape. No paperclips.

<comment><USER12> So it's only an improper plane..

</comment></comment></comment><comment><USER15> That was enjoyable. Thanks for the link.

For some reason, I sometimes find myself somewhere with free time and sheets of paper, but can never make a good airplane. That is no longer going to be a problem :)

</comment><comment><USER16> Mine took like 10 min to make. Flies forward and upward almost for 5-8 meters(indoors) and takes a rebound and lands. It is quite a sight and worth the time !

The heavy head and longish tail are key to this plane which distinguishes from most common ones. In my case, I guess the not so perfect tail and slightly tilted wings made it rebound.

PS: I checked this post and did not have the time or excitement to make one right then. But I have to tell you, you better pick a rectangular sheet of paper right away and try this one. Mindblowing.

</comment><comment><USER17> The best glider I've seen -- supposedly designed by a NASA engineer, although I have nothing to back that up -- is also one of the simplest.

Fold an edge over itself a couple of times, about a cm or two, to create a weighted edge. Then crease the entire sheet at regular intervals perpendicular to this edge, so it forms a curved surface. That's it!

<comment><USER18> ooh a flying wing ! i have tried this a number of times myself, and it works great indoors. however at the two extremities, i generally fold into a canard like thingie... works fine.

</comment></comment><comment><USER5> I remember this design from my childhood. (Well, a variation of it). Dropping the tail and tearing elevators/ailerons into the back of it turns it into an awesome stunt plane, one that can do loops and so on beautifully, or can (if thrown right) come back to you like a boomerang.

<comment><USER19> Me too - I've been making that variation since I was a kid and now my kids love playing with them too. I'm going to try this tail version now to see how they compare.

</comment></comment><comment><USER20> I will have to try this out when I get home.

I still think I would prefer the Nakamura Lock, though, because it accomplishes a similar goal (steady flight due to a proper center of gravity) with less complexity: <http://www.exploratorium.edu/exploring/paper/airplanes.html></comment>


Three factors explain 85% of the the gender pay gap - <AUTHOR> https://medium.com/team-transparentcareer/what-actually-drives-the-pay-gap-7be2c6476738 <comment><USER2> Stop submitting to HN under different titles. HN rules is to submit the original title unless it is clickbait. (And certainly don't _make_ the title more clickbait)</comment>


The true power of regular expressions - <AUTHOR> http://nikic.github.com/2012/06/15/The-true-power-of-regular-expressions.html <comment><USER2> > _"As such they can also match well-formed HTML and pretty much all other > programming languages."_

While you could match well-formed HTML, the inevitable follow-up will be "how do I match _parsable_ , but not well-formed HTML"? There is a reason that XHTML was deeply unloved.

(also... The <center> cannot hold it is too late. .. .ZA̡͊͠͝LGΌ ISͮ̂҉̯͈͕̹̘̱ TO͇̹̺ͅƝ̴ȳ̳ TH̘Ë͖́̉ ͠P̯͍̭O̚N̐Y̡ H̸̡̪̯ͨ͊̽̅̾̎Ȩ̬̩̾͛ͪ̈́̀́͘ ̶̧̨̱̹̭̯ͧ̾ͬC̷̙̲̝͖ͭ̏ͥͮ͟O̮̪̝͍ͮM̲̖͊̒ͪͩͬ̚̚͜Ȇ̴̟̟͙̞ͩ͌͝S̨̥̫͎̭ͯ̿̔̀ͅ)

<comment><USER3> ̡͊͠͝LGΌ ISͮ̂҉̯͈͕̹̘̱ TO͇̹̺ͅƝ̴ȳ̳ TH̘Ë͖́̉ ͠P̯͍̭O̚N̐Y̡ H̸̡̪̯ͨ͊̽̅̾̎Ȩ̬̩̾͛ͪ̈́̀́͘ ̶̧̨̱̹̭̯ͧ̾ͬC̷̙̲̝͖ͭ̏ͥͮ͟O̮̪̝͍ͮM̲̖͊̒ͪͩͬ̚̚͜Ȇ̴̟̟͙̞ͩ͌͝S̨̥̫͎̭ͯ̿̔̀ͅ) interesting...

<comment><USER4> It's from a very popular Stack Overflow answer a while back. One longtime user got tired of having to explain the intricacies of HTML parsing to people, so instead he posted a Lovecraftian rant about the horrors of parsing HTML with regular expressions.

<comment><USER5> For the curious:

[http://stackoverflow.com/questions/1732348/regex-match- open-...](http://stackoverflow.com/questions/1732348/regex-match-open-tags- except-xhtml-self-contained-tags/1732454#1732454)

</comment></comment></comment></comment><comment><USER6> As someone who has been reading The Wheel of Time, this article title makes me laugh. Backreferences as a metaphor for tapping into the power of The Dark One seems way, way too apt.

</comment><comment><USER7> This shows using PCRE to _recognize_ text following a context-free grammar (and some context-sensitive ones). Can you make it produce a parse tree too?

<comment><USER8> He noted that that's difficult, using just the PCRE library in PHP. In perl or C, where you can make the regex engine fire arbitrary code when certain things are matched it becomes much more possible (but still probably not an approach you really want to take).

</comment></comment><comment><USER9> The full set of PCREs, as the author points out, are NP-complete. The problem is, just because you _can_ do something doesn't mean you _should_.

If you ever find yourself constructing a recursively enumerable grammar (or even a CFG) using a regular expressions - whether PCREs or any other variant - you should ask yourself why you aren't using a parser generator or a proper tool for creating a compiler front-end.

I hope people don't miss the author's closing point, which is the most important part:

> But don't forget: Just because you can, doesn't mean that you should. > Processing HTML with regular expressions is a really bad idea in some cases. > In other cases it's probably the best thing to do.

I disagree that there are cases in which it's probably the best thing to do. Most languages support XPATH/CSS selectors/etc., which are much better tools for matching arbitrary HTML patterns. I'm guilty of conjuring up a regex to scrape image links every now and then, but you should really only do that when your domain of expected input data is far more restricted than the actual CFG that you're dealing with.

<comment><USER7> _I'm guilty of conjuring up a regex to scrape image links every now and then_

Any idea how to supersede that temptation? That is, what's wrong with the HTML-processing tool/sublanguage that makes regexes attractive instead? (For me, it's that I don't need to scrape HTML quite often enough to want to learn to use what's available. I'm probably irrationally lazy.)

<comment><USER10> Usually the problem is that the APIs are like typical XML apis which are a royal pain to use requiring various hoop jumping in order to say which tags are of interest in which container and relationships with siblings. If you are lucky you have to learn some sort of XPATH like syntax. Meanwhile you do a view source, and can trivially see exactly which lines you want, and say sod all that nonsense - I'll use a regex.

My recommendation is to find a library that provides jQuery/CSS selector style syntax and semantics, and then suddenly it is a lot easier to deal with the document. For example for Python there is soupselect or cssselect.

Amusingly the latter shows that the selector "div.content" translates into the XPATH "descendant-or-self::div[@class and contains(concat(' ', normalize- space(@class), ' '), ' content ')]".

</comment></comment></comment><comment><USER11> For what it's worth, here is the cited RFC 5322 email validator regexp except written in a form that Ruby's regexp parser understands:

<https://gist.github.com/4626713>

<comment><USER12> Thanks for rewriting it. In fact email validator was the thing I also found most interesting. It makes me consider doing email regex checks in Webapps.

</comment></comment><comment><USER13> This should be titled "The true power of PCREs"

<comment><USER14> For those not familiar with the subject: PCREs are not regular expressions in the computer science meaning. The article implicitly states that the PCREs are regular expressions.

So, the article's message boils down to "if you make your language more powerful, you can do more with it. The PRCE language is so powerful that you can do the following with it: ..."

</comment></comment><comment><USER15> I couldn't see this in there so this is related: _Oh Yes You Can Use Regexes to Parse HTML_ \- <http://news.ycombinator.com/item?id=2741780>

</comment><comment><USER16> No. Just no. As someone who has to maintain and build upon an RE based parser, no. They couldn't even get the RE right for URLs in the RFC, what makes you think they can get it right for HTML?

</comment><comment><USER17> This was a great read, but the comments got even more interesting.

It's all pretty much over my head, so I couldn't figure out if StoneCypher was trolling or if he had a real point.

<comment><USER18> Seems to be trolling. I find that refusal to link to a claimed source in the face of requests to do so almost always corresponds to trolling. Also

      There's actually a mathematical proof out there that no regular expression engine will safely extract from all broken HTML

seems like it has to be false unless it's _much_ more qualified.

</comment></comment><comment><USER18> The author declares that well-formed HTML can be recognized with a CFG, but it's far from clear to me whether that's the case. It's almost certainly not true for HTML5.

</comment><comment><USER19> I was really expecting an article about parsing HTML when he said right at the beginning:

>> You cannot parse HTML with regular expressions, because HTML isn't regular. Use an XML parser instead.

> This statement - in the context of the question - is somewhere between very > misleading and outright wrong.

But nope, after disappointment and going back to the beginning, he says he's not talking about HTML:

> What I'll try to demonstrate in this article is how powerful modern regular > expressions really are.

And not even a warning about how easy it is to make really terrible regex.

</comment><comment><USER20> Really interesting read, thanks for this !</comment>


Flint: A better alternative to Square? ($3M Funding) - <AUTHOR> http://techcrunch.com/2012/05/09/flint-a-new-mobile-payment-app-for-small-businesses-picks-up-3m-from-storm-true-ventures/?grcc=33333Z98ZtrendingZ0

<comment><USER2> Wait, you want me to let someone take a photo of my card? There's definite potential there for a exploit, I don't even like handing people my card to use a chip and pin reader.

</comment><comment><AUTHOR> Considering it does not require any additional hardware, I believe it is easily scalable.

What do you think?</comment>


Ingeborg Rapoport (102) to Become Oldest Recipient of Doctorate - <AUTHOR> http://www.wsj.com/articles/from-nazi-germany-a-tale-of-redemption-1431576062?cb=logged0.13811861590536267

<comment><USER2> Sounds like the icing on an otherwise delicious cake of an adventure that she calls her life.</comment>


Unforgettable Road Trip Advice? - <AUTHOR>

I've always loved the California coast.  I've been to LA, SF, SD, Monterrey, Santa Barbara, Palm Springs, I love them all.   My GF got some time off work, and we are planning a trip from Aug 31 to Sept 6.  I thought that taking a road trip through Cali (or even Washington or Oregon), would be a fun way to spend the time.  The only thing I need to plan around is that I must be in Las Vegas on the 7-9th for my friend's bachelor party.<p>If any of you have taken some unforgettable trips on the coast or in the countryside, I would love to hear your suggestions.  Thanks! <comment><USER2> Mendocino! It's the best</comment>


Poor form, European Commission. "Science: It's a girl thing" - <AUTHOR> https://www.youtube.com/watch?feature=player_embedded&v=oZtMmt5rC6g Speaks for itself. <comment><USER2> While the teaser linked here is indeed awful, the individual profiles of women in STEM uploaded on the same profile as part of the campaign are actually pretty good.

Example: [https://www.youtube.com/watch?v=113YCpmDrII&feature=relm...](https://www.youtube.com/watch?v=113YCpmDrII&feature=relmfu)

</comment><comment><USER3> I think it's lovely, dubstep notwithstanding. What if this campaign proved to bring positive results - would it be OK then? Or do ends not justify the means?

<comment><USER4> It's using the girls themselves as eye candy, which is usually more of a "guy thing". Second-wave feminists won't like it, but honestly I have no idea if it would put off actual girls. Edit: ok the youtube comments make it clear that no one likes this video.

</comment></comment><comment><USER5> European feminism is different from American feminism.

<comment><USER4> This looked extrememly pro-women to me. And I'm an American. I wonder why almost no one seems to like it?</comment></comment>


Haskell's Missing Concurrency Basics (2016) - <AUTHOR> https://www.snoyman.com/blog/2016/11/haskells-missing-concurrency-basics <comment><USER2> There's an open position at Facebook to work on GHC. If you're into Haskell and want to make it better, here's your opportunity: [https://www.facebook.com/careers/jobs/a0I1H00000MoVjBUAV/](https://www.facebook.com/careers/jobs/a0I1H00000MoVjBUAV/)

</comment><comment><USER3> How does erlang/elixir do it? I've never really had any problems.

<comment><USER4> Elixir newbie here. If I remember correctly IO is implemented as a process, which means that different write requests are processed sequentially in the order they arrive to the process. The following link has more information: [http://erlang.org/doc/apps/stdlib/io_protocol.html](http://erlang.org/doc/apps/stdlib/io_protocol.html)

<comment> phoe-krk Correct. Erlang (and therefore Elixir) stdio is implemented by means of sending messages to a process that does low-level writing to a console. When a single message is served, the other are queued up.

Therefore, when two processes (let's name them A and B) want to output something at the same time, the result is going to be AAAABBBB or BBBBAAAA (depending on the order in which the messages arrive in the mailbox), but never BBAABBAA or anything similar.

<comment><USER5> ...where "AAAA" and "BBBB" are two distinct messages, and not two sets of four messages each ("A", "A", "A", "A").

When I first read your example, it sounded like you were saying that the IO process would exhaust all messages from one source process before processing any messages from the other, no matter what order they arrived in.

<comment> phoe-krk Yes, correct. I wasn't clear enough.

</comment></comment></comment></comment></comment><comment><USER6> I had some sympathy for this situation, until I saw that the concurrency was being specified via a function called `mapConcurrently`.

IMHO this is perfectly acceptable behaviour for a `map` function, since that name has gained the connotation that its purpose is to transform one 'collection' (Functor; whatever) into another, by pointwise, _independent_ applications of the given function. Providing a function/action which breaks this independence (by writing to the same handle) breaks this implicit meaning. Heck, I'd consider it a code smell to combine interfering actions like this using a _non-concurrent_ `map` function; I would prefer to define a separate function to make this distinction explicit, e.g.

        -- Like 'map', but function invocations may interfere with each other (you've been warned!)
        runAtOnce = map

When using `map` functions (which is a lot!) I subconsciously treat it as if it will be executed concurrently, in parallel, in any order. Consider that even an imperative languages like Javascript provide a separate `forEach` function, to prevent "abuses" of `map`. Even Emacs Lisp, not the most highly regarded language, provides separate `mapcar` and `mapc` functions for this reason.

With that said, I recognise that there's a problem here; but the problem seems to be 'mapping a self-interfering function'. If we try to make it non- interfering, we see that it's due to the use of a shared global value (`stdout`); another code smell! Whilst stdout is append-only, it's still mutable, so I'd try to remove this shared mutable state. Message passing is one alternative, where we can have each call/action explicitly take in the handle, then pass it along (either directly, or via some sort of "trampoline", like an MVar). This way we get the "concurrent from the outside, single- threaded on the inside" behaviour of actor systems like Erlang. In particular, it's easy to make sure the handle _only_ get passed along when we're 'finished' with it (i.e. we've written a complete "block" of output).

</comment><comment><USER7> Thread-unsafe `println` is one of Clojure's quirks too!

<comment><USER8> Interesting, I think it's thread-safe in Rust because one of the common performance improvements for console applications with lots of output is to acquire the relevant stream's lock (and perform all writes against a never- released guard) otherwise it's going to be acquired and dropped on every write: [https://doc.rust- lang.org/src/std/io/stdio.rs.html#448-461](https://doc.rust- lang.org/src/std/io/stdio.rs.html#448-461)

</comment></comment><comment><USER9> I'm kind of surprised to hear that writing to stdout is a source of concurrency problems in a language that's considered to be functional.

Surely if you can pass your IO handles to all functions that need them, you can decide on a mutexing/buffering strategy at the top of your program, wrap the standard IO interface with a delegate that does so, and pass it on. Then, for all libraries called thereafter to use it consistently isn't just a no- brainer, it's an outright given, isn't it? There's no _global_ (impure, non- functional) handle to stdout, is there?

<comment><USER10> Haskell's being functional is pretty much irrelevant here. The process has one stdout. If functions that write to file handles don't acquire a lock, then the output of different threads will get mixed up.

<comment><USER6> It's easy to split hairs about what "being functional" means, but the way that Haskell implements IO is certainly a byproduct of this. In particular, my preferred mental model of Haskell doesn't include "functions that write to file handles"; but rather, these would be pure functions which return IO "actions".

This distinction is often inconsequential, but this case seems to rely on how we combine those "actions" together (which, due to laziness, may happen far away from where/when the functions are called; see 'lazy IO'). For sequential IO we can combine things with Applicative and Monad, which gives us a definite order, but using these in a concurrent setting would cause too much synchronisation and determinism to be useful. I've not done enough concurrent Haskell to know how the various alternatives stack up; although I did play with Arrow many years ago, before it fell out of favour (seemingly for Profunctors?).

<comment><USER5> Monadic I/O (as I'm sure you know) just means that every I/O effect takes a world-state as an implicit parameter ("the world just before this action"), and returns a world-state ("the world just after this action") to thread into the next effect. In a concurrent program, I/O effects from multiple threads (and the outside world) may be interleaved or executed concurrently. Crudely, the world you changed a moment ago isn't necessarily the world you're about to change again. :)

Monadic I/O on its own doesn't make any guarantees, or impose any requirements, about locking external resources. If stdout is locked (from within the monad, or not), then that's the state the world arrives in for your effect. If not, then it's not. They are orthogonal concerns.

<comment><USER6> I get what you're saying, but I don't like to think of these as orthogonal: locking is a way to force actions to occur in a particular order, so is monadic IO (the 'world-state' is a dummy data dependency, preventing later actions from getting called before earlier ones; it doesn't "really" contain the whole state of the world ;) )

<comment><USER5> I get what you're saying too. :) I think one reasonable semantics for monadic I/O is that it sequences effects in a single thread; and effects from other threads are part of the world-state, not part of the monadic context. Another reasonable semantics is what I think you're describing: monadic I/O in a multithreaded program should sequence effects across all the threads (e.g., mutexes on shared resources). It would be nice to have both options available -- maybe similar to how you can plug a strategy into Haskell's Control.Parallel.Strategies monad.

[https://hackage.haskell.org/package/parallel-22.214.171.124/docs/Co...](https://hackage.haskell.org/package/parallel-18.104.22.168/docs/Control- Parallel-Strategies.html#t:Strategy)

</comment></comment></comment></comment></comment></comment><comment><USER11> Use an STM channel or some other lock and put your messages for the shared resource (the terminal ui) through that channel. There's no way to automatically figure out what granularity the programmer expects from the output so make them specify. Haskell makes specifying that staggeringly easy compared to other languages.

</comment><comment><USER12> How can you get a performant language if your I/O granularity is 1 character? :-O

EDIT: this is an honest question, I was shocked to read what was in the article.

<comment><USER6> Strings in Haskell are one of the language's sore points. It's something that's mostly a non-issue for those using Haskell day to day, but may be surprising to newcomers.

Haskell's built-in string type is a list of characters. This is mostly for historical reasons, but it's also handy in education (installing extra packages is a barrier for learners; list processing is common in introductory courses, but lists are polymorphic/generic in their element type; lists of characters are a nice concrete type, which follows on easily from "hello world"); also there are arguments about the theoretical elegance of linked lists, KISS for the builtins, whether there's concensus on what the best alternative is, etc.

Anyone who cares about Haskell performance will have hit this early on, and be using a different string implementation, as mentioned in the article. In particular there's ByteString for C-like arrays of bytes, and there's Text which is just a ByteString with extra metadata like character encoding. In fact, ByteString doesn't have to be a single contiguous array: it can be a list of "chunks", where each chunk contains a pointer to an array, an offset and a length; this speeds up many operations, e.g. we can append ByteStrings by adding chunks to the list (pointing to existing arrays), we can take substrings by manipulating the offsets and lengths, etc. This is all perfectly safe and predictable since the data is immutable, where other languages which allow mutation might prefer to make copies of the data to reduce aliasing.

The other aspect is the buffering mode of the handle, which is discussed a little in the article and its comments (e.g. line-based buffering, etc.).

</comment></comment><comment><USER13> Title is missing a (2016).</comment>


VS 2010 drops support for Emacs key bindings - <AUTHOR> http://connect.microsoft.com/VisualStudio/feedback/details/465750/emacs-keyboard-mapping-scheme-not-working-in-visual-studio-2010-beta-1# <comment><USER2> As an Emacs user, I've never found Emacs-ish keybindings in other applications to be helpful. Take Textmate, for example. Its default keybindings are a little bit Emacs-ish, and they're just enough to lull me into a false sense of security. Control-[f,b,a,e] do what I expect, but as soon as I try to go forward a word (Meta f), the Find dialog box pops up and steals focus.

In applications that don't try to emulate Emacs, I get slapped on the wrist the first time I try an Emacs command; it's immediate feedback that "hey, bozo, this isn't Emacs".

</comment><comment><USER3> oh noes, why?</comment>