_why is no more - <AUTHOR> http://twitter.com/_why <comment><AUTHOR> I just noticed that _why apparently deleted his twitter account. I then found that that wasn't all he deleted:

<http://twitter.com/_why> <http://github.com/why> <http://whytheluckystiff.net/> <http://poignantguide.net/> <http://hackety.org/> <http://shoooes.net/>

All disappeared...

For those who don't know who I'm talking about: <http://wikipedia.org/wiki/Why_the_lucky_stiff>

<comment><USER2> Someone outed him here: <http://whoiswhytheluckystiff.wordpress.com/>

<comment><USER3> Something doesn't seem right about that detective work - there's a Jonathan Gillette online who is a web developer in Harrisburg, PA who doesn't seem to be _why. Obviously it's likely that there's more than one Jonathan Gillette on the internet, but it seems odd to me that this other guy is also a web developer, with a decent online presence, in (somewhat) the same geographic area where _why is suspected to live, that _isn't_ him.

But I don't know enough about e-mail headers to provide an alternate explanation if there is one.

EDIT: This is that other guy's site, FWIW: <http://jonathangillette.net/>

And he's on twitter: <http://twitter.com/jgillette>

EDIT 2: The infamous Zed Shaw posted a link to another page which I'm more inclined to believe is the real _why. I'm not going to post the link here, but you can find it in Zed's twitter stream if you really want to.

