Production Rails Tuning with Passenger: PassengerMaxProcesses - <AUTHOR> http://blog.scoutapp.com/articles/2009/12/08/production-rails-tuning-with-passenger-passengermaxprocesses

<comment><USER2> _Generally speaking, you want to fill up as much RAM as possible with passenger processes without utilizing swap in order to maximize you performance and throughput._

Uh, what?

On a single-app box with real traffic (as the article implies), look first to CPU. If your average request spends 50% time in db/services and 50% time in processing/render, using more than 2-3 passenger procs per core (i.e. 100% core utilization) is less efficient and a waste of memory. Multiply by cores. (Back off a bit for db on the same machine.)

You want plenty of spare memory for OS cache, to keep your code and static files in memory -- that is, your disk reads should be zero.

And don't do swap, kids.

<comment><USER3> Excellent point, Jeremy. This article didn't talk at all about the CPU/RAM balance, which is a important to consider when scaling any application. In my experience, a large number of Rails apps are more RAM bound than CPU bound due to large gems/libraries/codebases.

Having additional Passenger processes available even when CPU bound will allow for greater throughput (if at a less-than-ideal speed) than having requests back up on the queue, however - especially if those requests spend a good amount of time waiting on DB, memcached, or other external API calls.

<comment><USER2> If you're CPU-bound, you can't have greater throughput, by definition. Once you calculate your non-cpu latency (50% in my example) ceil(1/latency%) is your limit per core, before you start wasting resources.

<comment><USER3> You can't gain any more cycles, of course, but you _can_ gain throughput by adding processes to an already cpu-bound app by giving faster incoming requests a place to go instead of sitting on the global queue while waiting for other requests to process.</comment></comment></comment></comment>


OpenSSH 7.3 released - <AUTHOR> https://marc.info/?l=openssh-unix-announce&m=147005475229564&w=2 <comment><USER2> The ProxyJump (-J) and Include directive features are huge! Really improves a lot of workflows where a tool like gcloud autoconfigures hosts in your SSH config (and could now do so with a bastion host easily).

A bit ironic openssh.com doesn't have HTTPS: [http://www.openssh.com/txt/release-7.3](http://www.openssh.com/txt/release-7.3)

Edit: corrected typo!

<comment><USER3> I think _ProxyJump_ is a nice way to explicitly state that you want to jump hosts, but this is currently possible with _ProxyCommand_ , such as the following...

      Host appserver1
        ProxyCommand ssh bastionhost.com -W %h:%p

<comment><USER4> The announcement already mentions that ProxyJump is meant to be a simplified version of indirection, not a completely new feature.

</comment></comment></comment><comment><USER5> Fun things to note:

      * ssh(1), sshd(8): Reduce the syslog level of some relatively common
        protocol events from LOG_CRIT. bz#2585

This will change the reporting of some systems' logs, which could result in different log reports. If you've ever wondered "why did we suddenly get 20% less critical alerts in August?", upgrading OpenSSH could be one reason.

      * sshd(8): Remove obsolete and misleading "POSSIBLE BREAK-IN
        ATTEMPT!" message when forward and reverse DNS don't match. bz#2585

Lol. Also, for programs/scripts designed to expect specific interactive warning messages, this could break them.

As for the security fixes, the first means there's a potential DOS in older versions, the second means you could possibly detect valid accounts in old versions, and the fifth is a local attack that's viable in old versions:

      If PAM is configured to read user-specified environment variables and
      UseLogin=yes in sshd_config, then a hostile local user may attack /bin/login
      via LD_PRELOAD or similar environment variables set via PAM.

Drop an LD_PRELOAD library in /tmp/, log in to the server passing the path to the library in the LD_PRELOAD variable, and PAM will load the library into the resulting login program. PAM then lets you run a root program with your own library functions. Fun stuff! (Also: I hate PAM)

<comment><USER6> > log in to the server passing the path to the library in the LD_PRELOAD > variable

Doesn't that require AcceptEnv LD_PRELOAD? Are there people who run with AcceptEnv *?

</comment></comment><comment><USER7> > "This is primarily a bug fix"

Followed later by

> "Add an Include directive for ssh_config(5) files"

Edit: my comment wasn't intended as negative, more a pleasant surprise. How often does "primarily a bug fix" release include functionality thats been requested by users for literally years?

Edit2: wow. Very unfortunate typo.

