Just Say No - <AUTHOR> https://jacquesmattheij.com/just-say-no <comment><USER2> It's not just crime that you shouldn't use your skills for, it's all immoral or unethical activity.

It's a surprisingly urgent problem in a field that enables mass government surveillance, dark patterns, big data aggregation, and cyber warfare.

As an attorney, I wonder if software engineers should consider implementing some kind of rules for professional conduct and an organization to enforce it like the lawyers have.

<comment><USER3> But then what, no one is allowed to own a compiler or interpreter until they get a degree?

<comment><USER4> no, you just wouldn't be able to practice professionally until licensed, the same way medicine, law and "real" engineering work.

<comment><USER5> Lots of engineers work professionally without a PE.

[http://news.thomasnet.com/imt/2013/07/15/is-a- professional-e...](http://news.thomasnet.com/imt/2013/07/15/is-a-professional- engineer-license-worth-it)

<comment><USER6> _Most_ engineers work professionally without a PE. I think it's something like 80% of engineers never get a PE.

This idea that all _other_ engineers have a PE is rampant in the software field, but it's just not true.

<comment><USER4> _Most_ engineers don't offer services to the public. Every public building, bridge and road you've ever used were all overseen and signed off by a PE. Same with the infrastructure for your local utility companies.

Most software engineers don't provide services directly to the public either, but licensure would a necessary first step to regulating the field.

<comment><USER6> Having PEs sign off and oversee projects is not the same as all "real" engineers being licensed. If you believe that "real" engineering is the model for software engineering, then only a small fraction of software engineers would have a PE.

<comment><USER7> That's not necessarily a bad thing. At the very least, I think it's reasonable to require that certain software engineering projects have some professional oversight, but that doesn't mean that the intern needs to be licensed, just that the important architectural bits of a project are approved by a competent professional.

</comment></comment></comment></comment></comment></comment></comment></comment><comment><USER8> > _If you're reading this as a technical person: there will always be > technically clueless people who will attempt to use you and your skills as > tools to commit some crime._

You may be overstating that a bit. I've been doing tech for a while, and I can't recall anyone ever asking me to abuse my skills for ill-gotten gain.

<comment><USER9> A company I worked for basically told me to make the "opt-out of emails" checkbox not work. Which means whether you opt in to our emails or you don't, you get emails anyway. Most people would just assume they left it checked (even if they did uncheck it). Being the lazy person that I am, I just said "oh, that's just less work for me implementing that functionality"

but I'm sure that's technically breaking some anti-spam law

<comment><USER10> I definitely think thats a more realistic example of the things that might happen. It won't be the shady guy on the street corner, it'll be your boss asking you to do just one little thing.

<comment><USER11> While working in billing IT at a CLEC, I was asked to produce a phone bill for the CEO, with a printed physical address that didn't correspond to where he actually lived. I assumed (and still do) that it had something to do with a school district scam: he wanted his kids to attend a good school, without paying extra tuition. It was easy enough to do, and I don't feel there's much about the funding of USA public education that's worth defending anyway, but I can see how it could possibly have led to a series of increasingly immoral/illegal escalations.

</comment></comment></comment></comment><comment><USER12> When I was a teen I was offered cash to turn back speedometers many times, and always refused. This started after I set the speedo on my own car back to zero, but I was customizing it for myself, not flipping it for a fast buck, and it was already 25 years old anyway.

Back around the turn of the century I was offered a bit of cash to build a "Revenge Porn" site. The guy who called me sounded very mild and calm, even nice. He did say he'd been turned down a few times but he also seemed determined to make the site.

I had never heard of this idea at the time and was pretty surprised with the concept. I turned him down, of course, but what surprised me most was how many friends and acquaintances told me I should've taken the cash when I told them the story.

I'm 58 years old now and the number of people who've asked me to help with their scams, and have tried to scam me, is far more than I can remember. With all that experience I can spot them easily now but it never ceases to amaze me how willing some people are to do that.

<comment><USER13> The only scam I've ever been asked about was at an SEO conference. I was talking about how awesome selenium and browser automation was. Someone asked if I could make selenium log into gmail and click "not spam".

<comment><USER11> What are the odds, that a potential scam would be proposed at an SEO conference?

</comment></comment></comment><comment><USER14> I don't wish for the feeling of desperation on anybody. Even for someone who has morals, desperation can warp your sense of reality. Back when I was a truck driver, I had a substantial offer from someone to transport a duffle bag in my utility lock box across state lines. I was desperate, and it was a lot of money. I rationalized, told myself it was just gonna be some drugs, and I never get pulled over anyway. No big deal, I told myself. Until I grabbed the bag, and realized it wasn't drugs. Took a peek once I was out of sight, and it was definitely submachine guns. I started panicking and about 10 miles down the road came up with my plan. I pulled over, punctured a cooling hose, ran my engine til I overheated, and then called my contact and told him I had overheated and steamed out all my coolant and wasn't going to make it. That interaction was probably the most terrifying experience of my life. Never again.

<comment><USER15> > Took a peek once I was out of sight, and it was definitely submachine guns

Can't you order that stuff over the mail in the US?

<comment><USER16> No. An example of a submachine gun is the ubiquitous H&K MP5 [0]. It cannot be easily purchased (legally) because it is a fully automatic weapon, meaning that it has a setting where pulling the trigger once can fire > 1 bullets, and it's less than 26 inches in length, classifying it as a short barreled rifle (SBR).

A MP5 can be legally owned, with a few caveats:

* It must have been manufactured and registered with the ATF as a machine gun prior to 1986. Guns meeting this criteria are fairly rare and very expensive. I don't know the price for a registered MP5, but I would guess > $20000.

* You must apply for and receive a special approval to purchase a machine gun.

* You must apply for and receive a special approval to purchase a SBR.

However, a variety of companies make semi-auto (one trigger pull = one bullet) MP5 clones that can be purchased more easily. Clones are sometimes built with an extended barrel so they are not considered a SBR and can be treated like any normal rifle. A common strategy is to hide the extra barrel beneath a fake non-functional suppressor [1]. Alternatively some are made as SBRs for people who are willing to get the SBR approval.

[0]: [http://discovermilitary.com/wp- content/uploads/2010/02/mp5.j...](http://discovermilitary.com/wp- content/uploads/2010/02/mp5.jpg)

[1]: [http://mfiap.com/images/F30028878.jpg](http://mfiap.com/images/F30028878.jpg)

<comment><USER15> Thanks for the thorough answer! My impression was largely based on Gus van Sant's movie "Elephant", where the boys bought some real badass looking rifles over the mail.

<comment><USER16> Interesting. Well, I don't know what the movie portrays, but there are two ways that I know of to legally order a gun and have it delivered to your door (though I doubt either is exciting enough for a movie).

* You can get a Curio & Relic (C&R) license from the ATF which is basically a collectors license. It applies to eligible guns (i.e. not machine guns or SBRs) > 50 years old such as [0]. When you do an online/mail order the seller will require you to send a copy of your C&R license before shipping.

* Some guns aren't legally considered to be firearms by the ATF. This primarily (only?) applies to replicas of black powder guns [1][2].

Any other purchase must be sent to a licensed dealer, and when you pick it up from them you'll do the same paperwork as when purchased directly off their shelves.

[0]: [https://www.classicfirearms.com/m9130-hex-receiver- russian-m...](https://www.classicfirearms.com/m9130-hex-receiver-russian- mosin-nagant-rifle-arsenal-refinished)

[1]: [http://www.cabelas.com/product/shooting/black- powder/traditi...](http://www.cabelas.com/product/shooting/black- powder/traditional-rifles- shotguns|/pc/104792580/c/104701680/sc/104641380/pedersoli-traditional-hawken- percussion-rifle/1608685.uts)

[2]: [http://www.cabelas.com/product/shooting/black- powder/black-p...](http://www.cabelas.com/product/shooting/black-powder/black- powder-revolvers|/pc/104792580/c/104701680/sc/567338580/pietta-model- confederate-navy-caliber-black-powder-revolver/740536.uts)

</comment></comment></comment></comment></comment><comment><USER17> I believe the author's post is a little condescending and ignores the nuances of such situations. Sure, it's easy enough to "just say no" if you're already pretty successful and have a lot to lose by engaging in illegal activity. But what about the talented hacker who has failed career wise and is going through a really tough phase financially. It might seem that there's everything to gain and nothing to lose.

If you have a choice of being able feed your family or "just say no" to modifying an odometer, what would you choose?

<comment><USER18> Are you kidding me? I would just say no.

It's much more to lose your family and life by going to jail than it is to use public services to get assistance for food and shelter. Even if you don't go to jail, the amount lost in legal expenses are going to far outweigh the money brought in from said activities. Moreover, it's going to seriously impair your ability to get a job in the future, in the particular field that you've currently been experiencing failure in.

<comment><USER19> That assumes you live in a country where "public services to get assistance for food and shelter" exist. Not everybody is so lucky.

It certainly isn't always _just_ say no.

<comment><USER20> Yes, it is. If you are willing to do bad things, it doesn't matter the reason. Those people in 3rd world countries calling with tax scams or calling "from Windows" about a virus are bad people, straight up.

</comment></comment></comment></comment><comment><USER21> Great advice. I once let a company license legitimate software (a history cleaner before browsers offered this functionality) I wrote and they wrapped it in adware and caused a lot of people headaches. It felt _gross_. They didn't make it clear what they were going to do with it beforehand, but there were signs I should have noticed--their business model description sounded too good to be true. You can't just wash your hands of these things and have a clear conscience because you didn't do it personally.

The low point was finding their adware on my mom's computer.

Personally, I made it a rule after that to avoid business relations with the morally questionable. They drag you down.

</comment><comment><USER22> My first co-founder was a brilliant engineer. One day I borrowed his car (a fancy late model sports car) for an errand because mine was blocked in. But the speedometer didn't work which made for some strange driving. When I asked him about it, he said, "Oh I disconnected it to improve it's resale value."

We didn't remain together much longer.

To this day, the value of a relationship with another businessperson = sum(assets) * EthicsFactor. EthicsFactor is 1 or 0. There is no in-between.

Nice post, Jacques. It sure feels nice to comment in one your threads again.

<comment><USER23> I love the formula you pose for thinking about this, and it's so true. Ethical behavior is binary, and a lack of ethical behavior isn't compartmentalized into one small area.

<comment><USER24> My moral system is so incredibly far away from viewing ethical behavior as binary that I can not relate to how someone would think that way. How do you place the line, where an instance of behavior you don't agree with makes you view someone as not ethical?

<comment><USER25> When you come from a place of privilege, it's easy to think human behavior is binary.

For example, I would never steal a car! I can afford one, and to be quite honest, I don't need one.

If I was deep into poverty, and needed a car for a job or to be able to provide some function to my family, that temptation might be there. It might be so great that it distorts the ethics of the person so much so they don't see it as unethical.

Instead of stealing a car, they're borrowing it or the other person can just get another one. They would legitimately not see wrong because they feel like they have been wronged when they do not have the ability to get a car.

TL;DR: Ethics are not binary. To even suggest that undermines the entirety of the philosophy dedicated to studying it.

<comment><USER20> What you described is rationalization. That doesn't make the act of stealing a car any more moral. It's still incredibly immoral.

<comment><USER26> Not if you don't believe in the concept of property; then stealing has no meaning.

<comment><USER20> Except you're still acting immorally by forcing your belief system onto others who don't share that belief system. It doesn't matter if you don't believe in property; the person who owned that car does.

<comment><USER26> Inversely, the other person in your example is forcing their concept of property on others.

</comment></comment></comment></comment></comment></comment></comment></comment><comment><USER27> I have a story of temptation and pressure---not as good as Jacques's but maybe interesting anyway. I was leaving grad school (not for tech) and getting back into programming. I had two new kids, and I was really ready to stop living on $21k/yr (my student stipend), but I didn't have a lot of work yet, and I wasn't sure how my 5-year hiatus would look.

I had done a few projects for a small agency, and the owner was having me spec & quote work for potential new customers. One of these customers wanted us to build a "dashboard" to control a fleet of machines that would generate fake reviews for sites like Yelp or Amazon. I'm not even sure if that is illegal, but it didn't seem good. I told him it didn't sound like work we could do. If he had been just my customer, it would have been easy, but it raised my anxiety to say it to my customer's customer.

I think Jacques's conclusion about "a bad beginning" is very wise, and I'm glad he had to foresight to see all that. I hope his story helps keep other people out of trouble. His writing it up is really a gift to them.

</comment><comment><USER28> I am curious how much this extends to: A) Facebook and Google mining people's data B) Cisco building extensive survellance systems C) Microsoft was blatantly abusing it's monopoly

I could go on but all these had many many engineers involved. And best of it all, most of it was .. legal. When something is outright illegal, it's easy to say no.

</comment><comment><USER29> If you're offered a job from Facebook should you say "no"?

<comment><USER30> If you believe that Facebook is unethical, yes. Stand up to what you believe. It's harder in the short run, but it's much easier so sleep at nights in the long run.

I suspect lots of people would like to go back and change things they did.

</comment></comment><comment><USER31> I've had people try to get me to do illegal things for 25 years. It was much more aggressive and enticing when I was young. It's easier for adult me to recognize and reject these advances than it was for teenage me. It wasn't always even money that was on the table, but recognition and acceptance which can make you do crazy things.

</comment><comment><USER32> My alma mater added a course requirement on professional ethics shortly after I left, partly due to multiple "incidents" at the university (not because of me... this time).

Ethics is the difference between Dr. Spock and Dr. Frankenstein.

<comment><USER33> Dr. Frankenstein really wasn't that bad a guy. Mary Shelley consistently portrays him as a tragic character beset with guilt and grief for his experiments. He started out with the same natural longing many people have - to understand life and how it works. He lost his way, but he's quite a sympathetic character. You'd have to be a _hard_ consequentialist to consider him unethical.

</comment></comment><comment><USER34> I've had a situation like this before.

A friend referred two commodity traders to me. They wanted to contract me for SEO purposes. Why? When you searched for their names on Google/Bing, articles about fraud charges came up. They wanted me to push them off the front page. I was able to do that kind of work, because I had done it before for more benign situations. My friend told me I could name my price, because they were outrageously rich (apparently from their fraud schemes).

I spoke with them over the phone. Their reason for wanting to do this was: "It's a real bummer when you're dating a hot chick and she looks you up and sees all these negative articles online." Bullshit. I smelled it immediately. I didn't need abetting and conspiracy charges leveled against me. Even if I had agreed to do it, I doubt they would have paid me in full. I mean, I had evidence of their alleged fraudulent behavior.

The problem is that sometimes the fraudsters are really good, and what looks like a legitimate job has a less obvious ulterior use.

</comment><comment><USER35> In certain cultures, someone who won't steal from a rich employer to help family members is considered disloyal, and has reason to fear ostracism. And this in a culture where family connections are paramount. Solution of one such employee, somewhere in the western Pacific: Tell any lie necessary to hide the fact.

</comment><comment><USER36> I was involved in the warez scene as a cracker and a trader around the turn of the century. In a way it was a fun scene with groups that had strict hierarchies as in companies, the community aspect was strong, you could earn fame if you worked hard enough for it and had the skill, which was all pretty fascinating for us youngsters spending their nights in front of their PCs. In hindsight though, it was flatout stupid to participate in illegal activities over unencrypted IRC channels and FTP sites located at universities with hundreds of users. There were bouncers/tcp-tunnels and stuff, but many didn't care to use them. Things got scary when some of my affiliates got busted in [https://en.wikipedia.org/wiki/Operation_Buccaneer](https://en.wikipedia.org/wiki/Operation_Buccaneer). Thankfully I got out without getting my ass burned.

<comment><USER37> > In hindsight though, it was flatout stupid to participate in illegal > activities over unencrypted IRC channels and FTP sites

This also shocked me, and taught me a valuable lesson about politics. I had thought the warez scene was a meritocracy, but affecting change was so hard. Introducing new tools/processes/encryption was almost impossible. New standards IMO only seemed to happen because P2P was putting out stuff with great quality/smaller file size because of new encoders.

In the end, I still believe the scene has done more for consumers/media consumption than anything else (maybe youtube?). I doubt we'd see streaming offerings like this if it hadn't existed. So it was illegal, but also morally right.

And pirating remains the only way to receive a great education for free, for all.

<comment><USER36> interesting view regarding the effects on media.

concerning the educational aspect, i'm not sure what exactly you mean. while today e.g. software engineering knowledge is all out there, back then there was no github and stackoverflow and i had to learn a lot from books (basic, c, assembler). the freely available resources were lower quality, that is tutorials by crackers or demo scene coders.

i completely lost interest in pirated media these days as they provides minimal value to me. the few albums/movies/games which are relevant to me, i'm easily able to buy. the only exception might indeed be textbooks on specialized technical topics, which often aren't of interest for the warez scene audience.

<comment><USER37> maybe it isn't an issue anymore, but i meant education in a broader sense, not just software engineering.

i grew up in a remote village and the library was 45 minutes away on the bus. (also, thank god for child fares.) i loved that place. but it wasn't an english speaking country, so apart from badly translated novels and technical books that were 20 years out of date, the only good thing they had were CDs of classical music.

my exposure to technical and academic topics (anything outside the basic stuff they teach at school: philosophy, economics, psychology, "modern" physics, computer science, etc) as well as english/american language and culture is pretty much all down to the internet - and pirating.

and it isn't like i had a hard life. this was in a first-world country, so the education system was okay and i was completely healthy.

i agree that today, pirating might not be necessary - except if you're interested in music (jazz, blues, etc) or modern-ish films. the courses that american universities put out for free are absolutely fantastic. in fact, most of my bona fide CS knowledge comes from MIT CS courses which i worked through years later. because when you learn something yourself, it usually involves more experimentation and doing, and less formal theory.

</comment></comment></comment></comment><comment> charles-salvia Ethics aside, at a certain point, you realize you can make a lot more money legally and legitimately using your technical skills than through any sort of "clever" technical scheme that involves hacking odometers or scamming people in some way.

<comment><USER38> Yep, because we (US/Western Europe) have a good legal system that supports this.

This is also why we don't have Nigerian pirates in the US. It's also why our math/science teachers suck. The good ones would rather work in the private sector. They had great math teachers in the soviet union because they didn't have AmaGooFaceSoft competing for talent.

</comment></comment><comment><USER39> There is an incredibly powerful German anti-war poem titled "say no" [1], that I instantaneously associated with the title.

I think it's important for people involved with technology to have an ethical compass that of course includes criminal activities, but ideally also goes beyond that.

1: [http://www.swans.com/library/art13/xxx123.html](http://www.swans.com/library/art13/xxx123.html)

</comment><comment><USER40> This must be a much more difficult offer to turn down if you are in an economically depressed nation where job prospects are not good. In the US, even though there are plenty of rough areas, if you are skilled and/or well educated you have a lot of opportunities so it is a lot easier to say no. If its the difference between basic necessities for your family or not its not so easy to "just say no".

</comment><comment><USER41> I've never done anything explicitly illegal in the context of programming, but some opportunities which fall in the gray area of legality are just too tempting to pass upon.

I did consulting in reverse-engineering and provided documentation and tool too exploit certain vulnerabilities. Provided that I never used those tool myself for profit, the liability falls onto my clients, considering that I also signed a contract explicitly stating that.

The reason why I loved doing this work so much is because it was highly challenging, considerably more complicated than any software engineering job I ever had before. And more importantly I was extremely good at it, and more often than not I discovered something which no one ever did before. It felt like a mix of software development and scientific research.

Unfortunately when it comes to reverse-engineering, there are not many strictly "white hat" applications for it, besides pentesting and security audit. And naturally I missed building things and creating something which would actually make people's lives better.

</comment><comment><USER42> This article enters a difficult grey area. What should one do when a family member requests something illegal and there's a possibility of retribution for refusing to do it? The solution: lying can be an acceptable way to avoid unethical behavior.

I applaud the author for doing the right thing. I'm not sure I would have been as ethical.

That said, my favorite line is: _Salmon, French cheese, party time._

</comment><comment><USER43> Just say no, but not for moral reasons: say no because, unless you are absolutely desperate, it is the most profitable choice. Relationships with dangerous people who gain blackmail leverage over you will end badly - probably badly enough to offset all prior gains.

<comment><USER44> Isn't ultimate profit the same as moral reasons?

</comment></comment><comment><USER45> I had similar in school. A friend who was applying to grad school thought it would be easier to break into school systems than to study for class. I told him no. He eventually found his way into law school and politics.

</comment><comment><USER46> I have this wonderful image of the family member in question, after Jacques said "No", trying the Ferris Bueller method of putting the cars on blocks, putting them in reverse, and locking down the accelerator.

</comment><comment><USER47> So that explains why that taxi cab was driving backwards down my street in Amsterdam. I thought it was because it was a one-way street that was blocked around the corner.

<comment><USER48> i was thinking pulling a Ferris Bueller's Day Off.

you would probably have to take it out and apart and get another one and reverse engineer it and maybe get your hands on some schematics.

</comment></comment><comment><USER49> I've seen plenty of people fall into shady karma, especially my (ahem) peers in the early peer-to-peer space. Other than Zooko and Roger Dingeldine it seems most of the guys had to make a bunch of bullshit philosophical contortions about how associating with lowlifes and mobsters was OK. Some of those guys made money, a lot didn't, but their karma will forever be sullied.

</comment><comment><USER50> meh... low risk = low reward, high risk = higher reward.

Morality/Ethics is POV problem.

</comment><comment><USER51> > Just say no. And lie if you have to.

I'm extremely interested in the modern morality of lying, because on the one hand, we find some lies to be so heinous that they are career-ending (plagiarism among them), and some lies to be so necessary that _not_ lying is viewed as heinous (e.g. "Would you lie to an S.S. soldier about whether you were hiding Jews in your house?")

Here, Jacques spends the entire blog post trying to persuade people to avoid immoral behavior -- but then advocates lying. Is lying not immoral anymore?

I would be very interested in knowing what percentage of people view lying as objectively wrong, and how that has changed over time.

<comment><USER52> In philosophy of ethics, this is still something people think about.

In utilitarian style ethics, the ends (mostly) justify the means, so if in lying you are overall increasing utility/happiness for more people than if you told the truth, then it would be considered an ethical action.

By contrast, Kant's Categorical Imperative states "Act only according to that maxim whereby you can, at the same time, will that it should become a universal law". By that logic, lying is viewed as an unethical action, because if everyone lied then no one would trust each other, resulting in an unworkable universe.

There's a lot more to both sides and many attempts to create more nuanced systems, but ethics is and will likely continue to be an important field of study with not a lot of hard answers.

<comment><USER11> _...if everyone lied then no one would trust each other, resulting in an unworkable universe._

The universe worked just fine before humans invented proscriptions against lying. Biological organisms lie to each other all the time. Predators appear harmless; prey appear harmful, etc.

Actually most humans would be well-served by both lying more and being more perceptive of the lies that are told them.

</comment></comment></comment><comment><USER53> I wonder what happens once you've already done the illegal thing, perhaps not even realizing that what you're doing is against the law.

<comment> k-mcgrady Ignorance is (generally) no excuse for breaking the law.

</comment></comment><comment><USER54> I think the quickest way to stifle innovation in software (or drive it out of the country) would be to implement a professional organization.

</comment><comment><USER55> Sometimes You just have to follow your heart. It's not about getting it right; it's about doing what's right.

</comment><comment><USER56> During my undergrad I took a course "Ethical and Legal dimensions of Engineering". At that time I thought it was boring, but now I realizes how important such a course can be. A lot has changed over the past decade. Engineers have much more influence over the society than it used to be. There is definitely a need to develop a global code of conduct that does not change across geographic boundaries. All engineers should be taught that.

</comment><comment><USER57> This is probably one of the best articles i have read on Hacker News.Just straightforward.Keep it up.

</comment><comment><USER58> >Fortunately, now the EU has made odometer fraud illegal

It only became illegal recently? I find that surprising.

<comment><USER59> Weirdly I find that it's not illegal in the UK. The illegal thing is not disclosing it when you sell the car on (straightforward fraud).

[http://www.autoexpress.co.uk/car-news/consumer- news/88547/ca...](http://www.autoexpress.co.uk/car-news/consumer- news/88547/car-clocking-is-mileage-correction-legal)

<comment><USER60> That sounds ok to me. It's your car, you should be able to set the odometer to whatever you want. Using that ability to defraud people of their money is what should be illegal.

<comment><USER61> That's how it is in the U.S. (at least in California). When you sell a car you have to write down the odometer reading on the paperwork and indicate whether or not it is accurate to the best of your knowledge. But actually changing the reading is not illegal. It makes sense: the reading could be off due to mechanical failure.

<comment><USER62> Makes sense.

I drive a Jeep, and the speedometer on it is off by 12% due to the larger- than-stock tires that are on it. The odometer reads 160k, but I would assume that it was 170-180k on it in reality, depending on when the tires were originally installed.

<comment><USER63> Unless you've simply decided this isn't important to you, changing the speedometer gear on a Jeep to an appropriate size for your tires is generally a several minute job with minimal tools.

<comment><USER61> On the other hand, what one really should be caring about is not the mileage per se, but how many cycles are on the drive train. The distance the chassis has moved doesn't really matter.

<comment><USER64> But each cycle represents more wear with the larger tires, since the drivetrain torque is higher. You can't cheat physics.

<comment><USER60> It's probably not a linear relationship though.

</comment></comment></comment></comment></comment></comment></comment></comment></comment><comment><USER65> Is it safe to report the crimes of dangerous people publicly and non- anonymously?

<comment><USER66> Sorry: there is not an will never be a general answer to that question.

<comment><USER65> I hope not.

</comment></comment></comment><comment><USER67> Are you not worried that your family member reads hacker news? ;)

<comment><USER68> He's dead. His son is also dead (shot by one of his buddies as a result of a disagreement over the division of the loot from a very large robbery). But his wife and daughter are still alive so I wrote the article in such a way that it is not easy to pinpoint who this is about.

<comment><USER11> You do link to this discussion from TFA, and you can't have had that many relatives who were shot...

<comment><USER68> I don't think my family is reading my blog. Let's just say we're not exactly close for obvious reasons. But no need to make it easy on outsiders to make the link.

</comment></comment></comment></comment><comment><USER69> No, you should not be breaking the law.

<comment><USER70> [https://en.wikipedia.org/wiki/Boston_Tea_Party](https://en.wikipedia.org/wiki/Boston_Tea_Party)

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

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

 _One has not only a legal but a moral responsibility to obey just laws. Conversely, one has a moral responsibility to disobey unjust laws. I would agree with St. Augustine that "an unjust law is no law at all."_

\-- Martin Luther King, Jr.

<comment><USER71> You are right, in the squintiest, most Futurama-technically-correct-is-the- best-kind-of-correct sort of way. But this is Hacker News, where "breaking unjust laws" is used as an excuse to fetishize and drool over companies like Uber, and the connection there is pretty awful. Uber isn't breaking Jim Crow laws by treating its employees--sorry, "contractors"\--like garbage or by lying to government officials or by stealing from others.

<comment><USER72> HN is hardly a monolith of opinion. You'll find many discussions here with people loudly arguing that Uber is a cancer that deserves to end up a smoking crater as a lesson to others. I will help salt the earth.

That there are bad actors out there, and those who defend them by shouting about bad law, doesn't tell us anything about the justness of law, or the character of people (aside from the shouty ones).

I do believe in a moral good to violate unjust laws. It isn't always worth the tradeoffs, some people have obligations that weigh heavily in the decisions, and there are countless other concerns, but the fact remains, law and morality are at best only vaguely related.

</comment></comment></comment></comment><comment><USER73> What an incoherent article

</comment><comment><USER74> Meh, this is just ridiculous moral posturing.

Which laws are scared and which aren't?

Are you telling me that you never violated copyright, or say helped a friend install torrenting software ("technically clueless people who will attempt to use you and your skills as tools to commit some crime").

"Just say no" was the famous anti-drug slogan, we all know how that War On Drugs attitude ended up afflicting american society.

Finally even Supreme Court justices find this type of hard-line attitude ridiculous.

[https://www.nytimes.com/2017/04/26/us/politics/supreme- court...](https://www.nytimes.com/2017/04/26/us/politics/supreme-court- naturalization.html?_r=0&mtrref=t.co&mtrref=www.nytimes.com&gwh=5EB6517587B933A83FACF0BCCB8DCC6A&gwt=pay)

<comment><USER75> Even if you don't think 100% of laws are sacred, you can still draw a dividing line somewhere. A rational, consistent dividing line.

Anyway, the guy made it clear he had ethical problems with it because he could see how it was unfair to whoever ended up buying the car. So he wasn't avoiding it just because it was illegal.

<comment><USER52> Can you? I'm not sure most people are as consistent with their views on what laws are "good" or "bad" as you might think. Most people tend to judge the morality of their actions by intent, and judge the morality of others' actions by consequence, and thus form a picture of "I am more moral than most people". I'm sure that a deep analysis of pretty much anyone's morality will show a few logical inconsistencies.

<comment><USER76> > Most people tend to judge the morality of their actions by intent, and judge > the morality of others' actions by consequence, and thus form a picture of > "I am more moral than most people".

Wow that really moved me.

</comment></comment></comment></comment><comment><USER77> > I grew up in Amsterdam, which is a pretty rough town by Dutch Standards.

I stopped reading after the first phrase because I disagree with the premise. Amsterdam ranks 12th in the "most liveable cities" according to the Telegraph[1].

[1] [http://www.telegraph.co.uk/travel/galleries/The-worlds- most-...](http://www.telegraph.co.uk/travel/galleries/The-worlds-most- liveable-cities/amsterdam/)

<comment><USER78> You even quoted "by Dutch standards" so I'm not sure what you think you're pointing out.

<comment><USER5> Amsterdam was also much seedier 25-30 years ago.

<comment><USER79> It was much speedier before the new odomoter laws</comment></comment></comment></comment>


Has Apple's new MacBook Pro 2019 16" a problem with fan noise? - <AUTHOR> https://discussions.apple.com/thread/250878229 <comment><USER2> Does anyone else have this problem of the fan blowing up when connected to an external monitor?</comment>


Study suggests 42% of Canadian jobs at high risk of automation - <AUTHOR> http://www.cbc.ca/news/business/automation-job-brookfield-1.3636253 <comment><USER2> Finally I'll be able to focus on my painting.</comment>


Lessons Learned with Stripe Subscriptions - <AUTHOR> https://blog.cronitor.io/lessons-learned-with-stripe-subscriptions-d6c8d408eb1 <comment><USER2> I work on Stripe subscriptions. Thanks for the writeup!

We have quite a bit planned to improve the subscriptions logic (including fixing the issues mentioned in the post). If you have any questions, suggestions, or feedback, please shoot me an email -- firstname.lastname@example.com. Would love to hear from you and work together to improve the product!

<comment><USER3> I already reported this to you guys, but I'm curious if others experienced something similar.

Tax, and particularly VAT in the EU, is a real pain to deal with. Stripe does offer `tax_percent` to be added to invoices, but unfortunately this can only be added _on top_ of the price. This means, that if I want to offer a flat price to all EU customers with VAT included, things get messy. Either I do my own tax thing separately (or via metadata), or I have to create a bunch of different subscription plans, each for every VAT rate in different EU countries...

If the `tax_percent` could be deducted from the full amount, rather than added on top, this will solve this in a much cleaner and simpler way.

Paypal integration would also be really helpful, particularly for subscriptions.

<comment><USER4> > Tax, and particularly VAT in the EU, is a real pain to deal with. Stripe > does offer `tax_percent` to be added to invoices, but unfortunately this can > only be added on top of the price. This means, that if I want to offer a > flat price to all EU customers with VAT included, things get messy. Either I > do my own tax thing separately (or via metadata), or I have to create a > bunch of different subscription plans, each for every VAT rate in different > EU countries...

Please don't do that if you do B2B because it means that people from different countries get different prices as business customers when they get VAT reimbursed. Also please provide reverse charge if possible.

<comment><USER5> On the other hand, if you do B2C, it's just about the only way you can actually comply with all of the relevant EU tax and consumer protection rules. Mercifully, B2B is mostly spared that particular nightmare for now, though the reverse charge mechanism is not exactly fun to work with either.

It would certainly be helpful if Stripe made it easier to reconcile everything needed for those EU VAT returns. Some essential things like determining the exchange rate that was applied for a particular transaction if you work in multiple currencies remain quite awkward. The deposits from Stripe into merchant bank accounts also still don't seem to have any reference supplied so you can trace them back through the API to find the underlying charges, refunds, etc.

It is nice that they show the country of origin for the card now, though. At least that gives most merchants a fighting chance of keeping enough evidence of where every customer is based to satisfy the EU VAT rules.

<comment><USER6> > reverse charge mechanism is not exactly fun to work with either.

The reverse charge mechanism is great. The alternative system was to register for VAT in all 28 EU member states and file returns in each state. The reverse charge mechanism means if you are exporting services, you only have to deal with the your local tax authority. (Unless your customers are not VAT registered, then you have to make sure you stay under the threshold in each state.)

<comment><USER5> _The reverse charge mechanism is great._

Well, it's better than the old alternative you mentioned, but that's a bit like saying the MOSS scheme is great because otherwise you'd have to register and file returns in every EU member state where you sold a single £5 knitting pattern PDF from your kitchen table business. Being better than a system so insanely disproportionate and over-complicated that small businesses would have no hope of complying isn't particularly impressive.

<comment><USER7> Yeah, it's abit insane. I spent a week or so implementing this for my saas not long ago.

Hopefully this will change in 2018 for companies making less than 100k EUR/month: [https://ec.europa.eu/taxation_customs/business/vat/digital-s...](https://ec.europa.eu/taxation_customs/business/vat/digital- single-market-modernising-vat-cross-border-ecommerce_en)

<comment><USER5> Let's hope so, though I fear this will be a case of "too little, too late" for many small businesses. It's been more than two years now since the new system was introduced, and it seems many micro-businesses have already ceased trading as a result. Slightly larger businesses have probably either taken on significant extra compliance costs or ceased trading with customers elsewhere in the EU. All of that damage has already been done. :-(

</comment></comment></comment></comment></comment></comment></comment></comment><comment><USER8> I love the stripe API, and I like the documentation. But bear in mind you might want to avoid the subscriptions to cut down on fees.

Pretend you sell apples and oranges. If the user has 3 of each you might be tempted to bill the user for:

       3 * Apple Subscriptions (/month).
       3 * Orange Subscriptions (/month).

Do that and the user will be billed correctly, but you'll have to pay _two_ fees. That really annoys me, as it seems like a money-grab to charge them separately not combine the two payments and then take out the fees.

(This contributed to me removing my discounted-pricing plans where you could spend £1 a month for DNS hosting, but then get additional domains at £0.50. Instead I kept everything at £1 so that I didn't have to have different subscription levels.)

<comment><USER9> Sounds like Stripe has a few suggested solutions for this use case aside from multiple plans: adding an invoice item, or using quantities that don't map one-to-one with the quantity of what your customer ordered (in your case, having a base price of £0.50 with the first domain contributing a quantity of 2x).

[https://stripe.com/docs/subscriptions/quantities#dynamic- bil...](https://stripe.com/docs/subscriptions/quantities#dynamic-billing- amounts)

<comment><USER10> Yes a free plan with 6 invoice items added via webhook should capture this as a single bill. At the end of the month stripe pings your server for user X what is the bill and you respond with your 6 line items.

</comment></comment></comment><comment><AUTHOR> Hi HN -- After hacking on Stripe subscription updates over the holidays I decided to do a quick write-up to share a few lessons learned along the way. Happy to answer any questions!

<comment><USER11> Thanks for the writeup - although I wish there was more substance to it - it's juuust enough to not be an ad. But that's just the taste in my mouth, first impressions sort of thing.

What sales channels did you try, and which were most effective?

<comment><AUTHOR> I wish I had a great answer to this question. If you get one, please let me know. But here are some details:

\- Our most valuable source of traffic has been Google. Spending time to write good documentation has always paid off twice for us as more surface area for Googlebot.

\- When we launch new features and tweet about them, promoting those tweets has worked well. Running promoted-tweet campaigns not tied to a feature release has not worked as well.

\- We did our part to pad Google's bottom line with an array of targeted adwords campaigns that we tried over a couple months with poor results.

<comment><USER11> Thanks for sharing this. I would not have expected the first one!

btw, your documentation is top-notch. Kudos to whoever takes the time to make it sparkle!

</comment></comment></comment></comment><comment><USER12> We're using Chargebee in our app since Stripe is a bit too simple when it comes to subscriptions.

I'm thinking something like Chargebee/Recurly should be open-source, with a gitlab model and with charts like chartmogul.com built-in as well to centralize all subscriptions info/reporting. I'm not sure whether the open- source aspect would be enough to convince enough people to use it, but it would convince me at least.

</comment><comment><USER7> Im getting (big) customers that prefer to pay by invoice instead of card.

I would like Stripe to handle these subscriptions as well, for example send a webhook on subscription end. But it seems like you can't add a subscription to a customer who dsn't have an active payment source. Any ideas?

<comment><USER2> Slava @ Stripe here.

We're currently testing functionality that does exactly this. Shoot me an email to firstname.lastname@example.com, and I'll add you to the beta. (Also, would love to work together to iron out any kinks you might run into)

</comment></comment><comment><USER13> A few more Stripe tips from running a SaaS for a year now:

\- A discount coupon can either be applied at the customer, or the subscription object level. The first persists across subscriptions (even while cancelled in between), but the later takes precedence if both types of coupons are present.

\- There can only be one single coupon in effect for a customer at a time, therefore I would caution against the article's suggestion to use coupons purely for price segmentation as you "use up" that capability which you might regret later on.

\- When you sell a multiple of something, make the Stripe plan cost representative of one unit of the thing (the smallest unit you think you'd sell, like a single user), even if there's a pricing floor in effect (X units required). This makes it so much easier to allow users to upgrade by an arbitrary amount of units. Learned this the hard way.

\- In general, use the quantities property of plans, instead of creating a ton of different plans. I see a lot of "5 user", "10 user", etc. plans in the open Baremetrics data, which seems like a bad idea to me.

\- If there's a discount built into your annual plan, just make that the base price of the annual plan. This frees up the coupon slot as per above for volume discounts or whatever.

\- Annual plan pro-rating default behavior is broken in my opinion. If the plan type or quantity changes during the subscription period, the customer will pay for this only with the next invoice, which can be up to a year later. This is almost certainly not what you want, or what the customer expects. Instead, you have to manually (programmatically) create an invoice and trigger a payment to "sweep up" the price delta for the new plan. Ideally this could be done by Stripe on a monthly basis (it has to be delayed, you don't want to do it immediately since the customer might make more changes in a short period of time and you don't want to bombard them with receipts).

\- [http://www.ultrahook.com/](http://www.ultrahook.com/) is great for testing & developing the Stripe webhooks locally

\- It's a very rich ecosystem. I use 3rd party services that save me considerable time over building it myself for Stripe dunning, analytics and even professional looking receipts (customization, PDF rendering, VAT info, bulk downloads etc.), help desk integration etc.

</comment><comment><USER14> There ARE services right now for handling invoicing and dunning. I use churnbuster for the latter currently and it is money well spent.

<comment><USER15> Any good recommendations on the invoicing?

<comment><USER16> I recommend [https://quaderno.io/](https://quaderno.io/) used them with four different kinds of business running through Stripe including a SaaS doing > $1 million ARR. Works great and their customer support is excellent.

</comment></comment></comment><comment><USER17> > Don't worry about lock-in: a billing migration is not a high leverage > project for a small team anyway.

That's true at first, but maybe do worry a little bit about lock-in down the road? Sentry just replaced Stripe's subscription management with their own to add missing functionality. 4 weeks of engineering work and 10k LOC: [https://twitter.com/zeeg/status/816074783527796736](https://twitter.com/zeeg/status/816074783527796736)

<comment><USER5> I tend to agree.

If anything, 4 weeks and 10k LOC seems like quite a lot unless they had relatively complicated requirements. The last time we implemented subscription billing, there were requirements to support multiple payment platforms and a variety of configurable plans but otherwise it was fairly routine stuff. Implementing and testing the entire thing, including the customer-facing sign- up process, a simple database to track subscribers and payment information, and the API calls and webhooks for each platform to manage the payments and update our electronic records, took us about a week and maybe 2k LOC, if memory serves.

Running your own subscription billing logic probably isn't the #1 priority for most start-ups, and I certainly wouldn't criticise someone who said they had more important things to do and left it to Stripe or whoever to set up the charges for a while, but it really isn't that big a deal technically. If you're using any of the modern services that has a decent outgoing API to set up the charges and decent incoming webhooks to track their progress, it's the kind of thing you can do in a matter of days.

With that in mind, I would tend to disagree with much of what I'm reading in the original article and some of the other comments here. Outsourcing not just your payment collection but also things like your essential record-keeping to a third party seems like an unnecessarily risky degree of dependency and lock- in to live with beyond the early/experimental stages of a business.

<comment><USER4> > If anything, 4 weeks and 10k LOC seems like quite a lot unless they had > relatively complicated requirements.

Armin from Sentry here: it's not even all that complex. However there are many details that need testing including prorating when changing from one to the other plan, from old to new billing system, from monthly to annual and reverse and in our case now completely elastic billing. Then obviously there is dealing with failing charges and retrying and all that which goes with it. Just gets complex very quickly in a critical part of the business: where money is made.

<comment><USER5> It looks like you did have quite a few different cases to deal with, then, as well as the migration from an existing system? If so, that's pretty much what I meant by "relatively complicated requirements" and I assume would explain the difference in time and code volume compared to the greenfield implementation we did. I imagine most early start-ups would have less challenging requirements than yours for any payment platform integration, though.

</comment></comment></comment></comment><comment><USER18> I'm the CTO of a german subscription management startup (we also do SMB Finance Management with our main product).

Stripe is one of the nicest PSPs to work with and we're happy that they make it easier for people to get started with subscriptions, since it's a demanding task to get interested customers to understand the inherent design concepts/issues of subscriptions before creating their subscription process.

If the onboarding is not done well and doesn't include some basic education, businesses can quickly end up in situations they didn't expect, for example when it comes to combinations of upgrades/downgrades combined with coupons, allowing customers to offset the already paid for value pro-rata for the new product...

If you want to allow that, you have to think about what your preferred business logic for that situation is, what incentivizes what, and sometimes even if the law of the customers country legally allows for certain practices. (It nearly always does, but there are some exceptions that need to be added to Terms of Service)

So we're looking forward to see more businesses in Europe offering subscription based services, compared to the US the market still has a lot of catch up to do and we're happy stripe wants to help with that.

</comment><comment><USER19> Been using and enjoying Stripe for a while. Good tip about the Webhooks, we tend to do a LOT of user account processing and clean ups using webhooks to track failed payments, expired cards etc.

One tip - if you have more than one web app that you want to bill for, please be aware that you can set up multiple 'companies' under the one Stripe account. It took us a while to figure this out, and at one stage we were trying to handle callbacks for 4 different web apps with one central webhook endpoint. (As Stripe only allows you to specify one webhook endpoint per company).

Using multiple companies we can now have each web app handle their own webhook callbacks. Plus we can also isolate the customers, subscriptions and plans for each web app. Everything still goes back to the one central bank account for the parent company, but managing each individual app is a breeze.

Another caveat: Be careful with the discount coupons in Stripe when using against subscription plans. For some reason, the discount is NOT applied to the FIRST month's subscriptions, but only on subsequent ones, necessitating a manual refund of the difference to the customer for their first month's payment.

<comment><USER20> We use discount coupons with subscriptions and they work as expected: discounts are applied starting from the first payment.

<comment><USER19> Hmm - thanks for the clarification. It must be something in our setups then, I will check further. Just to confirm - it works OK in your case for brand new monthly subscriptions where a coupon is applied at the point of sign up?

</comment></comment></comment><comment><USER21> [http://Cronitor.IO](http://Cronitor.IO) is a great service. Helps me sleep at night. Thank you for building it.

</comment><comment><USER22> > Stripe as the source of truth

I don't feel very comfortable with this.

Also, we manage subscriptions internally within our own code. Didn't want to lock in too much to Stripe so we are basically creating Stripe customers upon adding a payment method and then charge them when the time is right and as many times as we want (recurring). Gives us more flexibility and keeps the control in our hands.

I always had a thought about moving to some other processor someday so I didn't want to dive deeper with Stripe integration and goodies.

Also, I have recently thought about using a service like Spreedly ([https://www.spreedly.com](https://www.spreedly.com)) - basically it lets you use a Stripe like API but behind the scenes choose and swap any payment processor you like (Stripe included). I am curious to know if anyone have experience with them.

<comment><USER23> I use Stripe for my SaaS and I agree with you. A lot of the OP's "lessons learned" I feel are simply opinions based on his own experieince, not actually determined via cost/benifit analysis with any other comparable workflow.

My subscription workflow is almost exactly like yours, for similar reasons, but also I convert subscriptions into a credits/day system that I track internally, and based on the Stripe API this doesn't seem like a good idea to try to have Stripe track for me.

</comment></comment><comment><USER24> Thanks for the post. I've been running a small SAAS via Stripe billing and definitely used some of these tricks.

</comment><comment><USER25> We migrated scanii.com from Amazon Simple Payments to Stripe subscriptions (after the whole FPS debacle) and haven't looked back, it's truly the best way to process payments right now. If I could buy Stripe stock I would.

</comment><comment><USER26> B2C with less than 100k subscribers. failed billing of card-on-file "involuntary" in the area of 30% of users. Anyone have data / experience on how good Stripe is on re-charging?

</comment><comment><USER27> I've used chargebee which is incredible, I don't think stripe or braintree will ever match a real subscription service

</comment><comment><USER28> You mention that invoicing is a problem that had to be solved manually. Have you looked at services like Recurly or Chargebee?

<comment><USER29> Invoicing is pretty straightforward if you're using the webhooks.

Using Rails as an example, all you need to do is set up a mailer that's invoked from your stripe webhook controller. It's also more versatile, because the built-in email receipts that Stripe sends out have a limited amount of information and don't take advantage of the metadata fields you can create on your subscription objects.

I've only got two minor complaints with trying to integrate Stripe for subscriptions - there's basically only TEST/PROD - you can't have more environments than that (I have to use a separate stripe account for dev), and that the webhooks don't work if your dev machine is behind a firewall (I use Ultrahook to get around that, but I find that it quits on me constantly).

</comment></comment><comment><USER30> Very cool tips. I've been considering stripe for a side project and this helped me figure a few things out :)

</comment><comment><USER31> Seen some mentions of Recurly and Chargebee and Sentry did something in 4 weeks of engineering work and 10k LOC.

With that said, are there any open source solutions that come close to not needing a 3rd party? I say close, as covering the loss with development time is not a problem in my case.

Unfortunately, I am not able to use Stripe.

Thanks!

</comment><comment><USER32> Does anyone else get about 1/2 of payments failed through Stripe?? It's driving me GD nuts!</comment>


The 9 Oddest Job Interview Questions Asked at Tech Companies in 2011 - <AUTHOR> http://mashable.com/2011/12/27/glassdoor-interview-questions-2011/ <comment><USER2> For people wondering about the hourglass problem: 1) @0min: Take both glasses (4 & 7) and flip them over. 2) @4min: When the 4min glass is empty, flip it back over 3) @7min: When the 7min glass runs out, flip it back over. 4) @8min: when the 4min glass is empty, there will be 1 minute in the 7min glass. Flip the 7 glass. 5) @9min: When the 7min glass runs out, you will be at 9min.

<comment><AUTHOR> Reminds me of the water puzzle in Die Hard 3.

</comment></comment><comment><USER3> For the 20 destructible bulbs and 100 floors, what's the fewest number of tries? I thought of this way: start at floor 50 and drop bulb 1. If it breaks, go to floor 25, if not, go to floor 75. Keep going to the floor halfway between the last floor and the boundary you want to test. You can do it in about 8 tries. Is there a way to do it in fewer tries?

<comment><AUTHOR> I think that's the way to work it and it relates to how a look up is performed in a database.

</comment></comment><comment><USER4> Always have to be on the lookout for trick questions (i.e. Tesla Motor's question on water displacement). My rule of thumb: when presented with two discrete options, assume a third one also exists.</comment>


The Rise and Fall of Everest (The App) - <AUTHOR> https://medium.com/@producthunt/the-rise-and-fall-of-everest-the-app-b0d2e6cb594c <comment><USER2> Sorry be frank, but reading that I really didn't get the feeling this company was doing things right and "just missed."

The premise seems wrong. I thought the current thinking that building a group you as the "social accountability" of your goals just produces anxiety and procrastination.

And I don't see offline sync as a "nice to have." I (and others) have dropped products when they dropped the feature.

</comment><comment><USER3> "We had office space in the Presidio, instead of being with all the other startups in SoMa, Mission or FiDi."

Does that really matter so much? I've never heard of South Bay startups agonizing that they were in Sunnyvale instead of Palo Alto, and the distances involved would be quite a bit larger.

</comment><comment><USER4> Quick read and valuable feedback. No idea how they were featured on the App Store for EVERY release, that's pretty insane. Sounds like they couldn't get retention down, but had solid acquisition.

<comment><USER5> Apple seems to favor apps with a good design, or simply a good use of some new feature in iOS. I'd guess it was something along those lines.

Obviously design was a high priority, as they said, even inter-office documents had a high standard.

I think when you have a designer leading the team, design becomes the most important thing. When you have a programmer leading the team, the code becomes the most important thing. When you have a business person leading the team, it's the metrics, etc, etc. in reality the customer is the most important thing.

<comment><USER6> When the customer leads the team...you have a packed preference pane...?

<comment><USER5> Hehe, perhaps! Ideally whoever leads the team knows how to give customers what they want, even when they don't know exactly what it is that they do want!

</comment></comment></comment></comment><comment><USER7> I originally heard of this app a few years ago from a friend who was an advisor for the company at the time. My big gripe with this app is that it did not address the underlying psychology of setting and reaching goals. Research has shown that sharing your goals with other people actually diminishes the likelihood that you will complete them.

At the time my friend brushed off my comments and it looks like this post- mortem doesn't cover half of what it needs to. The premise of the app completely missed the mark for the problem it was attempting to solve.

</comment><comment><USER8> Title is missing a word.

<comment><USER9> Thanks, fixed.

</comment></comment><comment><USER10> Again, never heard of it.</comment>


Tobacco and Psychosis: not quite a smoking gun - <AUTHOR> http://anp.sagepub.com/content/49/10/859.long <comment><USER2> Wait: if tobacco use were actually the _cause_ of psychosis, wouldn't we expect to see a dramatic reduction in the prevalence of psychosis in the United States, given that the smoking rate in the US has declined by over fifty percent in recent decades?

As far as I know, there has been no such decline.

What we _have_ seen is a large increase in the incidence of depression, and tobacco has been persuasively shown to have antidepressant effects. Nicotine is, of course, a powerful stimulant, and tobacco also contains monoamine oxidase inhibitors (which also have antidepressant effects).

<comment><USER3> I wonder if there is any correlation with the obesity epidemic as well, since nicotine's appetite suppression is also well documented.

<comment><USER2> Good question.

<comment><USER4> Grab your white jumpsuit and fire up a heater.

</comment></comment></comment></comment><comment><USER5> Hypothesis: All mind-altering substances precipitate the onset of, and worsen the symptoms of schizophrenia. The strength of the effect depends on interactions between the substance and brain systems we do not yet adequately understand.

There may be nothing special about nicotine except that it is psychoactive. We will need to learn a whole lot more about the brain before we can figure out why nicotine might have a more profound effect than, for example, caffeine.

<comment><USER6> Some stream of consciousness writing: I would add to that that the body, brain, mind are in part pressure-based systems and normally if all systems are functioning and energy is flowing as it needs to - then pressure in one or multiple areas won't rise, however if those energies aren't flowing for whatever possible causes - then problems can occur and worsen over time as the brain has its natural systems that will keep evolving and applying pressure; if "you" understand Qi (chi) and how energy can become stagnant in the body, this may be easier to comprehend -- stagnant energy, blocks or buildups, in my experience leads to actual pain sensations in the body, and a simple acupuncture session can help alleviate or eliminate the pains (until perhaps the energy buildsup again); this doesn't necessarily mean it will reduce the baseline of existing causes, that would require more work.

<comment><USER7> Qi does not exist.

<comment><USER8> Qi doesn't exist the same way that software doesn't exist. It's an abstraction that labels an emergent phenomenon. Software is made up if zeros and ones which actually don't exist but are labels we give to certain states of organized matter and energy. The same goes for Qi. It's the perception of a composite of the various aspects of a body's state as well as mental awareness of that state, such as relaxation in a specific part of the body. It's more detailed than explained here, but that's the jist.

<comment><USER9> Qi is neither necessary nor sufficient to explain or describe any physical, emotional, cognitive, social or "spiritual" phenomena. It is certainly not emergent (nor is software). To paraphrase Dawkins, you already don't believe in homunculi, aether, or many other previous attempts to explain our experience of being ourselves. Qi is just another thing to not believe, try it.

<comment><USER8> > Qi is neither necessary nor sufficient to explain or describe any physical, > emotional, cognitive, social or "spiritual" phenomena

Care to be more specific? How do the terms "necessary" and "sufficient" come into play? It's not a binary "all" or "nothing" distinction. If something helps you even a little bit, then it's valuable. An easy to grasp model of your body's state can help you maintain awareness of that state, and thus improve it.

Also, what do homunculi, aether, etc have to do with Qi? Qi is a useful abstraction. I've never claimed that it exists as an objective property of the universe.

<comment><USER9> Hi there.

Sure --

"Necessary" and "sufficient" are technical terms: [https://en.wikipedia.org/wiki/Necessity_and_sufficiency](https://en.wikipedia.org/wiki/Necessity_and_sufficiency)

You described Qi as "the perception of a composite of the various aspects of a body's state as well as mental awareness of that state". I'm saying Qi is neither necessary nor sufficient to perceive these things.

Similarly, I could say "Aether carries the mental awareness of my body's state". Or "Tiny homuncli exist in my brain, and it's the job of one of them to make me aware of my body's state". These things are neither necessary nor sufficient to explain awareness of ones own body. Consequently they could detract from explanations that may be genuinely useful.

It seems difficult to point to exactly what Qi is, and how it's different from similarly vague postulations.

Whether your idea of Qi helps you or not wasn't mentioned in your previous comment, so I wasn't responding to that.

If Qi is simply an "abstraction" then we can call it whatever we want. Why call it Qi?

If Qi is not "an objective property of the universe" is it entirely a subjective property of whoever believes in it? If that's the case, I'd struggle to understand how "useful" it is.

Certainly, I can see that things like self-awareness, relaxation, mindfulness, stillness and so on are "useful". They can be potent, restorative, healthful, etc, and we can demonstrate those effects through experiment. Unfortunately concepts like Qi tend to unravel in the light of experiment because they are so indefinable. Or more accurately: the definition constantly seems to shift.

Not everything is definable, of course. I have no issue with finding beauty, wonder and awe in life. In fact -- that's probably one important element in living well.

Ultimately I don't particularly mind if you believe in something called Qi, although I find it odd, and I hope you have a happy life :)

</comment></comment></comment></comment></comment></comment></comment><comment><USER10> Nicotine is a powerful _anti_ -psychotic. This has been known for many years and was one of reasons doctors used to prescribe smoking to patients. Most schizophrenics use it for that effect; the idea it causes it is somewhat ludicrous.

</comment><comment><USER11> They didn't address the confounding variable that these disorders are caused by dopaminergic issues, which are present even before becoming floridly psychotic. High levels of dopamine = low levels of arousal, so the slight elevation caused by tobacco smoking is probably pretty appealing.

Only first person experience, here, but I can say antipsychotics (which are dopamine-receptor antagonists... hence the "thorazine shuffle") cause these bouts of sedation that are made much less uncomfortable by simply having a smoke.

<comment><AUTHOR> The hydrocarbons in cigarette smoke interact with the anti-psychotics - it's well known that people who smoke need to take larger doses of their meds.

</comment></comment><comment><USER12> But wait a second. An easy counter argument to the theory is that smoking has significantly decreased all over the Western world. So, if the number of schizophrenics hasn't decreased proportionally, then tobacco smoking can't be a major factor.

<comment><USER13> Agreed, with the caveat that mental illness diagnosis has become more common over the past century. (Though I'm not sure whether people have become more willing, in the past couple of decades, to diagnose schizophrenia specifically.)

</comment></comment><comment><USER14> Here is a paper that really exemplifies Paul Graham's _Write Like You Talk_ article, which is currently on the FP. I wish these articles were written for the public and were at least somewhat easy to digest.

<comment><AUTHOR> It's a shame you got downvoted, because you make a good point. This article doesn't have to use as much jargon as it does; it doesn't have to use English in the confusing way it does.

I want MH trusts to go smoke free. That involves me telling people why that's a good idea, and that would be much easier for me to do if articles like this were written in plainer English.

Some jargon would still need to be used. For example they're talking about psychosis and first episodes of psychosis so that needs to stay.

<comment><USER14> Thanks. I smoke and I found the title and subject matter interesting. I am not a genius but am perfectly capable of understanding the article. It is just mentally taxing trying to wade through a sentence structure that seems aimed at a goal of obfuscating knowledge and proving the writer is intelligent rather than disclosing the information in a terse digestible way. Below, someone pointed out that there are many grammatical errors as well. I have thought a lot more about long form articles in publications like the New Yorker and NYT, etc. While often criticized for over simplifications and lack of understanding of subject matter, they often present articles in a way casually interested parties will understand. I don't have a problem with the jargon, large/obscure word use (to the extent it is reasonable) or otherwise employing tactics to get the point across. It is just that, as someone casually interested (not an academic looking for citations) I don't really know what to do with this sentence: > Cannabis use almost always predates psychosis, is associated with an earlier age at onset (Donoghue et al., 2014; Myles et al., 2012b) and heavier and more potent cannabis users have an increased risk of developing psychosis (Di Forti et al., 2009) and do so at an earlier age than people smoking milder cannabis (Di Forti et al., 2014). I wish they would just use superscripts for citations, as a significant portion of that sentence is citations. If academics would just edit the papers, dump them into Tufte CSS or LaTEX with sitations as footnotes or sidenotes and adapt a style human beings could digest without collapsing to rest from the boredom and dull overly-complex structure I think they may find a readership base that exceeds the single digits it currently has. Do you know of a place with interesting articles written for non-academics? I think that would be a cool thing and sure it exists? Cheers.

</comment></comment></comment><comment><USER15> > Researchers have often overlooked the obvious – that almost all cannabis > users also smoke tobacco

Is that obvious? Out of the people in my life that smoke pot, less than half smoke cigarettes.

<comment><USER11> This is my experience too- the overlap isn`t that pronounced at all. All the pot smokers I know don`t smoke cigarettes, don`t like cigarettes, and while they`ll light up a joint in their own home, ask cigarette smokers to do their tobacco smoking outdoors</comment></comment>


Generative Machines - <AUTHOR> http://workshop.chromeexperiments.com/projects/machines/

<comment><USER2> Relevant blog post by the author: <http://mflux.tumblr.com/post/29879318929/generativemachines></comment>


Running Optcarrot, a Ruby NES Emulator, at 150 Fps with the GUI - <AUTHOR> https://eregon.me/blog/2016/11/28/optcarrot.html <comment><USER2> I was intrigued by the method of piping pixel values to MPlayer as a frontend. I'll definitely be using that in future projects.

It makes use of this video format, which seems almost like a video equivalent of the PNM image format: [https://wiki.multimedia.cx/index.php?title=YUV4MPEG2](https://wiki.multimedia.cx/index.php?title=YUV4MPEG2)

I wish there was something similar that used RGB though.

</comment><comment><USER3> While it's interesting how you can accelerate Ruby, 150 fps is still _awful_ for a NES emulator on modern platforms.

It kinda shows how bad Ruby's performance is compared to most other languages.

<comment><AUTHOR> On the other hand, I am confident it's written in a much nicer way than most NES emulators (look at cpu.rb/ppu.rb).

The goal of optcarrot is explicitly not to be the "practical"or "the fastest NES emulator".

From [https://github.com/mame/optcarrot](https://github.com/mame/optcarrot) > NOTE: We do not aim to create a practical NES emulator. There have been already many great emulators available. We recommend you use another emulator if you just want to play a game.

JRuby+Truffle's performance is not bad compared to other languages: [https://github.com/smarr/are-we-fast-yet#current- status](https://github.com/smarr/are-we-fast-yet#current-status)

</comment></comment><comment><USER4> How does truffle enhance JRuby to create such a dramatic performance improvement?

<comment><USER5> Truffle uses Graal, a new JIT compiler for the JVM written in Java. As it's written in Java, it can be used like a library - directly calling methods to compile exactly what you want, exactly how you want. Truffle uses this to compile your Ruby program using partial evaluation, a technique which is really good at removing the kind of overhead that the JVM usually adds, like costs for allocation.

This blog post and video explain where a lot of the big speedups come from.

[http://chrisseaton.com/rubytruffle/deoptimizing/](http://chrisseaton.com/rubytruffle/deoptimizing/)

I wrote my PhD about this topic, so there is even a whole thesis if you really want to get the details on how it works.

[http://chrisseaton.com/phd/](http://chrisseaton.com/phd/)

</comment></comment><comment><USER6> can we predict that jruby+truffle, will be usable for ruby gems in the next few years?

<comment><USER7> No, no we can't.

Or at least, I doubt it. You're free to predict whatever you like.

At the very least, I don't think any amb implementations are making their way to jruby any time soon. Although that's not an issue with any real-world code.

<comment><USER8> What's amb?

<comment><USER7> amb is a nondeterministic operator. It's a fun toy, although not terribly practical. It's usually implemented in terms of call/cc, a rare (and, as commonly implemented, expensive) function. CRuby implements it, JRuby doesn't.

It's not revelant to my main point, but I thought I'd have a bit of fun.</comment></comment></comment></comment>


How to Flawlessly Predict Anything on the Internet - <AUTHOR> https://medium.com/message/how-to-always-be-right-on-the-internet-delete-your-mistakes-519a595da2f5

<comment><USER2> This is not the exact same by any means, but reminded me of a story my dad told me. Sometime in the 60s a radio station had a contest where you had to guess the top 5 songs of the week in the proper order (1-5) and the winner would get $1000. To make a guess you had to mail in an index card numbered 1-5. Maybe 10 or so songs were likely to be in that top 5, so my dad guessed guessed every permutation. The cost was the price of a stamp for each index card but he did end up winning.

<comment><USER3> This is hard to believe. 10 permute 5 is just over 30,000. Unless stamps were less than 3 cents, that scam wouldn't work.

First class stamps have been 4 cents since 1958. Not to mention the labor of preparing 30,000 index cards.

TL;DR Your dad should have gotten a job.</comment></comment>


Wacom Intuos stylus for tablet. Pressure sensitive - 2048 levels. - <AUTHOR> http://intuoscreativestylus.wacom.com/en/

<comment><USER2> Seems like a hack for iPad. Look at that tip. It's definitely still a capacitive stylus, it's just that this one has 2048 levels of sensitivity. But I think precision is a lot more important, and you won't get that on an iPad (unless Apple decides to support active digitizers in future iPads, but I wouldn't hold my breath for that one).</comment>