Jonathan's Card shut down - <AUTHOR> http://jonathanstark.com/card/?asd <comment><USER3> So, this isn't _necessarily_ because of Sam Odio, but everyone's thinking it.

And... duh. The take-a-penny, leave-a-penny trays only work when more pennies follow the rules than don't. If somebody comes along every day to empty out the tray — even if they're bringing it right across the street to the Salvation Army — they're going to take the trays away. That's just not what they're _for_ , and if they're not working there's no reason for them to exist.

The net result in the end being that the homeless are still homeless, life is a little bit more of a hassle for shoppers who don't have the right change, people are a little bit less connected with each other, and the dick who was emptying the trays feels like he's "made his point," whatever it was supposed to be.

But all of that being said: This only applies when abuse makes the system unsustainable. Is it? Craig's Cup thinks not: <http://www.facebook.com/Craigscup> The "experiment" is _far_ from over.

<comment><USER4> > So, this isn't necessarily because of Sam Odio, but everyone's thinking it.

Are you kidding me? Starbucks doesn't give a shit that someone was syphoning off money. A few hundred dollars is chump change to them. What they care about is the thousands of people "defrauding" their rewards program designed for use with a single customer. I'm sure their TOS restricts use to a single person as well.

<comment><USER3> Interesting. Where are you getting that opinion from? Mine comes from the article Jonathan himself tweeted:

"At 7 p.m. PT Friday, Starbucks reluctantly pulled the plug on Stark's pay-it- forward social experiment following allegations of fraud or misuse. ...

Adam Brotman, vice president of digital ventures at Starbucks, phoned Stark earlier Friday evening to inform him that the card would be deactivated. Starbucks, he says, was rooting for the experiment from the sidelines, even though the company's terms do not permit the use of shared registered cards. 'I'm sad about it, first and foremost, because we were legitimately cheering on this experiment,' Brotman says. ...

Once the exploit was public, however, Starbucks felt compelled to deactivate the card."

<http://mashable.com/2011/08/13/jonathans-card-shut-down/>

</comment></comment></comment><comment><USER5> Maybe I'm getting too cynical and pessimistic about society, but an abuse of the system seemed like a guaranteed result of this project. Jonathan's card is simply a redistribution of wealth based on the honor system (masked by words like "karma" and "good will"). Some people will throw ten bucks on the card because it makes them feel great, but leeches will always take part in the project, and at some point there will be more leeches than seeders. People have been abusing programs (government or otherwise) that do the same thing for generations, even without the honor system.

*I enjoy volunteering, donating, paying it forward, etc., I'm just trying to illustrate a point.

<comment><USER6> You're right, and at the same time the card existed for a couple weeks and it made a bunch of people happy while giving everyone a lot to think about!

You're right, and at the same time we have a functioning society where people love and grow and the sun's still shining, and I experience kindness more frequently than the opposite!

</comment></comment><comment><USER7> No one has mentioned the obvious legal snags for Starbucks in this whole "experiment." Starbucks is not a money transfer service and therefore is not registered with the US government as such. If Sam could siphon off that much money so easily, how long before the Bad Guys learn that Starbucks can be used to move money?

Or maybe they suddenly realized themselves that criminals could have been moving money through them for years. I'd say it's almost certain that a Starbucks lawyer pointed this out and the executives didn't like the idea. Watch for changes to Starbucks' money card program.

<comment><USER8> I'm probably missing something, but the exploit was all about filling up a Starbucks gift card. It was touted as "Enough to buy an iPad", but at no point was one actually bought. The $500 card is now being eBayed for charity, which (for profit), would be one way to close the loop and get cash out, but surely that applies to any business operating a gift-card scheme.

Are you normally able to redeem these cards for cash? My (limited) experience is not only no, but sometimes the amount is rounded up to the nearest $currency_denomination as well.

<comment><USER9> I don't believe most retailers will redeem cards for cash (if they can avoid it) but gift cards are use widely as a money laundering and value-exchange system amongst criminals: [http://en.wikipedia.org/wiki/Stored- value_card#Money_launder...](http://en.wikipedia.org/wiki/Stored- value_card#Money_laundering)

</comment></comment></comment><comment><USER10> Surprised no one has mentioned it, but I'm impressed with Starbucks for contacting Jonathan and telling him what they were going to do with the card, and when.

</comment><comment><USER11> I am surprised at the hate against Sam Odio.

Sam had the option of taking the gift card and selling the card and keeping the iPad. He exposed the vulnerability. If he hadnt you would have paid in for the card, but someone would have abused the system, and not disclosed it.

Here is a though experiment. There is a widely used piece of software which has a vulnerability. There are bad guys who are going to abuse it. A guy comes and abuse the system, to prove the vulnerability and expose the vulnerability. I s he good or bad? full disclosure vs responsible disclosure

<comment><USER12> I think we were all aware that the system could be abused. It was based entirely on the honor system since we don't know who was using the card, only that it was being used. The original thread was full of people talking about how it could be abused.

As far as what Sam did in particular, it'd be entirely different if Sam came out and said, "Hey, look! I was able to write a script that has syphoned off $625 from the card and put it into Starbucks gift cards. I could then turn around and sell those cards on eBay and turn them into cash. I'll be putting the money back onto the original card, but I just wanted to expose the exploit." Instead, he followed through with turning it into cash and wrote a snarky blog post about how yuppies buying yuppies coffee isn't all that interesting, and he had decided to redirect the experiment to "will someone buy a Starbucks gift card for full price."

<comment><USER13> > _"we were all aware that the system could be abused"_