<comment><USER4> That Jonathan Gillette was also going to school in Pennsylvania (<http://www.linkedin.com/in/jonathangillette>) when _why wrote that message, supposedly from Salt Lake City, Utah.

<comment><USER3> Nice find - you're a more thorough detective/stalker than I. :)

<comment><USER4> Yet more detective work:

[http://javuh.cvs.sourceforge.net/viewvc/javuh/javuh/Model/Ps...](http://javuh.cvs.sourceforge.net/viewvc/javuh/javuh/Model/Psychoo/Object.inc?view=log&pathrev=MAIN)

He seems to have been working on the same file, in the same day, as Jonathan Gillette. Probably poking around this repository a little more could lead to an almost-definitive answer.

Also, here: [http://javuh.cvs.sourceforge.net/viewvc/javuh/javuh/Services...](http://javuh.cvs.sourceforge.net/viewvc/javuh/javuh/Services/Unified/Common.inc?view=markup) the @author is listed as:

           11  *  @author Why Carlisle (firstname.lastname@example.com)

EDIT: Still going....

He talks about a 14-year-old sister here: [http://www.advogato.org/person/whytheluckystiff/diary/14.htm...](http://www.advogato.org/person/whytheluckystiff/diary/14.html)

This being written in 2001, that would make her ~21 now.

Searching for Jonathan Gillette, [http://www.intelius.com/search-summary- out.php?ReportType=1&...](http://www.intelius.com/search-summary- out.php?ReportType=1&qf=jonathan&qmi=&qn=Gillette&qs=UT&trackit=74&focusfirst=1)

a few relatives are listed, presumably one of which would be his sister, however, none are in the right age range.

Right, back to work now, I promise.

<comment><USER5> I'm ended up on <http://members.tripod.com/soccer_riot/> which seems to be some early stuff from _why..

From "Collected by Why the Lucky Stiff", <http://members.tripod.com/soccer_riot/famous.htm>

<comment><USER4> Well look at that, it was him: <http://imgur.com/yq9o1>

dolphins.ram has "Jonathan Gillette" as the author. Yet another reason to hate Real Player.

I would feel bad about posting this, but since everyone's apparently going to go around assuming it with almost-proof already, I guess it can't do much harm.

</comment></comment></comment></comment></comment></comment></comment></comment><comment><USER6> _why was to the ruby community what willy wonka was to chocolate. Maybe, just as the fictional Willy Wonka secluded himself in his chocolate factory for so many years due to competition, _why is simply secluding himself in his programming factory.

Deliciously sweet chocolates (or libraries/books/hacketyhack/etc.) will hopefully magically still appear.

Maybe _why is simply going to oompa loompa land to get little helpers.

<comment><USER7> Where is Charlie?

<comment><USER8> Waiting for his golden chunky bacon ticket...

</comment></comment></comment><comment><USER9> Man - what a bum out. The talk he gave at art + code was awesome and seriously inspired me to focus more on educational material for teaching kids to program. I hope he at least gives a more valid reason for removing everything. I can understand letting something become dormant - but others can take what you have done and be inspired and or build upon it. That is not a slight to you it's just the way a system grows. Like layers of sediment upon rock upon sediment. If I ever discovered that a piece of my code/idea had made its way into something someone else had done I would be stoked not bummed out.

<comment><USER10> Please tell me this talk is online.

<comment><USER11> It is indeed: <http://www.vimeo.com/5047563>

</comment></comment></comment><comment><USER12> I suspect some sort of burn out. Honestly the guy was a machine. I remember looking at his commit logs for all of his public Github projects and wondering how he managed it. And mind you, that only accounts for code publicly released and doesn't address any private projects he might have been working on.

<comment><USER13> I'm on the shoes mailing list and he recently made this announcement:

Aug 3rd: <quote> Okay, wow, hello, I'm very behind on this list, I hope you will pardon me. I've been away for the summer, taking a break from everything.

Well, enough of that, time's up: I hope to concentrate strictly on getting Shoes 3 done. While it's disappointing to see what a poor job I've done with Shoes, I am going to try to do what I can to aright the situation by at least getting us some more speed and stability. (As with all of my projects, it's just a toy experiment which is full of an unpredictable amount of both the sweet and bitter.)

My hope is to release the final version by September 7th. Please, if you want something fixed for Shoes 3, it will need to be filed on github, in the issues section. Yes, I think that will work just great.

_why </quote>

Perhaps this is a publicity stunt to popularize the new and improved Hackety Hack?!

</comment></comment><comment><USER14> Apparently he tweeted this yesterday (quoted from a retweet): "programming is rather thankless. u see your works become replaced by superior ones in a year. unable to run at all in a few more."

But _why's contributions are largely irreplaceable. Yeah, software evolves and individual projects might be supplanted by others, but his contributions go way beyond simply writing functioning code.

<comment><USER15> _Apparently he tweeted this yesterday: "programming is rather thankless. u see your works become replaced by superior ones in a year. unable to run at all in a few more."_

ironically he wrote "you" on twitter, and you wrote "u" on hn.

<comment><AUTHOR> It's from a retweet I believe, where the retweeter replaced "you" with "u", perhaps to fit it into 140 chars.

</comment></comment></comment><comment><USER16> Is it just me, or does Ruby tend have these "personalities" more than other communities? Seems like the Ruby community focuses a lot on the "rockstar" mentality. I don't spend any time in it to know for sure, though.

<comment><USER17> _Why is more like a fairy tale character than a rock star. What qualities of his persona do you consider to be rock star qualities?

<comment><USER18> <http://www.flickr.com/photos/scottlaird/31366517/>

:)

</comment></comment></comment><comment><USER19> I've set up a mirror of re-forks of his repos at

<http://github.com/whymirror>

This isn't anything super-scientific, I just forked the first google hit for site:github.com "fork of why/THISREPO" -- <http://bit.ly/whyrepo>

Still missing: greg rb_parse_args skistrap processor chirrup

</comment><comment><USER20> I hope he didn't take my extremely down voted, (apparently) not funny, pun ridden comment on this article too seriously. My puns were harmless, I swear. Any comic drawn in programming text immediately makes me think of _why: <http://news.ycombinator.com/item?id=771013>

But seriously, reading _why's poignant guide to ruby back in the day was a breath of fresh air coming from Java, and wanting to try something new. His intermingled illustrations and humorous text made a programming book that I actually found enjoyable to read. Also, his contributions in terms of libraries and interesting apps has been awesome.

_why: My hats off to you fine sir! May you find goodness on your latest adventures!

<comment><USER21> i've taken the python path instead of the ruby one, but _why's poignant guide is simply amazing. the only programming book i know of that's both psychedelic and actually useful. well not as a reference, but great for expanding your mind. _why, if you're reading, blessings to you. i thank you for enriching my programming life, and i hope we hear from you again.

</comment></comment><comment><USER22> I have a feeling that this disappearing act is part of a ritualized collecting of energies that he needs to release Hackety Hack. He originally meant it to be ready for Art and Code and I have a feeling that many side-projects since then (including Potion) have been produced out of nervous energy misapplied to tasks other than his One True Project.

His feelings aren't hurt, I doubt that very much.

<comment><USER23> One of my favorite local (Seattle) musicians is Jason Webley. Every year or two he stages a big concert where he "dies" at the end in some staged way, then remains "dead" for the next 6 to 12 months, with no public appearances while he works on a major project. Then, usually on his birthday, he has another big event where he is "born" and then reveals the fruits of his labor.

</comment></comment><comment><USER24> Well that sort of ruins one's day. I hope everything is alright with him.

</comment><comment><USER25> The Hpricot wiki is still live on github, and the website is still up too.

<http://wiki.github.com/why/hpricot> <http://hpricot.com/>

One of the most thoroughly documented libraries that I have used.

It's interesting that he gave a talk in 2005 called "A Starry Afternoon, a Sinking Symphony, and the Polo Champ Who Gave It All Up for No Reason Whatsoever" (from his Wikipedia article)

Anyone know anything about what he said about the Polo Champ in the talk?

</comment><comment><USER26> I noticed that people had been ripping on his code a bit lately... I think the Ruby community's embrace of Nokogiri really hurt the man's feelings.

_why has been a great contributor to the Ruby community... let's hope he reincarnates himself :)

</comment><comment><USER27> _why got me back into programming and into ruby, first with Try Ruby! in the browser and later Hackety Hack. When I asked if I could use hackety to build a web app, he steered me toward rails. I've used tons of his library, especially hpricot. If you're listening _why; don't stop being generous - don't disappear without a trace.

</comment><comment><USER28> Very sad. No more chunky bacon??

I invite everyone to enjoy a video I set to some of his music, and reflect on his priceless contributions.

<http://www.youtube.com/watch?v=YReSQfSBz4k>

<comment><USER29> Where did you find his music? I remember seeing on his Wikipedia article before that he made music, but I was able to find very little about it.

<comment><USER30> i tried to build a torrent: <http://tinyurl.com/ktrjs8> don't know if it actually works yet.

<comment><USER31> That link doesn't seem to work.

<comment><USER32> [http://web.archive.org/web/20071018035725/poignantguide.net/...](http://web.archive.org/web/20071018035725/poignantguide.net/sdtrk/)

THE SOUNDTRACK TO why's (poignant) guide to ruby

</comment></comment></comment></comment></comment><comment><USER33> The title is inappropriate (without really knowing what happened to _why). Only his online identify is no more!

<comment><USER8> I don't know about that. I think _why was his online identity... only sometimes he ventured into the real-world to talk to people.

So, perhaps it is accurate, since it seems like the online persona has vanished, so in a way _why is no more.

Maybe the real person needed to escape from the persona... who knows?

<comment><USER33> _Technically_ _why is his online persona and I can _now_ understand/analyze your argument. But my first thought after reading the title was "OMG!!". Not fair.

</comment></comment></comment><comment><USER34> _why just posted a new repo on github: <http://github.com/why/lol/tree/master>

EDIT: Weird, the repo description is "wtf adam, are you this slow". Hope he didn't get hacked.

EDIT 2: original link is dead.

<comment><USER35> That does not appear to be the same 'why' account as before. 0 followers, created today.

<comment><USER7> Probably some guy just registered the username after _why deleted it.

</comment></comment></comment><comment><USER36> A guy I know used to work at Inetz. Here's a small chat exerpt from a few minutes ago... Confirmation that the guy that worked at Inetz is _why. Perhaps take it with a grain of salt.

emullet you worked at Inetz right?

friend 4:20 yeah

emullet 4:20 You work with a guy named Jonathan Gillette ?

friend 4:21 not allowed to answer that

emullet 4:21 lol why do you say that?

friend 4:21 but I've heard that a lot of his stuff "disappeared" today

emullet 4:21 ya you know whats up?

friend 4:21 nope

emullet 4:21 its very odd kinda cool he worked with you

</comment><comment><USER37> Interestingly enough, even an interview of his has disappeared, while others on the site continue to work:

HN post re: inteview: <http://news.ycombinator.com/item?id=483207> <http://_why.usesthis.com/> <http://usesthis.com>

<comment><USER38> sorry about that, i moved it to its own site.

</comment></comment><comment><USER39> That's terrible, his code and posts always brightened my day.

</comment><comment><USER40> There's a new repository up on his Github: <http://github.com/why/lol/tree/master>

Description: wtf adam, are you this slow

I'm guessing he got hacked.

Edit: Nevermind, the repo's been deleted.

<comment><USER41> Apparently there's no holding period for deleted names on GitHub.

If he wanted his twitter account to be taken by somebody else, he could have renamed it before deleting it. If you rename a twitter account, the old name is freed up instantly, but if you delete an account, it is held for an unknown period of time.

</comment></comment><comment><USER42> Perhaps he's rebooting his online identity?

<http://www.jonathanpaulgillette.com/>

<comment><USER43> That's just weird enough to be plausible -- there's pictures of the Shoes shoes, kitties, rainbows, needlepoint, and Tom Cruise giving a piggy back ride.

<comment><USER44> <http://www.jonathanpaulgillette.com/about.html>

<comment><USER31> 404 not found

<comment><USER43> I think that might have been intentional on the part of the GP.

Cheap shared hosting with hijacked 404 pages is not very _why

</comment></comment></comment></comment></comment><comment><USER45> I had a copy of Potion cloned on my machine, so I stuck it on Github. If someone has a newer one, please post it, or let me pull from you or something: <http://github.com/randrews/potion>

_why had a lot of projects, we can probably preserve most of them just with people pushing stuff they had cloned.

<comment><USER14> This one has commits through Aug 11/12: <http://github.com/adamsanderson/potion/tree/master>

<comment><USER45> Just pulled it and updated mine. Thanks!

If nothing else, this is an excellent test of Git's distributed-self-healing goodness.

I really hope he comes back though.

</comment></comment></comment><comment><USER46> Wow, one of the few personalities to ever remain truly anonymous on the Internet vanishes in a day. Sad sad day. :(

<comment><USER47> No, his real name has been on HN before.

<comment><USER46> Do you have a link for this, as far as I know, no one knows his real name, job, etc.

<comment><USER4> <http://portal.acm.org/citation.cfm?id=1507505>

Though I'm not entirely certain the authors didn't just make up a name to fit the citation style. I don't see any reason why they would have any information the internet at large doens't.

<comment><USER48> Doing a search for "ruby Malsky" brings up _why stuff. I think Malsky is a character in some of _why's works.

</comment></comment></comment></comment></comment><comment><USER49> His job could have a stipulation in the contract that they own everything he creates. Wouldn't that make him potentially civilly liable for his open source contributions, as well as these books and other things he has made.

</comment><comment><USER50> My guess is that he got hired by an intelligence agency.

<comment><USER51> That could be right! I thought so.

</comment></comment><comment><USER52> I learned ruby via his blog, via his poignant guide, and via the older edition copy of the pitchaxe which he had hosted on his site. I really hope he's not going into seclusion for good. :-(

</comment><comment><USER53> I was playing with hackityhack last night, trying to find a way to contribute to it. It's very important to me that young people have an easy way to learn programming and I think he was really on the right track.

</comment><comment><USER54> Version 0.5 of __why's Poignant Guide to Ruby_ is still available on Rubyforge:

<http://rubyforge.org/frs/?group_id=183>

</comment><comment><USER55> Does anyone have a copy of all the source code he published?

Specifically, does anyone have a copy of his Potion (<http://news.ycombinator.com/item?id=425258>) repository somewhere online?

<comment><USER39> Try here: <http://github.com/adamsanderson/potion/tree/master> There might be a more recent one, but that's within a week.

</comment></comment><comment><USER56> Don't assume that _why is the one removing his online identity...I've seen this happen with other people - and it was the work of a malicious hacker.

<comment><USER27> I want to believe this, but then I remembered denial is one of the first phases of grief.

</comment></comment><comment><USER57> I'm sure this comment will get lost in all the clutter, but:

I, up until today, didn't give two shits about ruby. I know that I had heard of this craaazzzyyyy "Ruby on Rails" jazz from about a year ago, and I know that people talked about it all the time, but I grabbed onto my python, looked the other way, and called it good.

Now, I want to learn ruby...

This guy seemed like he was all about teaching people Ruby, perhaps this was an attention grab?

</comment><comment><USER58> _why and Zed walk into a formum, the matter - antimatter reaction destroys the net for Gigabytes around.

</comment><comment><USER59> At the risk of being a little insensitive, this is a very good argument in favor of DCVS's.

</comment><comment><USER60> "This is the true joy in life ... being used for a purpose recognized by yourself as a mighty one ... being a force of Nature instead of a feverish selfish little clod of ailments and grievances complaining that the world will not devote itself to making you happy ... I am of the opinion that my life belongs to the whole community and as long as I live it is my privilege to do for it whatever I can. I want to be thoroughly used up when I die. For the harder I work the more I live. I rejoice in life for its own sake. Life is no brief candle to me. It's a sort of splendid torch which I've got to hold up for the moment and I want to make it burn as brightly as possible before handing on to future generations."

\-- George Bernard Shaw

<http://tr.im/why_burn>

I lament the departure of _why. However, it looks like his flame will continue to live on, even if he would have hoped otherwise. Thanks _why

</comment><comment><USER61> I am very,very sad. He is one of the primary reasons I'm a ruby programmer too.

</comment><comment><USER62> I have an opinion I would like to share, from what am reading online, it seems that his last tweet was a bit angry at the programming world, us in a more specific term. Us developers whom have learned so much from him... What I feel is that it's like an anger wave inside him, that like "alright, people are not thankful for what I do, let's see what happens when everything goes down... now what will they do without me" dunno, but I cannot find an explanation of why even his source codes are down.. really hope he's blessed by god somewhere feeling better and if that's the case, being angry at us, hope he feels better soon. guys I think maybe we should do him a website, you know like a call for his return, who's with me?

<comment><USER63> I am

<comment><USER64> I'm with ya too :)

</comment></comment></comment><comment><USER65> _why does as he wishes, and he has never seemed like the kind of person who lives with regret.

</comment><comment><USER66> "this girl at the pool is draggin such a stack of foam noodles it's like she's a little beaver going to dam up the diving board"

from _why's twitter, 8/12/09.

I hope the guy surfaces somewhere soon. One of the most outwardly joyful computer folks I've ever seen.

</comment><comment><USER67> it's the mystique, the razzle dazzle, the enigma. his fabulous body of work will live on, restored, uploaded and duplicated by hundreds of devotees and admirers. he'll be reincarnated. a _why by any other name would still smell as sweet. it's better to burn out than to fade away. ladies and gentlemen, elvis has left the building.

</comment><comment><USER68> I'm afraid my impression of _why from what I've read lately is that he wasn't exactly happy. Adding to that.. has anyone read the last few pages of chapter 6 of his guide recently? Apparently his sister was drinking and got alcohol poisoning or might have been on drugs. All in all it seems he was deeply troubled by this and by his deteriorating relationship to his sister. When did he write this and is this stuff about his sister true? I really, really hope it isn't and that he or his sister didn't do something tragic.

<comment><USER64> I think that was all a joke. He likes to make up stories, you see.

<comment><USER68> Well thats the problem with people who tell lots of stories isn't it? You can never tell if a story is actually true or not.. At least it does seem to me to be a remarkably depressing section in an otherwise fun and quirky book.

</comment></comment></comment><comment><USER69> I feel compelled to dispatch an anonymous postcard to _why, just to say thanks. And to wish the best farewell. Maybe I'll find one with a furry animal on the front, like a lumberjack or something. Tomorrow.

You see, phoning seems rather creepy. And besides, I really don't have anything to ask him, or of him. He's taught us all so much already.

Yeah, a postcard seems best. Just a message in a bottle, a ping into the void. Naturally, the letter shall read in a language known well among those he has enlightened.

Thanks, old friend.

</comment><comment><USER70> A traceroute to whytheluckystiff.com ends with <http://cewki.com> , which contains a link to this thread.

_why, you inspired me to be a developer.

</comment><comment><USER71> [http://www.youtube.com/watch?v=_EPzGpwnekg&feature=relat...](http://www.youtube.com/watch?v=_EPzGpwnekg&feature=related) Sounds like him.

</comment><comment><USER72> Jeff Yates' disappearance is the similar case. He is JavaScript developer, books author and creator of PBWizard, one of the very first WYSIWYG editors. He had site pbwizard.com with many articles. However only one of these article can be found in web today ([http://www.dotvoid.com/2001/03/using-the-range- object-in-moz...](http://www.dotvoid.com/2001/03/using-the-range-object-in- mozilla/)).

</comment><comment><USER73> <http://web.archive.org/web/*/http://whytheluckystiff.net/>

<comment><USER31> If anyone's about to mirror the stuff on his web sites, it might be wise to act quickly. Wayback Machine always checks the current robots.txt for a given domain, so it's possible to block files that have already been archived.

</comment></comment><comment><USER74> I keep asking myself: "Why _why?" and "_why, why?" and "Why _why, _why?" and "_why, why, why, why!?" and "_why, why, _why, why..."...

</comment><comment><USER75> Found this _why's tweet from Google's cache. I'm not quite sure what this is about - and everybody might have already seen this, but here goes:

"burying myself feet first in the woods with the hope that this will lead to a career as a much beloved and sought after mouth-under-a-rock."

Link to Google's cached _why Twitter page: <http://bit.ly/2h5PKy>

</comment><comment><USER76> i couldn't help but think of this exchange when i saw the _why incident:

 _\- Nobody died. How can you kill an idea? How can you kill the personification of an action?

\- Then what died? Who are you mourning?

\- A point of view.

Cain, Elbis O'Shaughnessy, and Abel, in Sandman: The Wake_

(yes i'm double posting this, i feel that it is also appropriate here in the original thread)

</comment><comment><USER64> Hey everyone! _why the lucky stiff's Flickr account still exists! <http://www.flickr.com/photos/_why>

Either he or the hackers or whoever is responsible for this forgot about his Flickr account.

</comment><comment><USER77> camping 4eva!

<comment><USER78> note to downvoters: "camping" is a brilliant and bizarre microframework for MVC web apps, courtesy of our friend why.

</comment></comment><comment><USER79> internet/_why #=> SystemStackError: stack level too deep

I remember reading on his twitter something like, "a caller asks: should I use hpricot or nokogiri? If you're not me, use nokogiri. If you're me, then stop being me"

</comment><comment><USER80> in pursuit of this new knowledge

i have discovered that every... easily accessible (so far)... copy of his poignant guide to ruby

has disappeared as well

what an eff you

i'm pretty dissapointed.

if anyone has a copy, i would love to talk... i'm certainly the intended audience.

yooshooa@yahoo

<comment><USER81> I have a pdf that has up to chapter 6.

Mediafire link (is.gd'd) : <http://is.gd/2p1Jd>

<comment><USER19> <http://github.com/whymirror/poignantguide/tree/master>

</comment></comment></comment><comment><USER82> Thanks for all the fish, _why!

<comment><USER83> He should probably be the one thanking us for the fish. (And we should be the ones preparing for the imminent destruction of our planet).

</comment></comment><comment><USER84> A few years back I read Ayn Rand's The Fountainhead. Somewhere in the middle of the book someone says "why the lucky stiff!"

Does anyone know what that means?

<comment><USER85> 'stiff' is 30s slang for a working class person (as in 'working stiff'). This would be like saying 'he really lucked out!' today - a mixture of admiration and mild jealousy for someone's (possibly unearned) good fortune.

</comment></comment><comment><USER86> _why's actions remind me of a quote from Hagakure:

"In the Kamigata area, they have a sort of tiered lunchbox they use for a single day when flower viewing. Upon returning, they throw them away, trampling them underfoot. __The end is important in all things. __" (emphasis added)

Rest in peace, _why! You were but a hero, but now you are a legend.

</comment><comment><USER87> Loved his neat work why's poignant guide to ruby though I'm not a ruby guy. :(

But why he'd commit a virtual suicide like this?

</comment><comment><USER88> Guess he wants to avoid the Mitnick Dilemma?

[http://www.wired.com/beyond_the_beyond/2009/08/kevin- mitnick...](http://www.wired.com/beyond_the_beyond/2009/08/kevin-mitnick- prominent-hacker-victim/)

</comment><comment><USER89> looks a little bit suspicious to me: <http://twitpic.com/ehm2h> (_why created a repository called "lol" 30 minutes ago)

<comment><USER90> Wrong. "why" created that account, which has only been a member since today. "_why" hasn't done anything.

<comment><USER91> _why's account on github has always been "why", presumably because github does not allow an account name to start with an underscore.

_why deleted his account and somebody snatched it up real quick

<comment><USER92> Also, the only current repo in this account (now called "because" and not "lol" anymore) has been CLONED by two other people! They made some commits, even. wtf?

<comment><USER64> The new /why account is a placeholder. The because repo is a thing that says some things about _why, stuff like theories on why he might have done it. Not a hack. (although I'm still not sure about the 'lol' thing...)

</comment></comment></comment></comment></comment><comment><USER93> but not totally gone on twitter: <http://search.twitter.com/search?q=RT+%40_why>

</comment><comment><USER94> It'd be a good idea to collect links to backups of his various projects. Does anyone have a copy of Hobix or Potion laying around?

<comment><USER95> Maybe his disappearance is an art piece about how things can or cannot be erased from the 'net.

</comment></comment><comment><USER64> <http://stores.lulu.com/_why> is gone too. :( Man, he really went to town!

</comment><comment><USER96> Maybe he just needs a break from the internet?

</comment><comment><USER97> His GitHub account is back! <http://github.com/why>

<comment><USER98> It's supposedly a placeholder for when he comes back.

</comment></comment><comment><USER81> :( A sad day.

</comment><comment><USER13> A clue: <http://away.autognosis.org/>

</comment><comment><USER30> here's two more videos from _why from his OSCON 2005 talk: <http://bit.ly/1atNHU> ("Sinking Symphony" and "Foxes Tall and Small on Modules")

</comment><comment><USER99> What happened to him? Has he got any problems?

</comment><comment><USER100> Why's dead. Ruby lives on.

</comment><comment><USER101> omg, where will I go for my hpricot documentation now?

</comment><comment><USER102> I would love to see _why come back as _whynot

</comment><comment><USER103> Good riddance.

<comment><USER103> Of course, downvote me because I'm not mourning somebody who, if you'll notice, isn't dead /-:

<comment><USER104> I'm betting they're downvoting you because your comment was kind of douchey. It's okay not to be concerned about Why's abrupt disappearance from online- ness, but slamming other people for being concerned about it? And "good riddance?" Really?

<comment><USER64> Yes, but I agree with him: he will come back. It is unlike him to leave without a message.</comment></comment></comment></comment>


Mod and remainder are not the same - <AUTHOR> https://rob.conery.io/2018/08/21/mod-and-remainder-are-not-the-same/ <comment><USER2> In algebra, mod is not an operator. We say 17 mod 4 is 1, but what we write is something like

17 = 1 (mod 4)

To say that 17 and 1 have the same remainder when divided by 4. If you do all of your operations and comparisons mod 4, it doesn't matter if we call the number 1 or -3.

In real life, we often need the remainder function, and we usually need it with positive numbers (how many eggs will I have left if I put these into boxes of 12). We sometimes call this the modulo function, which is a slight abuse of notation from the algebraic meaning of modulo. For positive numbers, it works completely intuitively. There are a couple of natural ways to extend this to negative numbers - an extension which would be meaningless or irrelevant in algebra - and computer language authors have (usually) called one rem and one mod.

<comment><USER3> Strictly speaking, it's not the case that

17 = 1 (mod 4)

but rather

17 ≅ 1 (mod 4)

i.e. "17 is congruent to 1 mod 4", not "equal", though congruency mod n is an equivalence relation.

<comment><USER4> Yeah I remember this notation completely messing up with my brain back in my discrete math class.

<comment><USER5> Clock arithmetic.

Modulo 4: a clock with only four evenly-spaced marks on it.

17 is congruent to 1 (modulo 4) means:

Starting at the top of the clock, go clockwise one mark.

Starting at the top of the clock, go clockwise seventeen marks.

You'll end up at the same position.

That's congruence.

</comment></comment></comment></comment><comment><USER6> This article focusses on the (rather uninteresting) case of taking the modulus/remainder of some positive dividend divided by a negative divisor.

However, the _real_ distinction lies in how the two operations handle negative dividends: If _n_ is positive, the modulo operator

      x mod n

always returns a number between 0 and _n_ – 1. The remainder operator returns a number between – _n_ \+ 1 and 0 if _x_ is negative instead. For example,

      -17 mod 12 = 7

and

      -17 rem 12 = -5.

I have yet to see a case where the remainder operator is the one that you want. If a language only supports rem I find myself constantly writing

      (x rem n + n) rem n

(which is just

      x mod n).

<comment><USER7> a = b ( mod n) is defined as n | a - b That is n is a divisor of a -b ( a, b, n integers n non zero) Obviously if p is prime and p | n Then also a = b ( mod p)

<comment><USER6> I know. But programming languages usually don't have the modulo relation but a modulo operator that sends each number to a special representative of its equivalence class. For positive numbers, everyone agrees that this should be the smallest nonnegative number (i.e. the representative between 0 and _n_ – 1). However, there are two conventions for the representative of a negative number: Some programming languages return the largest nonpositive number (the article calls this the _remainder_ ), others return the smallest nonnegative number in this case as well (the article calls this the _modulus_ ). I chose to write mod and rem instead of % to be able to make this distinction.

<comment><USER8> I recalling seeing these referred to as _modp_ (positive) and _mods_ (symmetric) back in University. This seems to be the clearest way to distinguish them. I didn't realize different popular programming languages used different versions for the % operator...

The case of a negative denominator doesn't seem to make sense when talking about modulo in an algebraic sense. I don't think you can have a Ring with a negative dimension. So I've never even thought about what % would do with a negative denominator (RHS). If I was using % with an unknown denominator as input, I could just as easily end up with it being 0 which would be a bad thing, so I think it's fair to say I always require it to be positive.

<comment><USER9> No, the symmetric version is yet a third variant. What people are calling "rem" is what you get with division that rounds toward zero, whereas what they are calling "mod" is what you get with division that always rounds down. A symmetric version is what you get with division that rounds to the nearest integer, and I have not seen any language with a built-in operator for it.

To the grandparent:

> _sends each number to a special representative of its equivalence class_

The problem is that many programming languages have a "remainder" type % operator which _does not do this_ in the case where the dividend is negative. For instance,

        -1 % 3 == -1
        2 % 3 == 2

Instead, folks who want mathematically reasonable behavior need to implement their own. For instance in Javascript we can define

        mod = (a, b) => a - b*Math.floor(a/b)

<comment><USER6> Grandparent here: I know, that's what I tried to explain (poorly) with the next sentences. Programming languages with a remainder operator choose two representatives for every equivalence class except [0] and return the one that has the same sign as the dividend.

I tend to define

      mod = (a, b) => (a % b + b) % b

because it works without going through floats – in languages that have integer types. I don't know if there are actual advantages though.

</comment></comment></comment></comment></comment></comment><comment><USER10> The key to this is in how you do integer division. Here is what happens in Python2:

>>> 19 % -12

-5

>>> 19 / -12

-2

That is because Python2 integer division is something called "floored division". This can be seen as always rounding toward negative infinity. This is arguably the correct way to do integer division and in fact there has been a lot of argument about this over the years.

One very nice feature of floored division is that it does not have a weird discontinuity around 0 as "round toward 0" does. This discontinuity can sometimes cause problems in embedded applications involving physical motion.

So mod and remainder _are_ the same. You just have to do the division right...

<comment><USER11> Lua also corrects things. See [https://hisham.hm/2015/04/18/a-small-practical- example-where...](https://hisham.hm/2015/04/18/a-small-practical-example- where-luas-behavior-is-better-than-cs/comments/)

<comment><USER12> Yay lua!

</comment></comment></comment><comment><USER13> > If I tell you that 9 is the result of my squaring operation, you can easily > deduce that the input was 3.

Or minus 3.

</comment><comment><USER14> > So: 5 mod 2 would be 1 because 5 divided by 2 is 4 with one left over.

No. 5 divided by 2 is _2_ , not _4_ , with one left over.

<comment><USER15> I'm willing to believe this was a typo.

<comment><USER14> Oh yes, 100%, but someone had to point it out :) One of my biggest fears is that some of my public stuff has obvious mistakes but nobody tells me out of politeness!

<comment><USER16> I posted a similar comment and had the same feeling. I'm glad you noticed/pointed it out too!

<comment><USER17> Derp. OP here - yep typo and corrected thank you!

</comment></comment></comment></comment></comment><comment><USER18> The site seems to be down, but confusion about the difference arises in C# too.

C# does not have a mod operator, the % operator is a remainder operator.

[https://blogs.msdn.microsoft.com/ericlippert/2011/12/05/what...](https://blogs.msdn.microsoft.com/ericlippert/2011/12/05/whats- the-difference-remainder-vs-modulus/)

<comment><USER19> From the official C# reference:

[https://docs.microsoft.com/en-us/dotnet/csharp/language- refe...](https://docs.microsoft.com/en-us/dotnet/csharp/language- reference/operators/remainder-operator)

</comment></comment><comment><USER20> There are actually _FOUR_ possible binary operations, all of which agree when both arguments are positive (e.g. f(13,5)=3 for all of them), and all of which satisfy the property that if f(n,d) = r, then r ≡ n (mod d). Namely:

• The first one always returns a positive number: for this f, when f(n,d) = r, it's true that 0 ≤ r < |d|. For example, f(13,-5)=3, and f(-13,-5)=2. Some programming languages that obey this: ALGOL, Dart, Maple, Pascal, Z3.

• The second one always takes the sign of the divisor (i.e. the denominator, if you write the division as a fraction n/d): for this f, when f(n,d) = r, it's true that |r| < |d|, and that r and d both have the same sign. For example, f(13,-5)=-2, and f(-13,-5)=-3. Some programming languages that follow this: APL, COBOL, J, Lua, Mathematica, MS Excel, Perl, Python, R, Ruby, Tcl.

• The third one always takes the sign of the dividend (i.e. the numerator, if you write the division as a fraction n/d): for this f, when f(n, d) = r, it's true that |r| < |d|, and that r and n both have the same sign. For example f(13,-5)=3, and f(-13,-5)=-3. Some programming languages that follow this: AWK, bash, bc, C99, C++11, C#, D, Eiffel, Erlang, Go, Java, OCaml, PHP, Rust, Scala, Swift, VB, x86 assembly.

• The fourth one takes the sign of the product, i.e. it's positive if both the dividend and divisor have the same sign, and negative otherwise: for this f, when f(n, d) = r, it's true that |r| < |d|, and that r and n*d have the same sign. For example, f(13,-5)=-2, and f(-13,-5)=2. I'm not aware of a programming language that does this, though I've seen some ad-hoc hand-rolled big-integer libraries that used to do this.

Of course in mathematics (number theory) we usually don't care, as, for example, modulo 5 (or -5 for that matter), we would say -13 ≡ -8 ≡ -3 ≡ 2 ≡ 7 ≡ 12... (mod 5), and so we can pick any of them and it doesn't affect the mathematics.

</comment><comment><USER21> Common Lisp avoids the confusion of "which one am I using" by giving you two separate functions, MOD and REM: [http://clhs.lisp.se/Body/f_mod_r.htm](http://clhs.lisp.se/Body/f_mod_r.htm)

</comment><comment><USER22> Hmmm, having a go with er... Go:

      fmt.Println(19 % 12)
      fmt.Println(19 % -12)
      </comment><comment>=
      7
      7

Hmmm, let's try the built in math package then:

      fmt.Println(math.Mod(19, 12))
      fmt.Println(math.Mod(19, -12))
      </comment><comment>=
      7
      7

Looking at math.Mod()'s description:

      // Mod returns the floating-point remainder of x/y.
      // The magnitude of the result is less than y and its
      // sign agrees with that of x.

k, that seems like it's not supposed to be "modulus" then.

The Go language spec([https://golang.org/ref/spec#Arithmetic_operators](https://golang.org/ref/spec#Arithmetic_operators)) also clearly states it's remainder not modulus.

      %    remainder              integers

The manual approach does work:

      m := 19
      n := -12
      fmt.Println(((m % n) + n) % n)
      </comment><comment>=
      -5

Doing a bit of searching online shows some discussion in 2009, but no mention of any desire for a change:

• [https://github.com/golang/go/issues/448#issuecomment-6604976...](https://github.com/golang/go/issues/448#issuecomment-66049769)

• [https://github.com/golang/go/issues/448#issuecomment-6604977...](https://github.com/golang/go/issues/448#issuecomment-66049770)

Does anyone know if this has improved since?

</comment><comment><USER23> Learned this the hard way when implementing a ring buffer in C++ after spending a lot of time doing things in Python.

<comment><USER24> Same here, only in Rust. Felt really rather stupid having managed to write code for 20 years without actually knowing this. Tons of knowledge is built on faulty assumptions.

</comment></comment><comment><USER25> In Swift % is the remainder operator [0][1] and there's also the `.truncatingRemainder(dividingBy:)` and `.remainder(dividingBy:)` methods on floating-point types [2].

[0] [https://docs.swift.org/swift- book/LanguageGuide/BasicOperato...](https://docs.swift.org/swift- book/LanguageGuide/BasicOperators.html)

[1] [https://lists.swift.org/pipermail/swift-evolution/Week-of- Mo...](https://lists.swift.org/pipermail/swift-evolution/Week-of- Mon-20160523/018679.html)

[2] [https://developer.apple.com/documentation/swift/float/288616...](https://developer.apple.com/documentation/swift/float/2886166-truncatingremainder)

</comment><comment><USER26> In many programming languages, a % b is simply a - b*(a/b), where '/' is integer (truncated toward 0) division. I'm alright with this because:

1\. this computation is typically more efficient on silicon optimized for arithmetic, 2\. this computation is unambiguous and more straightforward to people who are unfamiliar with modular arithmetic, especially when negative a and b are involved, and 3\. in contexts where the mathematical remainder 0 <= r < abs(b) is needed, b is typically always known. It is easy to see that knowing a % b and b it is easy to recover r, but knowing b and r, one may not recover a % b (we don't know if it was positive or negative).

<comment><USER27> I would argue that mod is more intuitive. I imagine the integers being partitioned into contiguous bins of size b, and computing a % b means counting which index in the bin it is. This can be done visually too!

</comment></comment><comment><USER28> Funny, just a couple of weeks ago I faced a similar problem at work. I ended up changing slightly the code and adding a comment that read something like "We do it this way because the operation we want is the modulus, not the remainder".

</comment><comment><USER29> > Another question you could answer would be "if I start on a road trip at > 6PM, what time would it be when I get to my destination 16 hours later?". > That would be 6 + 16 mod 12 which is 10.

So many things wrong here. Why would you represent 6PM as "6"? And then you mod 12, which will only give the correct response between 12AM and 11AM. If you'd said 18 hours later you'd think you were arriving at midnight. It's a bad example anyway; why would you care what hour you arrive but not which day?

</comment><comment><USER30> Well, that's why I always define RED(x) (for reduce modulo) as ((((x) % MOD) + MOD) % MOD). Quite useful in algorithmic competitions, which often ask you for answer modulo some prime.

</comment><comment><USER31> I've regularly been annoyed by -1 % n being negative but I've never seen a case where the negative number is on the right. Has anyone seen this before in real code?

<comment><USER32> I suspect this is why the topic is relatively obscure; situations where you have a negative divisor and need the remainder/mod are not common.

<comment><USER33> > situations where you have a negative divisor and need the remainder/mod are > not common.

yep. But sometimes, when you have numbers that come from some external system, and you didn't check them or expect that the % operator will make it positive, you end up with this sort of problem. Such as having negative positions with CSS, or a game where you end up with negative values for coordinates.

</comment></comment></comment><comment><USER16> So: 5 mod 2 would be 1 because 5 divided by 2 is 4 with one left over.

I do not like this explanation and just don't understand what the author is getting at with this example. The answer of 1 is correct, but the explanation is just plain wrong and that makes it tough to agree with the author's thought process through the rest of the article.

</comment><comment><USER34> So will JavaScript and C# be patched?

</comment><comment> another-cuppa This is covered in more detail in the book _Hacker 's Delight_. A recommended read.</comment>


Why Lefties Make Less - <AUTHOR> http://www.theatlantic.com/business/archive/2014/12/why-lefties-make-less/383635/?single_page=true <comment><USER2> I have not done any research, but this does not match my experience in tech companies. Some of the best programmers I have worked with were left-handed and were definitely making more than the average at the company. There also seems to be fairly high percentage of left-handed programmers in general. However, I'm left-handed myself, so I might be noticing patterns, where there are none.

<comment><USER3> The plural of anecdote is not data. The results of the research conducted do not dictate that left-handed people must be inferior, it only presents the findings that statistically, those traits were present in the sample.

It is entirely possible for you to have had great experiences with lefties, and the findings stated in the article to be true. The findings in the article are also not a good reason to discriminate against left-handed people.

</comment></comment><comment><USER4> I write with my left hand, mouse with my right hand (I think that is common). I currently live in a society where almost no one is overtly left handed, and I still get stares when I eat in public (though not as much as I used to).

I can imagine that "creative", "forward thinking", and "cognitive problems" go hand in hand: only a bit of spectrum separates the "crazy like a fox" and "crazy like a nut" (people mostly prefer conformity if we admit or not). It really isn't that surprising that lefties don't do better on average, and that we tend to do better at extremes (most of the last few presidents besides W were left handed, a lot of good programmers are, and so on).

<comment><USER5> When you eat in public with your hands, like a sandwich? Because I was taught growing up in the UK that everybody should hold their fork in their left hand and knife in the right. That's how to set a table, forks left, knives right.

<comment><USER4> I hold my chopsticks with my left hand. Not good for tight circular tables.

<comment><USER5> In countries were chopsticks are the dominant form of cutlery (that sounds ridiculous), being a one-handed implement, is it considered bad form to hold them in the left hand. I chopstick in the left too. Can I travel to Asia and not be shunned?

<comment><USER4> People might stare and laugh, but they will treat you like a curiosity, but as someone being rude. But be careful of tightly packed round tables, especially if hot pot is involved.

</comment></comment></comment></comment></comment><comment><USER5> I have always wondered, as a leftie myself, if appearance plays a part in people making a first-impressions decision about acceptance. For example, a lot of left handers part their hair on the 'wrong' side, so to righties it looks like they look in the mirror, but not as they expect to see other people. I wonder if this has any bearing on human behavior at all.

Much as racism is often partly caused by deviation from 'the norm'. We learn to read signs in people's expressions and actions and we judge them based on their deviation from the norm. If a person has a hard to read face because their features and different from our own and those around us then it could lead to distrust or at least reticence to decide about that person.

On a completely different note, I thought this article was going to be about people whose politics were 'leftie'. Glad I read it before commenting.

<comment><USER6> This is a good point and there may be something in it.

There's a semi-related, interesting phenomenon in fencing, which results in a a disproportionately large percentage of fencers being left-handed.

This is because at a beginner/intermediate level, left-handed fencers have an advantage over right-handed ones (think about how swords would meet slightly differently if the fencers are each same-handed or opposite-handed). It turns out that this creates an advantage because right-handedness (and hence, same- handedness in pairings) is still >> 50%, so left-handers get very used to fencing opposite-handed, while it tends to throws off right-handers who aren't as used to it.

The advantage goes away at a high level, but it create a bias towards more left-handers taking up and sticking at fencing, because they make more progress when starting out. They feel like they are better at fencing than other sports they might have tried, where they don't have a strategic advantage by default.

Anyway, one of the obviously related subtle effects is what happens when you reach out to shake someone's hand. If you reach out to someone opposite- handed, the result can be brief but tangible awkwardness. Little cues like that can add up to create a subconscious picture of something not being quite right, or perhaps even "sinister".

Again, like with the fencing example, the left-hander is used to this because it happens to them 90% of the time. For the right-hander, it feels like something is off because it only happens 10% of the time, so they aren't expecting it.

</comment></comment><comment><USER7> Being of mixed-handedness (write left, use mouse an throw right etcetera) I always feel left out of these kind of stats...

Seriously though, I may be a minority, but it's not all that unusual to not strongly fall into either category, left-handedness is very much a spectrum. These kind or studies and articles making left and right handedness a black and white thing feel kind of outdated.

<comment><USER8> I'm the same as you. Given that people write with pen and paper less every day, it's becoming a much more trivial issue everywhere outside of sports.

</comment></comment><comment><USER9> Left handed programmer here. I used to mouse on my right until i switched 10 years ago. I never looked back. Also, it tends to piss off anyone who uses my computer, and there is a bad bad part of me that enjoys that. So maybe there is something to this whole 'sinister' business.

<comment><USER10> The Greeks, I suppose out of superstition, called the left (among other things) "aristeros", which has the look of a comparative of (the superlative) "aristos", best, noblest, etc. But Liddell and Scott say that the derivation is uncertain: [http://www.perseus.tufts.edu/hopper/text?doc=Perseus%3Atext%...](http://www.perseus.tufts.edu/hopper/text?doc=Perseus%3Atext%3A1999.04.0058%3Aalphabetic+letter%3D*a%3Aentry+group%3D97%3Aentry%3Da%29ristero%2Fs)

</comment></comment><comment><USER11> I remember the first time I took an upper-divison math class at my university. I never saw so many left-handed glasses-wearing males in a single spot.

So, lies, damn lies, and statistics. If average cognitive ability is lower, then I'm guessing there's a hell of a standard deviation.

</comment><comment><USER12> The sport reference -

Rafael Nadal is left handed.

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

<comment><USER13> It may be a bit different in sports, where handedness matters more directly. At least in fencing, a right-hander going against a left-hander is a very different situation than two people of the same handedness competing, and because right-handers are such a majority, lefties have loads of time to practice exploiting the lefty-v-righty special case. Actually one of the really interesting things is watching lefties against other lefties, because neither tends to be used to what for righties is the 'normal' orientation to the opponent.

<comment><USER14> Reference: The Princess Bride :P

</comment></comment></comment><comment><USER15> Article and research contradicts most everything else I've seen on the subject, so forgive me if I don't accept this outright.

</comment><comment><USER16> So check your "right privilege" at the door, please.</comment>


Ask YC:  What was that Y Combinator company that makes purchasing plane tickets easier? - <AUTHOR>

I would love to get an update... <comment><USER2> <http://wundrbar.com> ?

<comment><USER3> Forget about whatever I wrote - if you saw it!

Well, I think it could be this one... it's very similar to it, but the other one was very specialized about airline tickets.

But almost I think it's this one... since it has the same box!

<comment><USER4> <http://tripeedo.com> is powered by wundrbar.

<comment><USER3> This is exactly what I was looking for :D

Thanks

</comment></comment></comment></comment><comment><USER3> There is ycombinator startup that would allow you to search multiple air companies at the same time.

I am searching for it for you...

EDIT: I reached to this list: <http://rankedindex.com/yc> But I am searching in it. Will follow you with update once I find it.

<comment><AUTHOR> Yes, that is what I was talking about...

<comment><USER3> <http://wundrbar.com/> it's almost this one.</comment></comment></comment>


Hotswapping Haskell - <AUTHOR> http://simonmar.github.io/posts/2017-10-17-hotswapping-haskell.html <comment><USER2> I don't want to knock the technical achievement here -- it's a cool hack -- but I'm really surprised that it was deemed to be the best choice for a production system.

In the first place, "we can't compile our code on every change because it takes too long" is a really awful situation to be in. Are developers not building and testing their changes before deploying them? Can Facebook not afford a continuous integration system that can run builds in parallel? It sounds like this problem is only happening because the application is a giant monolith, but for some reason splitting it up would slow down development even more... I'm not sure I buy that reasoning.

The article says that "Haskell's strict type system means we're able to confidently push new code knowing that we can't crash the server", which is a real stretch. In addition to all of the usual ways a computation can diverge, this hot-swapping system adds a whole new variety of failure modes. The article talks about how the code needs to be carefully audited to prevent memory leaks, but it doesn't even mention the weird things that can happen when mutable state is preserved across code modifications. Debugging is a pain when your data structures can get into states that aren't reachable with any single version of the code. (This is a well-known issue in Linux kernel live- patching, for instance.)

<comment><USER3> "In the first place, "we can't compile our code on every change because it takes too long" is a really awful situation to be in."

Isn't this exactly the problem Go was invented to solve?

<comment><USER4> It was one of them. However, given the other writing/talks Facebook has put out about their usage of Haskell and Haxl, Go is probably not a good fit for their use case due to language expressivity concerns (not declarative enough, not enough type safety, not syntactically flexible enough for writing DSLs).

</comment></comment></comment><comment><USER5> Hotswapping just like security is one of those things that is hard to bolt on later, unless it is built in deeply into the very core of the language / runtime.

Erlang (and Elixir) define hotswapping very well. It is a standard way to upgrade code in production in some places. And even with it being well defined it is still very hard and there are enough corner cases to handle.

But when used correctly, it is really magical and can achieve nice properties.

Besides just upgrading code, hotswapping (at least in Erlang) can be used for debugging -- you can update the running code with extra log statements to catch sneaky corner cases. Maybe it is a customer setup, that is very hard to replicate.

Or you can use it for local development, as you edit code, the module gets auto-reloaded (with a helper).

It can also be used to deliver hot fixes. Say if the fix is simple and the customer cannot wait for a full release to be built, can update their system on the spot to tie them over. Not idea but I've seen it save the day many times.

<comment><USER6> _Or you can use it for local development, as you edit code_

This is a huge feature for me in my Elixir development. I mostly use Elixir for some server code that manages many connections to external network entities. It would be a huge hassle to bring down my server application every time I want to make a change.

With Elixir (yeah, Erlang), I can normally recompile the module I'm working on and deploy it in the running server. Not only is it a good way to constantly observe Erlang hot-swapping in action on my dev machine, it's a huge time saver.

</comment></comment><comment><USER7> People might find this interesting to compare and constrast to (certainly I noticed parallels with[1]) Netflix's 'serverless' platform, discussed yesterday:

[https://medium.com/netflix-techblog/developer-experience- les...](https://medium.com/netflix-techblog/developer-experience-lessons- operating-a-serverless-like-platform-at-netflix-part-ii-63a376c28228)

Edit: As a sibling commenter notes this is most eminently doable with e.g. Common Lisp and BEAM (Erlang/Elixir), but more folks are (publicly) attempting this in other environments now (I've experimented with a number of approaches to this the last few years, so I'm trying to keep score - would love to see any comments on other attempts below).

[1]: Quote: "At the core of the redesign is a Dynamic Scripting Platform which provides us the ability to inject code into a running Java application at any time. This means we can alter the behavior of the application without a full scale deployment."

<comment><USER8> > Common Lisp and BEAM (Erlang/Elixir)

Clojure as well right?

<comment><USER7> Yup having strong namespaces in general makes this easier I think and in Clojure tools like devcards (CLJS) and Ring reload (CLJ) support this workflow.

</comment></comment></comment><comment> aaron-lebo It's basically this:

[https://news.ycombinator.com/item?id=8804381](https://news.ycombinator.com/item?id=8804381)

[http://nullprogram.com/blog/2014/12/23/](http://nullprogram.com/blog/2014/12/23/)

You'd be surprised how many languages can do this. Though it's hard to beat lisp (and Erlang), where it is the default.

<comment><USER9> really, anyone who bothers reading the dlopen(3) manpage: [http://man7.org/linux/man- pages/man3/dlopen.3.html](http://man7.org/linux/man-pages/man3/dlopen.3.html)

Loading / unloading code is straightforward. The trick is in getting the code called from existing code.

<comment><USER10> Loading is straightforward, unloading depends.

</comment></comment></comment><comment><USER11> Not really relevant to the article itself, but I've always been surprised how much attention Facebook's Haskell usage gets compared to Facebook's Ocaml usage.

From interning at Facebook, the only project that I'm aware of that uses Haskell is Sigma. On the other hand, numerous projects use Ocaml: Infer, HHVM, Flow, ReasonML, Pfff, etc.

However, it's Haskell that gets all the attention on Hacker News.

<comment><USER12> I've seen them recruit for a second Haskell team, I believe doing internal analytics or machine learning.

</comment></comment><comment><USER13> We are going to be back in the 70ies/80ies of running live image programming- systems in no time. History repeats itself. Mark my words.

<comment><USER10> That is what web apps are all about actually.</comment></comment>


Hiroyuki Nishimura, founder of 2channel, has taken ownership of 4chan - <AUTHOR> https://www.4chan.org/news <comment><USER2> Hiroyuki Nishimura the previous administrator of 2ch.net sold the user data of 2channel users and he was fired by Jim, who happens to be the host of 8ch.net.

Sweet sweet irony.

<comment><USER3> 2ch also offered a paid post deletion service used by political parties when Nishimura was running it, after the 2ch coup he scraped the site and started 2ch.sc

This is the guy who runs 2ch/8ch [https://twitter.com/xerxeswatkins](https://twitter.com/xerxeswatkins)

<comment><USER4> Puts this quote in a new light:

>He is one of few individuals with a deep understanding of what it means to provide a digital home for tens of millions of people for more than a decade. There is nobody more qualified than Hiroyuki to lead 4chan, and I can't think of a person better suited for the task.

<comment><USER2> The Japanese government payed him to take down politically sensitive posts on 2channel[1]. He's probably the worst person to put in charge of a community according those who were subjected to him in the past.

[1] [http://www.anonymous-japan.org/fake2ch/](http://www.anonymous- japan.org/fake2ch/)

<comment><USER5> Seems to me a number of the highly visited communities are going down this path.

</comment></comment></comment></comment></comment><comment><USER6> A few days ago, an article was posted how WhatsApp has scaled to nearly a billion users and is still running with only 50 engineers. Isn't running 4chan more impressive feat being run, if I am not wrong, by just one engineer, and that too from a time when web development tools weren't anywhere close to what we have today.

<comment><USER3> Most of the chans (2ch/8ch/4chan/420chan ect) are just FreeBSD boxes and cgi/perl scripts

[http://news.dieweltistgarnichtso.net/interviews/moot-4chan.h...](http://news.dieweltistgarnichtso.net/interviews/moot-4chan.html)

<comment><USER7> 2ch has been, for over a decade, one of (if not always the absolute) largest discussion forums in Japan. No matter what the base system is, there's some serious infrastructure there.

</comment></comment></comment><comment><USER8> It's weird, because 2channel recently had a big user exodus. A lot of users used desktop clients. Those were banned in a push to monetize. As a result, a lot of 2ch users started lots of 2ch replacement subreddits, the largest being newsokur: [https://www.reddit.com/r/newsokur](https://www.reddit.com/r/newsokur)

<comment><USER3> The exodus was from the Kenmou board who refused affiliate marketing on their board they claimed was data mining their IPs. The desktop clients weren't banned, just really old browsers they were using were no longer supported due to new methods of embedding ads. A lot of them used legacy browsers like this one which is no longer in development [https://en.wikipedia.org/wiki/Kazehakase](https://en.wikipedia.org/wiki/Kazehakase)

</comment></comment><comment><USER9> The New York Times story: [http://bits.blogs.nytimes.com/2015/09/21/4chan- sells-to-japa...](http://bits.blogs.nytimes.com/2015/09/21/4chan-sells-to- japanese-web-culture-pioneer-2channel/)

</comment><comment><USER10> Note that 2channel's URL is not 2chan.net, but 2ch.net, and it's a text-only site. It is more commonly known as "2ch". It's interesting to see that both 2ch/2chan have not really changed since they were created, whereas 4chan went through quite a bit of "modernising". I wonder if 4chan might start turning back to a 2ch/2chan-ish style with this.

<comment><USER11> > I wonder if 4chan might start turning back to a 2ch/2chan-ish style with > this.

Do you think they will change all images to ASCII art as well?

<comment><USER12> キタ━━━━━━(゚∀゚)━━━━━━ !!!!!

</comment></comment></comment><comment><USER13> Permanent (?) link: [https://www.4chan.org/news?all#120](https://www.4chan.org/news?all#120)

</comment><comment> Syrup-tan Can we get /prog/ back? <3

<comment><USER14> If only The Sussman were still alive, we might have a chance to reach satori.

</comment></comment><comment><USER15> Well, that's an interesting development. I didn't see it coming, but in hindsight, Nishimura is perfect.

I thought moot already signed over ownership to a board of people though... I guess it was just the management he handed over.

</comment><comment><USER16> I feel bad for moot. He'll probably be known for the rest of his life for creating a cesspool he never made much money from.

<comment><USER17> > he never made much money from

You believe that? Dude banked on both the sale and takeover, plus the ad revenue when he was running the site.

He had no alternative but to push the poverty myth (Kevin Rose@Digg also did this). Can you imagine what the users would do if he disclosed how much he was raking in?

My guess? $10 million n/w post sale, most likely much more.

<comment><USER18> What ad revenue? 4chan has always had a huge problem attracting advertisers due to the _ahem_ nature of its content.

I could imagine that he made some serious bank on the sale, but the site has always has run at a net loss.

<comment><USER17> > 4chan has always had a huge problem attracting advertisers due to the ahem > nature of its content

According to who?

Remember how cheap the site is to run.

It's like the Pirate Bay guys saying they made no money. Those ads paid big and they raked.

<comment><USER18> According to the guy who ran the site. If you think he's lying about that, please put forth some evidence.

<comment><USER17> > According to the guy who ran the site.

Do you see the problem?

<comment><USER18> Okay, so considering that 4chan didn't accept donations, didn't have any form of user-generated revenue until the (very recent) 4chan pass thing, Poole has _always_ maintained that the site was a money loser.

Also, cheap to run? The bandwidth costs _alone_ would be HUGE.

Not sure why you think he has a motive to lie about this - and if he does, again, put forth some evidence rather than spurious accusations. Calling the guy a liar with no proof to the contrary is just so much cheap sniping.

<comment><USER17> You conveniently missed ad revenue. 4chan has around 650m pageviews a month. At $0.25/1000 that's a few million a year.

And I didn't say he was lying, I said I don't believe him.

<comment><USER19> 4Chan's self serve ads are priced at a quarter of that, ~.25c CPM currently, and the inventory is never completely sold.

</comment></comment></comment></comment></comment></comment></comment></comment></comment><comment><USER20> sadfrog.jpg

</comment><comment><USER21> All hail chinese moot!</comment>


Programming lessons I learned - <AUTHOR> http://jaseemabid.github.com/07-26-2026/programming-lessons-learned.html

<comment><USER2> I agree with everything except "3. Pick a real programmers[sic] editor."

You should use what is easiest for you to use (whether it's nano or a gui app -sublime!) and not feel pressured to be shoehorned into the emacs v. vi v. vim v. whatever, just to feel like a badass. There's a reason for this comic: <http://xkcd.com/378/> , and that is that the entire debate is silly.

<comment><AUTHOR> > "You should use what is easiest for you to use" I agree 100% to that. If you > put some effort into vim or emacs, it actually becomes easy to use and more > productive than conventional editors. Its the learning curve that people > cant tolerate, not the real editors.</comment></comment>


Avoid PHP trap - <AUTHOR> http://id28.blogspot.com/

<comment><USER2> PHP has a lot of functions that actually take away lots of pain, but you have to know they're there. If only this fellow had found implode(), he wouldn't have needed to write enumerate().

I was a PHP hater for years, but I find that for certain types of problems, it really is the right solution.

[Edit, later: and you can (and should) paper over some of his other complaints. PHP isn't a great language qua language, but it has such great penetration that it almost doesn't matter.]

<comment><USER3> "I was a PHP hater for years, but I find that for certain types of problems, it really is the right solution."

Can you give some examples of those certain types of problems?

<comment><USER2> Sure. Social networking sites like the one in my user profile. Pretty much any site where the building of the site would be fairly trivial in any language, and scaling is the problem: with PHP, you can start it on any cheap host and port it in minutes to better servers, because you don't have to worry so much about setup. If the idea itself is innovative, but there's nothing interesting about the code that the site runs on, PHP is an excellent candidate.

I've built sites (some for clients, some of my own) in a bunch of languages, and there's a certain amount of tradeoff between setup/installation and actual coding. For whatever reason, languages which are more fun or more productive to code in require more setup time, and are likely to be already installed on a random new server almost exactly in reverse proportion with how fun/productive they are. It's eerie.

<comment><USER4> _Pretty much any site where the building of the site would be fairly trivial in any language, and scaling is the problem: with PHP, you can start it on any cheap host and port it in minutes to better servers, because you don't have to worry so much about setup._

Aren't most PHP apps dependent on weird php.ini settings?

And anyway, the "real" langauges are equally easy to deploy. Get yourself a $20 slicehost account (to start with), add two lines to apache's config to enable FastCGI, then just copy your app up to that server. That's all there is to deploying Perl, Ruby, and Python these days.

With Perl and Catalyst, I can "make catalyst_par" and get a file that contains the entire application; including the version of Perl I am developing with. That way I know for sure it will work when I copy it to production. (Yes, this means I have to use the same architecture for both development and deployment. I do.)

<comment><USER2> Weird php.ini settings can almost always still go in the directory with the php files, so just copying the directory automagically makes everything work right. Some settings don't work this way, of course, but I'm not sure which those would be, offhand.

If you're using Python, for example, you're probably also using some framework... for years I used Webware for Python, and more recently web.py. Both require careful attention to get working in a convenient fashion, in my opinion.

</comment></comment></comment></comment></comment><comment><USER5> Seems like blog spam, but this post has said nothing new from all of the other 'PHP sucks' posts, so I have no idea why you decided to make yet another one.

I like PHP since it is so easy to deploy and it can be used for anything from a simple two page website to a full-blown web application. Being written in PHP also means that you are not limited in hosting.

If you're a startup creating a single web app, then fine, use Python with mod_wsgi or Rails and five mongrel servers. But if you're creating basic CRUD websites, especially more than one, then there is nothing wrong with PHP. I can fit dozens of low-traffic websites on a $20/mo 256MB RAM server using Apache and mod_php; try doing that with Rails.

As I said, if I was going to focus on a single _web app_ with its own dedicated server, then I would definitely look at Python and mod_wsgi, but since I create a lot of 'smaller' websites (nothing too complex), it is much less of a hassle using PHP since I can fit all of them nicely on a single, cheap server.

<comment><AUTHOR> Blog spam? What does it mean?

<comment><USER6> I think it means a blog post which kind of reads like it was written by a person, but is really a mushing together of paragraphs and sentences from other posts in order to get some traffic and serve ads.

</comment></comment></comment><comment><USER7> PHP's equivalent of lambda is great for a nice laugh, though:

<http://us2.php.net/create_function>

<comment><USER8> There are a variety of patches available that give you anonymous functions, as well as closures. You need to seek it out and compile. But, I guess from your laughter, that shouldn't be an issue for you since you've got the CS thing down.

<http://www.opendogs.org/pub/php-5.3dev-071228a.patch>

You'll have to backpatch it for 5.2.6 but it took all of an afternoon for us to do.

At massify, we run a patched version of PHP that provides all of the above.

<comment><USER7> I'd love to see that patch merged into PHP, but even then, it will take some time to change the habits of people using this in libraries, frameworks, etc.

</comment></comment></comment><comment><USER9> PHP was seductive, for me at least.

I wrote my first startup in PHP - No Smarty, no Cake, no Pear, just PHP. And it worked!

PHP leads the developer down the easy path then locks them into a big codebase. Yes, it has it's problems, but in the end it works or can be trained to work.

That said, I'm seriously thinking of Python/Django or Rails for my next project.

</comment><comment><USER10> It is not at all obvious that {...} is better than, say, array(...) for a language that has operator braces {}. PHP's array constructs are a little verbose, but they are visually distinguishable and thus are not that bad at all.

{...} as an array/dictionary literal makes more sense in a language like Python, where braces are not used otherwise.

<comment><USER2> If creating a new language that looked like PHP/C/Java/etc, you could use {} for both blocks and arrays (and assoc arrays, like PHP) by making blocks a special case of arrays, conceptually. Then {0; 1; 2; 3;} would be an array of four elements, and as a bonus it would free up [] for something else. :)

<comment><USER10> Like in C or Perl, OK, but that makes both unreadable for humans rather than for compilers, that's what I'm saying. So the reasons behind PHP's array() construct are not trivial.

</comment></comment></comment><comment><USER11> "Pick one, and stick with it"

Best advice i got.

</comment><comment><USER12> The day I settled on PHP was the day I was finally able to focus on the guts on my project, not on the infostructure. Let me explain...

I used to use what I thought was the "best tool for the job". Javascript/HTML/CSS for the client, another language for the server, another DBMS, and a separate server. And I spent half of my time trying to figure out why one thing didn't work with another. It was never anything big, but just bad enough to slow me down (performance, scaling, security).

Then a friend asked why I was messing with all that. He said to just download an Apache/PHP/MySql stack, install it, and forget about it. So I did.

Sure I hate the syntax, especially the dollar signs starting variable names, but I have never had a problem getting it to do exactly what I wanted. If I ever had a question, there were a hundred places to turn for help. And I never had to worry about one technology working with another.

I've always been a non-conformist when it came to tech, probably to get an edge on everyone else. But I learned the hard way, there's a time to conform and a time to be a maverick. I'd rather conform with a standard platform and "do my own thing" with my apps.

</comment><comment><USER13> PHP has many good lightweight frameworks that put the fun back into building web apps. CodeIgniter and KohanaPHP are especially lightweight. It isn't much fun coding web apps in raw Ruby, Python or any language.

</comment><comment><USER14> Oh boy!

If you say php sucks, then go get some sleep and think again.

Thats the easiest language any noob can start web development with. Lots of libraries and resources. Just do a search for 'web development tutorial' and you'll find that every 10th good tutorial will be about php. Python is easier than php, but every cheap host supports php.

And another fact: you can even create desktop apps with php. There a GTK extension to php. Google PHP-GTK for more.

</comment><comment><USER15> More nonsense about PHP.

Hey go get sexy and python yourself.</comment>


The Fake Free: Is the Price Right for Open Source Monitoring? - <AUTHOR> https://opsview.com/about-us/blog/fake-free-price-right-open-source-monitoring

<comment><USER2> _> Usually in the IT monitoring world, there's very little you can get for free._

Ironic, considering Opsview has built their entire product on top of software that anyone can get for free (well, unless you buy Opsview, in which case they'll charge you a pretty penny for it).

 _> It's completely free for up to twenty five devices and comes with full enterprise functionality out of the box, instead of just a base to build off of._

Also ironic, considering that, for years, Opsview's most popular product (Opsview Core) was exactly that -- "a base to build off of" \-- until one day they suddenly decided it was "for test environments" and that my customer needed to spend USD $6,000/year for their "Enterprise product".

Fortunately, I partially redeemed myself by successfully changing the minds of two other customers when I found out they were about to do just that.</comment>


A Primer on Bézier Curves (2013) - <AUTHOR> http://pomax.github.io/bezierinfo/ <comment><USER2> This is amazingly exhaustive, and for those still hungry, there's always the Nurbs Book [http://www.springer.com/computer/image+processing/book/978-3...](http://www.springer.com/computer/image+processing/book/978-3-540-61545-3)

<comment><USER3> although as a Springer book it's a bit pricey =( (I'll be trying to add rational B splines and NURBS to the primer soon..ish... there's a few other topics that still need expanding first)

<comment><USER2> Yeah, I used it while in college thanks to their library.

</comment></comment></comment><comment><USER4> This is a very nice tutorial. One small point. Coordinates are expressed in a "X/Y" format which was very confusing to me because I was thinking of them as ratios. It might be better to print them the commonly used tuple convention (X,Y)

<comment><USER5> The tutorial doesn't work for me. It provides a thorough explanation of the polynomials, but it fails to explain the very basics of how the curves are laid out on the plane.

It does a nice work of explaining how a _circle_ is drawn, but its explanation of how x and y are calculated for a Bézier curve doesn't make sense to me: "Bézier curves use the "binomial polynomial" for both x and y." If the same function on "t" is used for both x and y, they would always have the same value, and the "curve" is always a diagonal with 45 degrees. What am I missing? I can't infer it from the tutorial.

Also, it introduces the idea of a "control point" and starts using it, but never manages to _define_ what it is, or how it is represented in the equation or graphically. It merely labels some curves as "P1", "P2"... in the graphs and telss that these somehow change the shape of the curves, and tells us that they have an associated linear "wi" weight; but again, the way in which the (x1, y1) pairs are connected to the binomial and polynomial term is never spelled out, and left as an exercise to the reader.

Things are further complicated by the mysterious "strength" parameter "S" in the graphs, which is also unexplained, never used again, and appears right when we're trying to understand the difficult concept of a control point to further confuse things. I had followed the tutorial quite well up to that point, but that section lost me completely.

<comment><USER6> Haven't read the article, but I do know a bit about these curves. Bézier curves do indeed use the "binomial polynomial" for both x and y. That polynomial defines how the control points are used (with t) to calculate the point on the curve.

So for the simplest example, a linear Bézier curve, the curve is a straight line from the first control point to the second.

</comment></comment></comment><comment><USER7> One of my favorite side projects was building a bezier sprite pather for Impact.js game engine (was working on a moth-balled top-down shooter).

[https://github.com/dclowd9901/impactjsBezier](https://github.com/dclowd9901/impactjsBezier)

This is one of the sites that contributed to that work. So strange to see it appear out of context here.

</comment><comment> jarek-foksa Are there any creative tools that would make use of quadratic Bezier curves? While cubic Beziers are easier to tweak, it is much easier to draw smooth shapes with quadratic Beziers. They seem to be also easier to implement (only one control point), not sure why major vector and pixel graphics editors don't support them.

Ideally I would prefer to have an option to draw paths with either quadratic or cubic Bezier segments, but edit paths normalised to cubic Bezier segments.

<comment><USER8> I used quadratic curves to render strokes in TabletDraw, although that's not user level.

Another advantage of quadratic curves is that they can be converted to a parabolic function plus a rotation. That opens the door for all sorts of optimization that is much harder with cubic bezier curves, which are not guaranteed to be functions.

<comment><USER3> Not entirely true, but not entirely false either: the quadratic has degenerate cases where it can't be represented by a single quadratic polynomial, and regardless of the order, each dimension in a nth order Bezier curve is guaranteed to be a plain old nth order polynomial function.

Most properties for the cubic curve as a whole come from evaluating each dimension independently, which still allows for a fair number of optimizations, and we can classify cubics in a few canonical forms that let us do even more optimizations ("a geometric characterization of parametric cubic curves" by Stone and DeRose is a good read on that)

So a cautionary note: finding the angle necessary to turn a quadratic curve into a parabola (for unbalanced curves) can cost as much as using an optimized canonical cubic, where the user's input only defines the linear transform that you throw at the graphics context to make sure the curve you then draw matches the curve the user expected.

</comment></comment></comment><comment><USER9> Is it some sort of coincidence that both Bezier and Casteljau were working for car companies?

Renault & Citroen feels like they were design powerhouses in this context, with numerical industrial design.

The curves were like compressed specifications, instead of being "make it look like this" with a sculpted model. That said, cars from the same era built by aerodynamics engineers also resulted in beautiful curves (like a Jaguar E Type).

<comment><USER10> Sheetmetal fabrication is hard, and knowing what you can and can not make out of a single sheet is not obvious. For that reason car companies were very early in the game to use computers to gain an edge over their competitors by making others 'impossible' shapes with repeatable accuracy and resulting material thickness. Deformation results in variable material thickness and if you want to input curves into a computer (so your numerically controlled mill can make the tool-and-die used to stamp the part) then it helps if you can do so easily. That's where the Bezier curves (and splines) come in, they allow you to specify a complex curve using only a few points.

I used them extensively for a computer program that cut sails for sailing vessels, the problems are roughly similar (only you can't really deform cloth all that much so you're going to end up cutting panels, the end result looks much the same as a 2 dimensionally deformed sheet of metal though).

<comment><USER2> Reminds me of the picture here [http://blog.martindoms.com/2012/04/25/splines- and-curves-par...](http://blog.martindoms.com/2012/04/25/splines-and-curves- part-i-bezier-curves/)

How people designed curved surface thanks to material tension and knots.

</comment></comment></comment><comment><USER11> Combine this with what we learned from Pixar about smoothing surfaces and it appears that Pixar has adapted the Bezier curve to 3D.

I'm always a little geeked-out by unification like this. :D

<comment><USER3> 3d Beziers have been a thing for a long time already though! In modelling, NURBS surfaces are typically used (the non-uniform rational B-spline, where the rational B-spline part is a "rationalised" bezier, which is a whole section that I've not had the time to write yet...)

<comment><USER12> I think what the parent comment was saying is that the smoothing algorithm used in subdivision modeling is very similar to bezier. Actually, subdivision surfaces are very similar to B-splines [1], but are much more convenient to use than NURBS -- which require the modeler to maintain consistent rows of control points throughout the model. ILM's use of patch modeling in films like Jurassic Park are incredible examples of working around these constraints. (I believe they side-stepped the continuity issue with their proprietary "enveloping" software which allowed them to blend discontinuous B-spline patch surfaces together.)

Love this post btw -- extremely impressive / educational.

1: [http://graphics.pixar.com/library/Geri/paper.pdf](http://graphics.pixar.com/library/Geri/paper.pdf)

<comment><USER3> That's a nice paper. Filed!</comment></comment></comment></comment>