PayPal to acquire shopping and rewards platform Honey for $4B - <AUTHOR> https://techcrunch.com/2019/11/20/paypal-to-acquire-shopping-and-rewards-platform-honey-for-4-billion/ <comment><USER2> How does Honey make money, aside from the obvious data collection?

I know a few people who use it, and I've cautioned them in the past that I can't think of any savory business model that would make this profitable.

Is there one? Is it just tracking purchases for advertisers, or is there some other monetization strategy I'm missing? Their main site says they make commissions, but I don't know how to square that with the way consumers use it -- which is to find coupons from other sites.

Honey isn't like a credit card, is it? If I'm a retailer, I don't know why I'd pay a company money for them to scrape coupons from other sites -- and it's not like Honey is going to stop scraping coupons for my products if I don't pay them money, right?

<comment><USER3> I've read that part of what they do is effectively steal affiliate referrals from other websites. Say you click on an affiliate referral link from a blog that takes you to retailers website. Normally that blog would get a cut of whatever you buy at that retailer. However, if you then use your Honey extension, their affiliate link takes over and gets credit for the sale. Honey can then give you a small discount that is a portion of their affiliate commission.

In some sense Honey can steal the affiliate commissions from blogs and other websites since you use Honey right before the sale.

<comment><USER4> They don't steal affiliate commissions.

They capture the most valuable sales--i.e., those made with the immediate intent to purchase--and direct those purchasers to the cheapest site in exchange for a commission.

It comes down to a question of what is more valuable to the seller. The blogger may have created the intent to purchase _the product_ but Honey created the intent to purchase from the specific _seller_. And to the seller, that is far more valuable, especially as a lot of Honey-generated sales may have been sales that would have otherwise gone to competitors.

<comment><USER5> If Honey is inserting themselves between the blogger and the seller and then pocketing the commission, how is this not "stealing/hijacking" the commission?

<comment><USER6> I have no special knowledge about Honey, but I think the distinction being made is that Honey redirects them to a _new_ seller that offers a cheaper price, essentially poaching the customer. The blog's affiliate never makes a sale in the first place so of course it never pays out.

For the blog, the outcome is the same as if you took the time to price shop manually and ended up picking a different retailer. Honey's just automating that process.

<comment><USER7> No, that's not correct. You can get rewards from the page you're already on, whether it's the cheapest or not. You're not redirected and you're not incentivised to switch the retailer.

I'm getting their points from doing online grocery order directly from the supermarket site for example.

<comment><USER6> But is that superceding another site's affiliate link, or did you just go straight to the website yourself?

<comment><USER7> I'm going directly to the website.

<comment><USER8> How do they (Honey) know, though?

<comment><USER9> It's a browser extension.

<comment><USER10> Ok, I get how they do technically, but how the shops let honey insert they affiliate id and take a cut when the user has come directly from a newsletter?

</comment></comment></comment></comment></comment></comment></comment></comment></comment></comment></comment><comment><USER11> I pulled the Honey extension a while ago to poke through it in order to better understand it and the first interesting thing I found is that despite the Google order that they'll no longer allow obfuscated Chrome extensions[0] the Honey extension is still - a year later - a large 2MB+ Javascript blob (webpack compiled and minified) [1]

I've been meaning to go back into it to figure out what exactly they're doing but never found the time

$4B cash on an extension that is at the mercy of Google and it's ever-changing rules and sporadic enforcement seems a risk