<comment><USER5> Bugfixes are considered more critical than new features so they get higher priority in announcements (unless you're, like, really excited about it). There are more security and bug fixes in this release than new features, so primarily bugfix release

</comment></comment><comment><USER8> What distribution has this version</comment>


Introduction to Authentic: Authentication for Microservices - <AUTHOR> http://dry.ly/authentic <comment><USER2> Sweet digs. This is a very cool project. Authentication is one of the most time consuming and fickle parts of any project. Its great that this handles the authentication workflows and nothing else. All thats left to do is build an API to expose a protected resource.

Love that this is build ground up to work from static front ends.

</comment><comment><USER3> Awesome and straight forward, great examples to get going and using the libs. Thanks for putting it all together!

</comment><comment><USER4> Interesting! Does anyone who has any experience in passport.js know how this compares?

<comment><USER5> As a passport user I would use passport (for now) if I am heavy on the social sign in. If I were using user/password type authentication I would use this.

That being said, I want to work with the author a bit to figure out how hard it will be to either link up with passport for social or maybe even write an oauth plugin for this, but I'm not sure yet. You could look into it to! :D

</comment></comment><comment><USER6> So rad, I've been waiting for something like this for ages!</comment>


Even female uber drivers get paid less - <AUTHOR> https://www.recode.net/2018/2/6/16979370/female-uber-drivers-get-paid-less <comment><USER2> Very interesting: Uber built a sex-blind system, and behavioural differences between the sexes appear to drive (pun intended) all the pay difference: women choose to work less-profitable routes, work for a shorter time and drive more slowly.</comment>


The Blind Man Who Taught Himself To See - <AUTHOR> http://www.mensjournal.com/the-blind-man-who-taught-himself-to-see/print <comment><USER2> Previously discussed here:

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


YouTube down worldwide - <AUTHOR> https://canadianoutages.com/status/youtube <comment><USER2> I was wondering what was causing all these 500 Server Error iFrames to show up all over the web. This is exactly why I oppose our current system of copyright laws. There's no legal way to mirror a lot of the really unique, rich content that's on YouTube and, if one day that content creator decides to delete it off YouTube, we might lose large pieces of internet history forever and just flat-out break sites that are embedding that content.

Scary thought...

<comment><USER3> That's why we need IPFS, blockchain and all kind of decentralized system. Watch DTube meanwhile [https://d.tube/](https://d.tube/)

<comment><USER4> That is why it's so important to never be down. Otherwise when would I have heard of DTube?

<comment><USER5> I forgot the name but there is a website in Russia that is very similar to Youtube and quite popular as well.

</comment></comment></comment></comment><comment><USER6> Speaks to the great work that the youtube SREs generally do that these events are shocking.

<comment><USER7> It's true. I mean, has YouTube _ever_ been down before?

<comment><USER8> Only scheduled outages in their first few years, generally preceding a brand new video player look and feel before they eventually settled on the red that would is still in their current player.

Other than that, I don't recall YouTube ever having an outage per se.

</comment></comment></comment><comment><USER9> Do they encrypt the server side error stack trace so they can safely leak server details which makes error reporting on the client side secure and straight to the point instead of having deal to with custom error messages?

500 Internal Server Error Sorry, something went wrong.

A team of highly trained monkeys has been dispatched to deal with this situation.

If you see them, send them this information as text (screenshots frighten them): APkpgMWbWQ3LvimPoFynDB0W8VeUJ9ECiPcDCm8L0Qiku1I2TbAShWp- taKn- AzOGigwq0sU4oe9mbWb2Bwv4BK37C5xOAL7qm11fHn4L0swqhLk wbcnyKH2HM3AQNf- ucVsolyigJTNKA2SSNUMVZnDPmfsFH7ecKkpQmNi VGWhtXypv0zJyz9d_mpkgMoONtIrPUA4imxK- gNnE-_WQWQZNJm0CTae slJVC-TYgnvOZ9AYp6nodeUNpCoGspWaJVXn_ZSxy-71oGdlkCqWs6AY 2wmIEKe8eeAMqwkTHZNHkbAaH-fxWE_WDPuG-q7AFbOz8jZCFD06MYgf obFUSaH6B7PUdBFwVvjEaTD34J8PVhZTIJziRK-9-wSHOI6Vwf1lTuFe X0m52abRMW1VJaZB3taHK09kFT8Lv546OPhsL0Bn70UIs2durkAAYe4Z ...

<comment><USER10> That's a great idea.

</comment></comment><comment><USER11> Well now. I guess everyone runs into one of these every now and then. I thought my Roku had finally bought it.

<comment><USER12> Yup - guess I can't blame this one on my apartment complex's awful ISP. I hope someone posts a post-mortem later.

</comment></comment><comment><USER13> This is also affecting YouTube TV, which is a little unfortunate because it's NBA opening night and the middle of baseball playoffs. With so many streaming TV services, I can't be the only one who signed up for another one right there on the spot.

</comment><comment><USER14> Google analytics is also down for me

</comment><comment><USER5> Wow, I thought my computer had issues. SRE @ Youtube will probably be very busy tonight.

</comment><comment><USER15> I was blaming it on Comcast - couldn't believe its youtube. I can search videos fine, so looks like a problem with media side.

</comment><comment><USER16> Youtube is down in NJ so probably north east.

<comment><USER17> Down in MD as well as from int'l VPN. Activate Crab 17

</comment></comment><comment><USER18> I am from India. It's working just fine. Not sure what do you mean by worldwide

<comment><USER18> Wait, I think it's down here too. The home page opens just fine. But when I search for something and try opening that up, nothing comes.

<comment><USER19> The homepage doesn't how any videos. The search bar starts showing suggestions as I type and ends up fetching videos but when I click on them to play, it says "An Error occurred. Please try again later. (Playback ID: some-value)". Its down. I wonder how other functionalities are working.

</comment></comment></comment><comment><USER20> Google maps was giving me 500s too. Someone's having a bad afternoon.

</comment><comment><USER21> Good news: highly trained monkeys are on the way

</comment><comment><USER22> Heading over to Vimeo for first time in ages. This is like when Apple has a live event and we have to open Safari.

</comment><comment><USER17> isitdownrightnow.com can't keep up. Getting 520 errors on [http://www.isitdownrightnow.com/youtube.com.html](http://www.isitdownrightnow.com/youtube.com.html)

</comment><comment><USER23> Down in US midwest</comment>


Naming Names, Turks Turn Up Heat on Saudis in Consulate Case - <AUTHOR> https://www.nytimes.com/2018/10/10/world/middleeast/jamal-khashoggi-saudi-turkey.html <comment><USER2> Feels like they may be taking a leaf out of the Russo-Skripal handbook here, and making barely any effort to cover their tracks as a show of brazeness to other potential defectors/dissidents. Guessing some fallen-from-favour minor Saud is going to take the fall to keep things smooth between the two countries.

<comment><USER3> It was incredibly stupid of them to commit the murder at the embassy. It totally removes plausible deniability and draws unnecessary attention to their embassy. They knew his schedule and could have performed the assassination shortly before or after the embassy visit and still be able to intimidate their enemies.

Another thing Khashoggi's murder highlights: it's becoming increasingly difficult for intelligence services to hide the identifies and activities of their operatives. Competent researchers can much more easily map them out by accessing social media, CCTV data, public government databases and the occasional leak.

<comment><USER4> There are obvious examples of this and you may be entirely correct, but does this apply to countries that aren't dictatorships or similar? Israel, China, USA, Britain, France, Germany, Italy et al seem to be doing ok at keeping their dirty work quiet, or am I just missing the news? It seems unlikely that they all have clean hands.

<comment><USER2> I think killing a political dissident in another country that's not actively at war is considered a bit beyond the pale by most democracies, doubly so if you're putatively on good terms with them.

Mossad, alternatively: [https://en.m.wikipedia.org/wiki/Assassination_of_Mahmoud_Al-...](https://en.m.wikipedia.org/wiki/Assassination_of_Mahmoud_Al- Mabhouh) — although the victim was far from either a dissident or turncoat.

<comment><USER4> Extraordinary renditions come to mind. While murder wasn't the primary aim, it happened. That involved numerous democracies.

<comment><USER2> While I'm sure there are occasional counter examples, weren't these largely from either war zones or with the cooperation of the host country?

<comment><USER4> Yes - I'm not sure if that makes it better or worse.

</comment></comment></comment></comment></comment></comment></comment><comment><USER5> > "Western intelligence agencies have generally regarded their Turkish > counterparts as reliable on domestic matters."

I struggle to believe the author wrote this with a straight face. Are these the same reliable intelligence services that just help purged half the Army officer corps, Judiciary and Turkey's teachers because they are conspiring with a religious leader in the USA? [0] I am quite sure they would point fingers at whoever Erdogan wanted a finger pointed at.

I don't know the politics going on behind the scenes here, but I do not believe anything either side are saying.

[0] [https://en.wikipedia.org/wiki/2016%E2%80%93present_purges_in...](https://en.wikipedia.org/wiki/2016%E2%80%93present_purges_in_Turkey#Police_and_judiciary)

<comment><USER6> Keep in mind that the U.S. has communication intercepts [0] that show the Saudis were discussing luring him from Virginia and that the Crown Prince directly ordered it.

[0] [https://www.washingtonpost.com/world/national- security/crown...](https://www.washingtonpost.com/world/national- security/crown-prince-sought-to-lure-khashoggi-back-to-saudi-arabia-and- detain-him-us-intercepts- show/2018/10/10/57bd7948-cc9a-11e8-920f-dd52e1ae4570_story.html)

</comment></comment><comment><USER7> It's been wild living in the Middle East and watching this turn into a first rate shitstorm across the region, with the Saudis lining up allies to farcically yell "Fake news!" in the face of the evidence being dribbled out by the Turks.

I wish the USA could convincingly say something to the Saudis, but with our recent surrender of the moral high ground (and indeed increasingly convincing speculation that we armed the Saudis with intelligence that informed this purge), that is probably not going to happen.

<comment><USER4> Why would this would prompt the US to try and change things if events of 2001 didnt?</comment></comment>


A polymer made from waste cooking oil and sulphur can clean up crude oil spills - <AUTHOR> http://news.flinders.edu.au/blog/2018/04/19/slick-solution-oil-spills/ <comment><USER2> For those who were annoyed by the inconsistent units in the story:

"International Tanker Owners Pollution Federation reporting about 7000 tonnes of crude oil spilling from tankers into oceans in 2017 alone."

".. explosion on the Deepwater Horizon offshore drilling rig on 20 April 2010 and subsequent release of approximately 4.9 million barrels of crude oil into the Gulf of Mexico."

According to this site ([https://www.reference.com/science/much-barrel-oil- weigh-b29e...](https://www.reference.com/science/much-barrel-oil- weigh-b29eeb18d34510ef)) "In order to get a metric tonne of oil, one would need about 7.33 barrels of oil."

7000 tonnes ~ 51,310 barrels

4.9 million barrels ~ 668,485 tonnes

<comment><USER3> Sometimes I wonder how numbers are regarded in journalism. From the outside it looks as if there was some cult around reproducing the exact string that the source uttered, but with no understanding.

<comment><USER4> Having been quoted in a newspaper article once, I can attest that journalists don't always care about precision when reproducing utterances.

<comment><USER5> Let's put journalists interview quotes on the blockchain! Then they can't be faked and everyone can ensure they are real!

/s

</comment></comment></comment></comment><comment><USER6> I see a surprising amount of awesome work coming out of the pokey town of Adelaide.

<comment><USER7> Even has a couple of Nobel Laureates!

<comment><USER8> And a fields medalist, in one sense. Terry Tao is a Flinders graduate.

<comment><USER6> The chap who helped make penicillin deliverable was from Adelaide as well.

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

</comment></comment></comment></comment><comment><USER9> Hopefully the Chinese gutter-oil industry[1] will start selling to this purpose, instead of as cooking oil!

[1] [https://en.wikipedia.org/wiki/Gutter_oil](https://en.wikipedia.org/wiki/Gutter_oil) \- while recycling oil from deep fryers might not sound awful, some gutter oil is literally taken from the gutter - sewage is being recycled and sold as cooking oil in parts of China!

<comment><USER10> Remember that manure has been used as fertiliser for basically as long as humans have existed, so waste being recycled is not a new nor unusual phenomenon.

From the article, at first it looks like the recyclers have done a pretty good job...

 _The illegal oil shows no difference in appearance and indicators after refining and purification because the law breakers are skillful at coping with the established standards_

...but then...

 _Gutter oil has been shown to be quite toxic, and can cause diarrhea and abdominal pain._

...makes me think the standards and testing processes need to be changed.

<comment><USER11> Using manure as fertilizer is very different, in the sense that anything grown in fertilizer can be washed before eating. We don't generally wash things between cooking them in oil and consuming them.

</comment></comment></comment><comment><USER12> Spoiler Alert: The article takes too much space to say almost nothing.

 _sigh_ Science journalists.</comment>


What do you want to see in Learn C The Hard Way? - <AUTHOR> I bought the domain to force myself to do something with the free time I'll soon have an abundance of.
I want to see more young programmers doing systems programming and making cool things with the language that forms the basis of almost everything we use.
What do you want to see covered in a 'book' that purports to teach C the hard way? :)
I will be following Zed's example, although I'll be influenced by my learning under K&R. I really do want to be demonstrating proper, modern C. <comment><USER2> whatever you do, make your examples bulletproof. even if it's not how you would normally write the code and it seems overly cautious, do your audience a favor and write the example that way anyway.

if there are any buffer overflows, integer overflows, off-by-one's, signedness issues, failure to check return values of everything, use of typically insecure things like sprintf instead of snprintf, all of these problems will just carry over into your readers' code. please do us all a favor and stress the importance of writing secure code from the ground up and not as an afterthought or something only done just before releasing it.

<comment><AUTHOR> I don't think the learner would appreciate the subtleties, and I don't agree that they'll learn anything from it.

I can reinforce each lesson/problem you're describing one by one through the exercises, but a new person simply wouldn't know good code if it slapped them in the face.

Confer with Learn Python the Hard Way to get a feel for the aesthetic and technique I'm working towards.

I don't want to write bulletproof code, I want to teach them how and why to write bulletproof code.

I'm not qualified to meet that kind of lofty standard anyway.

<comment><USER2> _I don't think the learner would appreciate the subtleties, and I don't agree that they'll learn anything from it.

I can reinforce each lesson/problem you're describing one by one through the exercises, but a new person simply wouldn't know good code if it slapped them in the face._

that is my point: your readers might not understand everything you're doing, so they're just going to copy and paste parts of it into their new projects. if you give them sloppy code to learn from, they're going to copy that sloppiness into their code that makes its way into the real world.

there are a lot of things in c that new programmers have to be especially careful about that aren't relevant to python.

<comment><USER3> Agreed. I was littering code with schoolboy mistakes for a couple of years because of this. The complex stuff was great (heh) but some of the absolute basics were braindead because I thought I knew it. I'd been doing that stuff from day one and never had a problem... Until I did.

</comment></comment></comment></comment><comment><USER4> My plan was to make people use valgrind all the time after about lesson 10. Rather than you having to teach them all the various errors, you just let valgrind teach them by telling them their stuff must be valgrind pure.

Other than that, pretty much the same style as I did LPTHW.

Also, read:

<http://sheddingbikes.com/posts/1288945508.html>

There's more advice there.

<comment><AUTHOR> I sent an email after reading that post, was inspired to do this because of it. I planned on having them use valgrind as well.

</comment></comment><comment><USER5> Make sure you explain _pointers_ well, the additional level of indirection introduced by them is usually hard to grasp for beginners.

Show the relation between pointers and arrays. Offer some best practices on using pointers. Explain the most common caveats like buffer overflows, problems with null terminated strings or off by one errors.

<comment><USER6> Even better, make sure you explain _function pointers_ well.

<comment><USER7> Some years ago, I ran across and saved off a copy of a some-dozen page reference, in PDF format, titled something along the lines of 'everything you (will) ever need to know about pointers (in C)'. It appeared to be quite well regarded.

But, that laptop was ripped off and the particular file appears not to have made it into backups.

Does this description happen to ring a bell? Any references?

<comment><USER8> Might it be this?: <http://boredzo.org/pointers/>

or possibly this (pdf warning): <http://home.earthlink.net/~momotuk/pointers.pdf>

<comment><USER7> The second link, I think.

Note that it's also available in an HTML version, at:

<http://pweb.netcom.com/~tjensen/ptr/pointers.htm>

</comment></comment></comment></comment></comment><comment><USER9> Why not base it on a project? If you want more people to do systems programming (I am assuming kernel and driver development), why not take something from <http://kernelnewbies.org/> and turn it into a simple project or write a character driver. People will learn how to write code for the Linux Kernel, learn how to interact with that community and perhaps become more interested in systems development as a result, if that is your goal.

In the context of writing a driver, you will have to cover concurrency, multi- threading, semaphores/mutexes, function pointers (callbacks), memory management, etc.

One personal side note, would be nice if you integrate TTD into the projects. The number of C developers that I deal with who do not understand the concept of a unit test is amazing.

Also, please cover C99 and talk a little about compilers, linkers and assemblers. You can concentrate only on one binary format (doesn't matter which one) as long as you explain a little bit about how your C code gets converted into machine format and what does that mean.

I would ask myself: "What makes my book on C different from all the other ones?"

Why should I spend my time on reading your book instead of any number of other tutorials or K&R?

EDIT:

Forgot to add, please provide a public repository for your code examples and start using something like Git right away. That's one thing I really enjoy from all the Rails books, they push you into using an RCS immediately.

<comment><USER4> No, I disagree with most of this. A LTHW book covers just enough of the language that someone could then go learn the things you mention from another book. At the end you could lightly cover testing, but most people can barely get an editor installed. No way they can learn multi-threading, TDD, an entire project, and an RCS.

It'd also dilute the focus of the book.

<comment><AUTHOR> Worded better than I did, agreed.

</comment></comment></comment><comment><USER10> I think it would be cool to see any of the following:

Learn Haskell the Hard Way

Learn Erlang the Hard Way

Learn Common Lisp the Hard Way

Learn R the Hard Way

Besides a "Learn X the Hard Way", I would actually like to see more people try to recreate the style of "The Little Scheme", which uses the socratic method to teach the learner. I think the socratic method requires the user to rack their brain a bit more, but results in much greater enjoyment and retention.

I would much prefer to see these two:

"The Little Haskeller"

"The Little Erlanger"

For example, it would be brilliant if someone can explain monads and list comprehension with the same eloquence as The Little Schemer explains currying and YCombinator.

<comment><USER11> There _is_ a Little MLer (with examples in Caml and Standard ML), which teaches type-based programming very well, and would be worth reading for anyone setting out to learn Haskell, I imagine (I respect Haskell's purity, but program in ML and Scala, the same way I respect Ada's safety, but program in C, so a better Haskeller than myself may disagree. :-)).

However, _none_ of the Little ___er books are, of themselves, good ways to learn to use the language they are in; they're more like finger exercises when learning piano -- they reinforce your mental muscles to make thinking in the right way for those languages feel more natural.

<comment><USER10> I agree that "The Little ____er" books aren't the best to learn how to apply a language in the real world. I also agree with your "piano finger lesson" analogy.

However, where "The Little _____er" books excel and overcome all other teaching formats I've seen is in introducing complex paradigm-shifting concepts in a way that is digestable in tiny chunks.

Concepts such as monads, zippers and list comprehension are exactly the the type of concepts that are very difficult to teach/explain using common teaching approaches that "tell, but do not show"

The socratic method used in "The Little Schemer" makes sure to dismantle these extremely abstract concepts into atoms '(pun intended). You really need to understand each atomic piece before you move on.

In most explanations of monads the teacher rattles off a long run-on sentence that touches on several facets of a concept such as monads, making it all that much harder to digest. In fact, most sentences/paragraphs attempting to explaining monads just cause the learner to choke on the terseness and density of information being communicated in one utterance.

The way I see it, both types of books are very valuable. The Little Schemer teaches recursion as a concept better than any other text I've seen. I've never seen anything else that come close. In fact, most texts that touch on recursion quickly move into comparing it to iteration both in form and performance. SICP is an example of a teaching resource that does this. If I remember correctly, the first time you really see recursion in SICP is when the book discusses Ackermann's function and the pros and cons of recursion versus iteration.

</comment></comment></comment><comment><USER12> Reading through Zed's tutorial reminded me of some Pascal and C tutorials I downloaded in the old BBS days. They were a great introduction to both languages when I was just learning to program.

I just had a look on simtel but I couldn't find them. Maybe you should put some effort into scanning old software archives and seeing if you can unearth them. C is pretty old - you wouldn't be the first one that had this idea.

<comment><USER13> All of those old tutorials can likely be found here: <http://www.textfiles.com/programming/>

</comment></comment><comment><USER14> I think your goal will be more easily and better achieved by writing a "So You Found Python Easy?" book. C is not (IMO) a good language to teach people that are just starting to program.

However, if you wish to try anyway, I recommend looking at "Assembly Language Step-by-Step: Programming with Linux" by Jeff Duntemann. It aims to teach people assembly language as their first language, so you may find it useful.

<comment><AUTHOR> I'm doing this book precisely because programmers who already know a language aren't ever getting around to learning systems programming or how things work.

<comment><USER14> Ok, that's fantastic! I hope you succeed.

But it's a bit misleading to call it "Learn C The Hard Way" after LPTHW, if your intended audience is experienced programmers. The whole point of LPTHW was that it was for beginners.

Top of their website: "The book is a very beginner book for people who want to learn to code. If you can already code then the book will probably drive you insane. It's intended for people who have no coding chops to build up their skills before starting a more detailed book."

<comment><AUTHOR> As Zed stated, his concept of LCTHW isn't for beginners to programming.

K&R has sated that need.

It's easier to understand what I'm aiming for when you've already gone through the rigamarole of learning C from the existing texts.

</comment></comment></comment></comment><comment><USER15> I understood K&R years ago, but somehow I feel completely inadequate to being a C programmer. I think there is some kind of black art involved in memory management. I checked recently and it seems K&R doesn't even talk much about memory management.

I just wish to learn the current state of the art - what are best practices that have evolved since K&R?

<comment><USER16> There's a chapter on memory management* in Hanson's _C Interfaces and Implementations_ (<http://sites.google.com/site/cinterfacesimplementations/>), which is one of the better advanced C books I've read.

* Mostly, arena-based allocators.

Paul Wilson's "Uniprocessor Garbage Collection Techniques" ([http://citeseerx.ist.psu.edu/viewdoc/summary?doi=10.1.1.47.2...](http://citeseerx.ist.psu.edu/viewdoc/summary?doi=10.1.1.47.2438)) is an excellent overview, as is Jones and Lins's _Garbage Collection: Algorithms for Automatic Dynamic Memory Management_.

<comment><USER17> Interested parties can also look into "Memory as a Programming Concept in C and C++".

</comment></comment></comment><comment><USER18> One important thing I would like to see in such a book is one or more chapters devoted to memory management best practices.

<comment><AUTHOR> 100% agreed, I see way too many people struggling with realloc/calloc in ##C, let along comprehending heap fragmentation.

<comment><USER19> A good solution for this would be to make one of the exercises to be building your own heap allocator.

</comment></comment></comment><comment><USER20> Honestly the closer you stay to the spirit of K&R the better the site would be. I've looked at a lot of C books over the years and K&R is the only one I thought was even decent.

<comment><AUTHOR> I'm not trying to replace K&R, but I'll be inspired by it since I grew up with it.

<comment><USER20> Yeah I know but if you bring something in the same spirit to the web it might be good.

I grew up as a programmer reading it too so I appreciate what you're saying.

</comment></comment></comment><comment><USER21> I am not sure how applicable it is to an introductory text, but I would be interested in learning more about the internals of compilation and linking. What is the minimal necessary amount of work that needs to be done to interact with existing C libraries (header files, ELF format, and how that all fits together).

<comment><AUTHOR> Rather avoid imp specific like ELF.

I'll encourage reusing existing code/libraries.

</comment></comment><comment><USER22> The memory model. Explain why given: int a[100] and char* p = a, a and p point to the same place but a + 1 and p + 1 do not. C's memory model is easy in concept, one huge array of memory cells. But in practice it can be a rats nest of pointer arithmetic.

</comment><comment><USER23> What I really miss is some C book that teaches the modern approach to "object- oriented" C (as done in Gtk, Apache, CPython etc.). Actually many programmers (presumably with only passing knowledge of C programming) even actively proclaim that you cannot program in C in this style.

<comment><AUTHOR> I'll teach function pointers, and might expose them to some style of OO C, but I haven't made any decisions on it.

My approach is going to be relatively unflavored by the Macro Hell of other projects. I'd rather not instill those habits. They can learn that on their own time.

I want the learner prepared to write clean sysprog code. That's it, the rest they can learn having been taught proper C and make their own stylistic decisions.

<comment><USER23> Well, function pointers are only one aspect of this. Suprisingly many experienced C programmers I've met don't know that you can safely cast pointer to struct to pointer to it's first field, which is pretty important trick to achieve reasonable OO (with real inheritance) in C.

<comment><AUTHOR> I know a line cook that codes C on his free time that would strangle someone who was paid to code that couldn't make a fake object + method calls out of a struct and function pointers.

</comment></comment></comment></comment><comment><USER24> Just because you're working in C doesn't mean you need to handle every detail yourself. In fact, please don't handle every detail yourself. Show your readers how to use some of the great libraries C has to offer. Not just system-level abstraction layers, either.

You need to go get libraries for a lot of the stuff you'd normally use the standard library for in a more modern language. These libraries exist, and many of them are excellent, but because they're not built-in, people are less likely to use them. This is especially dangerous in C, because it requires so much work to do anything even vaguely complex.

edit: That came off as saying "Teach some libraries". What I really mean is "Teach people to go find libraries."

</comment><comment><USER25> I don't know if this is outside of the scope of your plans, but threading issues are a big one that jump out for me. POSIX threads can cause all kinds of wonderful headaches, it would be nice to see some solid advice on the does and dont's.

<comment><AUTHOR> I plan to follow Zed's model for 52 exercises, I don't see any reason why I shouldn't cover multi-threading and a perhaps a few different concurrency models in the latter half.

</comment></comment><comment><USER26> I'm not sure it makes sense any more to teach C to beginners -- by the time someone has a need to write C code, they really ought to have mastered programming in another language or three, first.

Personally, I think a teaching/review ladder would be as or more helpful than a tutorial text. Getting good at C, at least from my current starting point, seems to mostly be a matter of discipline and practice.

I'm thinking of something like this: <http://gtl.xmp.net/>

Along those lines ;) I'll probably be releasing code from my first medium- sized C project in a week or so... anyone care to offer tips on how to get more experienced eyeballs on it?

<comment><AUTHOR> >I'm not sure it makes sense any more to teach C to beginners

Good thing I'm not writing it for beginners.

>I'll probably be releasing code from my first medium-sized C project in a week or so... anyone care to offer tips on how to get more experienced eyeballs on it?

Uh, that's a toughie actually. IRC can be pretty rough.

<comment><USER26> Unfortunately I think you mean "rough" as in non-responsive... not as in pitiless -- which, assuming a suitable level of expertise, would be great for me.

<comment><AUTHOR> No I mean pitiless. The C channel I've observed for years is out and out brutal.

<comment><USER26> Mind if I ask which channel? I suspect my code deserves "brutal", at least on round one :)

<comment><AUTHOR> ##C on Freenode.

I accept no blame for your impending suicide.

</comment></comment></comment></comment></comment></comment><comment><USER27> Other than K&R (which everyone knows about), what is the current CW on best C books?

<comment><USER28> C Interfaces and Implementations is really good: [http://www.amazon.com/Interfaces-Implementations- Techniques-...](http://www.amazon.com/Interfaces-Implementations-Techniques- Creating-Reusable/dp/0201498413)

<comment><USER29> Different books work for different folks, and lots of people seem to love this one. I however love C and found this book to be an abomination. K&R is brilliant. Given an opportunity, I would eradicate this book from the face of the earth lamenting only the damage it has already done.

Examples provided here: <http://news.ycombinator.com/item?id=1705332>

</comment></comment></comment><comment><USER30> Just one request: Would you be able to release individual chapters as you are done with them instead of waiting to finish the whole book? Thanks!

<comment><AUTHOR> Plan on it, I'll be working on a tight feedback loop since I'm not even remotely qualified enough to be doing this.

</comment></comment><comment><USER31> Also, just since we're on a similar topic, you might want to read: [https://github.com/martainemde/learn-ruby-the-hard- way/issue...](https://github.com/martainemde/learn-ruby-the-hard-way/issues/1) Just so you come up with something original :)

</comment><comment><USER32> I'll go ahead and pledge that if you write it, I will buy a copy. I love LPTHW's emphasis on exercises. It's one thing to read and understand a concept as presented. It's another thing entirely to actually apply it to problem.

</comment><comment><USER33> I have nothing to add to the discussion. It sounds to me like your approach to the book is solid. If you write the book outlined here I will buy it, for me and for my kids :)

</comment><comment><USER31> You probably want to make sure you know C, first.

<comment><AUTHOR> About 10 years worth, I'm unqualified anyway.

<comment><USER31> 10 years suggests nothing, really. If "int x; What type is &x", "int x[5]; What type is x? What type is &x?" manages to confuse you, I suggest you re- learn C, before authoring this book of yours.

</comment></comment></comment><comment><USER34> You want to target young programmers. Talk to those, and make them come with feedback as you write the book.

<comment><AUTHOR> I have a split-test/feedback group prepared.

</comment></comment><comment><USER35> I really like the __attribute__ mechanism that GCC has, something covering that will be really nice.

<comment><AUTHOR> Not likely to happen, outside scope.

</comment></comment><comment><USER36> Lots of segmentation fault diagnosis

<comment><AUTHOR> I know a lot of new people run into perpetual segfault, but I don't think that's really a HUGE hang-up once you get past the basics.

I'll consider some "break it and fix it" exercises for diagnosing these kinds of problems though.

</comment></comment><comment><USER37> I want to learn how to do something internet related with C.

<comment><AUTHOR> <http://beej.us/guide/bgnet/>

<comment><USER31> This is a horrible book, that is cluttered with numerous errors. If you want to learn about socket programming in C, you might find that UNP would do well to teach you, shown here <http://goo.gl/uqCP8>

</comment></comment></comment><comment><USER31> Illustrate the differences between IDB and UB early on.

<comment><AUTHOR> Beg your pardon?

<comment><USER31> If you don't know what UB or IDB is, you probably don't want to write a book pertaining to C, :)

<comment><AUTHOR> Context specific.

Could be intel debugger, could be undefined behavior, could be implementation defined behavior. I tested them on a group of about 15 C devs, mixture of embedded, linux, DSP, and other volken.

Got the same guesses I made and a lot of question marks.

It's easy to run your mouth but not actually contribute, you might consider your role in this process before commenting again.

<comment><USER31> So, contextually, we're referring to C here, wherein these terms refer to Implementation Defined Behaviour, and Undefined Behaviour. Allowing beginners to understand such terms early on would help, immensely.

<comment><AUTHOR> Sure, if they have a copy of the standard sitting on their desk.

<comment><USER31> I can see that this book is going to be a great success, already. :)

</comment></comment></comment></comment></comment></comment></comment><comment><USER38> No cstring coverage.

</comment><comment><USER39> Teach how to implement a couple of data structures more complex than linked list and binary trees (maybe hash table).

Teach how to implement a couple of non-trivial algorithms (e.g., quicksort, topological sort).

<comment><AUTHOR> The how isn't much use without the why.

Planned on it.

</comment></comment><comment><USER40> I "learned C" in my CS101 classes as a first language. I liked it, and was able to get around a little in it, but I never retained any of it. I plan on studying this book. Here's my "gimme, gimme, gimme" list:

\- Please make it bulletproof code, as mentioned above. I would hate to spend time relearning C the hard way AND the wrong way.

\- Please get me to the point where I can make use of other libraries effectively. I'd like to understand the include/linking process at least as thoroughly as I understand python's import process.

\- Please prefer readability over cleverness.

Thanks.

<comment><AUTHOR> #1: You'll learn to write good code, I'm not going to ride the bicycle in front of you though. That said, I won't lie like math teachers do either.

#2: Plan on it, although I won't be teaching "MAEK GTK GUI LUL" either. That's up to the student to do on their own time.

#3: I'm not clever enough to make clever C code. I can write Python that peels paint though.

</comment></comment><comment><USER41> What about Learn C++ The Hard Way ? Anyone ?

<comment><USER31> You can do that yourself, if you want. :p</comment></comment>


HTML5 Adobe Photoshop clone - <AUTHOR> http://www.alinseba.com

<comment><USER2> Stop spamming hacker news. Nobody care about Picozu anymore because you've spammed it so much. Oh and it's not a Photoshop clone, stop pretending (although that doesn't mean it's worthless, it's a pretty cool app).</comment>


What's the future for the new gTLDs? - <AUTHOR> http://blog.europeandomaincentre.com/expert-roundup-on-new-gtlds/

<comment><USER2> I think most of them will be an oddity or way underused. Some will probably catch on, I know we're planning on buying some .app domains for landing pages, but overall, I think its a going to be a huge money suck from large brands who feel the need to protect their name across any tlds as they can.</comment>


My 15 Bucks Dirty-Cheap Office Chair - <AUTHOR> http://www.freestylemind.com/exercise-ball-office-chair

<comment><USER2> Someone tried that at my office and was actually told by management that they weren't allowed to have it, as there was a concern that if she were to fall off it and hurt herself, she would sue the office.

Strangely, her counter-argument that it's no more ridiculous to think that she would sue for spinal problems relating to sitting in the standard provided office chair wasn't given much attention.

</comment><comment><USER3> I've gone through all sorts of seating options (Aeron, exercise ball, kneeling chairs, etc.). None of them worked for me (I'm the type that loves to stand/walk), so I made a $14 standing desk mod: <http://yfrog.com/fviw2j> (basically four cinder blocks and caps).

This has made a huge difference, I can actually concentrate better and there were some unexpected benefits:

* it's much easier to demo stuff (everyone is at the right height)

* taking breaks is a very low friction task (amazing how something as simple as not having to get up/sit down helps)

<comment><AUTHOR> That's very interesting. Do you find any difficulty typing while standing up?

</comment></comment><comment><USER4> Except that ball chairs aren't always the best choice :). They can still force your spine into a C shape rather than the natural S shape. The best type of office chair is none at all, better for you all around :).

</comment><comment><USER5> I've been planning to get a ball for a chair for a while now. My major worry has been an overly sweaty ass.

<comment><AUTHOR> I haven't experienced that yet. One thing tough is that if you have to fart, you'll probably get noticed.</comment></comment>


2008 In Review - What Happened with Programming Languages? - <AUTHOR> http://lambda-the-ultimate.org/node/3144 <comment><USER2> Surprised there is no mention of JavaScript :-P I suppose that's a good thing :)</comment>


Is There an Internet Advertising Bubble? - <AUTHOR> http://www.seobook.com/archives/002279.shtml <comment><USER2> Yes there is . . . and that's GREAT!

The ad boom is fueling extremely high levels of investment in the technology sector. That means more companies started, more people working and ultimately, more wealth created.

It also gives companies time to work out all of the missteps they take along the way. Consider everyones golden boys, Google. When a rational and dispassionate analysis is applied to the company, there is cause for some concern. They seem challenged to find a revenue generator other than key word advertising via adSense and adWords. Many things have been out of place with their China strategy. It seems their mobile plans are running into issues with the carriers. Add to all of this a palpable arrogance, and I think it starts to sound like a movie we have all seen before. However, since they are flush with IRRATIONAL internet ad cash, they have time to adjust some things.

Starting with their God awful name. Google, sounds great in the West. In Chinese . . . well . . . you want to find a new name for it, lets just put it that way. They used Google though, since "it's an internationally recognized brand." What was I saying about palpable arrogance? They handle Chinese name separation in a fashion that only makes sense to Western Web 2.0 technologists. I could go on and on. The long and the short of it is that Baidu is winning. Enter the internet advertising cash, and Google is able to correct. Whether they will depends entirely on them. My point is . . .

Thank The Maker for internet ad booms!

They have time to come up with a new revenue generator. Maybe they can get into selling some kind of personal internet agent access. Maybe they can charge developers a fee for using their APIs. Who knows . . . the point is because of the bubble, there is time.

They have time to do something about their mobile strategy other than whine "waaahhh . . . but the carriers control everything and they want us to pay to access their wireless networks." Umm . . . yeah . . . the carriers gave the American people billions of dollars for the licenses to those airwaves. That is how it SHOULD work. Big corporations give us money for OUR resources, and we let them use OUR resources. If you want a license we would have given one to you too. But guess what . . . WE WOULD HAVE CHARGED YOU BILLIONS OF DOLLARS! The only thing troubling is that we charged the carriers so little. My taxes could have gone down even more if we had played our cards right.

Now again, the internet ad boom gives Google the chance to work this out.

And not only Google, but lots of companies now have some breathing room. That is a good thing. Will all of these companies survive and thrive. It's anyone's guess, but because of that money many have a fighting chance.

</comment><comment><AUTHOR> While I see ppc prices go up every month some sites are charging an absurd price for there banner space. I don't think I would call it a bubble but it is getting old.

</comment><comment><USER3> Only if the advertising isn't working.</comment>


TMI About me [Harassment in the Drupal community] - <AUTHOR> https://www.garfieldtech.com/blog/tmi-outing <comment><USER2> Drupal, which started out as community software, has climbed the ladder into enterprise-land and now gets pitched against big ol' commercial CMS systems. It powers the websites of many federal Cabinet agencies and major entertainment properties.

I wouldn't be surprised if concerns about corporate squeamishness drove the rapid and behind-scenes push-out that this post describes (if it is indeed complete and accurate--I have no special insight myself).

But I work in enterprise-land and I've spent a lot of my employer's money on Drupal development over the years. And personally I have to say that I don't give a shit if community developers are into BDSM.

This seems like a brave post to me.

</comment><comment><USER3> The thought that kept circulating in my mind as I read this was, "If it's _safe_ , _sane_ , and _consensual_ , why is it anyone else's business?"

Useful rule of thumb: If you are an outsider to other peoples' relationships, you probably don't get to judge the fairness of the relationship. Err on the side of respect.

</comment><comment><USER4> I suspect that the author is off by a few orders of magnitude on scale: they say tens of thousands of people, but that would be one-in-ten-thousand adults. None of us would've heard of it.

I would guess tens of _millions_ have tried BDSM in some form (1-in-10), and _millions_ engage in it regularly (1-in-100) in the US.

</comment><comment><USER5> Such a pity anyone cares about anyone else's private life, as long as there's no law broken.

<comment><USER6> I would certainly not put the "as long as no laws are broken" qualifier in there. Governments don't have a great track record of keeping their noses out of consensual relationships.

</comment></comment><comment><USER7> Dries Buytaert's response, linked from his (at this time) most recent tweet: [http://buytaert.net/tag/living-our-values](http://buytaert.net/tag/living- our-values)

Living our values!!! JFC...

I don't think he understands the actual implications of the values he claims to be defending.

<comment><USER2> Dries > "However, when a highly-visible community member's private views become public, controversial, and disruptive for the project, I must consider the impact that his words and actions have on others and the project itself."

I think the key words are controversial and disruptive. This to me seems to confirm that the guiding principle here is "avoid a big fuss" as opposed to some moral or ethical bright line.

There's a lot of words devoted to what "Goreans" believe--which I had never ever heard of before. I've read the Bible though; and I know what the Vatican (for example) says about birth control, abortion, men vs women, etc.

I guess this fits into the old joke that the difference between a cult and religion is how many people are in it.

</comment></comment><comment><USER8> More relevant links:

[https://www.reddit.com/r/drupal/comments/60y9mq/larry_garfie...](https://www.reddit.com/r/drupal/comments/60y9mq/larry_garfield_on_harassment_in_the_drupal_project/dfao7n5/)

[https://www.reddit.com/r/drupal/comments/60y9mq/larry_garfie...](https://www.reddit.com/r/drupal/comments/60y9mq/larry_garfield_on_harassment_in_the_drupal_project/dfaf47n/)</comment>


Ask HN: What is the best drone for hackers? - <AUTHOR> I want to get a drone for two friends of mine that are unabashed hardware hackers, but I am not sure which to get. Could anyone in HN recommend one that is readily available? Preferably via Amazon.<p>Thanks all! <comment><USER2> It depends what they want to hack. Since you're saying "drone" I'm assuming you want them to be autonomous in some way, and not just traditional RC.

When I was working on Tacocopter, we used 8-CineStars from Quadrocopter[1]. They were originally designed to fly pro cameras, so they have an incredible payload, great flight characteristics, all carbon fibre, etc. Downside is they're very expensive.

Most of our development was in the software, so we wanted a hardware solution that "just worked" Dealing with DIY motor controllers that can burn out really slows down the process. Aside, if you end up using the MicroKopter platform, I reverse engineered a lot of their serial protocol for our telemetry stack-- check it out on Github[2].

The cool thing to me about MAVs is they essentially become a flying computer. For your friends, I would pick the one that has enough power for decent acrobatics+payloads, but more importantly the easiest software development stack. Stuff from 3DRobotics is a good starting place.

[1] [http://www.quadrocopter.com/](http://www.quadrocopter.com/)

[2] [https://github.com/grinich/mikrokopter](https://github.com/grinich/mikrokopter)

[3] [http://3drobotics.com/](http://3drobotics.com/)

<comment><USER3> We're also assuming he's referring to multirotors when he says "drone." An autonomous model airplane would also be a drone. But it's probably a safe assumption.

Anyway, I would add another big vote for 3DRobotics. They're the organization behind the enormous and successful Ardupilot project, which is an open source community that develops hardware and software for autonomous model vehicles (helicopters, multirotors, airplanes, and cars).

Their ready-to-fly multicopters and planes are packed with functionality and reasonably priced, although they are probably out of the price (and ability) range of someone completely new to the hobby. As other people have said, it's essentially a necessity to grab a toy quadcopter like the Syma X1 for around 40 USD to get a hang of flying them (and realizing how easy it is to crash them) without the chance of a major financial loss.

</comment></comment><comment><USER4> Have they ever flown a quadcopter before? If not, I strongly suggest they start with something cheap like the Syma X1 ($35 on Amazon). It's an amazing value, and incredibly fun to fly. Very forgiving, and mildly hackable.

The biggest benefit is that it lets you build your piloting chops without a huge financial risk. An acquaintance of mine is working to get drones into the hands of professionals who aren't interested in becoming drone experts (Realtors, etc), and he uses the Syma X1 to train folks before giving them the keys to larger, more dangerous and expensive drones.

</comment><comment><USER5> Crazyflie from [http://www.bitcraze.se/](http://www.bitcraze.se/) is pretty cool. I own one myself, and I like it a lot. This is a tiny fully opensource quad which can be flown indoors. Obviously, because of it's tiny size it doesn't fly for too long and don't lift much.

</comment><comment><AUTHOR> Ok, a little more input.

Both are android users and prefer open-source hardware and software. The Parrot AR 2.0 looked good at first, but I'm unsure as to the level of community support for the android software.

They are also very skilled at low level programming, so some of the newer Linux based drones are appealing.

<comment><USER6> I'd recommend the 3DRobotics Iris: [https://store.3drobotics.com/products/IRIS](https://store.3drobotics.com/products/IRIS)

Runs the PX4 autopilot (which I believe is hackable), can be controlled by RC, has good support for camera, gimballs, attachments, etc.

The Parrot firmware is closed and I don't know about other firmware implementations, but the protocol is open so you can write clients to control is - [https://github.com/felixge/node-ar- drone](https://github.com/felixge/node-ar-drone) being one of the most well known.

</comment></comment><comment><USER7> The DJI Phantom & DJI Phantom 2 vision are both awesome. The Phantom 1 is probably better if you want to put your own board in the air, as it has more payload space. But out of the box the Phantom 2 is unbelievable with its iPhone FPV & telemetry integration

If you have lots of time on your hands, though, you could build your own with ardupilot: [http://ardupilot.com](http://ardupilot.com)

<comment><USER8> Just had a DJI Phantom under the christmas tree :-) Glad to read this here

</comment></comment><comment><USER9> The AR Drone is the cheap, hackable way to do it. It's just a tiny PC running Linux hooked up to four weak motors. You can control it via wifi, or replace the flight software yourself if you are enterprising. Add their new GPS add- on, and you can use the excellent QGroundControl. There are excellent projects putting it to use for a variety of tasks.

Unfortunately it will be limited in its power, unless you do an extensive engine and frame mod as shown here [http://www.youtube.com/watch?v=KESy-- N6ags](http://www.youtube.com/watch?v=KESy--N6ags)

The 3DRobotics Iris is an exciting new product that represents a more flexible, pro-amateur level tool. They're made to be put to work, not flown like a remote controlled helicopter, so you'll find good support for programmability here.

On the other hand, it's almost $1k fully built out, compared to half that for the Parrot.

<comment><USER10> To take a car analogy, if motorsport was the aim, goal and objective but you hadn't even learned to drive yet, then, it might be advisable to get a regular car, maybe one that could be pimped to a certain extent, rather than fork out the £££ for an F1 car or a WRC rally car.

The AR Drone is pretty deluxe for a starting point, plus it actually works out the box and is affordable. Whilst having hours of fun with it one could work out what the 'ideal' is actually going to be.

</comment></comment><comment><USER11> The DIY.

Or build an AeroQuad: [http://aeroquad.com/content.php?s=9af9c997f8aed9a3ad958e32bf...](http://aeroquad.com/content.php?s=9af9c997f8aed9a3ad958e32bffe81fa)

<comment><AUTHOR> This looks fascinating. Is it relatively easy to acquire all the relevant parts?

<comment><USER12> Very easy. hobbyking.com carries almost everything you'll need. Check out Flitetest's youtube channel and web site to see how easy it is to build your own from parts.

</comment></comment></comment><comment><USER13> It really depends on the application. If you're talking about flight, and autonomous-flight at that, keep in mind that airspace is highly regulated. (In the US) The FAA requires RC pilots to be licensed (inexpensive and no test, but still necessary) and RC flight must always be in line-of-sight -- usually in very specific, designated areas. It's quite easy enough to build an autonomous bird, with programmable way-points and such, which breaks all sorts of laws. Start with the AMA: [http://www.modelaircraft.org/](http://www.modelaircraft.org/)

There's a lot of specific distinctions between piloted-flight versus autonomous ('drone') as well as size restrictions and such. First-person view (FPV) requires a second pilot using grounded line-of-sight, as well ([http://www.modelaircraft.org/files/550.pdf](http://www.modelaircraft.org/files/550.pdf)).

I'm by no means trying to discourage you, just know if something might be a federal offense!

<comment><USER13> Downvote with no comment? Thanks for that....

</comment></comment><comment><USER14> I'd say, for a hardware hacker, one they build themselves. I'm building one right now, have ordered all the parts for relatively cheap and it will be a lot more powerful than a Parrot Drone and gives me more freedom with what I want it to do.

<comment><USER15> Would you mind giving a quick run-down of everything you ordered? I've been trying to price out a DIY quadcopter on HobbyKing.com but I'm always worried I'm going to miss a piece that ends up costing a ton of money.

If you could include prices that would be amazing, but I can always look it up if you can just post the parts!

<comment><USER16> I bought three small ones from [http://www.helipal.com](http://www.helipal.com) recently. They come pre- tested so when you crash them, you know you're the one who threw them all out of alignment.

A proper quadcopter is different than those styrofoam quadrotor things you see. A copter will take longer to learn how to not crash, but you have more precise control.

</comment></comment></comment><comment><USER17> The best drone for hackers is the one they build themselves. There is absolutely no point in buying a factory drone - you can make them yourselves easily enough, and without much fuss - in fact RC drones is one of the longest-running subjects that has attracted hackers over the years. If you want innovation, learning, experimentation - check out the "DIY Foamies" section on [http://rcgroups.com/](http://rcgroups.com/) forums .. there are literally thousands of drone designs in there that the budding hacker can enjoy, learn from, and exploit for their needs.

So please, stay away from the factory drones, folks.

</comment><comment><USER18> Arducoptor & Ardupilot are the way to go!

Forget amazon, that's not a place for hackers...

But beware of the hidden costs in Radio-Controlled flight - it's never a cheap date...

</comment><comment><USER19> This is a hard question to answer without knowing what types of problems your hacker friends like to solve. For example, quadcopters tend to cater to certain types of problems (mapping, precise control, etc), while fixed-wing aircraft tend to cater to a different group (autopilots, longer-distance flights, etc).

<comment><USER20> Can you give some pointers to projects workin on fixed-wing aircraft? Autopilot would be what I'm interested in, but most everything I see are quadcopters, and then with these remote-control gadgets that I don't care about.

<comment><USER19> Probably the nicest page I've seen on the subject is DIY Drones ( [http://diydrones.com](http://diydrones.com) ), which covers both fixed-wing and copter-based UAV engineering. Their fixed-wing autopilot is called ArduPlane ( [http://plane.ardupilot.com](http://plane.ardupilot.com) ).

</comment></comment></comment><comment><USER21> try to build your own and i mean your own even your own flight controller from scratch / use Arduino for flight control / use ecalc.ch site for your combination / hobbyking may have everything you want but they suck at shipment / try something different if you want it to be named hacker's drone ;)

<comment><AUTHOR> They would be tempted, but then I can't have a drone land in their yard with a bow attached :)

</comment></comment><comment><USER22> What do you think of the 3DRobotics Iris?

</comment><comment><USER23> Stop calling them "Drones".</comment>


Show HN: Spirit – The animation tool for the web - <AUTHOR> https://spiritapp.io/ <comment><USER2> Very nice animations on the home page, were they made in Spirit?</comment>


Is Gaydar Real? Absolutely. - <AUTHOR> http://www.nytimes.com/2012/06/03/opinion/sunday/the-science-of-gaydar.html

<comment><USER2> I'm extremely, extremely, extremely wary of the methodology employed here. The author selected the photographs from individuals on Facebook "who self- identified as straight or gay" living in "11 major cities," all of whom are white.

I.e., this experiment is already selecting for individuals who a) have a high degree of control over their appearance to the author; b) exist within a system—Facebook—which rewards personal disclosure of one's sexual orientation in vastly different ways. Identifying as gay on a public forum like Facebook—in a manner so that this information is even available to strangers—requires far more deliberation, and often presents far more social costs, than identifying as straight. These disclosures do not bear the same weight—even in a major city.

What the author should have—and could have—done is gather photographic data without selecting for subjects who self-disclose their sexuality.

Right now, the one evident conclusion this paper supports is that certain the certain details of the way one represents himself on Facebook correlate with a propensity for self-disclosure of sexual orientation on Facebook. (Which, remember, doesn't require that self-disclosure—or a profile photo, for that matter.)

However: if we accept (as this author does) that sexuality correlates with facial geometry in a certain way, then it is quite possible that the facial photographs employed by the experiment are taken from individuals who are very aware of their appearance, and choose to self-disclose their sexuality based on it.

In fewer words, this study seems to suggest that humans can determine if an individual is gay or straight, based on facial features alone, when said individual elects to disclose his sexuality, and maintains personal control over his outward appearance, regardless of that appearance's fidelity to reality.*

*What I mean here is that people have extraordinary control over which photos represent them on Facebook. The author, I'm guessing, has no way of knowing if any of these photos were manipulated in any way.

</comment><comment><USER3> 60% gaydar accuracy after viewing a face for 50ms! That's really amazing. If the findings are backed up by additional studies, this could be a blow to argument that gayness is a choice and is not (much) affected by physiological factors.

It would be interesting to see is there's any difference recognizing gay men and women by straight men and women.

<comment><USER4> You can get at that 60% if you can reliably identify the 'easiest' 10% at either side of the distribution and guess the rest.

Also, the sample images were "of individuals [...] who self-identified as straight or gay". It would not surprise me if that overselected for those edge cases. Or am I showing my ignorance and is it common to express one's sexual preference on one's public image on Facebook?

</comment></comment><comment><USER5> I was apart of a similar study once. I'm gay, and they were unable to tell. During their study it was actually an under chance of 40% which was pretty bad. Needless to say, 60% isn't much of chance either.

This is the only thing that made any sense in that article:

"We speculate that people overzealously interpret whatever facial factors lead us to classify men as gay. That is, it may be that straight men's faces that are perceived as even slightly effeminate are incorrectly classified as gay, whereas straight women's faces that are perceived as slightly masculine may still be seen as straight. That would be consistent with how our society applies gender norms to men: very strictly."

<comment><USER6> You should probably review a statistics test -- under 40% is great. In fact, under 40% is better than 60% (assuming statistical significance). All that would mean is that people see homosexuals as more heterosexual than heterosexuals (which would be quite funny). Any statistically significant deviation from 50% implies successful visual differentiation abilities.

</comment></comment><comment><USER7> The 60% accuracy is for a 50ms glimpse of a photo "mostly devoid of cultural cues". In real life you get much richer information for much more time, so it seems reasonable to conclude that 60% is a lower-bound for real-world gaydar accuracy.

<comment><USER8> Unless the extra information is somehow misleading.

I'm thinking here of the example of lie detection. Humans generally do pretty well at detecting lies when they're just reading text. They do slightly less well if they can hear the person talking. And if the person is visible, we don't do any better than chance.

</comment></comment><comment><USER9> Mine must be broken. Besides, a 60% confidence rate is not encouraging to ask out strangers.</comment>


Flight teams prepare for LISA Pathfinder liftoff - <AUTHOR> http://www.esa.int/Our_Activities/Operations/Flight_teams_prepare_for_LISA_Pathfinder_liftoff <comment><USER2> good luck to the team.

the mission website states that one of the aims is to measure gravitation waves. I would love to see the data. NASA open sources a lot of space data. Here's to hoping ESA does so too for this mission.

[http://www.esa.int/Our_Activities/Space_Science/LISA_Pathfin...](http://www.esa.int/Our_Activities/Space_Science/LISA_Pathfinder_overview)</comment>


CoffeeScript Is Dead. Long Live CoffeeScript - <AUTHOR> http://www.developwithpurpose.com/coffeescript-is-dead-long-live-coffeescript/

<comment><USER2> Been coding with coffee for a year now. I still don't get the value prop. I don't feel more efficient. I may save a few key strokes, but hard programming problems are hard not because of extra semicolons and parentheses.

</comment><comment><USER3> you are so right.

someone should fwd this to the developers of es6... what a succinct and more modern way to write javascript, regarding that example.</comment>


International Proposals for Warrantless Location Surveillance to Fight Covid-19 - <AUTHOR> https://www.eff.org/deeplinks/2020/05/global-contact-tracing-international-proposals-track-covid-19 <comment><USER2> Could we get an eff-approved app to use during the pandemic for this purpose so state actors can stay out of it? I'd use an app during the pandemic to get notice if I need to isolate. I think they have something like this in China.</comment>


Ask HN: What domain registrar do you use? - <AUTHOR> I've been looking for a registrar for a startup's website, and figured that y'all would know what registrars are better than others. I'm mainly considering price, but please post about any of them :) <comment><USER2> DNSimple has been solid. Easy to understand UI and reasonably priced private registration and other nice features like automatic dns setting templates for various services like gmail etc..

</comment><comment><USER3> Domain registration costs are pretty standard at $10-$20/year. Price should not be a determining factor in your decision.

<comment><AUTHOR> Hmm. What should be my determining factors? What factors do/did/would you use in deciding which registrar to use? There are so many...

</comment></comment><comment><USER4> Namecheap. Cheap, decent UI, good customer service.</comment>


Ask HN: Recommend a Technical Virtualization Reference - <AUTHOR>

Hi everyone, I'm using virtual machines and the cloud as a resource for some of my work, and I'd like to have a better understanding how the virtualization technology works.
I'm looking for a book or review paper that explains the basics (trap and emulate, binary translation, shadow page tables, etc.). I don't have an EE/CS background, so the more basic, the better.
I googled around a bit, but there's a lot of noise, so I was hoping somebody could help me out.
Thanks! <comment><USER2> <http://www.virtualbox.org/wiki/Technical_documentation>

[http://www.amazon.com/Virtual-Machines-Versatile- Platforms-A...](http://www.amazon.com/Virtual-Machines-Versatile-Platforms- Architecture/dp/1558609105)

<comment><AUTHOR> Thanks, I checked the book out from the library; it's exactly what I was looking for.</comment></comment>


Tumblr shuts down Storyboard, its editorial arm - <AUTHOR> http://staff.tumblr.com/post/47584806521/a-year-ago-tumblr-did-something-unprecedented

<comment><USER2> So are those folks now out of a job ? I hope they got a good severance package.</comment>


Show HN: Instaboard - your company's instant board of advisors - <AUTHOR> http://www.instaboardhq.com/ <comment><USER2> Very interesting, but some words on pricing are IMO a must-have.

E.g. it's not really a problem for me to find a legal advisor, but paying for his service is. I also believe many non-technical founders can easily find an agency that can advise them on mobile, but they can't pay for it.

<comment><USER3> thanks! pricing info will be added soon.

</comment></comment><comment><USER4> Confidentiality would be one of the key concerns I'd have -- e.g. if I wanted advice on the security industry, the best positioned people to give me advice would be either CISOs at potential customers or people at competitors, so by asking "should I do X in 6 months?" or "My cost is $x. Should I charge $10x?" in a place where either might see it, I'd be screwing myself more than paying someone I know to be impartial 0.1% or $250/hr to answer it.

Seems like something you'd need to address. For some issues it might not be a big deal (~any lawyer answering legal questions would be bound by professional ethics, so it'd be ok, and a lot of questions don't involve much confidentiality).

</comment><comment><USER5> Where do you find all these experts? Please don't be a recruiting firm in disguise.

<comment><USER3> Hi! The experts are professional service providers who'd like to be connected to businesses on our platform.

<comment><USER6> I'm not sure that this is the sort of board member you want? You do not want board members who are trying to sell to you?

<comment><USER3> Hi Rob! Instaboard enables businesses to reach experts whose timely advice would help companies overcome key challenges. It is more of a help request model, and we want to create an environment that'd make sense for both sides.

</comment></comment></comment></comment><comment><USER7> How does this compare to clarity.fm?

</comment><comment><USER8> I am curious to know why you chose _insta_ \+ name for your product? I mean there are quite a few launches on HN with _insta_ \+ appendwhateverservicename kind of name lately.

One back of the mind thought that comes is choosing such a name really "smarts" or it boils down to some sort of wishful thinking?

My take for instance here, is that this launch has probably helped me to remember Instagram only better. Not the service in question. But that could be just me. What do you think?</comment>


Why loading third party scripts async is not good enough - <AUTHOR> http://www.aaronpeters.nl/blog/why-loading-third-party-scripts-async-is-not-good-enough

<comment><USER2> > Doc Complete dropped from 3.63 seconds to 1.14 seconds (-214%).

This is a pet peeve of mine. Percentage changes should be measured using the original value as the denominator, not the new value.

<comment><USER3> The pedant uses the delta over the mean of the old/new values.

So: 100 * (1.14 )/((1.14 + 3.63)/2) or -104%

<comment><USER4> May be I'm missing something, but this way of computing a percentage seems completely meaningless to me.

<comment><USER3> It's unbiased toward either the beginning or ending value.

If you want to overstate a change, you'll use the smaller value as the denominator. If you want to understate a change, you'll use the larger. If you use the mean of the two, you're giving a value that's not biased by either of the two extremes.

There are arguments for using other methods. As usual, Wikipedia has a good discussion of alternatives: <http://en.wikipedia.org/wiki/Relative_change_and_difference>

<comment><USER2> When talking about a starting value and a new value, I find the percentage change formula on the page you referenced to be the most logical. When considering a change, your frame of reference is usually the original value.

[http://en.wikipedia.org/wiki/Relative_change_and_difference#...](http://en.wikipedia.org/wiki/Relative_change_and_difference#Percentage_change)

</comment></comment></comment></comment></comment><comment><USER5> I am not sure what this accomplishes, other than making the stats look better in their monitoring tool. They pretty much seem to admit this:

"Conclusion: the loading, parsing and executing of the async third party scripts are quite often very slow and this messes up our End User performance stats in New Relic."

Delaying the dynamic insertion of scripts until after the onload event, doesn't change anything. All the external crap will still be loaded. It might even make the external assets load slower.

Another solution would be to choose a monitoring tool that distinguishes between DOMContentLoaded (or the equivalent in non-Gecko browsers) and the regular onload event.

[https://developer.mozilla.org/en/Gecko- Specific_DOM_Events#D...](https://developer.mozilla.org/en/Gecko- Specific_DOM_Events#DOMContentLoaded)

<comment><USER6> It helps the end user experience if you want to have some javascript run after the DOM is loaded but not wait until all the 3rd party scripts have loaded and run. Maybe the javascript runs some sort of animation.

Without this code, the animation would wait until facebook, google + and twitter are all loaded, but with this code, the animation would start right away.

<comment><USER5> If a script is supposed to run when the DOM is ready but external scripts/stylesheets/etc are still being loaded, it should not attach itself to the load event. The load event is supposed to run when the page has fully loaded. By the way, IE9 now supports DOMContentLoaded and there are hacks to simulate it in earlier IE versions.

Here is a demonstration: [http://ie.microsoft.com/testdrive/HTML5/DOMContentLoaded/Def...](http://ie.microsoft.com/testdrive/HTML5/DOMContentLoaded/Default.html)

</comment></comment></comment><comment><USER7> > The question is: does this 1.14 seconds better reflect the user experience? > In our opinion, yes. At that 1.14 second mark, all content has finished > loading and is displayed on screen. The only stuff that comes after that are > the aforementioned social sharing buttons and the Twitter Tweet Box (and on > a blog post page, the Disqus comments would also come in late).

> There was a problem loading Disqus. For more information, please visit > status.disqus.com.

I wasn't able to comment because I'm on a slow connection, and the rest of the content hadn't finished loading by the time I had finished reading the article.

<comment><USER8> Is your comment meant to be a complaint or a compliment?

</comment></comment><comment><USER8> I'm a little perplexed by the reactions to this research. Speeding up the execution of javascript tied to the onload event might not be critical for every site but understanding how these pieces fit together is always helpful.

</comment><comment><USER9> Quit loading so much shit on your pages and your load times will be fast.

</comment><comment><USER10> _Being WPO consultants we of course made a big effort to make CDN Planet fast. Our goal: the average page page load time must be <2 seconds for 95% of all page views._

Isn't that a bit high? cdnplanet is actually impressively nippy for me, I'd just expect them to aim for 1.5 sec.

<comment><AUTHOR> 1.5 seconds for 95% of traffic is very ambitious, considering the users are geographically disperse. Say someone from across the globe(RTT=300ms) visits the site, it would take them minimum 600ms to even start rendering the page...

</comment></comment><comment><USER11> Seems nothing is good enough anymore! I give up. But seriously, all this does is serve to make you feel better when looking at metrics and barely puts a dent in real user experience. You're still blocking, you've still got the same load times. The only only difference is that you're delaying the inevitable and doing so doesn't always help user experience a bit. Waiting is waiting whether you wait now or later.

<comment><AUTHOR> The difference is that earlier, if there is a load spike in monitoring, we dont know if it was cause of 3rd party scripts or some problems with out server/CDN. the former we can live with, but the latter is very bad.

Now after deferring the 3rd party scripts, we know for sure what the user experience is with regards to the main content of the site.

<comment><USER11> Ok. Fair enough. I never thought of it that way. I stand corrected. I'm tempted to argue that some third party scripts may be necessary for presenting content and delaying them _can_ mess up a user experience. But we all know not to do that so that point is moot however there are excepts, however few, to every rule.

All that aside, though I'd say I just changed my mind to agree with you.

<comment><USER12> Definitely. Though with small modifications, you should be able to have your cake and eat it too:

[http://www.olark.com/spw/2011/10/lightningjs-safe-fast- and-a...](http://www.olark.com/spw/2011/10/lightningjs-safe-fast-and- asynchronous-third-party-javascript/)

...this technique begins downloads immediately, but still avoids blocking window.onload (just ran a brief test myself to verify this behavior). Unfortunately, it requires the third-party provider to adopt LightningJS. Here's to hoping that more providers take notice :)</comment></comment></comment></comment>


Groupon and Facebook valuations: A new paradigm or return to insanity? - <AUTHOR> http://www.latimes.com/business/la-fi-hiltzik-20110211,0,180297.column

<comment><USER2> Though there may be a bubble in the private market, we'll have to wait to see if that creates another bubble in the public market.

I believe Dave McClure said something along the lines of an extra few million inflating the early investor market doesn't have the same damaging effect as billions of dollars inflating the public market.

The author points the finger at Yahoo! a few times, but doesn't mention the prices that the stock was trading at or grew from.

Yahoo when public in 1996 at $24.50/share, which was a $1Billion market cap.

They peaked in Jan 2000 at $500.13 (split-adjusted). So it was the public market that boosted the frenzy of P/E.

Of course, Yahoo! has continued to drop since then, but they were also unable to keep pace with the market, and the stock price accurately reflects that.

So far, Facebook has done an amazing job of defining their market and should be commended. They've also got strong revenues and are continuing to grow strongly.

Shouldn't the P/E of a company who is on rocketship growth but not yet in the outer atmosphere reflect the position of growth?

Established companies should have a lower P/E as they are unlikely to show as significant growth.</comment>


What would be your first step of doing something the best in the World? - <AUTHOR>

<comment><USER2> Decide that "I am the best in the world" is true.

Then ask yourself what to do next.

Hint. Work damned hard for 30 years, focused on your skill.

<comment><AUTHOR> Good point. Does this mean that whatever you decided to do you will succeed if you work hard? What if you already spent some years on something that is still far from perfect but your still believe you could improve it to make the best?

</comment></comment><comment><USER3> Get started; it takes time to acquire experience.

<comment><AUTHOR> True, but don't you think experience is bad thing sometimes because it tells you X is undoable?

<comment><USER3> Experience is a prerequisite to being the best at something. If you've never actually tried it, how can you claim to be the best? I think the idea is that you try it, reflect on how you can do better or on what other skills you need, and try again (i.e. lots of iteration.)

</comment></comment></comment><comment><USER4> Have something you are so passionate about that you'll eagerly spend the rest of your life tirelessly honing your skill in it.

<comment><AUTHOR> The more time you've spent on your passion the less you have left from initial state... How could you return to it? Try some new angle of existing thing?

<comment><USER4> I'm not so sure of that. From Zen monks to painters to writers to martial artists to pianists to rock climbers to luthiers to surfers to architects... As long as there's a new height you can reach, there's plenty of room for passion to flourish.</comment></comment></comment>


Homebridge emulates the iOS Homekit API - <AUTHOR> https://github.com/nfarina/homebridge <comment><USER2> So where does the Homekit database for a home live? Is this even a valid question - is there a single database or does each iOS device maintain its own database and they sync between themselves?

Semi-related - what does the new AppleTV have to do with Homekit? It apparently does somehow enable connectivity, though the Siri instance running on the AppleTV doesn't seem to be able to interact with any local devices.

<comment><USER3> Some state of what devices are available lives on the HomeKit supporting bridge (in this case on the device you're running HomeBridge on), but the controlling devices also maintain state as to which devices in the target home you've paired with.

</comment></comment><comment><USER3> I've been using Homebridge and Domoticz on an RPi as a home automation solution (using ZWave for the devices) and it works wonderfully. Being able to yell out "Hey Siri, turn on the lights" when I walk into my house is great.

(Having Domoticz automatically turn them on when the door sensor triggers is even greater, but I think it's more impressive to be able to have Siri do it.)

</comment><comment><USER4> I'm using this to control my Nest thermostat via Siri with a Raspberry Pi. I used this Homebridge plugin --> [https://www.npmjs.com/package/homebridge- nest](https://www.npmjs.com/package/homebridge-nest) if anyone else might be interested in it.

</comment><comment><USER5> I run Homebridge so I can use Siri with my Samsung SmartThings hub. Works great.

I use a Raspberry Pi 2 as the server. Due to the NodeJS dependency you need a more recent ARM instruction set, so RPi v1 does not work.

</comment><comment><USER6> Been using this for the last few weeks to start/stop Sonos speakers by talking to Siri on my watch. "Hey Siri, turn off the kitchen speaker." It works really well.</comment>


Uranium Seawater Extraction Makes Nuclear Power Completely Renewable - <AUTHOR> https://www.forbes.com/sites/jamesconca/2016/07/01/uranium-seawater-extraction-makes-nuclear-power-completely-renewable <comment><USER2> This is good news, unless we pull viable fusion power out of your asses in the next 20 years I don't see any way to power our world without nuclear power.

Sure, we can replace our current day electrical needs with solar panels, but there are many non-electrical energy sources, primarily chemical, that we utilize from fossil fuels and other mined minerals.

Fertilizer for example, it uses a good portion of our world's total power needs, but at the same time we are only inputting a fraction of the power required to produce it via electrical means. There is a ton of potential energy utilized chemically from fossil fuels, which in most cases for fertilizer production is natural gas. The carbon from that natural gas usage ends up in the environment just the same as burning it. There are ways to not use natural gas, we can seperate elements from the air and from water, but that takes like 100x more electrical energy to do. The same for plastics, solvents, and pretty much anything else in the world that relies on some sort of chemical processes, so pretty much everything.

So to truly become a renewable powered world, our estimates for the green energy production needed are woefully inadequate. Multiply the amount of solar panels required to power the world by 10, now how reasonable does it sound? Pretty much every industry in the world is limited in some way by energy production and in many cases we aren't going to achieve any truly meaningful gains in efficiencies because of course there is a physical limit.

The only power source I can see that can compete with our requirements, nuclear power. Right now that means uranium, in the future maybe we will have thorium or whatever exotic shit, but uranium power production is well known and well studied. The only problem with uranium power production, open pit mining, all the rest are mostly relics from running 50 year old plants and technologies that we haven't been able to replace due to political barriers. The safety problems with nuclear plants are based almost entirely on the fact that we are running the equivalent of Model-Ts for power and criticizing their crash safety, while refusing to build new shit. The Fukushima plant for example was built in the 60s based on designs from the 50s, it was designed basically 15 years after nuclear power was first discovered. And here we are now 70+ years later still using that same old shit. Imagine comparing a car from the 40s to a car built today, they aren't even in the same realm of engineering and safety and the 40s car already had decades of design improvements.

</comment><comment><USER3> I hadn't really thought about it before, but this makes clear that renewable != clean.

<comment><AUTHOR> Which renewable energy _is_ clean? Certainly not biomass as it exists. Wind power requires mining of rare-earth metals, 200x as much material per watt as a gas turbine and is an ongoing threat to birds, bats and the sanity of locals. Solar power has notoriously toxic manufacturing and disposal waste. Hydro horribly damages downstream ecosystems. There are probably some fairly clean niche renewable techs like wave or thermal energy, but not enough to run the economy.

How bad are these kinds of renewable uncleanliness compared to nuclear waste? Honest question.</comment></comment>


About your f***ing website. - <AUTHOR> http://meta.stackoverflow.com/questions/61142/about-your-fing-website

<comment><USER2> See at this point I would be far more amused than furious.

A legitimate, helpful response (although it IS SO's login, so.... eh) that's a little bit of a "hey quit being a douche" is actually a pretty good way to go about it from a PR standpoint, in my opinion.

But hell at least they respond.

</comment><comment><USER3> Funny enough, yes - but what if the end of the dialog goes the other way? Is it fair/appropriate for a customer service rep (is that what Jeff is?) to respond in this manner, no matter how they are approached by the user?

It feels like a gamble. You might win that user - or lose them badly, and reputation along with it.

<comment><USER4> It's perfectly fair and appropriate to _not accept abuse from customers_. This seems like a reasonable way of deflecting the abuse but still helping out. It would still seem that way had the guy continued to flip out.

<comment><USER3> No denying that. I just think there are better ways to defuse abuse than returning vitriol. However, what's right for me - or how I would handle the situation - is clearly not right for everyone else, especially in the moment.

</comment></comment></comment><comment><USER5> Common, how is this on the front page! - Flagged by the way - oh I can't flag.

</comment><comment><USER6> in general this is the issue with openId and why it doesn't really work and using it as the only authentication system. Usually its better to offer mixed authentication.

</comment><comment><USER7> SOs login has always been a fucking pain. No surprise there.

<comment><USER8> I've always found their openId approach to be pretty nice, actually.

I do occasionally find myself being automatically logged out for seemingly no reason at all but it only takes two clicks to log right back in.

<comment><USER9> I agree, it's certainly better than just a text box with "OpenID" as the label and makes an attempt at saying what an OpenID actually is for people that haven't got one.</comment></comment></comment>


Mark Zuckerberg donates $1bn to charity - <AUTHOR> http://www.telegraph.co.uk/technology/facebook/10528624/Mark-Zuckerberg-donates-1bn-to-charity.html <comment><USER2> > _It is reported by Business Insider that the money will be distributed > between the Zuckerberg Foundation, the Silicon Valley Community Foundation > and The Breakthrough Prize in Life Science._

<comment><USER3> Promotes scientific research or rewards it like a Nobel Prize?

[https://breakthroughprizeinlifesciences.org](https://breakthroughprizeinlifesciences.org)</comment></comment>