I think we were all aware that the system could be abused to buy yourself an extra coffee every once in a while, if you happened to be in Starbucks when the card had money on it. We were all aware that you could overspend, either on yourself or "for charity" (witness Sam's comment about buying food for homeless guys.) If that was the only vulnerability, most of us would think it acceptable -- most of the time money you put on the card goes to brighten an honest person's day, but occasionally someone games the system.

Until the exploit was posted, I was not aware that it could be abused by skimming $50 at a time onto your own card within moments of it being deposited on the main card. This is an unacceptable level of exploitability -- if you put money on the card, it's very likely that it will go to a scammer of some sort.

I'm glad Sam exposed this far-more-serious-than-most-of-us-realized vulnerability. I'm not pleased with _how he went about it_ (particularly the game he and his brother seem to be playing; Daniel's startup deposited exactly $625, the same amount Sam took.) I'm not pleased with the "yuppies buying coffee" vs "starving kids in Africa" comparison. But I'm glad this particular exploit has been exposed, which means we now have the opportunity to set up a better-and-safer version of Jonathan's Card.

</comment></comment></comment><comment><USER14> Had to happen, thanks to Sam and other crooks.

<comment><USER15> Shh, you can't say that, he's a YC guy! He'll quote some PG to justify it, I'm sure.

<comment><USER14> I don't know whom you are talking about, I didn't refer to anybody's last name :) Regarding other comments, I agree Sam didn't bring this down single handed, but may be ten years down the line if I tell my kids about this 'starbucks social experiment', I will pretty much remember about 'one guy who messed it up all'...

</comment></comment></comment><comment><USER16> Interestingly, Sam Odio's sale of the $500 Starbucks card on Ebay is currently at $3950. Unless the bidder is feeling really charitable, I assume someone is sabotaging Sam's "experiment" with massive overbidding they won't pay.

Ebay sale is at: [http://cgi.ebay.com/ws/eBayISAPI.dll?ViewItem&item=16063...](http://cgi.ebay.com/ws/eBayISAPI.dll?ViewItem&item=160636718148#ht_500wt_1156)

</comment><comment><USER17> Would be great if Starbucks took up on the theme and made a card designed for sharing but allowed the creator to define a single purchase limit. I don't think a system like this could ever be completely locked down to abuse but at least it could take away the gift card thing.

<comment><USER18> Now that's a great idea. Have a card that is limited in certain ways: max purchase of, say, $5 (I don't know if $5 will buy anything in $tarbuck$, since I haven't been there in many years). Limit purchases to coffee (or tea) only. No transfer allowed from one GC to another. No more than, say, 30 uses per location.

It would be an interesting series of social experiments to limit the card in these various ways, and see which limitation helps the uptake, and which hurts it. Fascinating!

</comment></comment><comment><USER19> It seems that experiment is live and running:

<http://www.facebook.com/Craigscup>

<http://www.facebook.com/dccupofjoe>

[http://www.facebook.com/notes/paying-it-forward/paying-it- fo...](http://www.facebook.com/notes/paying-it-forward/paying-it-forward-with- starbucks-how-it-works/118639894901035)

It's so wonderful that people picked the idea up! Another interesting result of Jonathan's social experiment! :).

</comment><comment><USER20> It might be slightly off-topic, but I used to work in the same building as "Save the Children" at a swanky address in central London (this is the charity where the money ended up iirc). The employees dressed better than us and I could see (when the lift opened on their floor on the way up) that their offices were pretty awesome.

Anyway - how much of the donation actually ended up feeding starving children I guess is neither here-nor-there; at the end of the day giving to charity is usually about how it makes _you_ feel.

<comment><USER21> According to Charity Navigator, "Save the Children" is a four-star charity, with about 90 percent of their budget going to program expenses. That seems pretty reasonable.

[http://www.charitynavigator.org/index.cfm?bay=search.summary...](http://www.charitynavigator.org/index.cfm?bay=search.summary&orgid=4438)

</comment></comment><comment><USER22> The thing about computer security flaws is that unless someone makes a point of publicly exploiting them, others will go around quietly exploiting them. It is almost certain that someone was quietly siphoning Jonathan's card. Would all the donors really prefer to have their donations be embezzled like they are at a skeezy charity front like Palotta or Komen? Why, just for smug satisfaction of feeling good about giving, without any concern or accountability regarding whether the gift is doing the good you give yourself credit for?

There is no use in condemning Odio unless you have a plan to fix the security hole he highlighted. Otherwise you are going to shutdown the open and honest takers and willfully ignore the quiet and dishonest takers.

<comment><USER8> Being able to mark a card as "only purchases @foodstuff products", or being able to blacklist it from refilling gift cards would be the easiest way to close this particular hole.

If you could only purchase actual physical objects (ideally, only fresh food, rather than, say, a coffee-maker), that would go a long way toward preventing misuse.

</comment></comment><comment><USER23> Here's a free idea for Starbucks: issue gift cards that only allow purchase of a specific product, like a tall chai/coffee.

Scenario: I want to thank someone. Instead of giving them a gift card with an arbitrary dollar value that they will inevitably need to round out with their own money, I can give them a gift card and say "your next drink is on me."

And I get billed/deducted in the background. This would make Jonathans card work as intended.

Incidentally I have previously pitched this idea to employees at Starbucks corporate, to the Starbucks "idea" forums, etc over the last two years. My core scenario is I want to have a stack of these cards and give out free drinks to random people. :) $5 gift cards make things too cumbersome.

<comment><USER24> I actually waited in line at a bank for about 15 minutes once, and when I got to the teller the manager said "hey - want a coffee?", and handed me a Tim's card (reloadable gift cards for Tim Hortons). I had no idea what the value was - but it turned out to be $2 (just enough to buy any size of coffee at Tim Hortons).

Having it be $2 was a lot more useful than having it be for a large coffee - <USER2> don't drink coffee, and I ended up using the $2 to subsidize a bagel.

</comment></comment><comment><USER25> I read the writeup. This is a great example of a classy way to end an experiment in the face of enormous snark and doubt. Jonathan had every opportunity to become defensive and flame out, but instead he kept it cool and emphasized the positive.

A lesson taught by example. Great work.

</comment><comment><USER26> While Sam's post was admittedly a bit snarky, and his actions did seem a bit 'scummy.' But Sam simply contributed to the experiment. Surely others were going to take advantage of the system. While his actions may run counter to the 'spirit of the experiment,' it's fair game and part of the experiment. Stark didn't enforce any sort of rules for a reason. People who participated in the experiment can continue to pay it forward however they want.

I don't necessarily agree with the reasons Sam cited for running his own take on the experiment, but I have to say I'm sort of surprised by the general reaction by so many -- then again, these reactions are just another outcome of the experiment. I find the following and dedication to this movement utterly fascinating. He made a statement regarding people's generosity (or illusions of generosity?) and the resultant attacks on Odio himself are even more intriguing.

<comment><USER3> Sam _literally_ did the opposite of contribute to the experiment. There is nothing he could have done which would be more disruptive.

The "experiment" was to see if a system based purely on goodwill, like take-a- penny, leave-a-penny, can survive. And in fact, it largely _can_ , as the growing popularity of Jonathan's Card showed. That there are people who will abuse the system does not excuse the people who abuse the system— that's _absurd_.

I'm baffled by your surprise at the reaction. Are you likewise surprised by the fact that people don't like the guy who comes up to the bowl labeled "Free Candy" and takes all of the candy, leaving none for anyone else? "But I'm just demonstrating that any system based on goodwill is open to abuse!" Well, _yeah_. We _know_. People _hate_ that.

"But I'm giving the candy to underprivileged children!" That's good for them, then. We hope they enjoy it, _dick._

<comment><USER27> He wasn't the only one skimming money from the card he just got the most attention for it by publicizing what he did.

You might even draw the parallel to a white hat who publicizes a vulnerability rather than quietly exploiting it for profit.

 _edit: He did skim quite a lot to prove the concept. Maybe he was seriously considering that iPad._

<comment><USER3> I could draw the parallel to a white hat who breaks into my house to steal some of my stuff, gives it to the Goodwill, and then blogs about it in order to publicize the vulnerability that I leave my front door unlocked.

"Hey man, you left your front door unlocked. Anyone could have done that."

I _know_. I leave my front door unlocked with the expectation that, in general, people won't. You're one of the _bad guys_.

"Hey, that's unfair. It's not like I'm profiting from it. I gave it to the Goodwill."

Next time you're feeling charitable, donate some of your own stuff. That's what I do. It's all the good feelings, without any of the stealing.

</comment></comment></comment></comment><comment><USER28> All in all a brilliant experiment illustrating the possibilities and pitfalls of social gifting. This is something a company like Foursquare can improve on.

</comment><comment><USER29> I just don't see what the experiment was about really considering the audience entirely consisted of people who can afford coffee - I just don't get it! The only explanation is a viral marketing scheme in my mind

<comment><USER30> There's a huge difference between buying myself a coffee and enjoying someone else's generosity.

The latter makes me feel happy, and makes me want to be generous, too.

</comment></comment><comment><USER31> Sucks it didn't work.. I know Sam decided to send all the money to some charity or something like that, but the fact is, if he really wanted to do something useful he could have done it himself, but not basing his 'ebay- experiment' on that project. But again,that would require being creative.

</comment><comment><USER32> Social gifting is cool. The only problem with it is that the people who REALLY need the gift are the ones who can't afford smartphones, tablet devices, or computers. So i'd rather give my gifts the old fashioned way.

But i still like the idea in a symbolic sense.

<comment><USER8> Print a bunch of tear-off QR codes and tape it to your nearest lamp-post? Or have a bunch at the desk of a homeless shelter maybe?

</comment></comment><comment><USER33> This is similar to our tax dollars. Pay in, and others use them as fast as possible. No matter how much money was put on Jonathan's card, people were there to take it.

</comment><comment><USER34> Thing is, it was an experiment from the very beginning. Experiments don't have good and bad guys, only observations and results. And the observation isn't a new one: "systems" like that work nicely until the first few exploits.

<comment><USER35> My understanding (correct me if I'm wrong) is the credit on the gift card could only be transferred to another gift card using a PIN. If this is true, Sam Odio must have brute forced that PIN which was clearly not part of the experiment. I'd call that wire fraud. Even if there was no PIN Jonathan himself stated that he didn't want this to happen, that the experiment was in sharing change between Starbucks customers.

At the end of the day I find it hard to defend Sam Odio's actions no matter the scope of the experiment. As is often the case, I think he had a potent mix of greed (for money) and ability (to siphon money out of the gift card). Ultimately he ended up with over $500 and gave himself a reality check - anyone in their right mind would feel they have been at least "very surreptitious" if they were in his shoes. Sam wanted an out, and donating the stolen money to charity is the easiest way to spin his actions in a selfless view. From the wording in his blog post you can see he's no better than the so called yuppies he's trying to teach a lesson. The first thing going through his mind was "This is enough money to buy an iPad". Spoken like a true materialist? Not a single mention of the people who contributed that money in the first place.

And finally, just what lesson was he trying to teach here? That sharing spare change is greedy? Let's not forget that Sam treated himself to a coffee with his loot.

I can't help but feel he's getting what he deserves by having his name plastered on CNN and other media. When we dig beneath the surface his actions are truly revealing of his shady character.

<comment><USER34> So I guess my comment made it sound like I am defending Sam Odio.

I am not. What I am saying is that he (or, more precisely, "what he did") is part of Jonathan Stark's experiment.He never said he set the card up so poor people can drink coffee, he set it up to observe how people will "utilise" it and test if such a thing can actually work.

It's not like it's the end of the world either, if all these people that LOVED the card can't live without it they can sure think of a way to replace it. Prepaid coffee is one.

<comment><USER35> Here is a direct quote from Jonathan on the matter:

"It's obviously not in the spirit of the experiment, It's not what the money was put there for. The point of this is to be wide open and trusting, and to expect the best of people. If [Odio] thinks this is good, and that people will see it that way, it's up to him to decide."

\- [http://edition.cnn.com/2011/TECH/web/08/12/jonathans.card.ha...](http://edition.cnn.com/2011/TECH/web/08/12/jonathans.card.hacked/)

As I see it, it was meant to be like a spare change tray. Not a slush fund for someone to steal and then donate to charity when they realize what they've done.

</comment></comment></comment></comment><comment><USER36> My take-away: append moral statements with "unless you could get an ipad."

</comment><comment><USER37> Comments have been pouring in for the last couple of hours on the Facebook page - <https://www.facebook.com/jonathanscard>

</comment><comment><USER38> Wonder if the 'iPad hack' had anything to do with this...

<comment><USER39> Probably. One of the statuses on the facebook page begins "All we can hope for in life is a strong moral compass that helps guide us in doing the right thing and when something happens that might seem unfair we need to realize that those incidences are in the minority."

Of course, since they're saying that "Starbucks has informed me that they will be shutting off the card", it's also possible that Starbucks has some reason to shut it off that's entirely unrelated to that.

<comment><USER3> I'd imagine Starbucks was loving the free publicity as long as it was working, but when things started to turn sour they didn't want the controversy and decided to assert their rights.

<comment><USER40> The social media team at Starbucks struck me as being fairly social-media- savvy. I have some doubts - or at least a lot of confusion - over why they'd want to shut this down now. The publicity wasn't _that_ negative. It seemed like they stood to gain a lot for it continuing to work out too.

But I suppose we'll never know the true story. Whatever the case, I think it's a sad shame.

(I also hope this doesn't kill Jonathan's spirit.)

<comment><USER3> I don't think they can, or would want to, kill the idea— I think (assuming it's what happened) they shut down Jonathan's Card, which we _know_ is being actively skimmed, to nip the negative press in the bud, secure in the knowledge that copycat projects will (and already have) swoop in and pick up the torch.

</comment></comment></comment></comment></comment><comment><USER41> Am I the only person here who thought the whole "experiment" was "how much publicity can I buy for $100 initial investment?"

</comment><comment><USER42> I really don't know why Starbucks shut down the Jonathan's Card, it was a free ads, Starbucks was still profiting...

</comment><comment><USER43> I've missed something. Can someone give a link to the back story? Who is Sam Odio and what exactly did he do? (Or just "what did he do?" -- I don't really need a bio with a pic of his two dogs or some such.)

Thanks.

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

<comment><USER43> Thank you.

</comment></comment></comment><comment><USER45> I have read the implication that this experiment was killed off because it affected Starbuck's revenue or profitability. I don't really understand how that would be the case at all. Can someone speculate?

<comment><USER3> If that's true, I expect it's a case of the left hand not talking to the right— the positive buzz and in-store traffic has got to dwarf any marginal loss in profitability by an order of magnitude.</comment></comment>


New theory of quantum mechanics shows matter is not in the eye of the observer - <AUTHOR> https://www.telegraph.co.uk/science/2020/01/11/new-theory-quantum-mechanics-shows-matter-not-eye-observer/ <comment><USER2> The theory doesn't make any sense. The "article" [1] doesn't have a single equation, and it is published in "Physics Essays" that has an impact factor of ~0.25 and with other suspicious articles like "Mathematics shows that the Lorentz transformations are not self-consistent".

[1] [http://physicsessays.org/browse- journal-2/product/1768-j-m-k...](http://physicsessays.org/browse- journal-2/product/1768-j-m-kerr-an-interactions-based-interpretation-for- quantum-mechanics.html)</comment>


Introducing Project Bonneville - <AUTHOR> http://blogs.vmware.com/cloudnative/introducing-project-bonneville

<comment><USER2> Although this seems to be in the beginning stages, I'll be really interested in seeing how they handle the management aspect of Docker. How will networking play out between containers on a single host? Multiple Hosts? The idea of enabling vMotion for individual containers is also pretty interesting. Networking between containers seems like a decent fit for NSX.

This also addresses my main complain about docker in the enterprise - most all docker hosts are VMs themselves, and running docker on a VM host that is running on a hypervisor seems a bit redundant. This could provide all the benefits of containers while removing the middle man (e.g. CoreOs/Ubuntu/whatever).</comment>


Cheerleading company can get copyrights, pursue competitors, Supreme Court says - <AUTHOR> https://arstechnica.com/tech-policy/2017/03/cheerleading-company-can-get-copyrights-pursue-competitors-supreme-court-says/ <comment><AUTHOR> It would appear that "fashion's free culture" just ended.

[http://www.ted.com/talks/johanna_blakley_lessons_from_fashio...](http://www.ted.com/talks/johanna_blakley_lessons_from_fashion_s_free_culture)

<comment><USER2> I dunno. SCOTUS reaffirmed the traditional rule, that to be copyrightable the elements need to be separable (as if lifting them off the clothing) and substantial (what you lift off must by itself meet the baseline requirements for copyrightability).

What SCOTUS did do was broaden the scope of the traditional rule by killing a narrow historical exception that would typically have rejected the dress' elements outright, without any serious analysis.

For the most part it's the traditional rule and how its typically applied that keeps the garment industry relatively unencumbered. This decision sucks[1] but I'm skeptical that it's particularly consequential. Their rejection of the Batmobile case last year, which in hindsight presaged this case, was arguably much more consequential.

As an side: any Ginsburg fans out there, know that she's rabidly pro- copyright. Her daughter is a famous and influential copyright scholar and author of an important legal treatise on copyright. Both of them eschew traditional, common law restrictions on copyright in favor of a more modern, abstract, and simplified conceptual approach that would on balance significantly enlarge the scope of copyrightability. Notice that in her concurring opinion in this case, Ginsburg side-stepped the separability condition applied to clothing. Her approach is more likely to induce a monumental shift that could engulf the fashion industry in an epic hell of law suits.

[1] Because brightline exclusions of copyrightability are easier and cheaper to apply by both laymen and judge alike. Even copyright proponents can appreciate how casting aside such well-established exclusions creates tremendous uncertainty and risk for everybody.

<comment><AUTHOR> >engulf the fashion industry in an epic hell of law suits

That is exactly what I expect will happen.</comment></comment></comment>


Building Static Sites in 2017: Cloud-Hosted, CMS-Backed, and API-Driven - <AUTHOR> https://medium.com/baqend-blog/building-static-sites-in-2017-cloud-hosted-cms-backed-and-api-driven-f68b5debc396 <comment><USER2> I like the concept. At the moment I use contentful so non technical people can edit their static site and don't have to worry about running a server (and especially keeping the software running on it up to date), but I'll probably switch to NetlifyCms (or hopefully emerging competitors) when they mature a bit.

The thing I like the least at the moment is form submissions.</comment>


China's tech leaders have a thing for strange stage props - <AUTHOR> http://technode.com/2018/02/12/chinese-tech-leaders-sure-do-like-to-touch-balls/ <comment><USER2> Oh, it's not just limited to Chinese businessmen who want to look cool: [https://static01.nyt.com/images/2017/05/23/world/23orb/23orb...](https://static01.nyt.com/images/2017/05/23/world/23orb/23orb- master768.jpg)

<comment><USER3> I knew I'd seen this before. Still, a slightly disappointing lack of cultural insight in the original article.

</comment></comment><comment><USER4> That's how magicians keep the focus away from what is really happening ;-)</comment>


Y Combinator Demo Day: Amicus makes good and money for non-profits - <AUTHOR> http://venturebeat.com/2012/08/21/ycombinator-demo-day-amicus-makes-good-and-money-for-non-profits/ <comment><USER2> Amicus is pretty cool, I've seen it in action!</comment>


Delete All Your Apps - <AUTHOR> https://motherboard.vice.com/en_us/article/j5zap3/delete-all-your-apps <comment><USER2> And if you have apps that are _non removable_ bloatware, like Facebook app family on the GS6, you can still do a Disable and a Force Stop.</comment>


This animated map shows how religion spread across the world - <AUTHOR> https://www.facebook.com/businessinsider/videos/10152949760834071/

<comment><USER2> Here is a non-facebook link - [http://www.businessinsider.com/map-shows-how- religion-spread...](http://www.businessinsider.com/map-shows-how-religion- spread-around-the-world-2015-6)

<comment><USER3> Also thanks from me. Can the URL be changed to the source?

<comment><AUTHOR> Unfortunately not, after 1 hour, I can't edit it anymore. The facebook URL does not require login, tho :)

</comment></comment></comment><comment><USER4> Interesting, kind of inaccurate, and omits many belief systems. Also doesn't show the various interactions between religions, derivatives, etc... The easiest and most canonical examples would be how Mesopotamian (ie. Sumerian/Babylonian) religion influenced Judaism and Islam, or how Proto-Indo- European religion influenced northern European, Hindu and near-eastern religions.

<comment><USER5> I think a more narrowly focused one that tracked 'furthest reach' rather than state religion would be more interesting.. like watching the near east from, say 2000-bc to 600 AD only... seeing the persians sweep through with zoroastrianism, then alexander with greek philosophy, then the romans, and buddhist and hindu missionaries, and so on..

</comment></comment><comment><USER6> Nice! Would be interesting to see population numbers along side it.

</comment><comment><USER7> WTB: the East/West Schism, Protestantism, Sunni/Shiite, and maybe a few of the different types of Buddhism.

</comment><comment><USER8> incredibly inaccurate.

<comment><USER9> How so?

<comment><USER10> One problem I spotted was this: Mongol Empire seems to be shown as being Islam while in reality it was multiple religions with Buddhism being the prevalent one.

<comment><USER5> As well as nestorian christian.</comment></comment></comment></comment>


Ask HN: Is .org ok for a startup? - <AUTHOR>

Obviously you will always want the .com of a domain, but what if the next best extension available is .org?  With many people locating your site by just searching for the name anyway, I wonder if it really matters as much these days.<p>For the domain that I am currently looking at, the .com and .net both just redirect to some generic keyword search page. <comment><USER2> Probably not. The "next best" is likely to be found by traversing the space of available names, not the space of available extensions.

</comment><comment><USER3> Appending "get" to the front seems a popular alternative. getdropbox.com, getballpark.com, getclicky.com, etc. It is pretty easy to remember (I pulled three off the top of my head just now without thinking hard, and I don't use any of those services).

<comment><USER2> Except about 80% of the time I send mail to someone at dropbox, I send it to email@example.com first.

There are always good names available. You don't need to stick get on the front, or use a .net name, or pull a del.icio.us. Just fire up instantdomainsearch and find another name.

<comment><USER3> Valid point. Now that you mention it, I _have_ tried to email people at the .com when I needed the .net, and I have also mailed people at noun.com when I needed verbnoun.com.

And, I have been surprised to find that if I keep banging away at it, I do eventually find a good name. I was looking for a name for a new site to host some Flash brain games I've been working on, and it only took about 20 minutes of searching to find a domain I loved. I had to make up a word, but there aint no harm in that, I reckon, as long as it isn't too long or too hard to spell.

</comment></comment></comment><comment><USER4> Find some concrete data that compares the two. HN probably isn't a sufficient sample. What sort of startup is it?

It might be easier to make up a new name than to settle for .org. A site like boingboing.net does well enough - though I often forget the URL because the .net isn't part of the brand. I've seen links to boingboing.org/com, which might have an effect on search rankings. If you do choose .org, make the .org memorable.

</comment><comment><USER5> My best luck with generating domain names has been sitting down with my cofounder at instantdomainsearch with us simultaneously brainstorming.

That didn't work for my most recent domain. Try <http://www.bustaname.com/> or code your own for increased speed/flexibility.

</comment><comment><AUTHOR> Thanks everyone, pretty much the response I was expecting. I think I will just try harder to find a .com.

</comment><comment><USER6> try dotomator.com - my best friend when finding names</comment>


Ask HN: What web language do most YC... - <AUTHOR>

..companies use? Is there one that takes the lion's share? <comment><USER2> VBA seems really popular among YC startups. Didn't really gain steam in 2010, but I think it's really becoming a hot trend of 2011.

<comment><USER3> This isn't Yahoo answers. Please don't do this.</comment></comment>


Named Parameters in C++20 - <AUTHOR> https://pdimov.github.io/blog/2020/09/07/named-parameters-in-c20/ <comment><USER2> The title is slightly click-bait-y: C++20 doesn't have default parameters. It talks about how to fake it with structs.

It's a pretty convincing fake, but it has one problem: the person who wrote the function needs to have written it that way. What I wish more languages had (C++, Java, etc.) is the following:

Suppose I write some function that take way too many parameters:

void foo(char a, short b, long c, float d, double e){}

What I want, as a caller, is for the language to let me get a struct corresponding to the argument list, something like this:

        foo::args whatever;
        whatever.e = 3.14;
        // fill in the rest

And then add a bit of magic syntax so we can "unpack" that struct to actually call foo. (Extending this proposal to handle varargs is left as an exercise to the reader, because I have no idea.)

<comment><USER3> How about `std::make_from_tuple` for constructors or `std::apply` for functions (C++17)?

It might be a bit verbose, but I think I would still prefer this over native syntax for unpacking.

<comment><USER4> Why would you kill your compile times like that.

</comment></comment></comment><comment><USER5> Having programmed in languages with named parameters (Smalltalk, ObjC and Commonlisp) I've found them cumbersome.

Also they can lead to a poor pattern which is functions/methods that take too many parameters.

They also tend to make generics harder to understand as the possible parameters can vary. Of course you can make the same problem in C++ via, say, `auto multiply(int x, int y)` and `auto multiply(double x, double y, enum rounding rp = rounding::nearest)`

In general they impose the verbosity (in keyboarding and reading) in the routine cases but don't free you from having to look up the argument semantics of lesser-used functions.

Side point: I used "keyboarding" because the obvious word, "typing" has a homonym which made the sentence confusing!

<comment><USER6> What named parameters fixes is making constant parameters readable. You _can_ API design around this (see for example [https://wiki.qt.io/API_Design_Principles#The_Boolean_Paramet...](https://wiki.qt.io/API_Design_Principles#The_Boolean_Parameter_Trap) ). You _can_ also always use local constants.

But those are non-trivial or cumbersome in their own way, and often people don't for their own internal functions. Named parameters neatly side-steps the issue entirely, by rolling the "local constant" right into the function call itself.

Like consider these two python snippets:

         ['Ford', 'BMW', 'Volvo'].sort(true)

vs.

          ['Ford', 'BMW', 'Volvo'].sort(reverse=true)

The latter is much more readable than the former, and there wasn't any "too many parameters" issue. It's a way to help create self-documenting code that's also compiler enforced. And it absolutely frees the reader up from needing to go lookup what the boolean parameter on "sort" means.

<comment><USER7> Another pattern especially for ambiguous Boolean parameters I also find helpful is something like (in pseudo-ish code):

      enum SortDirection { FORWARD, REVERSE }

      sort(direction : SortDirection = SortDirection.FORWARD) { ... }

      ['Ford', 'BMW', 'Volvo'].sort()
      ['Ford', 'BMW', 'Volvo'].sort(SortDirection.REVERSE)

<comment><USER6> Yup, that's the API design tweak that QT recommends as well. But it's a _lot_ more boilerplate, and that sort of boilerplate basically never happens for internal-only methods. Named parameters is basically the middle ground solution for the "quick" hacks that have a tendency to be rather permanent hacks.

</comment></comment></comment></comment><comment><USER8> It's a feature that I learned to use in Python and one that I consistently now miss in other languages (rust, java, typescript, javascript).

<comment><USER9> In ts/js passing an object is not very much effort and doesn't add much noise to reading the code.

<comment><USER10> It's annoying in TS because (AFAIK?) you need to specify the type and unpack the object:

      function foo({arg1, arg2, arg3}:{arg1: Thing1, arg2: Thing2, arg3: Thing3) {
        ...
      }

<comment><USER11> You could specify the type first (instead of doing it inline) and then unpack (if you want)

</comment></comment></comment></comment><comment><USER12> Unfortunately in many cases this will cause all of the parameters to be passed via the stack rather than in registers. It's a meaningful penalty for the kind of people who would willingly select c++ as a language today (rather than, say, python or java).

<comment><USER13> From my experience with C99: if the struct size is 16 bytes or less, the values will be packed into registers. But true as soon as the struct grows bigger, the entire content will be passed on the stack.

IMHO this sort of named arguments "easter egg" is fine for big "option bag structs" passed to functions that are not performance critical (or for small struct <= 16 bytes). For other cases, regular args are better.

OTH it seems like passing normal args also spills over into the stack very soon (only 4 registers used?):

[https://www.godbolt.org/z/Mz9MTG](https://www.godbolt.org/z/Mz9MTG)

The main difference seems to be that normals arguments "spill over", while passing structs by value puts everything on the stack once the threshold size is passed.

<comment><USER14> Six of the parameters use registers here. the `lea` is putting the sum of the first two into `eax`, then the rest accumulate more adds into `eax`. Only the last 3 parameters are reading from stack memory (the `dword ptr [*]` stuff).

In any case you don't get to actually see the passing at the callsite because the result `45` is inlined into `main()`. :)

<comment><USER13> Thanks for the clarification (also to archgoon). To your last point, I should have used -O1 instead of -O2, this also makes it clear what happens on the callsite.

<comment><USER15> You don't need to lower the optimization level to see what happens at the call site: you can turn the function 'blub' into a function prototype. The optimizer cannot in-line your code if it isn't available.

[https://www.godbolt.org/z/sj11rc](https://www.godbolt.org/z/sj11rc)

</comment></comment></comment></comment></comment><comment><USER16> This is my favorite feature of Objective-C / Smalltalk.

It makes everything so readable. I can come back to my code a few weeks later and I don't really need to look up function signatures.

In particular, my favorite thing about this in Objective-C is that the C functions have a different way of being called so you can easily distinguish between the differences in paradigms.

I wonder what other languages force all calls to be via named parameters. Would love to have another option :)

<comment><USER17> Swift, kinda: named is the default but you can make parameters explicitly positional (by setting the label to _).

I guess in Python you could l'ont your codebase to require keyword parameters or opt-in positionals.

</comment></comment><comment><USER18> This is quite interesting, a very elegant struct hack. Dlang is working on an RFC for implementing this feature right into the language, which would probably make it the first systems language to implement this without structs.

[https://github.com/dlang/DIPs/blob/master/DIPs/DIP1030.md](https://github.com/dlang/DIPs/blob/master/DIPs/DIP1030.md)

<comment><USER19> Ada arguably is a system programming language and it supports named parameters.

</comment></comment><comment><USER20> Personally I'd like c++ to:

a) have default parameters in any parameter position. I.e. for this to be legal:

        foo(int x = 0, int y, int z = 0) {}

b) to allow me to invoke a function like this:

        foo(,) //x and z are passed as default values:

c) or like this using named parameters:

        foo(x = 5, y = 1,)

</comment><comment><USER21> personally i'd just write a linter that adds names via comment

open(/ _port_ / 127)

</comment><comment><USER22> Is there a way to have initialization fail at compile time if all members aren't included? So that if new members are added, all call sites become invalid until updated?

<comment><USER23> I don't think you'd want to. One of the primary usages of this kind of thing would be like when you need to pass in some massive struct of options to some dumb API function (you know the ones!), and then you'd absolutely want default values for all the things you don't want to specify.

Also, some might argue that what you're describing (call sites not becoming invalid when you update the function) is a feature, not a bug. This way, you can add options to your functions and still have everything compile like it should.

I wouldn't personally argue that though, i think it leads to bad practice where functions take a bazillion options and they become horrible tech debt. I'm working in a mixed C++ and Lua codebase, and the Lua codebase is _littered_ with functions that take, like, 9 different arguments that change the behavior of the function. When I asked one of my colleagues about this style, he said it was one of his favorite features of Lua, that you can add arguments to a function to change the behavior in certain cases but keep the original functionality (guarded with default values or if's or whatever). It's made much of the code a living nightmare!

So, I guess, in the process of writing this comment I've come over to your side :) say no to adding arguments with default values!

<comment><USER22> I don't mind it for thing like pyplot where you have tons of style options hidden away like that.

But I'd definitely like to be able to say this one isn't optional or implicitly default constructed (or worse uninitialized, maybe that is already precluded by any amount of brace initialization, or maybe not if the class is POD, I'll have to check).

Someone suggested below deleting default constructors, you could make a template class that did that and forwarded other constructors, but I'd still like to be able to allow explicit default initialization in the ones that aren't considered optional.

</comment></comment></comment><comment><USER24> Bravo, it's time</comment>


IPFS, CoinList, and the Filecoin ICO [audio] - <AUTHOR> http://blog.ycombinator.com/ipfs-coinlist-and-the-filecoin-ico-with-juan-benet-and-dalton-caldwell/ <comment><USER2> I'm excited to see that the Filecoin project is getting an update. It long seemed to be stale, with IPFS being the main priority. While a new shiny website and this podcast is up, the new promised Filecoin paper isn't yet public.

It will be interesting to see how it compares to Maidsafe. A notable difference is that Filecoin uses a transaction ledger, while Maidsafe promises to use groups of nodes 'close by' to maintain a consensus: [https://blog.maidsafe.net/2015/01/29/consensus-without-a- blo...](https://blog.maidsafe.net/2015/01/29/consensus-without-a-blockchain/)

</comment><comment><USER3> A lot of the early discussion about P2P dark periods is largely ignoring the usage for internal networks rather than being the basis of customer facing applications. Many large companies (fb, twitter) use P2P protocols for internal distribution of resources. They can make far more assumptions about network topology when they control the network thus these aspects of P2P algorithms don't get applied to the general internet. I'd argue this period was when people really figured out the value of BitTorrent and decided it was often too difficult to expose to the end user.

FWIW, I built a BitTorrent tracker "framework" (chihaya.io) that a few orgs use to get the advantages of P2P with whatever extra middleware they need for their use cases.

<comment><USER4> Nice. By the way, it would be interesting to see a Bittorrent tracker ported to WASM, so it can run in the browser.

</comment></comment><comment><USER5> Have any of these storage coins figured out how to deal with the fact that it's easy to collude with yourself and efficiently pull off a Sybil attack to make it look like you're hosting lots of data?

<comment><USER6> On Sia, contracts are direct been renters and hosts. Hosts can collude with themselves to make it look like they are storing lots of data, but to what end? Renters on Sia only pay for the data they are directly storing.

For the Sybil attack, Sia uses proof of burn. Hosts provably burn money to demonstrate legitimacy. A Sybil attacker would have to spend real resources to appear as many hosts, and as the network grows, the required burn grows as well.

<comment><USER5> Then why use the Sia coin instead of just paying someone to (provably) host your stuff using Bitcoin? Not being snide, I just don't know what the platform offers if you're just doing direct contracts anyway.

<comment><USER6> In Sia both the renter and the host pay up front (host is putting up collateral). The payment is held for the duration of the contract (typically 12 weeks), and then the host only receives the full payment if they complete a proof of storage on the blockchain.

This means the host is guaranteed to get paid even if the renter disappears forever on week 2.

You can't set that up on Bitcoin.

<comment><USER7> Sia is quite volatile. If the payment is held for 12 weeks, the host has no idea what that payment will be worth. Do you have a mechanism preventing this issue?

<comment><USER8> You know what it is worth at the start of the contract, just like when working with foreign currencies. But yes, volatility is an issue that I presume will be less of an issue as it grows.

</comment></comment></comment></comment></comment></comment><comment><USER9> One thing I don't fully understand about Filecoin (or siacoin for that matter): can I utilize this as a service provider to directly host and deliver content to my users, or do I need to sit in the path of the traffic, and retrieve the content for them? Or does this not fit into the traditional hosting model at all? Filecoin mentions the retrieval market, but I'm struggling to find more details.

A concrete example would be a file or image hosting service. I can pay to store my content using Filecoin, but am I required to retrieve the content and transfer it to my users?

<comment><USER10> You won't have to sit on the retrieval path with Filecoin. Nodes participating in the retrieval market will probably simply expose a Filecoin-enabled version of the HTTP-to-IPFS gateway. The v2 paper will have more details very soon.

Interesting to note is also that, if you want to deliver content yourself, you can just run IPFS nodes on their own, without Filecoin. IPFS has been working fine for the past two years.

<comment><USER11> IPFS works but its not really fine - trying to use it on a small scale (home internet connections) has proven completely impossible for me. It reliably saturates my upload despite not actually serving any content - the DHT connection overhead in every mode is just too high.

This would be fine, but the whole point is decentralized internet - if I can't have a node running at home, or more specifically a node running on pretty much every device I have, its not practical.

<comment><USER10> Yeah I feel you, the management overhead is a big pain for many people at the moment, ourselves included.

There's a couple of improvements to this coming in the next two months: 1) a new transport (QUIC) which has less overhead, 2) smarter connection handling which closes unneccessary connections earlier, 3) more efficient announcements of who-has-what.

</comment></comment></comment></comment><comment><USER12> How can Filecoin compete with Amazon?

<comment><USER13> By

\- Not having ridiculous profit margins on bandwidth

\- Having the profit margin of a commodity (storage), instead of the profit margin of company in monopolistic competition (GCP, AWS, Azure)

Why would you imagine it hard to compete with Amazon?

<comment><USER14> How would availability of the data compare? Will the stored files be available at all times & under high loads?

<comment><USER15> There are tiers of hosts/miners with different options.

</comment></comment></comment></comment><comment><USER16> Thanks Craig and YC. Ton of fun.

<comment><USER17> Out of curiosity, can you clarify how Filecoin is different than Sia or will I need to wait for your new whitepaper?

<comment><USER10> There are a ton of technology differences which the upcoming Filecoin v2 paper will address (very soon!).

On the conceptual layer there's a difference in that Sia and Storj seem to be a bit more geared towards consumers and file storage, while IPFS+Filecoin's aim is to be infrastructure in the commons.

(Disclosure: IPFS & libp2p dev)

<comment><USER17> I thought Sia is focused on the enterprise?

Either way, thanks for replying. I'm looking forward to reading the new whitepaper soon.</comment></comment></comment></comment>


Could you stomach Huel, the food of the future? - <AUTHOR> https://www.theguardian.com/science/2016/jul/31/huel-human-fuel-hi-tech-food-powder <comment><USER2> I have a friend that does on a daily basis. Reminds me of the protein shakes I used to drink when I was an undergrad. These things are fads. A new one will come out in a few months, the new "future food." I'll stick with healthy food, that I can chew, taste, and enjoy.</comment>


Charging from Day 1: Genius or Deathknell? - <AUTHOR> http://squeejee.com/blog/2009/10/29/charging-from-day-1-genius-or-deathknell/ <comment><USER2> One point the article doesn't stress is that charging money removes a whole slew of problems, chief among them spam and ghost accounts. This frees up a lot of development time, since you don't have to make the system resilient to waves of signups by people you'll never see again, or spend a lot of time on abuse prevention.

That's the good part. The bad part is, you then use all that spare development time on getting your payment system working smoothly. Since you are taking someone's money at the very outset, making a decent first impression becomes especially important. I suggest setting up payments so if something goes wrong, the account gets activated anyway, and you settle up later by personal contact with the customer.

<comment><AUTHOR> very good point about the spam/ghost accounts. we've seen that ring true for our free beta of Floxeee. Usually the people who are using your product for free are your worst customers.

</comment></comment><comment><USER3> Apps that rely on network effects to be successful need a free model, or an existing base with critical mass. The latter is nice if you have it.

Freemium is a great way to get some users to pay for value created out of the total network effect created by mostly free users.

I don't think Markus Frind was swinging for the fences when he created plentyoffish.com with a free model. I think he realized how hard it was going to be to get enough people on a dating site to make it interesting.

<comment><USER4> I couldn't agree more...there's no way Facebook or Twitter would have gotten as many users as they have now if they charged for their services on day 1. They _might_ be able to get away with it now.

But for other apps that provide a more tangible service and don't rely on the "network effect" (say, Evernote or Freshbooks), there is a compelling case to charge from the beginning.

<comment><USER3> The article argues that all such apps are "swinging for the fences" and I don't completely agree with that. You can plateau a lot smaller than twitter and still benefit from delayed revenue, or alternative revenue models.

<comment><AUTHOR> it's an obvious generalization... every app is going to be different depending on it's purpose and target customers/users. Your example of plentyoffish is perfect. A site/app like that DEPENDS on having tons of active users, in which case the fastest route to that is free.

</comment></comment></comment></comment><comment><USER5> One question not asked enough is "why do you want to make a web app?" if it's to do what you love and get paid for it... Then do what you love (make apps) and get paid for it(charge money).

Mark z's goal on facebook was probably not to make millions upfront. He had different motivations and because that came through in his work, the money was merely a side effect.

The mistake some entreprenuers may make is they are driven by what they love as an independent vehicle to monetary success, then choose to make something people won't want to pay for.

</comment><comment><USER6> (to paraphrase:) "Do you want 10,000 users paying nothing or 1,000 users paying something"

This is the key take-away for me. I know a lot of founders who, frankly, are building startups for megalomaniac reasons.

I think there is some "look at all these users who like my product (and thus me) so now I'm a rock star" philosophy in there, which isn't helped by people like Ashton Kutcher and MC Hammer coming into the scene.

We're about to complete a pretty tasty angel round for an SaaS app that has a healthy monthly recurring subscription on it from Day 1. I'm pretty psyched.

However, because its b2b it's never going to achieve me the 'rockstar appeal' that running a startup with millions of free accounts on it will would. I don't mind, but I know that frankly that's what dis-interests a lot of founders.

<comment><USER7> False dichotomy FTW. There are tons of businesses that can extract tons of value from free users. Freemium, lead gen businesses (Mint), and (yes) advertising.

Getting paid in ego is pretty stupid, but amassing free users isn't necessarily so. No reason to throw out the baby with the bathwater just because of Ashton Kutcher, etc.

<comment><USER6> Ok so two points.

"Freemium" makes sense, cos there is a revenue stream in there somewhere. I'm talking about startups that don't have _any_ business model.

Secondly, for every Mint I can show you a ton of startups that have got no where. In fact Mint is fairly unique because it uses the data for lead gen, as you say -- but most free startups aren't smart enough and/or not hoarding the right type of data to get into that business.

<comment><USER7> Leadgen isn't just about data. Example:

There is a business where you can go to the web site and request a quote from 3 car dealerships for a specific year/make/model of a car. They sell these leads to 3 car dealerships at $20 per. Last I heard, they were doing millions in revenue a month. I also know a senior housing directory startup that's selling customers on a per-lead basis and doing quite well.

I'm all for obvious and immediate business models. I think it's a lower risk path (and it's the one I've chosen), but the go-free-and-get-popular is a pretty tried and true path that's worked for plenty of folks. But it DOES require that you get popular, which is really hard to do. SaaS stuff can be lucrative if you don't manage to be super popular.

</comment></comment></comment></comment><comment><USER8> I'm waiting another post from this guy describing how they got tired fight the fraud and now they do offer their app for free.

PS. We are charging from day 1 and it's damn not easy. Really! If fraud does not kill you in a year, there's 90% of success.

<comment><AUTHOR> what's your argument here... don't charge because of the potential for fraud?? That's crazy. If we all took that stance there would be no such thing as business.

with spreedly plus processing through paypal, there is a high level of fraud detection. We've actually rejected a number of payments because of high fraud potential.

The rest is just business and the risks associated with it.

</comment></comment><comment><USER9> paid system definitely has its benefits, while you are debating free vs monthly charges, how about one time nominal sign-up fee till the site is in business? Similar model as iPhone Apps, where for some odd reason, people are more inclined to pay than for web apps. I wonder if anyone has had serious success with such a model on the web ?

<comment><USER10> that nominal sign up fee will kill 90% of your potential users.

<comment><USER9> I see your point, but 90% is just an arbitrary number I am guessing you have made. But number is going to be up there, so 90% might be a good guess. I probably won't pay monthly for facebook if a day like that comes. Unless you provide a service that provides constantly changing information of sorts, it is hard to charge customers monthly, I would have a hard time paying for the game scramble that I play on facebook. I might be tempted to pay them $5 once after trying the game for a month,

I might be wrong, but this might be worth exploring as a revenue stream for simple applications. Donations probably still do better than this.</comment></comment></comment>


That New Apple Watch EKG Feature? There Are More Downs Than Ups - <AUTHOR> https://www.nytimes.com/2018/10/08/upshot/apple-watch-heart-monitor-ekg.html <comment><AUTHOR> Note: this article is written by a doctor, not a random person.

I don't think anyone is under the impression that Apple's screening is statistically without error or as good as dedicated devices. False positives suck but every consumer EKG device has them.

I feel like it's hard to argue having this feature is less good than not having it.

Apple already does large-scale studies with Stanford [1]. It would be interesting to see if they do one around the new EKG features.

[1]: [https://med.stanford.edu/appleheartstudy/faq.html](https://med.stanford.edu/appleheartstudy/faq.html)</comment>


Tiny Homes for Homeless Get Go-Ahead - <AUTHOR> https://text.npr.org/s.php?sId=694863105 <comment><USER2> Took awhile to find it but they plan on building 33 one room homes. They site that before the fires there were 2000 homeless in butte County. 11 of these 33 will be set aside for victims of the fire. 22 will accommodate those 2000.

Local communities in CA need to get their act together and build housing starting where I live. I will continue to support any affordable (or free) housing project because it just seems that homelessness burdons everyone.</comment>


The A.D.D. Guide to RabbitMQ - <AUTHOR> http://crad.tumblr.com/post/196979154/the-attention-deficit-disorder-guide-to-rabbitmq

<comment><USER2> Pretty good, nice balance of terse and informative. Do more!

</comment><comment><USER3> Strange title. What's next, The O.C.D. Guide to A.D.D.?</comment>


Show HN: Terminal-based Python port of NY Times' puzzle game "Spelling Bee" - <AUTHOR> https://github.com/philshem/open-spelling-bee <comment> git-pull This is really fun, good work Philip!

I haven't seen this puzzle game before, I had to read into it a bit (and had to actually cheat a bit, via solve_puzzles.py.)

Works fine out of the box with python 3, no extra libraries required.

This is good enough to submit to PyPI. Seems like a nice terminal game. Something to play in a tmux pane while tests are running or while waking up with a coffee.

Also I looked at the code, it looks fine.

I saw the multiprocessing in generate_puzzles. Wow. I don't even know what Thread.starmap does. This works nicely.

Keep it up!

<comment><AUTHOR> Thanks for the feedback! I'm eager to make my first PyPi package but will probably do my open-mastermind project first, since it's a simpler codebase

[https://github.com/philshem/open- mastermind](https://github.com/philshem/open-mastermind)

</comment></comment><comment><AUTHOR> OP here. I had been playing the NY Times' Spelling Bee until they required a subscription. Although the cost is modest, I decided it would be a fun exercise to implement for the command line. I'm using Python a lot for data analysis but this puzzle game was a fun way to explore some Python 3 built-in functions: any, all, next. I'm also proud that the code uses only built-in standard Python 3 libraries.

I've listed some ideas if anyone would like to add their thoughts, feedback, bugs - either here as comments, or at the repository issues page[0].

\---

In this puzzle game, you have to build words using the letters in the hexagonal shape. Each word must be at least 4 letters and include the center letter. Letters can be used more than once. Each puzzle includes one "pangram", which uses all 7 letters at least once.

[0] [https://github.com/philshem/open-spelling- bee/issues](https://github.com/philshem/open-spelling-bee/issues)</comment>


BASKET: An App for keeping things you love, together - <AUTHOR> http://pixr8.com/pixr8-presents-basket-keeping-things-love/

<comment><USER2> Loved the concept!

<comment><AUTHOR> thanks !</comment></comment>


The Slow and Glorious Death of America's Worst School System - <AUTHOR> http://reason.com/archives/2014/06/10/the-slow-and-glorious-death-of-americas

<comment><USER2> I sort of gave up on Reason.com after their article on the LA Expo Line: [http://reason.com/archives/2012/05/05/new-light-rail- ridersh...](http://reason.com/archives/2012/05/05/new-light-rail-ridership- falls-short-by)

The short version is that they surveyed ridership on the new line a couple months after it opened, and claimed that actual ridership fell short of the transit agency's estimates. The article also complains about long delays. This is, of course, very silly because two months is not very long to work out all the bugs in a large system, nor is it enough time for people to adjust their commute patterns to the new option. I used to commute on this train a few times per week, and service delays were more or less eliminated by September 2012.

Now, two years after the line opened, actual ridership in 2014 (30k people per weekday)[1] is well on track to hit the projected ridership estimates for 2030 (36k people per weekday)[2].

This sort of shoddy (and, dare I say ideologically-motivated?) reporting makes me tend to doubt the veracity of everything else they publish, especially after Reason doubled-down in a rebuttal[3].

[1] [http://en.wikipedia.org/wiki/Expo_Line_%28Los_Angeles_Metro%...](http://en.wikipedia.org/wiki/Expo_Line_%28Los_Angeles_Metro%29)

[2] [http://backup.buildexpo.org/phase2/Phase%202%20FEIR%20Docume...](http://backup.buildexpo.org/phase2/Phase%202%20FEIR%20Documents/TBR%27s/TBR%20Expo%20Phase%202%20Ridership%20Results%20Final_Dec09.pdf)

[3] [http://reason.com/blog/2012/05/08/trainspotters-deriving- num...](http://reason.com/blog/2012/05/08/trainspotters-deriving-numbers-by- counti)</comment>


AskHN: Do you participate in any programming contests? - <AUTHOR>

do you do so? <comment><USER2> Repeat: <http://news.ycombinator.com/item?id=294915></comment>


Microsoft's CSO is Full of It - <AUTHOR> http://ipvm.com/updates/2316

<comment><USER2> Seriously? This guy is nowhere near either the executive suite or product development. I'm not sure who's calling him a "chief security officer" but that's certainly not his title at Microsoft.

<comment><AUTHOR> That's what he says on his LinkedIn page - www.linkedin.com/pub/mike- howard/1/305/342</comment></comment>


The Look of Love Is in the Dog's Eyes - <AUTHOR> http://well.blogs.nytimes.com/2015/04/16/the-look-of-love-is-in-the-dogs-eyes

<comment><USER2> There have been studies (will update if I find link again) that show that people who care for dogs have lower levels of anxiety. Even "lending" a dog for a few hours per week already had this effect.

</comment><comment><USER3> Wondering, is it possible to increase one's levels of oxytocin with drugs?

<comment><USER4> There have been preliminary experiments intended to answer this question. I remember one of them involved administering oxytocin as some sort of spray. I can't remember if these trials were in animals or humans.

One of the hypothesized effects of increasing oxytocin levels is making people with autistic minds think and behave in more typical ways. If this comes to fruition, I hope that autistic people will be able to help decide whether they become more typical or not.

Because it's not well understood (and may be very powerful), a widely-used oxytocin-increasing drug seems to be quite a few years away.

</comment></comment><comment><USER5> What about looking at a picture of a dog looking at you?

</comment><comment><USER6> My dog has to have eye surgery on Thursday. She is a 5 year old rottweiler. That has nothing to do with the article, but please give her your best wishes, her name is Ruby.

Also, I heard somewhere and repeat often that some dogs have human eyes in a dog body.

<comment><USER7> Be will little rottweiler doggie!

</comment></comment><comment><USER8> Mmmh, wild extrapolation appeared...

The type of look that women in a romantic dinner appreciate in a man also. Now we know why it works.

Keep her oxitocine high, son! (or take a cute puppy of mass destruction with you to the restaurant)

Measuring the oxytocine of people before and after a psychologist session is another interesting experiment waiting to happen.</comment>


Consider Renaming Gimp to a Less Offensive Name - <AUTHOR> https://gitlab.gnome.org/GNOME/gimp/issues/3617 <comment><USER3> While I don't disagree with the people wanting to change the name here, I cant help but realize that they are essentially bullying the maintainers. The maintainers are people who spend their free time to work on a project they never get paid for. Sure its a project we all seem to use, but it's also their project. I don't feel like its anyones place to force them into something they dont want to do. The thread started civil but then turned into cyber bullying. Funny how those trying to "prevent bullying" are the very ones doing it.

<comment><USER4> This is the way with any issue of public importance, which, as a capital-F Free Software project with a lengthy history and many contributors, GIMP has grown into. The software's functionality is commendable, and they have made some strides on UX as well. That makes it worth recommending, but for the parts that hold it back, of which the name is increasingly a major one.

When these issues come up, and there is a perception of gatekeeping behavior, protest is normal. The developers hold the power here. And developer arguments to avoid popular change tend to become more incoherent as the popularity of the software grows, because it positions them as both serving a popular interest(lots of users, open development) and not(private whims trumping popular ones). Developers on prominent products with many users generally are not following their fancy anymore; they are making their career. If they want to sully their career, dying on this hill is a way to do it.

<comment><USER5> > The developers hold the power here.

They do not, this is exactly the point of free software. Anyone can fork it and release their fork under a different name. Don't want to do that work? Too bad. Want to force the developers to do it? Now which party is attempting to exercise power?

The only thing the developers are doing is refusing to modify their free gift to the community to line up with other people's non-technical priorities. This is not an exercise of power — is it simply reminding people that free software contributors are not indentured servants.

<comment><USER6> Exactly. Someone unhappy with the name, but wants to contribute to the product, can fork the project with a different name and start putting all their patches in there.

If their features are good, they might get backported to the other project. That person may continue to rebase off the original as well. Eventually you might have two packages in all the major distros and CI that helps keep both trees in sync.

That really is the right way forward here. Or ... the person could just make a CI that pulls, applies a single script that renames and rebrands everything, and then rerelease packages. That's all they have to do .. and if it catches on, well then they've made a change without having to bother the original developers at all.

</comment></comment></comment></comment><comment><USER7> Wonder how many people who are up in arms about the name actually use GIMP? And how many of those are willing to monetarily compensate them for the lost recognition in the event they do change their name and are forced to start from scratch?

It is strange that the title words it as "Gimp" when GIMP has always been "GIMP", which has a very specific meaning(it stands for GNU Image Manipulation Program) that has nothing to do with the word "gimp".

I've used GIMP since I was in middle school and I have never ever known that it was a homophone for the more offensive term. I grew up in California and also never heard anyone use this term as an insult to anyone. Do non- American/English speaking GIMP users not have a say in this? Why do they have to have their GIMP become something else just because it happens to sound like a bad word in some other language?

It'll be a huge shame if they go through with this, but even if it does, I will always refer to their work as GIMP, the GNU Image Manipulation Program.

<comment><USER8> > Wonder how many people who are up in arms about the name actually use GIMP?

I, for one, use it every day. Have you taken a look at the discussion? Your questions are pretty thoroughly addressed, which, along with your final line here, make me think you're more interested in your desire to use ableist slurs and the holy right of software maintainers to ignore any and all criticism without consequences than anything else.

Let us be clear: Nobody in this issue thread cares _at all_ about whether it was "meant" to convey the same meaning as the word "gimp". It is factually true that people find it awkward to recommend in professional settings because of its name, and sometimes the name makes adoption impossible.

Obviously nobody can force the maintainers to do anything, but we can _ask_ them to change a superficial component of their excellent software to make it much more useful, which is what this issue was.

<comment><USER7> For the vast majority of the non-English world, GIMP means nothing except what it stands for, and the same goes for me.

You have to note, "gimp" and "GIMP" mean completely different things.

<comment><USER8> For the vast majority of the non-English world, the acronym for a project called "C UNIX Networking Toolkit" doesn't mean anything but the project's name. That doesn't mean going around using that acronym is a good idea.

<comment><USER7> That particular word is a bit more ubiquitous even internationally so I'd say there's a huge difference.

<comment><USER8> So, great! We've agreed that there _is_ a line, right? A line after which a word is too offensive to too many people to use as a project name; a line over which it's sensible for your users to reasonably and respectfully ask you to change the name, and expect more than a "No. Closed." in response? And your argument is, GIMP doesn't go over that line?

<comment><USER7> Well yes, for me in California and much of the non-English speaking world, before this "issue" was brought up had no idea what "gimp" was. If anything, the pro-change side has done nothing except raise the awareness of the offensive term and we will likely see an increase in attacks using that term due to it.

I can't imagine changing the innocent name of my project because it happened to be a homophone of a mean word in some other language.

<comment><USER8> Except, you said you CAN imagine that. I just gave you an example of EXACTLY that and you agreed that it was too far. So, clearly, you have some kind of double standard here.

You're arguing in bad faith and it's making you look silly. Stop it.

<comment><USER7> I most certainly am not arguing in bad faith. The last sentence is an utterance of my own personal feeling about things. But objectively I could see why the name of the other project you mentioned would be an issue. Regrettably, that term is a lot more well known and widely used and I accept why they would change it. I did not say I agreed with it and I especially do not here with GIMP. I am not able to morally justify forcing them to change their project name, since I really do not think of GIMP as anything other than the image editing program I've always used, like the vast majority of the world. I'm sorry that you and various regions of the U.S. are inflicted with such a slur to begin with.

<comment><USER8> > forcing them

Opening an issue is not forcing. It's asking. Do we at least agree there?

<comment><USER7> Sure, but you want them to do it right and are willing to fight for it right? If they end up having to do it due to those pressures, that is very much having their hand forced.

</comment></comment></comment></comment></comment></comment></comment></comment></comment></comment></comment><comment><USER9> without naming names I see a lot of SJW in that issue without very many commits/participation in the open source community.

Also the maintainers gave their reply as it is their prerogative to do so.

> _Michael Natterer @mitch · 5 hours ago Maintainer_

> _Sorry, the name will not change, closing. Michael Natterer @mitch closed 5 > hours ago_

So JordiGH, you needn't re-open the issue [https://gitlab.gnome.org/GNOME/gimp/issues/3618](https://gitlab.gnome.org/GNOME/gimp/issues/3618) and post to HN with the hopes of generating outrage against the GIMP project for not doing what you want.

<comment><USER8> I have to agree. Please, everyone, if you're going to engage with this, look at [https://gitlab.gnome.org/GNOME/gimp/issues/3617](https://gitlab.gnome.org/GNOME/gimp/issues/3617) and the discussion (and lack thereof) there.

As someone who likes to think that I do have as many "commits/participation" as many others, I would appreciate it if people would focus on the core argument:

It is hard to get people to use this software, who would otherwise benefit, because of their perception of the name, and it's easier to change the name once than change those perceptions every single time.

If you have problems with THAT, I'd love to discuss them, but please leave "SJWism" and whatever out of it - that's not really what's at issue here.

<comment><USER9> > _As someone who likes to think that I do have as many > "commits/participation" as many others, I would appreciate it if people > would focus on the core argument_

The reason this is important is because in recent times essentially nobodies like to pop out of the woodwork with "ideas" like this. They then like to "shame" people who don't agree with them. There's nothing wrong with expecting people to build up a reputation before suggesting divisive and controversial ideas.

</comment></comment></comment><comment><USER10> [https://www.gimp.org/docs/userfaq.html#i-dont-like-the- name-...](https://www.gimp.org/docs/userfaq.html#i-dont-like-the-name-gimp- will-you-change-it)

Except for this? By all means consider renaming it.

Or keep it to spite everyone who comes from the outside and tries to destroy hacker culture.

Because that's what people are doing, destroying hacker culture just like we destroyed other cultures before.

Yes, in some cases the new culture is better, but why oh why do we have to destroy everything funny or unusual in the process.

This comes from someone who sometimes has to stand up for his group in other settings. Why can't society let us - and the hacker culture - alone as long as we adhere to the laws?

If the GIMP won't be a commercial success - fine. Or someone can fork it and package it under another name - fine. Or the maintainers can sell out - <USER2> even agree - fine.

But can't we stop this war against all forms of old school fun and what should I say - diversity?

<comment><USER11> You claim to want to stop what you see as a war against fun and diversity, after insisting that anyone who doesn't share the same juvenile sense of humor as you, or who disagrees with the name of a software project, must be an outsider trying to destroy hacker culture?

So do you want diversity or conformity, then? Stop with the gatekeeping BS, please. You don't get to say what hacker culture is or who belongs in it.

<comment><USER10> > Stop with the gatekeeping BS, please. You don't get to say what hacker > culture is or who belongs in it.

I'm not gatekeeping here, only suggesting that people behave nicely in other peoples houses so to speak.

From the link I pasted it is quite clear what the GIMP maintainers used to think about this. If they reconsider I'm fine with that as well, I'm not attached to the name. _But I am fed up with people coming to invade others cultures for the sake of making them acceptable to a certain subset of what seems to be extremely privileged people._

</comment></comment></comment><comment><USER12> Here's an idea: Why doesn't this guy (and anyone that agrees with him) spend 23 years building his own graphics editor, naming it whatever he likes?

<comment><USER7> GIMP is free software, so maybe they can just fork it and rename it :P

<comment><USER12> Yep they could, but then they'd have to figure out how the software is built, rather than just shitting on the name.

I'm just going to leave this right here: [https://www.urbandictionary.com/define.php?term=Snowflake](https://www.urbandictionary.com/define.php?term=Snowflake)

<comment><USER8> As someone who participated in this issue, I want to let you know that we chose to engage the current maintainers before forking because that's the nice, respectful thing to do. I, personally, find it extremely aggravating when people fork projects over minor decisions like this. It leads to a huge amount of wasted effort on both sides.

As it is, we're likely to either fork the project (which is underway at the moment), or build a GIMP keybinding compatibility layer for Krita; the second is less preferable because it would require quite a lot of hacking to make the more advanced features work, and would almost certainly not reach 100% parity.

As you note, either one will be a good deal of effort; another reason we wanted to at least ask the maintainers if they would be willing to accept a patch with the name change, instead.

Now what was your point, other than to insult some people whose argument you almost certainly didn't read?

<comment><USER12> I actually did read the thread thank you very much. My point is people want to bitch about a trivial thing (yes it is my opinion that this is a trivial matter.) How much effort and time are you willing to spend on such a minor thing as a 4 character string? I predict someone will fork it, and in a year's time it'll be abandoned and not kept up to date because they'll simply move onto the next trivial matter which offends you folks.

Frankly, few will use your fork anyway because it provides zero value vs the established name/brand.

<comment><USER8> So, you read the issue. What is it you fail to grasp about the conversation "I think, rather than buying Photoshop, you should use this software." "We can't use software with a name like that."

That's a conversation I've had, in real life, with a professor and a professional photographer.

Literally, the only thing holding them back was the name.

How is that zero value?!

<comment><USER7> I'm going to jump in and say this.

Let's be real here. You can't even make a circle in GIMP without jumping through various hoops. Right now, the hurdle for those professionals is just the name, but wait until you see when they actually try using the tools. They'll happily pay for Photoshop once they realize that what they wanted after all was just a free Photoshop. This is quite a different angle I am arguing from, but it's my pragmatic side. I believe GIMP should maintain it's current userbase that was earned through over 20 years of hard work under their current name, instead of chasing customers that will unlikely appreciate their project anyway.

<comment><USER12> This. I've used Photoshop since v4. Every time I try to use the latest version of GIMP I run away and happily pay for Photoshop because I choose not spend time to learn how to use GIMP (or Pixelmator on Mac.)

</comment></comment></comment></comment></comment></comment></comment></comment><comment><USER13> This shouldn't even be a debate. The name is horrible in every sense that matters to gaining adoption.

<comment><USER14> Seriously. Even a super generic name like "GPaint" would be a huge improvement. Some parts of the Free Software world are run by programmers and programmers only and it _shows_. It would benefit to listen to a marketing person every once in awhile.

<comment><USER3> To be fair, it's open source software that makes the maintainers of it $0 of profit. Its closer to a form of art than it is a product. It might just be they don't actually care to gain adoption or "win the market".

<comment><USER14> As someone who's written and released his own Free Software, I have to say, I at least definitely cared about getting users. Most of the fun is in your product actually being used, not just it being out there. I never did anything remotely as important as Gimp, but if someone had come along and offered some simple services like "Let me design a cool logo for your project" I'd have jumped at the chance. I can't imagine Gimp hasn't had similar opportunities.

</comment></comment></comment></comment><comment><USER15> There is no grace in sullying innocent people selflessly building a fine free product, while asking nothing in return. The mental gymnastics and energy employed in attributing malice is much better spent in improving the product.

Better yet, fork the product, rename it and do with it as you please. The authors are generous enough to allow that.

</comment><comment><USER16> I'm not a very sensitive or "PC" person but the name has always bothered me, so much so that I won't use it or recommend it anyone only because of the name.

</comment><comment><USER17> This is mentioned in the FAQ and it's exceedingly clear and reasonable:

> Finally, if you still have strong feelings about the name "GIMP", you should > feel free to promote the use of the long form GNU Image Manipulation Program > or maintain your own releases of the software under a different name.

[https://www.gimp.org/docs/userfaq.html#i-dont-like-the- name-...](https://www.gimp.org/docs/userfaq.html#i-dont-like-the-name-gimp- will-you-change-it)

<comment><USER14> Maybe someone should do that, then. I'd be onboard with it. Then I could reference it by a better name and feel more OK with recommending it.

The problem is, how many large Linux distros will accept a new package into their package managers that is essentially the exact same thing as an existing package, just with a different name and logo assets? For this to be truly successful, it has to be as easy as `apt-get install gpaint` (insert better name here).

<comment><USER17> I'm not completely familiar but I get the sense that building a snap package isn't that much of a hurdle if there's such a big need for a renamed fork.

<comment><USER14> I haven't had great experiences with Snap packages, to be honest. And the fact that they use their own sandboxed filesystem is really inconvenient for an image editing app.

I probably won't be installing any more Snap packages.

<comment><USER17> Ok...then flatpak or appimage...there's a clear omnipresent issue here where people argue over petty issues that fragment and polarize the software ecosystem and it's only worse that resources are heavily constrained and voluntary. I don't mean this to discount your concern, but you're making a strong ask from a community that's based completely on loosely-coordinated voluntary efforts. If you want change - advocacy is not enough and frankly counterproductive. Start solving your problem and paying it forward to the people that you think will benefit.

</comment></comment></comment></comment></comment><comment> mkr-hn The name isn't even good _before_ considering the word's meaning.

</comment><comment><USER18> Yeah, I definitely ran into issues when Googling to see whether I could use LaTeX within GIMP.

<comment><USER3> Interestingly enough, duck duck go does way better at that search term than google does

</comment></comment><comment><USER19> I don't agree nor disagree since I've never heard that word used for anything else than the software. But by this logic, we should also rename _git_

<comment> mkr-hn Git is not without issues, but it's not as bad as this word.

There are two common ways to see gimp beyond what its defenders put forward:

1: A kink thing.

2: What the kink is based on: [https://www.merriam- webster.com/dictionary/gimp](https://www.merriam-webster.com/dictionary/gimp) -> [https://www.merriam-webster.com/dictionary/cripple](https://www.merriam- webster.com/dictionary/cripple)

Neither one is great for adoption.

>> _" I've never heard that word used for anything else than the software."_

There are a lot of words I didn't know were common slurs, or at least inaccurate or otherwise not okay until someone told me. For example: Eskimo (colonist nonsense), Gypsy (name given to Romani people based on mistaken belief they came from Egypt), Indian (some native people use it, but not all).

Learning is great.

</comment></comment><comment><USER20> >The most modern and often used version of the word "gimp" is an ableist insult.

Untrue. The most common usage is as an adjective/verb that has nothing to do with disabled people. "Switching from C to Java really gimped our performance." "Our marketing in Mexico is gimped because we didn't hire a native Spanish speaker."

Also this is pretty rich coming from GNOME, considering that's used as an insulting name for little person.

<comment><USER21> > _really gimped our performance_

I'm a native English speaker in the US and have never heard or read "gimp" used as an adjective this way. Never.

I have heard it used as a slur against people with disabilities many times, in real life, movies, and books.

Even the usage you're claiming is the most common sounds like it's a synonym for "cripple".

The entire etymology for the word "gimp" supports that it was conceived originally as a slur and continues to be used that way.

[https://en.m.wiktionary.org/wiki/gimp](https://en.m.wiktionary.org/wiki/gimp)

Either way, why would anyone want to download something with that name? It's embarrassing to recommend it to people.

<comment><USER22> > really gimped our performance

It's used that way in Australia, the only time in my life I've heard gimp used in a derogatory way was in pulp fiction.

But this illustrates a big problem with all these PC crusades lately, they're trying to apply US (at least parts of the US) cultural norms to international projects, often at the expense of alienating most of the world.

<comment><USER8> > PC crusades

It's not a "crusade" in any sense. It's one issue on a GitLab that someone decided to link over here (not one of the people who made the issue, I think). It is about "political correctness" only in that it's genuinely hard to get some people to even consider using this free software because, and ONLY because, of its name.

I think you should rethink your idea of a crusade if you think this is what that word means.

<comment><USER22> This is hardly an isolated event, it's not just a single issue on a single project.

> It is about "political correctness" only in that it's genuinely hard to get > some people to even consider using this free software because, and ONLY > because, of its name.

People that vain will find something else to dislike about it.

</comment></comment></comment></comment></comment><comment><USER23> The snowflake generation do get offended by everything.

<comment><USER24> Please don't do this here, even when something seems wrong or annoying.

Would you mind reviewing the site guidelines and sticking to them? Their intention is to try to keep this place from degrading so that it can remain interesting for all of us.

[https://news.ycombinator.com/newsguidelines.html](https://news.ycombinator.com/newsguidelines.html)

<comment><USER23> Ok. I understand</comment></comment></comment>


Algorithms notes from UIUC - <AUTHOR> http://www.cs.uiuc.edu/~jeffe/teaching/algorithms/

<comment><USER2> I've been meaning to get around to reading those notes. A friend of mine also told me about this course: <http://www.cs.sunysb.edu/~skiena/392/> \- taught by Steven Skiena (author of The Algorithm Design Manual).

I wish my university had more courses like this, but for now I'll have to learn from these.

I never really learned anything about pure algorithms in high school, but it seems like quite a bit of people in my program covered the basics at their school. I want to learn more about this style of programming so that I can compete on sites like TopCoder, but I never know where to start. I'm guessing these notes are good, but now I just need to find the time to study the material.

</comment><comment><USER3> The notes for the algorithms class here at Berkeley were extracted into a pretty good textbook. You can get a draft of it here: <http://www.cs.berkeley.edu/~vazirani/algorithms.html>. It's worth a look if you're interested in basic algorithm concepts. (The book is for the undergraduate introduction to algorithms class and offers a good overview of the subject, but nothing super advanced.)

While it was published as a book, it really is just a neater version of the lecture notes for the class.

<comment><USER4> Why do algorithm books generally devote so much space to FFT? It seems like it has very narrow applicability: apart from signal processing and multiplying big integers or polynomials, what else are they useful for?

Wouldn't it be better to explain divide-and-conquer with some other algorithm having broader applicability?

<comment><USER5> I've always had the feeling that FFT is taught in the wrong way, at least in CS courses. They just introduce complex roots of unity and this magic Vandermonde matrix and then they state a scary "convolution theorem", and after a lot of handwaving you see that you can use it for polynomial multiplication. This gives basically no insight about _why_ things work.

With just a little bit of linear algebra and abstraction it is easy to gain a lot of insight about Fourier transform. For example this is the way I see it:

* First you introduce shift-invariant linear operators (circulant in the finite-dimensional case), i.e. linear operators that don't change if you shift the vector, apply the operator and then shift it back.

* Then you show that the Fourier basis is THE basis that diagonalizes shift-invariant operators. This is just matter of multiplying the Fourier vectors with the shift operator and noticing that you get back the same vectors, and it is where the cyclicity of the roots of unity comes into play. This also explains _why_ Fourier transform works for signal processing: if you have to operate in the frequency domain, shifting your signal in time shouldn't change anything.

* Then you show that convolution (or polynomial multiplication) is shift-invariant: this is just matter of writing down a convolution and doing a change of variable

* You are done: if convolution is diagonal in the Fourier basis, it can be applied just by multiplying its coefficients in the Fourier domain.

* _Now_ you introduce FFT as an efficient way of computing Fourier transform, but only after you understood what the transform is doing.

When I realized this, something "clicked" in my mind and I finally "understood" Fourier analysis.

Maybe I should expand on this a bit more and write a blog post about it without all the complications that I find in books.

</comment></comment></comment><comment><USER6> On a related note, are there any good video lectures on Algorithms?

<comment><USER7> MIT OpenCourseware with Leiserson and Demaine. [http://ocw.mit.edu/courses/electrical-engineering-and- comput...](http://ocw.mit.edu/courses/electrical-engineering-and-computer- science/6-046j-introduction-to-algorithms-sma-5503-fall-2005/video-lectures/)

</comment></comment><comment><USER8> I took CS-373 with Prof Erickson ten years ago. It was hard. But he was also possibly the best lecturer I had while in school.</comment>