[0] [https://blog.chromium.org/2018/10/trustworthy-chrome- extensi...](https://blog.chromium.org/2018/10/trustworthy-chrome-extensions- by-default.html)

[1] [https://robwu.nl/crxviewer/?crx=https%3A%2F%2Fchrome.google....](https://robwu.nl/crxviewer/?crx=https%3A%2F%2Fchrome.google.com%2Fwebstore%2Fdetail%2Fhoney%2Fbmnlcjabgnpnenekpadlanbbkooimhnj%2Frelated)

<comment><USER12> AFAICT, Google allows minified extensions, just not obfuscated ones. A quick browse through the Honey source code suggests to me that they are appropriately minifying and not obfuscating, because many of their variable names are comprehensible.

<comment><USER13> > appropriately minifying and not obfuscating, because many of their variable > names are comprehensible

Wouldn't most scripts run through a minifier have incomprehensible names?

<comment><USER14> There are also JS maps which allow you to download the obfuscated blob but still view more or less what is the original code; used for debugging React/JSX code, for example.

<comment><USER15> Outside of OSS, these are not frequently shared with the public. Is Honey's?

</comment></comment></comment></comment></comment><comment><USER16> $4 billion acquisition price / 17 million monthly active users [0] = $235.29 per active monthly user

[0]: [https://investor.paypal- corp.com/node/10556/pdf](https://investor.paypal-corp.com/node/10556/pdf)

<comment><USER17> Couldn't you basically start any website and pay users $200 and get as many users as you want?

<comment><USER18> That's literally what PayPal did. They gave users $20 if you created an account. Over time, they lowered it to $10 and then $5. The program cost them ~$70m, but let them grow at 7-10% / day. They went from 800k accounts in March of 2000 to 4m in September, and then 11m in September of 2001.

<comment><USER19> Reminds me of the Monese rush my colleagues have. I heard they're giving referral money to both the inviting and the invited. So far, I've seen only the person who actively invites people to actually use it, because no one else actually needs it in the heavy presence of Revolut in our market. Basically, if you give away money, make sure people are actually using the product

</comment></comment></comment></comment><comment><USER20> If you use Edge on Android, Honey is a built in extension, but not enabled. Go to settings then coupons to see it lurking there. Thought it was weird that Microsoft would partner with such a weird company. Having a deal with Microsoft may have given them Street cred.

<comment><USER21> Looks like pay to play worked for them.

</comment></comment><comment><USER22> Feel like a lot of people don't understand what business Honey is in. And a lot of the times they're not even familiar with the whole lineup of Honey products. Knowing someone's intent to purchase is very powerful. You're literally giving information about what you want to buy, what price you might buy at etc. Plus deals, coupons, price drops etc make manipulation really easy. $4B might be a bit too much but still, this adds a lot of value to Venmo. I'd say it was a good buy! But yeah people calling it a scam etc. are unaware of the company. Maybe because they weren't as publicized as Bay Area companies or didn't raise too much money

<comment><USER23> You don't understand how fickle technology is and how fickle users are. It's a browser plugin, it takes 2 seconds to uninstall. This entire company could disappear in a flash if something about the plugin ecosystem changes, or if e-commerce habits change to be more mobile oriented. They have absolutely 0 stickiness. Most of their users probably installed the plugin during their initial marketing push and have forgotten to turn it off.

</comment></comment><comment><USER24> That might be one of the best exits you could hope for as a founder or startup employee. Very little money raised to get to that valuation.

</comment><comment><USER25> Pertinent data points from the article:

> $4 billion, mostly cash

> 17 million monthly active users

> 350 employees

> profitable on a net income basis, 2018

> raised $49 million from investors

</comment><comment><USER26> I know it's apples and oranges, but when I compare this to the Instagram acquisition (1B) in my head, I'm truly stunned.

<comment><USER27> A lot of people agree that Instagram was sorely underpriced and was a steal for fb

</comment></comment><comment><USER28> CamelCamelCamel had no idea what it was worth, Retailmenot missed the boat, wikibuy can now market itself for 4B to Square or something.

<comment><USER29> Wikibuy was already acquired by Capital One.

<comment><USER30> What about Wikibuy is a wiki?

<comment><USER31> Wiki means fast in Hawaiian.

It came to be synonymous with online community editable websites for information.

But it's original meaning is from the Hawaiian phrase "wiki wiki" which means quickly.

So it makes sense. Quickbuy.

<comment><USER32> that's the origin, but not exactly what the contemporary computer meaning is (which is more like "crowd-sourced")

</comment></comment></comment></comment></comment><comment><USER33> We worked on an open-source price comparison for a while [https://github.com/OpsopiDev/extpricext](https://github.com/OpsopiDev/extpricext)

You might find this useful: if you are worried about what's happening with your data with an alternative like Honey, or you actually want to compare prices while shopping on Amazon (which clamps down on anyone trying to offer price comparison or price history graphs)

Please note that this is quite rough, and can do with a number of feature improvements (we haven't had the time to get back to it)

<comment><USER34> you can get price history graphs from CamelCamelCamel for Amazon products

</comment></comment><comment><USER35> One of their early employees did an "Ask Me Anything" on Reddit about 5 years ago. It is pretty interesting. [https://www.reddit.com/r/IAmA/comments/1vjj51/i_am_one_of_th...](https://www.reddit.com/r/IAmA/comments/1vjj51/i_am_one_of_the_developers_of_a_popular_chrome/)

<comment><USER26> > data collection companies that have tried to buy user data

> We turned them all down.

Guess that didn't last long.

<comment><USER36> I mean, whenever a company says they dont sell user data, they just mean they haven't found a price they like yet

</comment></comment></comment><comment><USER37> Even if the data is highly valuable and it's not losing money, I don't see how it's worth $4B with 17M users. Sounds off by like x5

</comment><comment><USER38> I thought honey was a pure scam, it's not?

<comment><USER39> They are EBates, without the cash back. They just auto-plug coupons into coupon code forms and take the referral money.

<comment><USER7> Technically without the cashback. In practice you still connect honey gold which converts into vouchers, so it's really like 1-2% cashback.

<comment><USER39> Interesting, didn't know about that aspect of Honey!

tbh, my experience with EBates (and promo codes in general) is that retailers hardly run promo codes anymore. It seems most codes now are individualized, probably as a reaction to the adoption of tools like these.

</comment></comment></comment></comment><comment><USER40> Honey sponsors a lot of youtube personalities. I remember Mr Beast talking about them. Seems like it paid off.

<comment><USER41> Yeah they sponsored a ton of Yes Theory videos as well. It always felt a tad off, but you're right, it worked.

<comment><USER42> They even went beyond sponsoring YouTubers, and hired a few (like LinusTechTips) to star in ads [https://www.youtube.com/watch?v=dOVe0ysXRjM](https://www.youtube.com/watch?v=dOVe0ysXRjM)

</comment></comment></comment><comment><USER43> > $235 per active monthly user

I, for one, laud PayPal's bold move to acquire such a large future tax write- off.

</comment><comment><USER44> How is Honey worth even remotely close to 4B. It is a coupon aggregator in a browser extension?

<comment><USER45> For one thing, userbase (see other replies), for another, there's too much cash floating around looking for good ROI, thanks to governmental policies.

</comment></comment><comment><USER46> Can someone with a better understanding of Honey's business explain why it's worth $4B?

<comment><USER47> $100mil+ in revenue. 60-70% probably goes to 300 people payroll. I guess projected numbers are amazing.

<comment><USER21> And the rest +vc money on ad's and paid installs. What the heck did PayPal buy?

</comment></comment></comment><comment><USER48> $235 per active user, and a mostly cash deal.

That sounds like one of those dot-com's deals.

</comment><comment><USER49> Honey permissions in Safari Browser: 1\. Can see all webpages in browsing history 2\. Can read sensitive information from webpages, including passwords, phone numbers, and credit cards on all webpages

<comment><USER50> That's the standard warning for extensions that inject their scripts on every page.

</comment></comment><comment><USER51> As others have mentioned, at first sight, this seems like a crazy valuation at $235.29 per monthly active user. But customer acquisition costs for financial products can be a lot higher than that. Honey is close to the payment process, this must be very valuable to PayPal, maybe because it gives them a clear advantage over other PSPs or because they can offer merchants another way to increase revenues and customer satisfaction. The tech might also provide an easier way to enter new markets since it would distinguish PayPal from other payment providers, i.e., entering a new market as the payment provider that's secure and lets you save money.

</comment><comment><USER52> How rich will this make Honey employees? Especially the early ones?

<comment><USER53> The co-founders will be billionaires. Early employees will be millionaires. The earliest probably high 8 figures.

</comment></comment><comment><USER54> Honey is very similar to the ad programs we had during the early 2000s. People used to get paid for clicking on ads. Now the same idea is repackaged and used to gather browsing data and it's worth 4billion? Why don't companies look at the downside before buying these? One single privacy issue will kill the whole product. This is like buying a new car, PayPal already has Lot less than 4billion in its hands.

<comment><USER55> When I was a young teenager, I remember using one called AllAdvantage (IIRC). I believe you earned money by simply having the extension open while you browsed. Cash out minimum was supposed to be $20, but once I hit that mark, the minimum all of sudden changed. I never got my money.

</comment></comment><comment><USER56> Isn't this just a chrome extension that shows up in ads everywhere?

</comment><comment><USER57> there's an amazon app extension that does something super similar to this. "Amazon Assistant" \- [https://www.amazon.com/gp/BIT](https://www.amazon.com/gp/BIT)

</comment><comment><USER58> So will they now ban people from using Coupon's based on their political beliefs too?

</comment><comment><USER59> In what world is Honey worth 4b?

<comment><USER60> Winnie the Pooh

</comment></comment><comment><USER61> A new high water mark in "they paid $x for a company I never heard of?!?"

</comment><comment><USER62> One scummy company acquiring another.

</comment><comment><USER63> I'm more amazed people still use Paypal in today's society.

<comment><USER40> Venmo, owned by paypal, is very popular in the US. People use to split expenses among friends.

<comment><USER64> It's so odd, because Venmo is both newer than PayPal, yet limited in the same stupid ways PayPal is (multi-stage xfers), which Square Cash avoids entirely.

It's perplexing to me that Venmo ever caught on.

<comment><USER65> Network effects. Square Cash is vastly superior but Venmo is the incumbent so it's hard to tell your friends "no, I have this _other_ cash app you should install instead"

<comment><USER66> Hence the slogan "we're not using the other apps anymore" [https://www.reddit.com/r/FriendsofthePod/comments/8pgbpq/wha...](https://www.reddit.com/r/FriendsofthePod/comments/8pgbpq/whats_the_other_apps_in_the_cash_app_ad/) [https://twitter.com/square/status/968602892646023169?lang=en](https://twitter.com/square/status/968602892646023169?lang=en)

</comment></comment></comment></comment></comment><comment><USER29> Reading these comments has actually made everyone in the room less intelligent.

<comment><USER29> You may downvote me all you wish, I stick by my comment. haha. These are really bad takes.</comment></comment>


The Competition Myth - <AUTHOR> http://www.intercollegiatereview.com/index.php/2015/02/02/competition-myth/ <comment><USER2> I dutifully read the CS183 class notes as they were posted, and agree with 99% of the content. This seems like an ultra-abridged version, with a couple bizarre quirks:

 _" God does not exist"...is untrue_

 _If you're questioning Darwinism...you will get in trouble_

Seriously? I am disappointed.

<comment><USER3> Disappointed that he doesn't agree with you? Why?

<comment><USER2> Disappointed because these statements taken together seem to suggest that Thiel is a creationist. The best analogy is probably Kary Mullins. I like a true iconoclast more than most, but at some point contrarian beliefs just venture into inanity. Past achievements do not excuse present stupidity - although, sadly, they often enable it.

<comment><USER3> I can't help but think you're proving his point. The question he posed was "What important truth do very few people agree with you on?" and the relevant quote preceding the reference to God is this:

> The reason it is hard to answer in the interview context is that the correct > answer is one that the person asking the question is unlikely to agree with.

The question is personal. There's no wrong way to answer it yet we proceed as though there are only a few right answers. How does that happen? Well, what might happen if I were to give an answer that sounded like a creationists answer? You might be disappointed, associate my thinking with Kary Mullis, and call into question my intelligence as a whole. Conformity in this case gives me a more favorable option as I can answer your question in a way that has a high probability of being well received at the expense of an honest existence.

Thoughts?

<comment><USER2> Some questions do only have a few right answers.

I'm perfectly willing to grant him climate change - climate is very complicated and despite present scientific consensus, it is very possible that future discoveries will turn our understanding of the subject upside down. On the other hand, the theory of natural selection is firmly established by evidence (by experiment, even!) and any future corrections will come as Einstein's relativity came to Newton's mechanics - refinement not invalidation. To believe otherwise puts you on the same rational footing as HIV denialists, 9/11 truthers, birthers, and alien abductees.

It's not enough to be an iconoclast, you need to be an iconoclast with good critical thinking skills.

<comment><USER3> The contentious bit for me is that it's convenient for you to grant him climate change because your understanding of that issue is in close proximity to his understanding. Breaking conformity would require a willingness to hear out ideas that make you uncomfortable as well. Beyond that I totally agree with you.

<comment><USER2> This really has nothing to do with me or anything subjective to me. In objective terms, the theory of anthropogenic global warming is significantly less well established than the theory of natural selection. This is not to say that climate change theories are not strong, but natural selection is almost as firmly established as Newton's law of gravitation. Anyone with a microscope and a petri dish can demonstrate it.

Crazy ideas do not make me uncomfortable. Crazy _people_ make me uncomfortable because you never know when god/the prophet/the voices/etc are going to say "kill all the green eyed ones".

</comment></comment></comment></comment></comment></comment></comment><comment><USER4> Interesting ideas, but the economics are bogus. Saying that successful companies avoid competition is like saying Joyce Gracie avoided competition in the early days of the UFC. Being so much better than you opponents that you beat then easily is not avoiding competition.

When people praise competition they are praising the conditions under which all people are able to complete for the same market ex ante. If one company develops a technology that renders others unable to compete, then they become a monopolist ex post. But it is the ex ante competition that allowed then to enter that market in the first place

<comment><USER5> > _Interesting ideas, but the economics are bogus. Saying that successful > companies avoid competition is like saying Joyce Gracie avoided competition > in the early days of the UFC. Being so much better than you opponents that > you beat then easily is not avoiding competition._

Err, successful companies avoid competition avoid competitions in lots of other ways than "Being so much better than [their] opponents that [they] beat then easily".

Those range from:

1) buying out any startup that might threaten them in the long run

2) buyout out political influnce and having laws passed that stiffle competition

3) bullying their customers or suppliers (e.g. Microsoft making specific demands from OEM vendors in the nineties, "or else...")

to...

4) downright murdering business rivals in less fortunate countries (Latin America, Balkans, etc).

<comment><USER6> I consider companies competing for the ability to do those things. Rockefeller didn't just buy all the oil, he competed the shit out of everyone and then bought all the oil.

<comment><USER5> > _I consider companies competing for the ability to do those things._

Yeah, just not in the traditional "free market" economic view of competition narration.

Instead in a "harmful for honest businessmen, jungle law" way.

</comment></comment></comment></comment><comment><USER7> "Answers like "God does not exist" or even "The education system is screwed up" (the first one is untrue, the second one is true) are bad answers because they are conventional answers."

"If you're questioning Darwinism or climate change, you will get in trouble."

kthxbye..

<comment><USER8> Really, in America, "God does not exist" is conventional wisdom? According to a 2007 Pew Research study[1], 71% of Americans have a belief in god. So if that's "conventional wisdom" then Peter Thiel's definition of conventional is about the same as my thoughts on PayPal's definition of "fair dispute resolution".

Questioning the theory of evolution (hint, it's not an -ism because it's not an ideological position, unless we're talking about the widely discredited concept of 'social darwinism') or the data on climate change is perfectly fine, but if you'd rather sling rumor and innuendo instead of backing up your claims with evidence then don't be surprised when people think you're a crank.

[1] [http://religions.pewforum.org/pdf/report-religious- landscape...](http://religions.pewforum.org/pdf/report-religious-landscape- study-key-findings.pdf), full study at [http://religions.pewforum.org/pdf/report-religious- landscape...](http://religions.pewforum.org/pdf/report-religious-landscape- study-full.pdf)

</comment></comment><comment><USER9> I wonder why he deliberately chose to bat the hornet's nest with the "God does not exist" line. I always thought he was a very unassuming christian.

That being said, he doesn't really push anything new here - we've seen plenty of anti-college rhetoric, and the anti-competition theme strikes me as contradictory to his person (even today). Willfulness, deliberation - all the qualities that make even a 'heterodox' person successful all come from some innate obsession which can really be cast as a sort of personal competition. One doesn't create something for nothing - even if the end goal is to have created the thing, or to have done it for it's own sake - even this desire is born out of some inner need that can be cast as competition. I think what Peter and a lot of other leaders in the valley are pushing these days is the ability to be cautiously obsessive. What he calls anti-competition and anti- conformity is really just the ability to stick to one's vision despite initial signals and hardships that from the world that might make the greedily- optimizing man cast his die on a table where the odds appear better.

<comment><USER10> There are plenty of errors in the essay - the first being the idea that competition is good for a company. It's good for _society_. Monopolies are good for companies, to the detriment of society, which is why there are anti- monopoly laws.

The whole essay reads as though the author's in his personal bubble, with the walls painted with his fantasy world. One such example is his belief that startup founders are basically Aspergers and can't hold a social connection - and yes, he uses the weasel word 'many' rather than 'most/all', but clearly he thinks that it's common enough to be an 'indictment on society'.

Then he finished up with silly libertarian extremism; hand-wringing over why it's harder to develop pharmaceuticals (where a bad product can kill people or leave them in lifelong pain) over a video game company (where a bad product takes a few dollars out of your pocket and bores you for an hour), because "ebil gummint regulations".

<comment><USER11> I'm not a libertarian, but it seems to me that making drug certification take 15 years and a billion dollars kills more people than any bad drug ever could. If you disagree, please point me to _anyone, anywhere_ doing a cost-benefit analysis of preventing bad drugs vs discouraging new drugs, and concluding that current FDA policies are even remotely close to optimal. From where I sit, it looks like these policies are over-cautious because deaths from bad drugs are much more visible to the public than deaths from non-existent drugs, even though the latter outnumber the former by far.

<comment><USER10> I'm so tired of people arguing that drugs are only bad if people die from them. Why is something considered bad only if it has a body count? I guess thalidomide isn't an issue in your book, because even though people end up without limbs for life because of it, they're not dead so it doesn't count.

 _and concluding that current FDA policies are even remotely close to optimal._

HOLY FUCK, what a MASSIVE rephrasing of what I said. You're going to need Mjolnir to force those words into my mouth. Where the fuck did I say the FDA system was optimal? I said comparing pharmaceuticals to video games and demanding that they have the same level of regulation is stupid.

It's clear you have zero idea of what happens when pharmaceuticals go bad; anyone that talks of bad drugs only in terms of dead people really, _really_ needs to educate themselves on the topic. The idea of doing that study you demand is nonsensical. I'm also not sure of why I'm the one who has to present it; if you want to change the status quo, you need to find your own references.

And if you did actually know anything about pharma, you'd know that 'wonder drugs' pop up all the time, only to have crippling side effects found later in testing - sometimes the 'wonder drug' actually turns out to be horrific ([http://en.wikipedia.org/wiki/List_of_withdrawn_drugs](http://en.wikipedia.org/wiki/List_of_withdrawn_drugs) has a few - and this is for released drugs). The problem is that "the feds won't release wonder drug X" is a better headline than "unreleased drug X has horrible side-effects, but they were found before the drug was okayed".

It's also worth mentioning that pharma started out with 'video game' levels of regulation, and it was the life-altering errors that brought in regulation.

TL;DR The FDA process may not be optimal, but they're a shitload better than no regulation.

</comment></comment></comment></comment><comment><USER12> IMO competition is what drives our species. We've evolved this far because we would have been extinct if we didn't and we had to compete with other species for it. Same goes for today's world. On the other hand, competition is one of the most powerful motivational tools for many people. I wouldn't be where I am today if there was no competition in my life.

<comment><USER13> Look at you, your legs, your nose, your fleshy hands, exposed ears ands eyes, soft belly. All soft targets, easily killed, unlike a snake, rhineceros or any animal with at least claws or fangs.

You wouldnt survive a week or two if you had to compete with other animals and other humans.

Humans are the way we are because of co-operation rather than competition.

Humans are group living animals, we do not compete within the group or outside of the group - we co-operate so everyone, the group, can survive.

<comment><USER14> Trivially, every species is in competition with every other for finite resources to use to perpetuate their gene line.

> Look at you, your legs, your nose, your fleshy hands, exposed ears ands > eyes, soft belly. All soft targets, easily killed, unlike a snake, > rhineceros or any animal with at least claws or fangs.

Right. Which is why we have complex language and hands capable of fine motor skills and an innate ability to band together in groups to fight off everything else.

Humans doubled down on the "big complex brain" strategy, then doubled again, then kept doubling until we were making marks to keep track of who owned how many cattle. It was a very short step, evolutionarily speaking, from that to the smallpox vaccine, Neil Armstrong, and the _Eroica_ symphony. It was hardly a step at all, in fact.

Our brains were so successful that we didn't die of not having claws, fangs, or the ability to reliably have multiple offspring at once. In fact, human heads are pushing up on the size limits of what women can safely push out of the birth canal without endangering either mother or child.

In our way, our competitive strategy is just as specialized as a poison dart frog's: Whereas the frog is too toxic to eat, we're too smart to take down.

 _The fact a lot of our smarts comes down to the ability to cooperate within the species does not negate the fact we 're competing with other species._ Not so much now, perhaps, but I'd consider our competition with the polio virus to be rather heated. (Fairly one-sided, but heated.)

<comment><USER13> I dont see how your post is arguing against what I wrote in parent.

You're not so smart so you cant be taken down by yourself, your brain doesnt protect you from claws and fangs. Only as a cooperative group are we strong. Not when competing, but when cooperating.

Our brain is the cooperation centre. It has this capacity to feel with others, be it animals or humans.

<comment><USER14> > Not when competing, but when cooperating.

Cooperating to do what? To compete against other species and groups of humans!

<comment><USER13> You're showing a very clear sign of stubbornness. An state of mind which is unwilling and possibly unable to see the world from a different perspective. A closed mind. Go check it up.

To answer your question; no, not to compete, but to find the answer to the meaning of all life and explore every corner and creek of this common planet, and together, to enjoy that.

<comment><USER14> You're projecting your emotions on to me. What would it take for me to change your mind?

Oh and good luck exploring the world if your species goes extinct because it got outcompeted.

</comment></comment></comment></comment></comment></comment></comment><comment><USER15> This is quite bogus.

Competition is a very real, and very lucrative phenomenon.

A famous & classic counter-example of how being more competitive than your peers wins out is Toyota.

Toyota won out in the 80s and 90s because their cars were priced more competitively, and were of a higher quality. They didn't make fundamentally different products, they just did it _better_.

One company practically euthanised both the US and the UK's car manufacturing industry, by producing the same product better.

Similarly, Google did web search, just like Ask Jeeves, AltaVista, Yahoo! They became dominant by doing it _better_ \-- by offering better results, faster, and therefore out-competing their peers.

For yet another example, take Apple's return to fame. They did it by taking the portable music player, something ostensibly already done by Sony and Creative, and making it significantly better than their competitors. They also sold an image to go with it, but competing on terms of marketing could be considered a valid competition strategy.

Consider Tesla; although the story isn't played out yet, Tesla is looking strong. Not because they provide electric cars (though that helps), but because the cars they provide are more economical, comfortable, safe, and so on.

Ironically, one of Theil's own businesses is a counter-example to his own claim: PayPal. We could already get money from one person to another, or from ourselves to merchants. PayPal just did it better, and therefore out-competed the banks for consumer and SME money transfers.

Time and again, businesses win, not by being the first in the field; but by looking at an existing field critically, and considering how to improve it. They then enter the field and out-compete the incumbents, beating them at their own game.

<comment><USER16> I think the point of this piece is, very good business out-compete the incumbents _and then_ go so far ahead that they become de-facto monopoly thanks to quality. As correctly pointed out in the article, Google did that to search. I'd also say they did that to webmail - as much as GMail has its UX problems, it's still miles ahead of everyone else wrt. UI and spam filtering. And Tesla, since you mentioned it, entered the market with one of the best cars available, electric or not, and it barely has any competitors in the electric market.

So it's not about being first, it's about being so good that you become a de- facto monopoly.

<comment><USER17> Also by preventing any competition from forming, locking in your users and preventing them from leaving by taking their data hostage in proprietary services and formats, buying any possible competitors and doing price dumping from other services to make competition entering the field economically unviable.

As seen done by Amazon, Google, Apple and other large companies. Competition is awesome, but unfortunately someone "winning" the race can quickly lead to them controling enough of the market to prevent good competition from forming.

<comment><USER18> Look back in history a few years. Everything you said was said with utter conviction about IBM in the 1980's, for example.

</comment></comment></comment></comment><comment><USER19> Conformity is more driven by our need to put food on the table(not some egotistical peer to peer competition). I'm sure many people would love to chase their radical notions and wear a bathing suit to work. But that will get you fired...

This essay feels like Peter needs to step out and speak with real people who don't have a bank account to fall back on.

More interesting question, in a post-scarcity society where everyone has their basic needs met, how does this effect conformity?

</comment><comment><USER20> Why some blogspam with verbatim copies out of Thiel's book is upvoted?

<comment><USER21> Did you miss the "By Peter Thiel" part right below the title?

</comment></comment><comment><USER22> I'm really surprised that someone like Peter Thiel interpretes competition only as conformistic imitation. Business competition is about business results not the product itself, so the tactics for competing are many.

</comment><comment><USER23> This logic quickly turns sour when fear of competition translates into all kind of crooked practices to prevent it. Monopoly isn't good, no. Because it's easily abused.

I agree with the rest though. Progress requires chaotic element of "thinking out of the box".

</comment><comment><USER24> This stuck out:

"Whatever you think of the morality of nuclear weapons, building an atomic bomb is a far harder undertaking than building a website."

I disagree, Mr. Thiel. In building an atom bomb you have the laws of nature as a guide. Those laws are fixed ahead of time and do not change through the project. When you are doing something wrong, there is exactly one ultimate authority which will tell you so unequivocally. That kind of absolute feedback has value.

On the other hand, making a web site? No one knows what it should look like ahead of time because it doesn't exist yet. The managers also don't know, and the feedback they give about the project along the way will be either intentionally or unintentionally misleading, misinformed, and wrong. They may be trying to spare someone's feelings by giving some positive feedback. Nature doesn't have those kinds of problems with perpetuating false information.

<comment><USER16> On the other hand, getting an a-bomb right requires actually following those rules. Websites are fashion. You can throw shit together randomly and still have a perfectly successful website - especially if you get your sales/marketing team involved in pushing it down people's throats. Nature doesn't tolerate bullshit. Web industry is in big part built on it.</comment></comment>


Keep two directories data in sync - <AUTHOR> https://github.com/karan10/Sync-Dir <comment><USER2> Rsync wrapper, good (not reinventing wheels). Perhaps passing through any additional arguments would be useful (e.g. --bwlimit).</comment>


Perl::Critic - Automatically review your code - <AUTHOR> http://perltraining.com.au/tips/2009-02-05.html

<comment><USER2> I'll just leave this here:

[https://github.com/illusori/emacs-flymake- perlcritic](https://github.com/illusori/emacs-flymake-perlcritic)

</comment><comment><USER3> This is essential for Perl programming, along with perl -MO=Lint -c <file>. The downside is that it is slow and takes away the fast turnaround times you're used from scripting languages, checking every file after editing (as you should) takes longer than compiling a Go program ...

<comment><USER2> I've been using "perl -tTW" along with "use strict; use warnings; use sigtrap;" before I found out about Perl::Critic, which works nicely with flymake ([http://www.gnu.org/software/emacs/manual/html_node/emacs/Fly...](http://www.gnu.org/software/emacs/manual/html_node/emacs/Flymake.html)). None of it has seemed to slow me down too much.

The thing about these tools (along with other checkers, warnings, errors, etc), for me at least, is they tend to be corrective. I learn not to keep making the same mistakes, if for no other reason that to avoid the "pain". This is just icing on top of the fact that these tools can be automated, especially to prevent code from being checked in or merged when it violates these checking systems.

</comment></comment><comment><USER4> You might have an error with syntax highlighter on your page, it's making a dialog box telling me it doesn't have a brush for perl

</comment><comment><USER5> For Debian/Ubuntu: sudo apt-get install libtest-perl-critic-perl

<comment><USER6> i dont see how the debian maintainers can keep up with cpan, just use cpan for perl

generally speaking, i find the centralized packaging system flawed ... because on the long term its unsustainable

cpan is decentralized by the way, because module makers package their modules themselves for cpan

<comment><USER5> I go back and forth on this. Aptitude seems more reliable in general than cpan, at least in the sense that cpan installations fail more frequently than apt.

Also I assume that cpan packages reflected through apt will be updated with apt-get update, while cpan has no similar update-all mechanism (AFAIK).

One advantage of using cpan is that if you're developing on a Mac and deploying on a Debian distro you can use the same commands on both systems to pull in the packages you need.

<comment><USER7> To update all packages use:

cpan upgrade /(.*)/

<comment><AUTHOR> That doesn't seem to work for me.

First, typing that in the shell gives me an error:

      zsh: no matches found: /(.*)/

So, I tried typing:

      cpan upgrade '/(.*)/'

Which at least kept my shell from trying to expand the last argument, but cpan complained:

      Warning: Cannot install upgrade, don't know what it is.
      Try the command

        i /upgrade/

      to find objects with matching identifiers.
      Sorry, install with a regular expression is only supported when unambiguous.
      Rejecting argument '/(.*)/'

So, instead at the shell I just typed:

      cpan

Then, at the cpan[1]> prompt, I typed:

      upgrade

That seemed to work.

<comment><USER7> Sorry meant the CPAN shell. Should have reproduced the prompt better. Also it does appear that the regex isn't required any longer. That's certainly nice.

</comment></comment></comment></comment></comment></comment><comment><USER8> Please tell me there is something like this for PHP or JS?

<comment><USER9> JSHint[1] seems to be the most popular JS linter, although I believe Perl::Critic to be the more powerful of the two tools. I've always appreciated how Perl::Critic allows you to write your own rules, and I wish JSHint was so customizable because I have coding standards I'd like to automate that don't exist in JSHint's options.

1: [http://jshint.com/](http://jshint.com/)

<comment><USER3> > I believe Perl::Critic to be the more powerful of the two tools.

It is quite limited by Perl's quirky syntax, unfortunately ("only Perl can parse Perl"). Last time I checked, it would miss e.g. all warnings for anonymous subs:

      # triggers "Subroutine "foo" does not end with "return" at line 5, column 1.  See page 197 of PBP.  (Severity: 4)"
      sub foo {
          my $s=shift;
      }

      # triggers no warnings
      my $x = sub {
          my $s=shift;
      }

This is a bug/limitation in PPI (which otherwise does a great job with the mess that is Perl syntax) ... I'd assume the various JS analysers can do a more thorough job.

</comment></comment></comment><comment><USER10> Anybody know a similar piece of software for C or Python?

<comment><USER11> For C, C++ or Objective-C check out the Clang Static Analyzer.

[http://clang-analyzer.llvm.org/](http://clang-analyzer.llvm.org/)

</comment></comment><comment> dj-wonk Q: What's the difference between writing Perl and taking a severe beating? A: Nothing. The wonder of Perl is that it helps you get the latter without needing any external assistance.

<comment> dj-wonk You downvoters are so uptight! Are attempts are humor against HN guidelines? Surely (or maybe not!) you can appreciate a good joke? Unless it hit too close to home, pun intended? (Disclaimer: I do not advocate taking a severe beating, Perl-inflicted or otherwise.)

<comment><USER12> I didn't vote on any of your comments here. Humor doesn't go all that well here, my take on that is that it is of course subjective, and a whole lot of it is quite a bit less original than maybe the commenter thinks (which turns it into a sort of noise).

</comment></comment></comment><comment> dj-wonk What's the difference between asking how to improve Perl code and Satan going to confession? The latter might have some chance of redemption.

<comment> dj-wonk Q: What's the difference between "better" and "worse" Perl code? A: [http://www.matthewsdiehl.com/wp- content/uploads/2009/01/rock...](http://www.matthewsdiehl.com/wp- content/uploads/2009/01/rock-hard-place-simpsons.jpg)

(I submit these slides in support of the previous rhetorical question: [http://www.oualline.com/talks/perl.pdf](http://www.oualline.com/talks/perl.pdf))</comment></comment>


Show HN: Overengineered Django side project - <AUTHOR> https://github.com/lopopolo/hyperbola <comment><USER2> What's the side project? I don't get it. Microblog and contact page isn't a side project.

<comment> knock-in Overengeneering a side project is the side project in this case

</comment></comment><comment><USER3> Maybe you wanna overengineer in some html "compression" (stripping out whitespace, I mean) and cache the result? :P

It's fun (not that your site needs it, it easily loads fast enough) Also, nice style - what were your inspirations for that? I like the kinda minimalistic, a bit neon-y styling :)</comment>


Citi issues stark warning on automation of bank jobs - <AUTHOR> https://www.ft.com/content/579c977c-6d73-11e8-92d3-6c13e5c92914 <comment> polski-g Paywalled.</comment>


Good Samaritan notifies owner of lost wallet via message hidden in bank deposits - <AUTHOR> https://www.theverge.com/tldr/2019/10/15/20915259/lost-wallet-bank-transaction-numbers-twitter <comment><USER2> Discussion and many other stories and anecdotes of similar and related incidents:

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

Other submissions of the same story, with little or no discussion:

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

[https://news.ycombinator.com/item?id=21250962](https://news.ycombinator.com/item?id=21250962)</comment>


Ask HN: How do you teach/introduce programming to your kids - <AUTHOR> This is probably too broad a question, but here are the things I have looked into and my initial reaction.
1. Scratch: Kids have gone through that - I am looking for something where code is written in a text editor.
2. Pico-8: This is Lua. I wish the editor was not pixelated and I am not sure if the 32K limit is a problem.
3. Python: Python for kids books, pygames: After the initial tiny programs, the next step seems too complicated for me to explain. pygames is a bit behind (was difficult to get it working).
4. Flutter: They start with class, async/await. Code (since it builds a UI) is too nested / hard to read.
What has worked for me somewhat
1. codecombat.com: At least they like this / stick with it (but too much time it spent in understanding/working on game specific API and its quirks).
2. teaching python on my own letting them download sample data files from kaggle.com and asking them to find avg age of a basketball player. Code is simple, fits in two pages, and does something meaningful. Although, I wish there were more there. Right now, I have to think of challenging but reasonable problems from that dataset.
Any feedback on the paid online courses out there? tynker.com ? udemy?
Thanks <comment><USER2> I'll say this from my experience as a coding kid. If you find your kids have programming interest don't treat them like children when they come to you for help.

I taught myself several languages when I was ~11 but my parents always treated my interest as a curiosity. When I went to them for help they bought me kids books. This held me back because it never went beyond the basics and never explained the fundamentals I was missing like algebra and pointer math. Almost all the kids stuff is "cookbooks" that will give you a working program without explaining why. My biggest breakthrough was getting "the Perl Bible" and a bunch of orielly books on Java for Christmas.

The best kind of teaching is 1:1 tutoriing. Assuming you know programming since you asked this on HN, I think the best thing you could do is train your kids personally as if they were in a CS101 course.

I would teach them just like you would teach an adult. The only difference is they're going to be missing some math and data structure basics. Find their gaps and fill them in, and I think you'll be surprised what they're capable of

<comment><AUTHOR> Thanks for your feedback.

</comment></comment><comment><USER3> You may want to look at previous instances of people asking similar questions [https://hn.algolia.com/?query=Ask%20HN%20teach%20programming...](https://hn.algolia.com/?query=Ask%20HN%20teach%20programming%20children&sort=byPopularity&prefix&page=0&dateRange=all&type=story)</comment>


Creating a Z-Wave Smart Home hub using a Raspberry Pi - <AUTHOR> http://raspberrypihq.com/how-to-create-a-z-wave-smart-home-hub-using-a-raspberry-pi/ <comment><USER2> Uniquely out of date as of today, actually: [https://home- assistant.io/blog/2017/07/25/introducing-hassio...](https://home- assistant.io/blog/2017/07/25/introducing-hassio/)

tldr; Home-Assistant, the system mentioned in the parent article, now maintains their own OS variant for the RPi that they recommend you install directly.

You don't have to, of course. You can still install Home-Assistant yourself on whatever distribution you choose.

</comment><comment> jon-wood If this is the sort of thing that interests you, and you happen to be looking for a job somewhere +/-3 hours from GMT, drop me an email. We're looking for good engineers at Neos to work on our connected home security system (we're also looking for people interested in building backend software for insurance, but that's somewhat less sexy).

We've got a Raspberry Pi based hub which sits in customer's homes communicating with z-wave devices, the software on there is currently proprietary but if you do buy a policy drop me a line saying you're from Hacker News and I'll turn on access to the MQTT broker running on the hub so you can play with integrating other things ;)

</comment><comment><USER3> Hey, cool! I've been tinkering together something custom using a VeraPlus [[http://getvera.com/controllers/veraplus/](http://getvera.com/controllers/veraplus/)] and a raspberry pi for the last couple of years. It stopped working a few months ago, and sadly I replaced my whole vera controller before realizing the problem was that the wall wart had degraded and was no longer supplying enough voltage. D'oh!

The Vera doesn't have wifi (well, it does, but it can't join a network!!!), but a regular old raspi can act like a wireless bridge, offering wireless access to the vera, and a sound card, and also a linux environment to run my custom rails frontend. Add in some location reporting via Tasker, and I have an announcement sound whenever an outside door is opened, and I have motion and light sensors that record video and upload it to my personal website, and it's all controlled intelligently based on when my wife or I are at home. I'm pretty proud of it.

<comment><USER4> Home assistant works beautifully with the Vera.

It's how I have it setup right now, and it was a great way to slowly move away from the Vera (at least as the UI).

</comment></comment><comment><USER4> I've been running Home Assistant (the software in the blog post) for a little over a year now. (started out on a raspberry pi, upgraded to an Intel NUC recently for more power, and to do more non-home-automation related things on it)

It's by far one of the most well-managed community-driven open source projects i've ever used.

All of the "components" are just small-ish python programs that contain mostly "glue" code, and they are required to use 3rd party libraries to actually implement the real work. This spreads the workload out across many repos in terms of breaking changes and help, and makes it much easier to contribute back to (you aren't contributing to a massive monolithic repo, you are contributing to a small 200 line python library with 20 stars on github, much less pressure!).

Because of this architecture layout, anything that has a python library that can be consitered part of "home automation" most likely has it implemented already. In my setup alone I have:

* chromecasts

* 2 different smart TV brands

* many zwave switches (run through a vera, not using zwave directly)

* many zwave door/window sensors

* multiple ip cameras

* a wifi thermostat

* a few IR controllers for "dumb" IR devices

* phone/device tracking (which keeps all the data stored locally)

* usps/ups/fedex package tracking and delivery notifications

* network speed monitoring

* have-i-been-pwned monitoring and notifications

* weather

* a 3d printer's completion percentage

* a google home

* an amazon echo

* ups runtime monitoring

* multiple esp8266 based sensors and switches for various hacked together things

* and more that i'm probably forgetting

And all of it is processed locally (when possible), stored locally (in a postgresql database), secured via TLS, available on any browser anywhere, and on a server I maintain and manage (with the help of some automations I created in hass itself). And speaking of automations, it's python, so they are basically unlimited. I have an automation that will notify me on my phone if it will start raining at my phone's current location before I can get home, and only while on my motorcycle.

It's not perfect (it's pre-1.0 software, so there are still semi-frequent breaking changes, and configuration is mostly manual still via yaml files), but it's been a such an amazing experience.

Home Assistant is the reason why I love IoT.

<comment><USER5> I like the architecture of HA as well, but is there a way to use the HA level interface but making it program driven, as opposed to config-driven?

I know python...I don't know all of the config variables for the yaml language they encourage you to write

<comment><USER4> They recently introduced "straight python" components i believe, so you can just write in that.

Additionally there are multiple apis you can use to interface other than the front end at [https://home-assistant.io/developers/api/](https://home- assistant.io/developers/api/)

Also the HA front end just calls those backend apis, so if you "emulated" those you could use it as a drop in for some other backend (in theory)

<comment><USER5> Thanks, I'll check that out!

</comment></comment></comment></comment><comment><USER6> I've been thinking how much I hate Iris and would love to replace it with something else, and I've also been wanting to play with a Pi

It's amazing how awful the state of home automation is on the commercial side right now

</comment><comment><USER7> I think Z-wave has been or is in the process of being superseded by just using Wi-Fi. I do not recommend investing in Z-wave gear.

<comment><USER8> Unless you know something I don't, I think you're completely incorrect on both counts. Z-Wave isn't going anywhere, just a few years ago the Z-Wave alliance published Z-Wave+ and more and more consumer devices have been coming to market. They're all over Home Depot (among other large retailers) and backed by very large brands [0]. All major hubs support it, and z-wave offers many specific technical and security advantages over WiFi with respect to automation.

Z-wave has a much smaller threat surface area and requires no internet. In fact, it requires no central controller at all, as you can have controllers in every room for scene automation. The internet connected hubs bring a lot of shiny features to the table, but they're completely unnecessary for local automation. Even better, communication forwarding is part of the design so you can have a controller hundreds of meters away from the thing you want controlled and as long as there are a couple of devices on the mesh between them it will work. We've seen how great WiFi repeaters are... plus WiFi on battery is basically a deal breaker, whereas you can have z-wave devices last two years on some AA batteries.

Z-Wave and Zigbee are both so much better than WiFi at automation that I can't even fathom why someone would suggest the opposite.

[0] [https://en.m.wikipedia.org/wiki/Z-Wave](https://en.m.wikipedia.org/wiki/Z-Wave)

<comment><USER7> History has not been kind to proprietary networking protocols, and it's winning at scale rarely about just technical advantages. I know they have opened up more in the past year or two, but it may be too late.

I refine my comment to capture BTLE as one of the protocols going forward, in addition to wifi.

<comment><USER8> I'll grant you BTLE and/or something more open ascending over Z-Wave or Zigbee, but I've got to imagine that's years out. If I was picking something for the next 5 years I'd still pick Z-Wave over the WiFi IoT horror show.

<comment><USER9> Also, there is a lot of inertia in the home automation space. Hue is all Zigbee, and is one of the biggest off the shelf IoT platforms right now. The door lock space is mostly z-wave. Friends that I have that have a mix of these things are more and more putting their energy into z-wave as it's far more reliable than wifi, having the advantages of the mesh network, and living in a non crowded spectrum.</comment></comment></comment></comment></comment>


Always Be Journaling (2018) - <AUTHOR> https://letterstoanewdeveloper.com/2018/12/14/always-be-journaling/ <comment><USER2> I did that for a good 3 years, writing every day. Started out as a few sentences, and then turned in to bigger depending on how I was feeling that day. I absolutely love(d) being able to look back and read what I wrote and what happened on those days.

It did get difficult at times to force myself to write. Many times I hated having to open up the computer and use that to type. On the other hand, typing was much better than writing because of the amount of words I was able to get down.

In the article, it says to write about work and side projects, and I get that the article is career based, but really, skip that, don't write daily about work and side projects. If you're journaling, write about personal life. That's what's important to have logged.

Something happened that caused me to stop, which sucks because it almost feels like I've lost the last 3 years of my life because I don't have anything written.

<comment><USER3> > I absolutely love(d) being able to look back and read what I wrote and what > happened on those days.

Did you actually look back or just liked the idea that you could? If you did what sorts of things prompted you to do so? I am asking because I have journaled on an off but never had the impulse to go back and read what I wrote.

<comment><USER2> I did read back and look more than a few times. One was what I wrote when a person, wondering what I said then. Other times trying to see the first mention of an experience.

I definitely didn't go back and read sequentially though, because mostly I didn't do anything interesting day to day. But I've found that sometimes things stick out that I didn't realize when I was writing it. By the end of that stretch when I did write daily, I got very in depth because I was curious what would be of interest later.

<comment><USER4> I've used DayOne for journaling for 6+ years, with varying degrees of consistency. One of the things I like about that is a) the ability to attach photos, and b) when I open the app it shows me all of the entries from the current day, over the years. Lots of little memories that I'd have forgotten if I didn't have that ongoing reminder.

</comment></comment></comment></comment><comment><USER5> The latter part of this article presents a much more structured regime than I think is necessary. The crux is, write shit down. I carry a moleskine notebook and scribble my thoughts. I don't doubt that the more rigorous approach suits the author.

On reading the title, I thought "oh jolly good this will be a solid discussion of log structured filesystems, RDBMS transaction streaming, and double entry book-keeping etc" so I am twice nonplussed.

<comment><USER6> After evaluating tools and stuff, finally settled with Dropbox synced plain markdown files. I have a generic file per week (making one per day was too much hassle), also separate files for specific projects.

I also recommend G.M.Weinberg's the Fieldstone Method on Writing.

</comment></comment><comment><USER7> There's a nice command line tool for keeping a journal that some people might find useful. [https://jrnl.sh/](https://jrnl.sh/)

You just type in jrnl followed by your entry, that's it.

<comment><USER8> This is so helpful, thanks!

</comment></comment><comment><USER9> I've been journaling to varying degrees for many years. My digital notebook goes back to late 2002 with the launch of OneNote. Millions upon millinso of words about side projects, work, life, career, things I am reading or watching. My physical notebooks/sketchbooks go back decades, one a year, crammed full of sketches, ideas and small notes about stuff that I couldn't even tell you what I was thinking at the time.

My Wordpress blog which started as a plain text based website in 1993, and has slowly accumulated, intermittently, written notes (the ones that make sense) from my notebooks that go back all the way to the 1980s and earlier.

Journaling has helped think through projects, career trajectory, travel plans, working through depression, personal loss and even what coffee I like.

Journaling (not a diary) isn't for everyone, but it is something that works for me.

</comment><comment><USER10> Has anyone here ever refrained from being _too_ honest in your journaling, out of fear someone read it some day?

<comment><USER9> I have two sections in my digital notebook that are off limits, encrypted and password protected (with passwords I never share and 2FA) that contain "Dark Thoughts" and "Bad Thoughts About People." Dark Thoughts section is where I journal about some internalized toxic negativity, usually fabricated by some mild background depression, running through my brain. Dark Thoughts section lets me compartmentalize and objectively examine those thoughts. Bad Thoughts About People are where I put all those notes I might think about a person in my life that you don't necessarily want to voice, but you need to get the thought out of your head so you aren't dwelling on it.

<comment><USER11> Is your journal on your laptop? What if you are asked to decrypt at the airport?

<comment><USER9> I can happily decrypt the laptop the airport. Doesn't mean all the data in the laptop is decrypted. It's way too much data for a non-forensic team to sift through without concerted effort. My house has multiple doors with multiple locks. Just because you made it past the front gate ("please unlock your laptop") doesn't mean you got in to the fire safe inside the locked office inside the locked house. And so you opened the very obvious fire safe where we keep a little cash and some spare keeys and you looked inside. Congratulations, there's four other safes in the house that aren't in plain sight with different combinations, not including all the other stuff that is locked up securely. Just because I entered in an easily recalled and easily typed password that gives you access to 4TB of data, it doesn't mean you can easily access all of that 4TB with the same set of keys. It'd take you "quite some time" to fish through to even find the encrypted data.

</comment></comment></comment></comment><comment><USER12> On my I3 window manager I start emacs in a hidden floating window that I can bring to front with a one handed hotkey (Super-< is very convenient in my keyboard layout).

Then I use org-modes org-capture to either capture into journal.org multiple times daily or notes.org when having interesting ideas.

I use org-rifle to search through the journal and notes.

The files are synced between devices via owncloud.

<comment><USER13> Can you explain more about your setup?

What if you're in a different workspace? Does the floating hidden emacs window follow you across workspaces?

<comment><USER12> Yes, the floating hidden window always pops up on whatever workspace I am currently working on.

I thought about automatically hiding it, when switching to another workspace, but have not yet come around doing this.

I use a simple script to start emacs in case I accidentally close it:

      i3-msg 'exec emacs -name emacs-server'
      i3-msg  \[instance=\"emacs-server\"\] move scratchpad;
      i3-msg  \[instance=\"emacs-server\"\] floating enable;
      sleep 1
      i3-msg  \[instance=\"emacs-server\"\] scratchpad show;
      i3-msg  \[instance=\"emacs-server\"\] move position 450px 0px;
      i3-msg  \[instance=\"emacs-server\"\] resize set 950 100 ppt
      i3-msg  \[instance=\"emacs-server\"\] scratchpad show;

The i3 config portion additionally has the key binding:

      bindsym $mod+less [instance="emacs-server"] scratchpad show

</comment></comment></comment><comment><USER14> I love writing. As I write a bit every day, it gets very easy to write, and to express my thoughts, or what's in my mind. One great benefit is that when I am emotional or tired it is not too difficult to write that down somewhere because I already have the habit, and it does get easier with practice. Afterwards when I'm at a better or more aware mood I come back to read what I had written, this helps to see what sort of things affect me in different states of mind. This has resulted in many revelations towards understanding myself and also others. It also produced some interesting creative results too.

<comment><USER15> _> This has resulted in many revelations towards understanding myself and also others_

Same here, and I find the perspective of "discovering yourself" fascinating; I always thought I knew myself but it wasn't until I started journaling that I realized how much I didn't know.

There's just so much going on behind the surface. I highly recommend taking up journaling as a habit!

</comment></comment><comment><USER16> I kept rigorous journals from 1999 until about 2017.

I stopped because I felt it was necessary to make a break with my past self. I don't know if journaling was useful for my personal growth or not. I do know that reading old entries resulted in a cringe more often than not, which I took to be a good sign. If the old-you isn't a little embarrassing, are you growing?

There are a few books left, but I destroyed about 95% of them. It's a habit that is perhaps good for growth and reflection, but bad for revolution.

It's been three years since I last made an entry, and I miss it just like I miss my old friends who I also no longer talk to. These days I just make lengthy comments on websites but it's a poor substitute.

<comment><USER17> If you like journaling, but want to make a break from the past, then why not journal but then periodically destroy the journals?

<comment><USER16> It's a good idea. I get attached to the artifact, though. I think I'd need to make it an annual or bi-annual _event_. Build a fire, smoke a cigar, burn the past. Sounds nice.

<comment><USER17> I do it from time to time, it is cathartic. You live near SF? You can come over and we can burn our things together.

<comment><USER16> lol

nah, on the east coast for better & for worse

</comment></comment></comment></comment></comment><comment><USER18> As much as I love making this my habit, the biggest obstacle for me is syncing. I want to jot something down in so many different places: not just in front of a PC, but also in a train, car, shower room, restaurant, grocery, and bed. I use a mixed environment (Unix, Mac and Windows). Some of the machines are separated by firewalls. So I tend to scatter a journal-like file in many places. It's hard to combine them all in one place. And no, I don't want to give my journal to some third-party cloud solution. I wonder if anyone handles cases like this.

<comment><USER19> Simplenote, text files on Syncthing ...

Honestly just email yourself with an autotag... If your email is firstname.lastname@example.com, try firstname.lastname@example.com. It should still land in your inbox, but sorted under that folder.

You can even text from your phone to email addresses nowadays. I do this all the time to collect notes, and email clients are robust, emails have metadata like dates, and everything is easily searchable, etc.

</comment></comment><comment><USER20> Yeah, gee! Great idea, if all your private thoughts are just _so_ squeaky clean.

If you carry even the _slightest_ amount of negativity in your heart, do not _ever_ put pen to paper in a way that seems to reveal your inner self.

Kind advice from a person who has experienced at least one horrendous debacle from a regrettably misplaced notebook.

Also, my parent's 25+ year marriage was undone by a similarly stunning incident. A dropped love note in the driveway, not a diary.

<comment><USER21> You can be sarcastic all you want about journaling. But your examples don't warrant that sarcasm.

It should warrant humility, and self reflection. What is it that you could not be bothered to protect other people from your private thoughts?

I do believe in extreme ownership.

</comment></comment><comment><USER22> I wonder if anyone has advice for someone like me who thinks writing a journal is probably a good idea, but I rarely write because I can hardly bear to read what I've written. I always want to edit it for clarity or just throw it out because I don't like it. I've been able to overcome my perfectionism in a few areas of life, but not this one. I like to read other people's words, but rarely my own.

<comment><USER23> Here's a Vim alias I used when I first started writing, to automatically start me off on an empty page so I didn't have to read my stupid words from last time (or trigger associations that drove out what I wanted to write this time).

        alias j='vim -c 'normal G' -c 'r !date' -c 'normal zto' -c startinsert journal.txt'

<comment><USER19> I link this all the time, but my system is almost the same!

[https://github.com/jodavaho/bashlog](https://github.com/jodavaho/bashlog)

One command `log`, keeps files with YYYY-MM-DD.md and helps sync to github. I often edit my day's words, but don't much go back. When I do want to go back, I can just use `log 3/4/19` or `log yesterday`

</comment></comment></comment><comment><USER24> Some observations I'd like to share based on my experience journalling for the last 5 years.

* Brevity is important. With journalling, it is very tempting to go off on a rant. Feels good at the time but its usefulness declines rapidly with time. Short notes that encompass your state of mind or emotions or feelings with some context and timestamps go up in personal value with passage of time. I keep details and rants in my separate running log files.

* Summarize regularly. Every once a few months when you have down time, summarize your notes and make observations. My favorite bit is to find an old note with a sidenote/annotation and see how I look at the same things differently or still have the same mindset.

* Use timestamps. I have settled for a yyyymmdd-topic-title.txt for filenames. Contents in each file are stamped [yyyy-mm-dd] with optional time of the day. I have under 50 such files and they seem to encompass all facets of my life that I journal.

* Use plain text. Everything else will go away. I now use notational velocity/nvAlt with simplenotes sync for my topic wise notes (I also check in these files into a separate git repo folder for backup). I keep Deep insights and running lists in that git repo's wiki. I've recently also started keeping and checking in monthly yyyy-MMM.md files for a running log of thoughts. Helps maintaining a timeline to find recurring patterns. If some topic becomes worthy enough for sharing via a blog post, it gets its own markdown file that I can edit and customize for publishing.

* Reduce friction. I think this was the big one to overcome. By the time I would get to writing, I'd lose perspective or details to write. I now use a throwaway app (google keep) to write down my reaction, emotions or interesting facts as close to encountering them as possible. Then I can expand on them or discard them when I get time.

<comment><USER25> > * Summarize regularly. Every once a few months when you have down time, > summarize your notes and make observations. My favorite bit is to find an > old note with a sidenote/annotation and see how I look at the same things > differently or still have the same mindset.

I feel that this runs counter to what a journal is. Wouldn't the value of the journal be to record what you felt at that moment of time?

<comment><USER24> Although its a preference, I don't seem to share your concern.

A half yearly summary of distilled main themes, decisions and learnings has been crucial for me to continue my journalling process.

When I want to know what I was doing late 2017, I go through my summary. Any detail I want to re-visit is available in my running log.

</comment></comment></comment><comment><USER26> Here's a simple way to get into the journaling habit. Add to your bashrc the alias:

alias today="vim $PATH/$(date +"%Y-%m-%d").txt"

Substitute vim with your editor of choice. Will automatically generate a new text file for each day. Then just write. Anything.

</comment><comment><USER27> Dear diary,

why? I have nothing to say.

I've tried on & off to keep a diary (journalling sounds so hip) and never found a thing to talk about.

I've found my great-grandfathers diary. As a farmer he noted things like weather temperatures, precipitation, etc. How the crops were doing, and what broke on the farm. It was interesting, but dry and factual.

So I tried and never found anything substantial to write. What was the weather on the first day of school in 1992? I don't care. I have the internet for that now.

Personal things? Feelings? I hate myself and hate my life. Yupp same entry for the last 35 years.

<comment><USER23> Journalling can be useful even if you never go back and read your journal. (In which case it doesn't matter that entries are repetitive.)

"Journalling for mental health", URMC Health Encyclopedia: [https://www.urmc.rochester.edu/encyclopedia/content.aspx?Con...](https://www.urmc.rochester.edu/encyclopedia/content.aspx?ContentID=4552&ContentTypeID=1)

"How Writing in a Journal Helps Manage Depression" [https://www.webmd.com/depression/features/writing-your- way-o...](https://www.webmd.com/depression/features/writing-your-way-out-of- depression)

</comment></comment><comment><USER19> Ive been writing almost every day for many years. My secret was to use Bash and write a few scripts to make it very easy to jot down thoughts.

I also added a vim command to push it to github while editing. These just remove barriers to opening and syncing the file, but the concept is the same.

You can see the result here: [https://github.com/jodavaho/bashlog](https://github.com/jodavaho/bashlog)

The result is a treasure trove of greppable data. Someday I was to apply some sentiment analysis ...

</comment><comment><USER28> I work as a scientist/programmer - my coworkers with a science background write journals, and those from a programming background put the info into issue trackers, git commit messages and wikis/communal documentation.

I think the programmer tools scale much better for larger, distributed teams. Personal journals are ok, but if you ever think someone else might benefit from knowing some information there, put it somewhere else.

</comment><comment><USER29> To those of you who like the idea of themselves journaling but don't do it currently or consistently: What's stopping you?

<comment><USER30> Being too tired in the evenings and too little time in the mornings.

<comment><USER31> Same for me! The last thing I want to do after work is get back on the computer and type more.

The last thing I want to do in the morning is get out of bed to get on the computer!

</comment></comment></comment><comment><USER32> I started journalling daily when I was 35. If I could change one thing about my life I wish that I had started journalling 20 years earlier.</comment>


Ask HN: Anyone interested in sharing a PnP (Sunnyvale) cubicle? - <AUTHOR>

I recently went full-time on my startup. I'd like to join some sort of a co-working place so it's: (i) less distracting than home, and (ii) a little more social.
Looks like the best option in the South Bay area is PlugAndPlayTechCenter.com in Sunnyvale. It's $635/mo (including everything most hackers would need) for a cubicle that can accommodate 1-2 people. The place has the usual office stuff (conference rooms, cafeteria, free coffee), has startup-focused events, and even has Planet Granite next door with 50% off memberships (my favorite feature).
I'm hoping to find someone to share the cubicle with ($320 would leave money for ramen :)). If you're interested, please drop me an email or just comment away. <comment><USER2> Interesting place, I toured there. They are Amidzad and form part of startup lore for their lucky space above their Persian rug store on University Ave in Palo Alto -- Google and Paypal had that space at different times. After their hits, they bought this big building and turned it into a huge startup incubator. As far as I know they are the only people doing this in the Bay Area right now. They might even be making money doing it, as they are solidly, comfortably in the real estate business.

The rent certainly isn't cheap, but once you get your pitch/demo together you'll be able to get meetings via your PnP connections. It's a friendly enough place and the food in the cafeteria is good.

<comment><AUTHOR> Thanks for the review. Yeah I figure if I can't find anyone to split the cost with, a month or two of the full-price would still be worth it for the connections.

Startups cutting headcount (due to the recession) may be affecting their money-making ability though.</comment></comment>


Free drum-only backing tracks, sorted by genre and tempo - <AUTHOR> http://www.smarthobbymusician.com/over-300-drum-tracks/ <comment><USER2> Using this incredibly rare opportunity to plug my dad's 90's-tastic website: [http://bluesblast.com](http://bluesblast.com) \- full backing tracks for blues guitarists.

<comment><USER3> That is amazing.

Archive.org has a history of it going back to 2002. [https://web.archive.org/web/20020116171531/http://www.bluesb...](https://web.archive.org/web/20020116171531/http://www.bluesblast.com/)

I like the original background better.

</comment></comment><comment><USER4> If you want something better, recorded by great drummers in great analog studios, try [https://drumdrops.com/](https://drumdrops.com/). It's not free though.

</comment><comment><USER5> These are all links to Youtube videos, nothing more. If you want to actually download music files, you must sign up first.

<comment><USER6> YouTube Video and Audio Downloader [https://addons.mozilla.org/en- US/firefox/addon/youtube-video...](https://addons.mozilla.org/en- US/firefox/addon/youtube-video-and-audio-dow/?src=api)

</comment></comment><comment><USER7> Something similar: [http://bandhub.com](http://bandhub.com) \- there are more than 100,000 multitrack collabs (containing virtually all recorded music), where you can isolate (or mute) drums or any other instrument.

</comment><comment><USER8> I want the exact opposite of this. No drums, but everything else!

<comment><USER9> not free, but have you tried [http://www.jammit.com/](http://www.jammit.com/) ?

<comment><USER8> certainly looks interesting, thanks

</comment></comment></comment><comment><USER10> Since these tracks are here, does anyone fancy recording solos over these time-keepers and upload them here for fun?

</comment><comment><USER11> This is mediocre. It's not nice sounding, just sounds like a MIDI drum machine with mediocre sounds and mediocre beats.

Does anyone know of good freely-licensed (CC0, CC BY, or CC BY-SA) MIDI drum beat collections? That would be much more valuable, and everyone could just open them in Hydrogen drum machine and use them with all free software. That would be worthwhile.

A set of YouTube videos of crappy drum machine things is not great at all.

<comment><USER12> You're being really harsh on this site. It's just a collection of drum loops from Youtube, which vary greatly in quality. For instance, this one is actually analog drums played by a pretty decent drummer. [https://www.youtube.com/watch?v=9ulV4KTNIbU](https://www.youtube.com/watch?v=9ulV4KTNIbU)

<comment><USER11> "Mediocre" is not an extremely harsh thing to say. And drum loops on YouTube is a lousy way to have drum loops. They should be available in MIDI if they're just MIDI stuff, and should be downloadable. Taking MIDI and rendering it to YouTube where playback and tempo are particularly fixed… c'mon. I assume the point of YouTube is a mix of being able to show ads (not sure, I block ads) or just be there because it's popular.

Honestly, I'm trying to be critical not just of the site but of the idea that Hacker News folks think this is notable. I don't know how to express that distinctly, given that much of the points are the same for both critiques.

</comment></comment></comment><comment><USER13> I've been trying to find a simple dataset of music to experiment with and this is perfect. Thanks!

</comment><comment><AUTHOR> happy practicing

</comment><comment> k-mcgrady Why is this on HackerNews? I understand the policy for what's acceptable is pretty broad but what relevance does a list of Youtube videos of drum tracks have? I'm assuming I'm missing something as there are quite a few upvotes.

<comment><USER5> This is a rare case of me seconding your question. I'm stumped also.

<comment> k-mcgrady Yeah I'm not usually the guy to ask about relevance to HN but I really am stumped on this one too.</comment></comment></comment>


My 2 hour morning project, route.im - <AUTHOR> http://route.im/

<comment><USER2> While I would hate to discourage anyone from mini-projects - what is the purpose of a web-based traceroute interface? It's available on most operating systems, and even on routers; and the purpose of traceroute is to do network diagnostics for your own network to a remote system. In the end this tool will not really do much but show the route from your server to a remote IP.

Sorry - not trying to be negative - would love to be enlightened if there is something that I am missing!

<comment><USER3> Agreed, I think this could be much more interesting/useful if there were a variety of servers in different parts of the world to choose from.

<comment><USER2> It really wouldn't make it more useful as it would still only show the hops from those specific servers to an end destination - which may or may not share any hops with my route to said end-destination. The only real use I could see would be as a "is this site up" service, or a tool to check propagation of a domain name in other parts of the world - but, that's where utilizing nameserver lookups would be quicker and less resource intensive than a traceroute lookup.

<comment><AUTHOR> Multiple trace route sources for what I do is very helpful, for example:

A client reports an issue that some of their website visitors are having packet loss/reachability issues, however the network I am working on has 3 transit providers, which means 3 different ways into the network.

I can certainly do a trace route from my machine or routers to their clients (if i know their IP) but that's only showing me the outbound route, I am still none the wiser as to which route they are trying to get in via.

By using multiple off-net trace routes I can probably enter my core network over each of the 3 transit providers. Looking at these results I should be able to see if there are any obvious issues with incoming traffic.

It's certainly not going to work every time, however it will give me a better view as to what's going on.

</comment></comment></comment></comment><comment><USER4> Hmm, I was expecting some new/fun kind of output, for instance some map that approximates the route taken geographically.

<comment><AUTHOR> Sorry to disappoint, although hopefully it's a base to improve on with ideas like yours :)

</comment></comment><comment><USER5> Suggestion: Make the URL hackable. If I go to <http://traceroute.im/ycombinator.org> I should see a traceroute for ycombinator.org. Check out <http://who.is> for good example of this.

<comment><AUTHOR> Thanks for the comments, I will be implementing that some time later today.

</comment></comment><comment><USER6> Can take quite a while; would be nice to update continuously as the console version does.

<comment><AUTHOR> The traceroute has to finish before PHP is able to display the content, hopefully I can use Ajax to make it more realistic. Thanks for the comments!

</comment></comment><comment><USER7> Sysadmin here - I'll be using this. It would be great if you showed geographic info for each hop on the command line. And if you are really ambitious, make a graphical traceroute that is displayed on a map.

<comment><AUTHOR> I love the geographic idea, will try plugin a GeoIP database, I also want to show the ASN for each IP range to make things easier.

</comment></comment><comment><USER8> TIL about <http://www.paris-traceroute.net/a-new-traceroute> [better traceroute to handle loadbalancers]

</comment><comment><AUTHOR> In light of the traffic, I have added some stats

<http://route.im/stats.php>

</comment><comment><AUTHOR> Done some changes to the script and web server, should be a bit more stable now.

Wasn't quite expecting that much traffic :)

</comment><comment><USER9> Looks like you somehow remove the '-' characters in the domain names.

<comment><AUTHOR> Thanks for finding that, was my security getting a bit too secure, should be fixed now :)

</comment></comment><comment><USER10> Says trace complete and no shows no results.

<comment><AUTHOR> Should be fixed now :)

<comment><USER11> It also says trace complete with no output if you put an ipv6 address in.

<comment><AUTHOR> Sorry missed your comment, fixed that now, the ':' was been filtered out.

</comment></comment></comment></comment><comment><USER12> some realtime loading would be nice, axaj, jq and others :)</comment>


Ask HN: Does anyone use a Raspberry Pi for their main/work PC? - <AUTHOR> I'm interested in hearing anyone's experiences with using a Raspberry Pi as a regular desktop computer. I've already got a RasPi3 and keyboard/mouse/screen, and all I need for my work is a terminal for ssh, a web browser, and a text editor, so it seems feasible. Is Raspbian the best OS for this purpose? Thank you! <comment><USER2> The OS is largely irrelevant, but you'd want something that doesn't install and start a lot of services by default. If you just need a dumb terminal it barely matters as long as you keep it lean.</comment>


Startups for Startups - <AUTHOR> http://www.webdistortion.com/2013/11/05/16-useful-services-to-develop-your-startup-like-a-boss/

<comment><USER2> Well, i've been using customer.io and airbrake for the past two months and i can say i am quite happy with them...</comment>


Porting a renderer from C++ to CUDA - the speed gains and their cost - <AUTHOR> http://users.softlab.ece.ntua.gr/~ttsiod/cudarenderer.html

<comment><USER3> I work at gamedev studio, and we briefly tried CUDA for DXT compression. Now the speedup (the actual compression part was roughly x10 - x20 faster).

But there were couple of problems (solvable, but might require changing of habits):

       - Once you have CUDA running, you can't Remote Desktop to the machine (you can do VNC). We are still on Vista (and we stared trying this on XP). Things might be better with Windows 7.
         Alternative: VNC

       - The IT requires every unattended machine to be logged off after 15 minutes. This means that CUDA might stop working for you (no video driver). Same somtimes happen if you do Ctrl+Alt+Del and brought the Task Manager (that's inconsitent - it happens rarely).

       - The biggest problem was that there were 2-3 models (DELL, then HP) machines. We always use Intel with NVIDIA, but now and then every machine would convert to DXT the texture data a little bit different. Visually no problem, but this was messing up MD5 sums of the produced image, and locally people were getting different results than the one stored on the cached asset server.
         Alternative: Keep the MD5 sums of the source images + arguments for encoding (though this would not detect cases where bad images were encoded).

We had one very smart guy working for 6 months on new radiosity tool. He started with CUDA solution, but moved back to multithreaded/process solution with SSE code. For radisotiy (precomputed lighting for the levels) data we did not kept MD5 sums, so it did not matter.

So for us what worked sanely was OpenMP - speeding up the nvidia compressor by processing blocks with height of 4, and length of the original image - <USER2> smart graphics programmer came up with the idea.

That to be said - it's still exciting, but too hard for a lot of common tasks.

<comment><USER4> The Remote Desktop issue is actually fixed as of CUDA 3.2 if you have a Tesla card that is only doing compute (e.g., you're not running a Tesla C2050 as a display card).

full disclosure: I work on the CUDA driver stack and the dedicated compute driver for Vista/Win7 is my baby :)

<comment><USER3> Thank you! Thank you! We don't have Tesla's, but I'm dreaming of buying one (or whatever else there is latest and greatest from NVIDIA).

</comment></comment></comment><comment><USER5> Or as it was cleverly put before the author: " _Primary rays cache; secondary rays thrash_ "

Some interesting things to note, at least from my point of view:

* GPUs should not be considered like the next generation CPUs at this stage.

* Trying to take advantage of CUDA/OpenCL not only requires redesigning your algorithm and altering your data structures, but also the folly of implementing in software what is already available in hardware.

* Thread shared memory on nVidia cards isn't exactly similar to a cache. There's also a lot of papers in the last two years that speak of nothing else but altering algorithms to make better use of CUDA, because for anything else but the simplest of raytracers on a few objects, the situation gets really bad.

Very nice post, though. Neatly organized and well written, I really enjoyed it.

<comment><USER6> What stops using multiple passes to render the image? One for primary rays and then invoking another pass for the secondary rays.

<comment><USER7> Nothing. In fact, everyone does this at least to first order; you need to do bundles of primary rays at a time to take advantage of their spatial (and thus, memory access pattern) coherence. The problem is that the secondary rays are not a uniform grid like the primary rays, and they could be pointing any which way, depending on scene geometry.

What you _can_ do is attempt to group up a bunch of secondary rays that appear to be pointing roughly the same direction (e.g., if their primary rays all reflected off the same flat, specular object), and do them in a batch, exploiting their spatial coherence. Whether the process of finding coherent secondary rays is less costly than just processing secondary rays in the same order as their primary rays, again, depends on scene geometry.

</comment></comment></comment><comment><USER3> Maybe you should take a look at this:

<http://home.comcast.net/~tom_forsyth/larrabee/larrabee.html>

"Rasterization on Larrabee and SIMD Programming With Larrabee: Michael Abrash and I doing our double-act. We both talk about the instruction sets, Michael talks about the hierarchical descent rasterisation algorithm, and I talk about how we do basic language structures such as conditionals and flow control with our 16-wide vector units. We were both absurdly proud to be able to finally talk about the architecture we'd worked on for so long - it's not every programmer that gets to design their own instruction set."

</comment><comment><USER8> There are quite a few clever tricks to manage irregular problems. See poster: [http://www.nvidia.com/content/GTC/posters/2010/A06-Task%20Ma...](http://www.nvidia.com/content/GTC/posters/2010/A06-Task%20Management- for-Irregular-Workloads-on-the-GPU.pdf)

Also a presentation on OptiX shows how to implement ray tracer: [http://www.nvidia.com/object/gtc2010-presentation- archive.ht...](http://www.nvidia.com/object/gtc2010-presentation- archive.html#session2250)

Ray-tracing could be done well on GPU (see OptiX), but it is not trivial and needs some tricks (persistant threads, work donation etc. which are not that common on CPUs)

</comment><comment><USER9> The BRIGADE real-time path tracer developed by Jacco Bikker uses hybrid rendering utilizing both the CPU and the GPU as much as possible. <http://www.youtube.com/watch?v=Jm6hz2-gxZ0>

</comment><comment><USER10> It's not quite clear to me why _rasterising_ of all things is slow. I realise GPUs have a separate rasterisation unit, but other than that, the ALUs are _designed_ for this type of workload. I haven't experimented with latter-era GPGPU APIs and languages, but random memory access in a basic rasteriser sounds suspicious. Bouncing rays? Sure, that'll destroy any locality of reference, but mapping triangles into screen space? No way.

<comment><USER7> Rasterization is slow when you have lots of small (often sub-pixel) triangles. Mapping a big triangle into screen space is fast, but mapping many triangles per pixel (and hopefully throwing out the 99+% of the geometry that won't show up at all) into screen space and blending them together in a convincing way takes a while.

Real-time graphics does the best it can with a few big triangles (by e.g. texturing and bump-mapping them) out of necessity, but people are moving towards cases that are harder on the rasterizer.

</comment></comment><comment><USER11> I've worked with CUDA, and his negative conclusions are a little too dramatic compared to how elegantly he used CUDA. (That said, the biggest cost of CUDA development is the year or so it takes to let it all sink in. ALL of it!)

<comment><USER12> Well it was a weekend project, so I am not sure it is exactly... elegant. But thank you, I accept the compliment :-)

As for my negative conclusions... I wouldn't describe them as "negative", just "objective". Some algorithms are easily adapted to CUDA, and you get an easy win of 10-40x. Others need a lot more work to offer speed gains, and finally, there are some that are simply hopeless (you have to redesign them from scratch).</comment></comment>


Ask HN: PHP + mySQL framework for prototypes? - <AUTHOR>

I'm a fairly novice programmer with basic PHP + mySQL, it works for me, but I'd like to get into using a framework to speed-up development of prototypes.
Possibly one that uses basic MVC, and has a mySQL class.
There's this: http://toroweb.org/
Any other recommendations? <comment><USER2> It doesn't really matter what framework you use. They will help you develop things faster, provide some structure to your code, and in a lot of cases write the repetitive code for you. Find a framework that makes sense to you - they all use a slightly different approach to development - and run with it.

If you want some other suggestions:

<http://www.cakephp.org> <http://www.codeigniter.com> <http://framework.zend.com>

</comment><comment><USER3> PHP has a MySQL class built in (PDO, which has bindings for MySQL and just about everything else). If you mean an ORM, then you could consider using something like Doctrine.

Alternatively, consider becoming familiar with one of the major PHP frameworks. Obviously getting started will take some effort, but then you'll have its entire toolkit at the ready when you move on to prototyping your second, third, and Nth project.

Below I'll list some PHP frameworks and feedback about them-- _not_ from experience working with them necessarily, but instead based on their support lifetimes.

Yii: Support for version 1.x ends on Dec 31, 2012. Version 2.x is not yet out of beta. <http://www.yiiframework.com/>

Zend: ZF 1.x is the current version. ZF 2 is supposed to be around the corner, but that was also true last summer so the timing on this is a bit unclear (2.0.0 beta1 is the latest beta). <http://framework.zend.com/>

CodeIgniter: CodeIgniter 2 was released in 2011, so it's less likely to have its API change on you substantially in the near term. <http://codeigniter.com/>

Symfony: Symfony2 was released in 2011, so like CI, it's less likely to have its API change on you substantially in the near term. <http://symfony.com/>

CakePHP: CakePHP 2 came out in 2011, so same thing applies here. <http://cakephp.org/>

AuraPHP: The first PHP 5.4 framework. Less developed than the others at this point. Not on the same scale of popularity as the others, but it merits a mention as the first PHP 5.4 framework. <http://auraphp.github.com/>

</comment><comment><USER4> Kohana is cool. It basically tries to be the PHP equivalent of Ruby on Rails.

<http://kohanaframework.org>

<comment><AUTHOR> After a fair bit of research, I think this one looks like my best option. What's the learning curve like? (considering I've never used a framework before)

<comment><USER4> I can't really say since I had been doing PHP for quite a few years and had a few years of actual Rails experience before I used it. Sorry.

</comment></comment></comment><comment><USER5> Check out <http://laravel.com>, newer framework but very easy to use, great documentation.

</comment><comment><USER6> toro actually looks pretty clean - if you have to use php I'd say go for it. also - check out red bean for rapid orm style db development. BUT I'd also advocate checking out python, ruby, clojure, node js if you aren't already bound to PHP...</comment>