Notes on Google's Site Reliability Engineering Book - <AUTHOR> http://danluu.com/google-sre-book/ <comment><USER3> Granted, I'm only on the fifth chapter currently, but this is the first IT- oriented book that I've genuinely had a hard time putting down. It's so exciting to be able to see so many components of such a successful software (and hardware) organization, and as they mention, to see the reasoning behind the decisions rather than just a dump of "here's _what_ we decided."

<comment><USER4> I am also enjoying the book currently, I really do like it although it's driven home the fact that I cannot get by (as a systems engineer) without low level programming knowledge and experience.

it's a strange feeling seeing the end of the line for your skills that took a decade of slow grinding to acquire.

<comment><USER5> I'm not sure I agree that you need low level programming knowledge and experience. The industry is huge, and there's needs for a lot of talent with a variety of skills.

If anything, I would argue that the need for the low level languages is disappearing for the general case. As "The Cloud" gets bigger and bigger, and the low level things are handled more and more by a service providers, and they abstract more and more of the day to day, it makes it easier for you to focus on higher level problems.

I do think that the days of being purely ops and needing nothing but shell scripting are going away though. You gotta pick up some python or similar at this point.

<comment><USER6> > I do think that the days of being purely ops and needing nothing but shell > scripting are going away though. You gotta pick up some python or similar at > this point.

Maybe 5-10 years down the line, but not this year or next.

</comment></comment></comment></comment><comment><USER7> I'm a freelancer who always winds up as "the ops person", and I'm just waiting for my copy of this book to come from Amazon. I watched a video of a talk about this book---sadly I can't find it on Youtube anymore. A HN comment linked to it last week. It was interesting but I'm hoping the book will have a lot more meat.

A few thoughts:

> Google places a 50% cap on the amount of "ops" work for SREs: Upper bound. > Actual amount of ops work is expected to be much lower

I didn't catch the "upper bound" part from the talk. Good to know! I really enjoy being a developer-who-does-ops. I wouldn't want to be a sysadmin, and 50% ops is probably my limit for happiness.

> I don't really understand how this is an example of circumventing the > dev/ops split

I felt the same way from the Youtube talk. I think there must be a lot behind the SRE role that makes it successful or not: culture, policies, who you hire, how you train, etc. Also I feel like the best sysadmins have been encouraging coding and automation for a long time, e.g. Thomas Limoncelli. But I've certainly been on the "dev" side of the dev-vs-sysadmin fight before, and it makes sense to be seeking ways to improve things.

> Error budget. 100% is the wrong reliability target for basically everything

I think I saw just this month that Google Apps uptime is 99.95%? Some major Google service. I remember in the early 2000s everyone cared about "5 9s", and I feel like for most of us that is just not worth the effort.

> Chubby was so reliable that teams were incorrectly assuming that it would > never be down

This reminds me of Nygard's point in Release It! that your theoretical _best_ SLA is the product of your dependencies' SLAs, e.g. 0.999 * 0.999 = 0.998. But in the world of microservices, this logic seems likely to make you underestimate your uptime.

Also I think Feynman's remarks about the Challenger accident apply here: if you are building a new product with, say, 5 microservices, you don't know the reliability of any of them yet. It's dubious to estimate low-frequency events based on "it's hasn't happened yet."

Thanks for sharing your notes. I'm envious you've already got a copy. :-)

<comment><USER8> Regarding "theoretical best", I think that is "in the absence of mitigations". I think you can build a service with a higher SLA than one of its dependencies, but only if you recognize that impedance mismatch and build in defenses.

As a contrived example, if you've got a microservice that provides data FOO about a request that isn't actually end-user critical, you can mitigate your dependency on it by allowing your top-level request to succeed even if the FOO data is missing. Or maybe you can paper over blips of unavailability with cached data.

But, yes, know what you depend on and how reliable they are, then see if you need to take more action than that if your target is higher than the computed target.

<comment><USER9> (Tedious disclaimer: my opinion only, not speaking for anybody else. I'm an SRE at Google)

Building reliable services out of unreliable dependencies is a part of what we do. At the lowest level, we're building services out of individual machines that have a relatively high rate of failure, and the same basic principles can be applied at every layer of the stack: make a bunch of copies, and make sure their failure modes are uncorrelated.

</comment></comment></comment><comment><USER10> _I don't really understand how this is an example of circumventing the dev /ops split._

My understanding (if I understood correctly), from talking to a friend who is an SRE, is that SREs are also part of the design process. The developers want resources, so they contact and work with SRE teams to make sure their project is both planned for in capacity and can be efficiently served. If it can't be served, maybe another component needs to be deployed that makes the data efficiently usable for the new app or feature (I'm unsure on this, but it sounded like it may have been implicated).

That is, SRE teams become devs of certain components of the project, and work to support the project when in development. This should defeat some of the dev/ops split, because SREs also work on the same project, and are invested in its launch and success.

</comment><comment><USER11> > Avoiding magic includes avoiding ML?

When it comes to alerting, yes. I've seen it tried many times by competent engineers. The problem is that once you get beyond toy examples into situations with even a mere 10k time series there's so much noise that you can't get any useful signal.

> We could really use something like Outalator, though.

I've not found anything like it yet, unfortunately. Hopefully someone will be inspired to write one by the book, there should be enough detail there to do it.

<comment><USER12> Forgive my ignorance here, but what is he referring to when he says "Magic Systems" and "ML"?

<comment><USER11> ML is machine learning.

Magic Systems is anything other than a manually configured (mostly) simple threshold for alerting.

</comment></comment></comment><comment><USER13> > the request was rejected because the error case should never happen.

I haven't run into this mindset much at my current job. But in general I think I've been able to lobby for "well, can we at least have a special case that would leave a breadcrumb behind if it _does_ occur?" That way the investigation when it does inevitably occur is swift and there's less debate among ambiguous choices about how to change the design going forward.

I've also found fault injection testing as a great way for disproving statements about what "can never happen."

That said, I've seen the other extreme too -- checking pointers against NULL just prior to dereferencing at every opportunity up and down the stack. In these cases function/module authors succeed only in moving the eventual crash to somewhere far disconnected from the origin of the problem.

</comment><comment><USER14> What i find interesting about how Google/AWS/Netflix are setup is their interesting line between ops and devops. Development teams are expected to run their own services - but after a while. SREs are there to help make the transition. They are the ops experts. I think for smaller shops and startups, there is an important lesson - don't throw out ops! Your in-house ops people are Google's SREs. Most devs I work with could not run services in production without significant help. Google, etc, have great structures in place to handle this. Smaller shopps should take care.

<comment><USER15> I don't think the trend toward having devs handle all the ops is a good idea. Ops teams, for good reason, tend to be way more conservative than devs. Plus I don't think it is effective to constantly interrupt dev teams with operational issues.

<comment><USER16> Interrupting them is what pushes them to push quality code not just throw it over to ops and hope for the best. It works quite well with deployment velocities that would shock even normal devops shops.

</comment></comment></comment><comment><USER17> This book is available for 50% discount at o'reilly. In case you are interested to buy. I just bought it. It seems to be a great resource

<comment><USER18> Unfortunately shipping at O'Reilly is $49 for my address in europe - <USER2> more than the book + ebook bundle. Amazon on the other hand has the book for €30 and free shipping. I always wonder why companies like O'Reilly think there is no decent market for them here, would have loved to order directly from them and get the ebook as well.

<comment><USER19> I didn't even work out what the Oreilly shipping was since it required me to login and go right to the end of the ordering process.

I tend to avoid ordering books from Amazon too since they charge $5 per book plus $5 per order which usually makes them uncompetitive. Strangely enough I end up ordering most of my books via the Book Depository which is owned by Amazon anyway.

</comment></comment></comment><comment><USER20> Bought this book last week and intend to get through it shortly. But, I'll also plug this excellent paper by James Hamilton (of AWS): "On Designing and Deploying Internet-scale Services" \- [https://www.usenix.org/legacy/event/lisa07/tech/full_papers/...](https://www.usenix.org/legacy/event/lisa07/tech/full_papers/hamilton/hamilton_html/)

</comment><comment><USER21> > extra pay for being on-call (time-off or cash)

This!

<comment><USER22> What amazing concept, paying people extra money for extra work.

</comment></comment><comment><USER23> ```I don't really understand how this is an example of circumventing the dev/ops split. I can see how it's true in one sense, but the example of stopping all releases because an error budget got hit doesn't seem fundamentally different from the "sysadmin" example where teams push back against launches. It seems that SREs have more political capital to spend and that, in the specific examples given, the SREs might be more reasonable, but there's no reason to think that sysadmins can't be reasonable.```

Seems we don't understand the point of SREs at all.

In a world where "ops" and "dev" are split and sysadmins occupy "ops" it is customary that system admins are not programmers, may not know how to program, do not venture into the VCS for the codebase and may not even have rights to check-in code to the software. It would certainly be unusual to see check-ins to the codebase from the ops/sysadmin team.

This leads to the situation where you have 10 year old codebases running on 10 year old frameworks on 10 year old operating systems. The system admins are naturally tearing their f---ing hair out over this situation. The devs, however, have the platform on life support and are off writing new code for shiny systems because that's a lot more interesting and useful than keeping the old garbage on life support. No progress is made and the problem typically doesn't resolve itself until the old systems become sufficiently problematic that the devs rewrite the entire system.

If you have an SRE model it should never get quite this bad. The Devs will support the code in production until they're ready to hand it over for maintenance. When it is handed over the SREs get all the keys to the kingdom and have the rights, responsibility and ability to fix bugs in the software they're running.

If you have legacy codebases run entirely by ops people who don't have any ability to maintain the codebases then you aren't doing SRE.

This is one of the manifestations of the "chinese wall" between ops and dev (which is what "DevOps" and "SREs" are entirely antithetical to--it may be hard to define what those terms /are/ but it is pretty easy to define some patterns that they definitely /are not/). If "Ops" has to come begging to "Dev" to fix their software then you're not doing it right.

<comment><USER11> > When it is handed over the SREs get all the keys to the kingdom and have the > rights, responsibility and ability to fix bugs in the software they're > running.

Bug fixing is still the responsibility of the developers, which isn't to say that SRE won't help out at times but it's not their role.

> If you have legacy codebases run entirely by ops people who don't have any > ability to maintain the codebases then you aren't doing SRE.

An SRE is not a maintenance engineer. Service ownership is always a partnership between SRE and developers. If there's no developers, then there's no SREs.

<comment><USER24> And in fact, it's common for SREs to hand obsolete services _back_ to the dev team if they've been mostly phased out to the point where they're no longer the primary priority.

</comment></comment></comment><comment><USER25> > First, I normally take pen and paper notes and then scan them in for > posterity. Second, I normally don't post my notes online, but I've been > inspired to try this by Jamie Brandon's notes on books he's read. My > handwritten notes are a series of bullet points, which may not translate > well into markdown. One issue is that my markdown renderer doesn't handle > more than one level of nesting, so things will get artificially flattened. > There are probably more issues. Let's find out what they are! In case it's > not obvious, asides from me are in italics.

This is a problem that would be overwhelmingly solved by org-mode in Emacs. Writing the summary in org-mode means you're a 'C-c C-e' away from exporting to HTML or LaTeX.

</comment><comment><USER26> I don't know anything about Google and its SREs. Do they really just hire software devs and expect them to be good at Ops? The opposite, hiring a sysadmin and then assigning them to a software team to develop a product, seems equally problematic.

<comment><USER27> From my limited experience, they want devs. The initial phone screen is all sysadminy questions (e.g. what commands show you i/o usage?). The second screen is a coding interview. I'm a sysadmin who works in bash every day. The coding questions are mostly related to log parsing. My code interviewer didn't seem to even acknowledge that bash was a programming language and did not understand a simple grep and sort pipeline.

Edit: Sorry everyone! I totally got my LinkedIn and Google interviews mixed up. What I described above is my LinkedIn experience.

<comment><USER28> There are actually two different SRE roles: the one people are describing above where you are 85-99% of the way to SWE (Software Engineer), _and_ you have sysadminy experience, and another one where you are 100+% of the SWE bar and optionally have sysadminy experience. The former is called SRE-SE (Systems Engineer), and the latter SRE-SWE.

SRE-SE interviews are super heavy on the sysadmin stuff usually, with less (but still significant) attention paid to SWE skills, whereas SRE-SWE interviews may not even have an SRE component (it's possible for candidates in the 'normal' SWE hiring pipeline to be shunted to SRE-SWE post-interview).

<comment><USER29> Could you speak to the dev/programming skill set need for the SRE-SWE vs the SRE-SE?

<comment><USER30> I'm an SRE-SE and regular do phone interviews for SRE-SE candidates.

While I do tend to spend more of the interview time talking about sysadmin tools, operating systems, networking, databases, security and troubleshooting, I still expect candidates to have reasonably good coding chops.

The difference is that the coding questions tend to be more task-oriented or procedural (i.e. log processing, building automation pipelines, implementing standard unix cli tools, etc.), rather than the algorithmically challenging or math-oriented problems that we'd usually ask SWE candidates.

Both the SE and SWE side SRE candidates need to be able to design and reason about large systems, making trade-offs between performance (especially latency), redundancy and cost.

<comment><USER29> Thanks. Is being well-versed in C a prerequisite for the role then? I'm imagining you need to be fluent in at least one statically compiled language or ???

<comment><USER30> In my interviews you code in whichever language you prefer. Some interviewers will ask you to use a specific language that's mentioned on your resume. In general I think that if you show strong coding skills in _some language_ , it is believed that you won't have much trouble teaching yourself the languages your team uses (typically some subset of C++, Java, Python, Go, Borgmon).

</comment></comment></comment></comment></comment></comment></comment><comment><USER31> How are people reading this? Are you all lucky recipients of limited preview copies, or is this actually out somewhere I'm not seeing?

<comment><USER32> The first 11 sections are available for preview.

[https://books.google.com/books?id=tYrPCwAAQBAJ&source=gbs_bo...](https://books.google.com/books?id=tYrPCwAAQBAJ&source=gbs_book_other_versions)

<comment><USER31> Thanks, this is exactly what I was missing.

</comment></comment></comment><comment><USER33> I love the irony... another story on HN frontpage: "Google Compute Engine (GCE) down in all regions"

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

<comment><USER34> From the linked notes: "Error budget. 100% is the wrong reliability target for basically everything."

<comment><USER35> If they target 99,99%, this outage already blew away their budget for the year.

<comment><USER34> The SLO is 99.95%.

</comment></comment></comment></comment><comment><USER36> 。。。</comment>


What predicts students' drinking habits? How much they think others are drinking - <AUTHOR> https://news.vcu.edu/article/What_predicts_college_students_drinking_habits_How_much_they <comment><USER2> Having come from Latin america and studied in a US college, it's always jarring just how much students in the US drink. Don't get me wrong, whenever I went back home we had a few drinks and some who definitely had bad habits. But US Students were just animals, entire bottles of liquor for a single person, keg stands, passing out for hours just to do it again later tonight.

Frats are definitely the main culprit of spreading this unhealthy lifestyle but I also find that having the drinking age be so high (21 in the US) really gives kids this insane pressure to show off or glamorizes it as an "adult thing" to do.

My family let have a few drinks once I hit 16 during family events and was regularly going out at 18 without ever feeling the need to get wasted or having peer pressure of drinking. I learned my limits early on and rarely got wasted since it just didn't appeal to me.

Meanwhile, the frat parties were the only way to meet girls on campus and gladly supplied alcohol to anyone who paid. Definitely a recipe for disaster and after a few mishaps I just skipped out on them entirely.

I think they should just lower the age and put the onus on parents to guide their kids toward better drinking habits, smoking is way worse for both you and those around you and the age is 18.

<comment><USER3> As an American who enjoys drinking, I find it shocking, too. Not that people do it, but the extent. I've had few experiences as miserable as being hungover. I've been really hungover twice in my life. After the first time, I said never again. After the second time, I said I really need to come up with a system to avoid this.

So I have a simple system I call Proof Points. I think I've shared it here once before. It's like calorie counting, except you track alcoholic intake as alcoholic proof (% content x 2) x oz of alcohol (yes, I'm an American). Do some trial and error and you should be able to find a range where you feel good drinking but don't end up the next morning not knowing where you are or even feeling noticeably lousy.

For me, the range is 300 to 400 proof points. Yeah, I can't always know how much alcohol I'm getting in a drink I order. But I'm able to ballpark it. And it's been effective for me. Even times when I drink a little too much, I'm sure it has stopped me from drinking way too much.

Take it with caveats up and down. Don't mistake it for BAC. I never drive if I'm drinking because, as I understand, most legal limits are now so low, you'll hit them well before you expect it.

I think this actually would help curb the drinking problem among US students and all the attendant ills that go along with it. Perhaps if it was offered as a nicely designed phone app. It could serve as a counter-pressure, more or less effective depending on the circumstances, to the peer pressure that the article identifies as a major driver of excess drinking.

<comment><USER4> > For me, the range is 300 to 400 proof points.

Am I doing the math wrong, or would that be less than two pints of beer at 5% ABV? Or does this not work with beer?

<comment><USER5> One regular drink is 100 of these proof points. A pint of strong beer is 2 drinks.

2 pints of medium beer is indeed a generally good amount to drink in one meal or before you pause for a while. Obviously how many minutes better drinks is a factor

</comment></comment></comment></comment><comment><USER6> As a 'binge drinker' of 20 years, I'll chime in: Almost all of the time, I drink at the pace of my drinking partners.

"Hey man, want another beer?" "Need another beer?" "You're drinking slow, catch up!" "Here's some shots"

On the rare occaisons that I drink on my own, I have 2-3 beers, I tend to enjoy them a little more. But in a group, I go at the group's pace.

Part of this is because it's very hard to enjoy the company of people who are much drunker than you. And they won't enjoy you if you are much drunker than them, so you have to all be on the same level.

<comment><USER7> _Part of this is because it 's very hard to enjoy the company of people who are much drunker than you. And they won't enjoy you if you are much drunker than them, so you have to all be on the same level._

This has to be a personal preference, right? I very much enjoy people at all levels of drunk, stoned, high, whatever.

<comment><USER8> Depends not just on personal preference, but on the drunk friend. My old boss, who has a very pleasant personality when wasted, and opened up about all sorts of insights into how work was going? Great. Brother-in-law who starts being a dick to his wife and kids? Not so much.

</comment></comment></comment><comment><USER9> When I go to college football games I drive by the fraternities on my way to park. I'll see quite a few folks sitting on the front lawn seriously messed up. Usually a buddy or girlfriend standing or sitting with them keeping an eye on them.

I'm older so at the old people bars or parties, you just don't see folks drink them self into that state. I assume that sort of filters out to the sad drunk bars / folks at home as you age. I didn't get it when I was college, I don't get it now, that doesn't look fun.

They must think their classmates are drinking a lot, but it's pretty clear it's not nearly as much as they think, as most of their classmates seem capable of carrying on a conversation and standing up... meanwhile they are not.

<comment><USER10> > I'm older so at the old people bars or parties, you just don't see folks > drink them self into that state. I assume that sort of filters out to the > sad drunk bars / folks at home as you age.

Survivorship bias

</comment></comment><comment><USER11> I went to an SEC school and did the whole fraternity thing during college, which involved drinking to excess way to much fueled by the fact that living in a fraternity house with 45 other guys who also wanted to drink that much as well as the rampant drug use.

It definitly had a negative impact on my health, grades, and focus on school work and im glad that post college ive cut back to 1 night of moderate drinking with friends on the weekend however the habits picked up in college still plague a good amount of my friends from college and Im worried about their longevity.

Its a particuarly hard issue to solve even moreso in a alcohol fueled envirionment like a frat where the freshmen joining look up to the sophmores,juniors and seniors who all have this same binge drinking mentality and the cycle continues.

Maybe the normalisation of alcohol at a younger age would help reduce it as it wouldnt seem like such a forbidden fruit.

<comment><USER12> > Maybe the normalisation of alcohol at a younger age would help reduce it as > it wouldnt seem like such a forbidden fruit.

Yeah. I don't believe that for a second. Much more interesting is how well you fare against peer pressure, how much of a social animal you aim to be, and whether your family was doing it.

If we could argue like that I would just argue the exact opposite based on my experience. The forbidden fruit we seem to have in common. The distinguishing factor here seems to be that you were in a toxic environment and I was busy pestering people on IRC.

There was a lot more porn available in that environment, so that's my burden to bear.

Let's at least stop pretending that if there were no limits on anything in the world, everything would be great and amazing.

<comment><USER13> Anecdote but by 12 I had a favorite wine category and by 16 a favorite beer. Growing up, my dad drank every day _with dinner_ , and the value of taste and enjoyment was what I learned out of wine & beer, along with the knowledge that too much starts to impair me. But this discovery was well before my driving days and within my own family, it wasn't something I had to covet, hide then binge on in secrecy, without social feedback.

I was not quite 18 when I first got really drunk… at a relative's wedding. I learned that impaired senses wasn't something I enjoyed and only got drunk one other time in my life. Also social feedback has kept that particular event alive in the family.

But my drinking style isn't condusive to getting drunk, as I savor my drinks really slowly, and for the most part, with meals.

This is a French perspective, though. I've had a very hard time conveying this idea to people here in the US because it seems ingrained in many people's minds that the only purpose of alcohol is to get drunk, so either you party or you abstain: no middle ground. Things are starting to change a bit, moderate drinking with the goal of savoring is gaining more acceptance and—most importantly—good drinks are appearing but it's a slow process.

</comment></comment></comment><comment><USER14> Everybody should try not drinking for 1 month a year... I did it for about 2 years (non-stop). It's pretty hard and it really feels poorly accepted to the point that people didn't ask me you out because I didn't drink (meaning I was not fun, and tbh I can imagine it's less fun for drunk people with a sober person).

Anyway, It was quite an eye opener, also, the times I see this behaviour in series and movies also became a shock: "OMG I have an emotionally hard time! Grab the bottle, start slammin', look at me being all depressed but still cool lookin' like a Marlboro cowboy!". It's so deep in our culture.

<comment><USER15> I recently stopped drinking (it's been ~4 months) because I drank >1 bottle of wine every day for the last 3 to 4 years and I was worried I'll end up being an alcoholic or damage my liver. I'll be honest: alcohol is an amazing drug. I know that it's very harmful but no other drug gives me the enjoyment and calmness alcohol gives. Anyway, I stopped drinking now. When I hang out with my friends and they're drunk I usually try to get high so I'm not sober. I don't like weed as much as getting drunk so I can't get very intoxicated, just a little buzz. But yeah, the social aspect of intoxication is huge! Since weed is legal where I live (MA) I use it as a "social lubricant" which I suppose is a safe way to use drugs in general. My problem with alcohol was that I liked it too much and basically spent most of my time outside of work drunk since it was fun. I don't think I was addicted because when I stopped drinking cold turkey, I didn't experience anything bad...

<comment><USER16> The Eleven Symptoms of Alcohol Use Disorder

-Alcohol is often taken in larger amounts or over a longer period than was intended.

-There is a persistent desire or unsuccessful efforts to cut down or control alcohol use.

-A great deal of time is spent in activities necessary to obtain alcohol, use alcohol, or recover from its effects.

-Craving, or a strong desire or urge to use alcohol.

-Recurrent alcohol use resulting in a failure to fulfill major role obligations at work, school, or home.

-Continued alcohol use despite having persistent or recurrent social or interpersonal problems caused or exacerbated by the effects of alcohol.

-Important social, occupational, or recreational activities are given up or reduced because of alcohol use.

-Recurrent alcohol use in situations in which it is physically hazardous.

-Alcohol use is continued despite knowledge of having a persistent or recurrent physical or psychological problem that is likely to have been caused or exacerbated by alcohol.

-Tolerance, as defined by either of the following: a) A need for markedly increased amounts of alcohol to achieve intoxication or desired effect b) A markedly diminished effect with continued use of the same amount of alcohol. Withdrawal, as manifested by either of the following: a) The characteristic withdrawal syndrome for alcohol (refer to criteria A and B of the criteria set for alcohol withdrawal) b) Alcohol (or a closely related substance, such as a benzodiazepine) is taken to relieve or avoid withdrawal symptoms.

The presence of at least 2 of these symptoms indicates an alcohol use disorder (AUD). The severity of an AUD is graded mild, moderate, or severe:

Mild: The presence of 2 to 3 symptoms. Moderate: The presence of 4 to 5 symptoms. Severe: The presence of 6 or more symptoms. Conclusion: If You Meet 2 of the 11 Criteria for AUD, Reach Out and Ask for Help

<comment><USER15> Not sure if this comment was intended for a larger audience, or just me? I mean as my original comment suggests, I haven't drunk any alcohol last ~4 months, and even before that I don't think I had any of these symptoms. Anyway, thanks for the heads up!

</comment></comment></comment></comment><comment><USER17> Studies like this should immediately make one remember something about psychology. The replication crisis has devastated any credibility in psychology. And social psychology, as this study is part of, is the worst hit. The replication rate for social psychology studies is currently hovering around 25% [1]. And unlike psychology studies, that result can and has been replicated. What that means is that if you see any social psychology study - you would be _much_ more accurately informed if you assumed that what it 'discovered' was false.

So back to this study. Let's imagine some alternative hypothesis. People tend to overestimate the representativeness of their own personal experience. People extrapolate their own personal experience, which in turn is going to be driven by their own behaviors/views/etc, to much wider segments of the population than they actually apply to. If somebody engages in substantial drinking, they're going to overestimate the normality of that behavior. And similar for those that engage in minimal drinking. And all of this is even more true when you're talking about young college aged kids.

This hypothesis also fully explains otherwise inexplicable 'discoveries' of this study. For instance the study found no connection between the drinking habits of the dorms people lived in and their own independent usage. That contradicts their hypothesis but it was, of course, simply hand-waved away. But the real problem with this hypothesis is that it doesn't lead to new research, doesn't sound exciting, and likely would be difficult to publish. Publication generally entails novelty, and I'm certain this effect has been extensively studied and reported upon elsewhere. So instead we get clickbait under the guise of science.

[1] - [https://replicationindex.com/2018/12/28/socpsytb-ego- depleti...](https://replicationindex.com/2018/12/28/socpsytb-ego-depletion/)

</comment><comment><USER18> This makes sense to me from my experience. When I was around 18 a lot of people told stories of all the drinking (and sex) they did. I felt quite some pressure to drink more because of that.

Later I found out that a lot of these stories were vastly exaggerated. It's pretty sad that people feel the need to brag about destructive behavior like doing but that's the way it is.

<comment><USER19> I can confirm these people :) Most of interesting things in my life happened when I was drunk. People are boring without drugs...

</comment></comment><comment><USER20> Scientific confirmation of well-known folk wisdom. (Not a bad thing.) I remember being in college and hearing "I'll go shot for shot" and "I can drink you under the table", etc. Outdrinking the other person was a badge of... adulthood? Maybe? I don't know. I never got it myself. I tried drinking to excess and the first lesson I learned was my limits, best summarized by the old adage "one tequila, two tequila, three tequila, floor". The experience was unpleasant enough to put me off consuming more than two drinks a night.

</comment><comment><USER21> Do Children in France Have a Healthier Relationship With Alcohol?

[https://well.blogs.nytimes.com/2016/04/28/do-children-in- fra...](https://well.blogs.nytimes.com/2016/04/28/do-children-in-france-have- a-healthier-relationship-with-alcohol/)

</comment><comment><USER22> I did the fraternity thing in college as others have mentioned.. I am an extremely moderate drinker and have been ever since I finished college. Sometimes as little as 1 drink a month, and in periods where I am actively working towards a sports/fitness goal I might go months without drinking any alcohol. I definitely drank to excess in college but never to a huge degree or constantly. Even in a fraternity that is pretty wild there are a spectrum of students. I finished school with a 3.7 GPA, though I would say the fraternity impacted my grades, they might have been even higher. But almost any social activity would have had an effect. At my school the social scene was pretty dead outside of greek life.

\- Fraternities & sororities generally have risk management plans/training these days. I am not sure I think they are more dangerous/less responsible than underground/unorganized social situations on a college campus. Fraternity parties often have alumni supervision. Even 20 years ago when I was in school those parties were registered an inspected. House parties, off campus parties, hidden dorm parties were far riskier.

\- The European model of letting people drink younger often gets brought up in these discussions. The only problem I have with that is Europeans on average drink far more alcohol than Americans throughout adulthood. I am not sure I believe the kids are more responsible in Europe either when you consider things like Alcoholic drinks marketed to high school students that would never fly here.

\- The massive fraternity parties are getting shut down these days on campuses. My alma mater has banned all drinking on campus and at fraternities/sororities/social clubs on and off campus, even for members/alumni who are 21. The weird thing here is they put a loophole in for sports teams... athletes who are 21 and alumni can drink at sports team events.. ridiculous.

\- Some of the largest national social fraternities & sororities are requiring all chapters to ban alcohol among members now

</comment><comment><USER23> Then once you turn 21, drinking a lot very quickly becomes less cool and more sad

<comment><USER24> Our BS drinking laws artificially elevate alcohol's badass status among the under 21 crowd. Rolling back the drinking age to the modern world standard of 16 would drastically reduce student drinking by equating it with kid behavior. Nobody's interested in doing highschool shit in college.

<comment><USER25> New Zealand changed the drinking age from 20 to 18 many years ago.

You could look at papers about that to understand what changed.

Although anecdotally New Zealanders drink wayyyy more than Americans (so maybe hard to compare).

<comment><USER5> More than rural Americans or urban Americans? I'd assume that rural people everywhere drink more because there is less else to do, at least before the modern era of electronic entertainment

<comment><USER25> NZers drink 8.8 litres per person aged over 15 years.

The state with the highest consumption in 2016 was New Hampshire, with a total alcohol consumed per capita: 4.76 gallons (18 litres).

Wow.

Comes from the following writeup for NZers:

From the domestic figures released by Statistics New Zealand, in the year 2017 [7]:

476 million litres of alcoholic drinks were available for domestic consumption: 289 million litres of beer 111 million litres of wine 77 million litres of spirits and spirit-based drinks

By volume, we drink almost three-times as much beer than wine. However, by alcohol content or standard drinks, 12.6 million litres of pure alcohol comes from beer, 11.5 million litres from wine, and 10 million litres from spirits. This totals 34.2 million litres of pure alcohol per year, or 8.8 litres per person aged over 15 years. On average, this means that every New Zealander drinks almost 2 standard drinks per day. However, in reality, we know that rather than New Zealanders drinking small amounts daily, around half of all alcohol in New Zealand is consumed in heavy drinking sessions.

</comment></comment></comment></comment></comment><comment><USER26> I'm in my thirties and cut down on alcohol.

I didn't drink alone or often, just 2-3 nights a month and most of them it was only 2-3 beer, but sometimes it was quite much.

Anyway, I'm dieting right now and had the impression that replacing alcohol with coke-zero at parties would cut down a few hundreds of kcals a month.

</comment><comment><USER27> As a lifelong teetotaler, one thing I've consistently found strange is how much other people seem concerned by me not drinking at social events. This seems consistent with the conclusions of the study.

Some people want to make sure that I'm "having fun". Apparently "having fun" is a euphemism for drinking. No matter how many times I tell them that yes, I am enjoying myself, this doesn't satisfy some people.

Some people seem concerned that because everyone else is drinking, if someone does something stupid then I'll remember it. I don't know what to say about this other than that I don't particularly care if you do something stupid as long as it's not dangerous.

And then there are the people who believe that my not drinking means that I judge those who do. I don't care if you drink any more than if you put ketchup on your fries. Sure, if you drank a gallon of ketchup I'd be concerned, but most people don't, so I'm not concerned.

There are those who'll comment on me as if I'm some sort of oddity. Well, I guess I am, and this is never said as a bad thing in my experience, so I'll take it.

Admittedly, I'm old enough that most people don't care, but I'm still surprised by those who do.

<comment> T-hawk I recently had experiences with a regular social group that demonstrated this. It's a group that drinks regularly except for two people who don't. One always feels like he fits in fine, while the other's presence always stuck out as not fitting in. I had to put my finger on why to tell him, after a few events where I found myself not desiring his presence and deliberately hadn't invited him.

I'd peg what's missing as _vulnerability_. Alcohol lowers one's social filters and inhibitions, of course. All the rest of a drinking group is participating in that shared experience, of letting inner thoughts and feelings be more exposed. The risk of saying or doing something one might later regret is part of the thrill. "Having fun" is the euphemism for allowing others to see that state in you.

Some people can naturally achieve that vulnerable "punch-drunk" state without alcohol. Some don't. A person who doesn't inhibits that whole vibe for everyone. You're not a peer, you're a monitor. Doesn't matter if you say you don't care -- the reality is that you will resist getting drawn in to whatever excesses are happening, and everyone will perceive that resistance and themselves adjust for it. Your presence of not mutually participating in the vulnerability drags down the vibe for everyone. It's not exactly the alcohol, it's the state of mind, but of course there is a correlation.

Of course this depends a lot on the nature of the social group. A college fraternity will just plow ahead and ignore that resistance. A country club probably has everyone acting restrained enough so as not to clash with one more reluctant personality. But there are those in-between groups, with social barriers high enough to exist but low enough to be pierced by alcohol, and the presence of a nondrinker acts against that piercing that the participants seek.

<comment><USER27> Thanks, I think a lack of vulnerability is a useful perspective to understand some of what I've experienced. Typically the people who seem concerned that I'm not drinking don't know me well.

<comment><USER27> Additionally, I want to emphasize that it's important to not write off a non- drinking friend simply because they don't seem to be opening up in the way you want. I find at least some drinkers seem to write me off in all social situations based only on those that involve drinking. If that's not the way to get to know someone, try another way. Also, if it really is about opening up and not drinking, tell that to your non-drinking friend!

</comment></comment></comment></comment><comment><USER28> There's no way that parent drinking behavior isn't a strong indicator too.

<comment><USER29> I've seen that one go both ways, it would be great to have more data. Anecdotal, but a larger number of people than I expected have told me they don't drink - or set extremely low limits for themselves - as a result of parental behavior which led to a disgust response.

</comment></comment><comment><USER30> Oh my, don't show me that. My son is going to college next year. I don't believe that the situation with alcohol is so awful. I'm sure such habits are taken from his surrounding while growing up.

</comment><comment><USER31> Genetic predisposition? that's opening up a can of worms.

"Begorah is it cos I am irish" \- Adopts stereotypical fighting drunkard pose.

<comment><USER32> First law of Behaviour Genetics:

 _All human behavioural traits are heritable._

[https://teammccallum.wordpress.com/3-laws-of-behaviour- genet...](https://teammccallum.wordpress.com/3-laws-of-behaviour-genetics/)

<comment><USER33> _First law of Behaviour Genetics:_

 _All human behavioural traits are heritable._

(As noted elsewhere, almost all.)

I was watching an Aydin Paladin video, and IIRC, she mentioned one study which found that genetic factors explained 41% of variation in infidelity and 38% variation in number of sexual partners.

[https://youtu.be/KET2JncpJ7o?t=1028](https://youtu.be/KET2JncpJ7o?t=1028)

Cherkas, L. F., Oelsner, E. C., Mak, Y. T., Valdes, A., & Spector, T. D. (2004). Genetic influences on female infidelity and number of sexual partners in humans: a linkage and association study of the role of the vasopressin receptor gene (AVPR1A). Twin Research and Human Genetics, 7(6), 649-658.

Another citation from that video:

Garver-Apgar, C. E., Gangestad, S. W., Thornhill, R., Miller, R. D., & Olp, J. J. (2006). Major histocompatibility complex alleles, sexual responsivity, and unfaithfulness in romantic couples. Psychological Science, 17(10), 830-835.

So much for the ideology of the Blank Slate. Atheism of the 2000's got this much right: Human beings are conscious and sentient, which is wonderful, but we are also animals subject to biology. That's just messy reality, and we'd best deal with it.

<comment><USER34> Did they control for regional cultural attitudes towards sex?

For example, these genetic factors could correlate with people whose hereditary upbringing was in a more promiscuous culture, but not necessarily causing it.

Edit: Your first citation says they didn't find a link between infidelity and genetics, but did with environment.

<comment><USER33> _Did they control for regional cultural attitudes towards sex?_

It was a twin study entirely within the UK.

 _Edit: Your first citation says they didn 't find a link between infidelity and genetics, but did with environment._

I don't think that's correct. I think you are willfully reading what you want, and your paraphrase leaves out a key detail.

 _Our findings demonstrate that infidelity and number of sexual partners are both under moderate genetic influence (41% and 38% heritable, respectively) and the genetic correlation between these two traits is strong (47%). Conversely, attitudes towards infidelity are driven by shared and unique environmental, but not genetic, influences._

The study found that environmental factors shape attitude towards infidelity, but "infidelity and number of sexual partners are both under moderate genetic influence."

[https://pdfs.semanticscholar.org/39d8/8c23b2535946c1a6be7448...](https://pdfs.semanticscholar.org/39d8/8c23b2535946c1a6be744805dc00e8bfee5e.pdf)

</comment></comment></comment></comment></comment><comment><USER33> My wife and I cannot drink to keep pace. She's done after 1/4th of a drink. I'm done after 2. The one time she let her coworkers pressure her to finish a drink, I had to stay up with her in the bathroom.</comment>


Researchers discover the microbiome's role in attacking cancerous tumors - <AUTHOR> https://www.sciencedaily.com/releases/2020/08/200813144920.htm <comment><USER2> The paper _Microbiome-derived inosine modulates response to checkpoint inhibitor immunotherapy_ [1]:

> We found that intestinal B. pseudolongum modulated enhanced immunotherapy > response through production of the metabolite inosine. Decreased gut barrier > function induced by immunotherapy increased systemic translocation of > inosine and activated anti-tumor T cells. The effect of inosine was > dependent on T cell expression of the adenosine A2A receptor and required > co-stimulation. Collectively, our study identifies a novel microbial > metabolite-immune pathway that is activated by immunotherapy that may be > exploited to develop microbial-based adjuvant therapies.

[1] [https://science.sciencemag.org/content/early/2020/08/12/scie...](https://science.sciencemag.org/content/early/2020/08/12/science.abc3421)

</comment><comment><USER3> The findings are very interesting - who would one learn of the foods to eat to create a positive gut bacteria environment?

<comment><USER4> To a good first approximation, this is the crux of Pollan's dictum: "Eat food. Mostly plants. Not too much."

<comment><USER5> There must be more to it.

<comment><USER4> That's why I started out by saying "to a good first approximation".

I don't see a lot of value in the kinds of "quantified-self" hyperoptimizations people always seem so anxious to go for around this. Maintaining a good, healthy diet certainly isn't enough for everyone, and of course I see why folks for whom that doesn't suffice go deeper. But if you're starting anywhere else _but_ by investing in the habit of maintaining a good, healthy diet, I think you're starting in the wrong place.

My experience has been that it is truly astonishing how much benefit can be derived simply from the habit of eating well.

<comment> saiya-jin Completely agree, there is no point these days to go beyond basic regime of eating healthy, exercising healthy, sleeping well, have good relationships, not too stressful work and maybe few little personal extra things like meditation or similar mood setter.

Each of these can be broken down to 1-2 levels of more details, but it doesn't make sense to go deeper. Ie with food - lots of veggies, then bit of +-healthy everything, ideally BIO, tasty, eat more in first half of the day etc.

The number of people who can consistently manage all of those to a good level would be astonishingly small. But we all can try to cover as much as possible, and it will be good enough for most for good healthy life.

</comment></comment></comment></comment></comment><comment><USER6> Very cool how we are learning that the microbiome seems to play a significant role in -so- many previously unexpected bodily processes.

Does anyone know of some other interesting findings to share?

<comment><USER7> There's a long and fascinating story about cancer as a _metabolic disease_. Turns 98% of modern cancer research on it's head.

I wish I could give a 200 word summary, but that would not do justice to the decades of research behind this approach.

Instead, I direct you to a book that could well save your life or the life of your friends and family: _Tripping Over the Truth: The Metabolic Theory of Cancer_ [0]

[0]: [https://www.goodreads.com/book/show/23496164-tripping- over-t...](https://www.goodreads.com/book/show/23496164-tripping-over-the- truth)

<comment><USER8> For comparison, what kinds of diseases are not metabolic?

<comment><USER7> I'm not an expert in any means. I'm a software developer who has had some friends died of cancer, and then two years ago I read "Tripping over the Truth" and felt a sense of rage.

To take a stab at your question, at least in the context of cancer, cancer is almost never seen as a "cell metabolism" problem, it's viewed as a "damaged DNA" problem

Quoting from an article[0] that discusses the somatic vs. metabolic theories of cancer. This is how the "somatic theory of cancer" describes the cancer pathways:

> Cancer is caused by damage to DNA, which leads to damaged genes. Those > genes, oncogenes, are responsible for the reproduction of cancer cell lines > (which one could think of as multi-generation families), which grow > unchecked to the point of being a tumor. Those tumors can be tested for > damaged genes and will allegedly show those genes.

[0]: [https://colleenhuber.com/metabolic-theory-of-cancer-and- comm...](https://colleenhuber.com/metabolic-theory-of-cancer-and-common- misconceptions/)

<comment><USER9> As a cancer biologist, separating the metabolic from the somatic causes is complicated. Yes, ultimately cancers arise from the replication of cells with mutations in their DNA. But our immune system is on constant lookout for such cells and kill them once identified. So in a sense cancer is a failure of the immune system, and many things can depress the immune system, including metabolism.

<comment><USER7> I appreciate your response! I'm a layperson, so I am the last person qualified to give an informed response to your comment.

That said, I perceive a conceptual gap between your response, and my understanding of the metabolic theory of cancer.

I believe this gap exists because the 'metabolism' piece refers not to _human_ metabolism, but cellular metabolism, specifically how mitochondria create energy.

I would be thrilled and honored if you'd read "Tripping Over the Truth"[0], but I know we all live in resource-constrained environments. You're not going to read a book because a random person on HN suggested it.

Because of this, and the fact that I dislike even hinting at "do unpaid labor", I am paying people to read this book.

I've allocated $5000 (5% of my pre-tax annual income when working, though I'm on a sabbatical right now) to getting certain well-positioned individuals to read _Tripping Over the Truth_ [1].

Not to force or coerce anyone into agreeing with me, but I find the general theory to be so persuasive, I wonder if others might as well. I want _expert insight_ into this topic.

Would you be willing to accept some of that "fund" and read the book? If, after reading, you'd be willing to give me a paragraph of your commentary on the book, I'd be eternally grateful.

I'd pay you $500 to read the book. If $500 isn't compelling, how about $1000? I'd send half when you agree to reading it, half when done (paypal, venmo, bitcoin, whatever).

I hope you're interested. My email is in my profile!

[0]: [https://www.goodreads.com/book/show/23496164-tripping- over-t...](https://www.goodreads.com/book/show/23496164-tripping-over-the- truth)

[1]: [https://josh.works/mike-clayville-can-have-a-huge-impact- on-...](https://josh.works/mike-clayville-can-have-a-huge-impact-on-cancer)

</comment></comment></comment></comment></comment></comment><comment><USER10> I'm hopeful we can look back on our primitive cancer fighting days when we simply take a booster shot for what ails us and we go back to work.

</comment><comment><USER11> Fast track this</comment>


Building a command line tool to simulate the spread of an infection - <AUTHOR> https://johnlekberg.com/blog/2020-04-10-cli-infection.html <comment><USER2> I also wrote a very simple model of infection growth based on a system of non- linear differential equations [1]. My model has not at all followed the curve of the real infection in the US. John's model is looks much more sophisticated. [1] [https://github.com/eggsactly/corona/blob/master/corona.py](https://github.com/eggsactly/corona/blob/master/corona.py)

<comment><USER3> Are you sure it's nonlinear? Looks like a system of linear ODE's to me.

<comment><USER3> Oops. Of course it's nonlinear. My bad.

</comment></comment></comment><comment><USER4> Coincidentally this month's IBM Ponder This challenge calls for a similar tool:

[https://www.research.ibm.com/haifa/ponderthis/challenges/Apr...](https://www.research.ibm.com/haifa/ponderthis/challenges/April2020.html)</comment>


A Prayer for Own Meaning (or, Why Marc Andreessen Is Wrong About English Majors) - <AUTHOR> http://www.ripariandata.com/blog/why-marc-andreessen-is-wrong-about-english-majors

<comment><USER2> Andreessen has it wrong. Tech degrees have always done well historically, doesn't mean there isn't any place for the humanities. I bet you Andreessen learnt lifelong soft skills from humanities courses he took in school.

Also, if he were right, why isn't all the innovation happening in tech only countries like India and China (where once you're in a tech degree, you don't really take any courses in the humanities)</comment>


Tech Companies' Best (and Most Unusual) Perks - <AUTHOR> http://insights.dice.com/2016/02/03/companies-best-and-most-unusual-perks/ <comment><USER2> REI offers two whole days of paid time off?!

</comment><comment><USER3> I just want more money or more time to spend with my family. The rest of the perks are just a smoke-screen.

<comment><USER2> You mean ping-pong tables and free snacks aren't enough to keep you happy while being under paid? /sarcasm

Yeah, I mean I know it's cheaper to have some perks to make it look like you care, but honestly shorter days and decent pay is more than enough.

<comment><USER3> I once had a boss that wanted us to work all night, in exchange for 'free Redbull 8n the fridge'</comment></comment></comment>


Facebook's Libra will not help the unbanked - <AUTHOR> https://www.iafrikan.com/2019/07/03/facebooks-new-digital-currency-will-not-help-the-billions-of-people-currently-excluded-from-banks/ <comment><USER2> >they are simply unaware of the different benefits of a bank account, such as overdraft facilities or credit schemes.

surely that's a good thing? to avoid people getting snared by high interest debt

<comment><USER3> Credit schemes and overdraft facilities certainly aren't the main benefit of a bank account either, they're more like very dark patterns that you take for granted and turn off where you can.

</comment></comment><comment><USER4> How about we let Libra get released and see what happens before making assumptions about who it will help. Something like this is very unpredictable and it will be great to see what comes of it.

<comment><USER5> What has Facebook done to engender this level of trust with you? For myself, and I dare say most people paying attention, Facebook has clearly demonstrated they should not be allowed to become a central bank.

<comment><USER6> The banking phrase "know your customer" suddenly takes on a very ominous ring.</comment></comment></comment>


Watch Tesla's Autopilot Brake for a Crash Before It Even Happens - <AUTHOR> http://gizmodo.com/watch-teslas-autopilot-brake-for-a-crash-before-it-even-1790540256 <comment><USER2> Earlier post at [https://news.ycombinator.com/item?id=13268580](https://news.ycombinator.com/item?id=13268580)

<comment><USER3> Thanks. We moved the comments there.

<comment><USER4> When I searched for "tesla", last 24 hours, this story still shows 159 comments in the search results. Here on this page, it shows the "2 comments" text.</comment></comment></comment>


Portmanteau Generator - <AUTHOR> https://www.punchlinedesign.net/pun_generator <comment><USER5> I had my doubts going in, but:

"Pointless" "Meeting" -> Morondezvous

I think it just found the perfect word for my daily life.

<comment><USER6> You've just added value to my life! I will use this word with great pleasure.

</comment></comment><comment> ar-nelson An excellent way to invent new Pokémon: element + animal

        "electric"+"rat":

        - <USER2>
        - <USER3>
        - <USER4>

<comment><USER7> Electrodent is perfect for Pikachu, but, unsurprisingly, much less appealing.

</comment></comment><comment><USER8> This is cool. I entered Bird + Word and got:

      - beak speak
      - lexicon swan
      - ornithology terminology

And to cap it off, the portmentau of _spellican!_

</comment><comment><USER9> The results are just incredible. The depth of the project is very deep. Case in point, chess+clock yields hourglasker (hourglass & Lasker). Lasker was a German chess champion, well known in chess circles but the average person would have no idea who he is.

I wonder if this is using wikipedia or dbpedia to walk a graph and find words to stick together. That's the only way I could think of doing this.

<comment><USER10> Nope, the paper says it's just using the FastText word embedding: [https://nips2018creativity.github.io/doc/entendrepreneur.pdf](https://nips2018creativity.github.io/doc/entendrepreneur.pdf) which is just a particularly well-done word2vec: [https://arxiv.org/pdf/1712.09405.pdf](https://arxiv.org/pdf/1712.09405.pdf) 'Lasker' and 'chess' no doubt co-occur quite strongly in their Internet corpus.

<comment><USER11> On the other hand, it comes up with "Beagle" and "Labrador" as synonyms of "cat". Color me unimpressed.

This seems like something that has been done before, and the fact the paper has no references indicates to me that the author maybe didn't do background research. While [0] is different, I could have sworn I've seen a paper which discussed creating puns in this fashion.

[0] [http://www.aclweb.org/anthology/W05-1614](http://www.aclweb.org/anthology/W05-1614)

<comment><USER10> > On the other hand, it comes up with "Beagle" and "Labrador" as synonyms of > "cat". Color me unimpressed.

'It doesn't matter whether a cat has floppy ears or yellow fur so long as it catches mice.'

<comment><USER7> Perhaps it's thinking in Ron Swanson terms:

"Any dog under fifty pounds is a cat and cats are useless."

</comment></comment></comment></comment></comment><comment><USER12> Well... Time to change careers. A "sex" and "travel" blog called "exploregasm" needs to exist.

</comment><comment><USER13> Seeding with "tiger mom" didn't disappoint:

      - galigator (gal/alligator)
      - croctuplets (croc/octuplets)
      - Pumather-in-law (puma/mother-in-law)

</comment><comment><USER14> Source code: [https://github.com/jonadsimon/entendrepreneur- web/blob/maste...](https://github.com/jonadsimon/entendrepreneur- web/blob/master/app/portmanteau.py)

Paper (just 2 pages): [https://nips2018creativity.github.io/doc/entendrepreneur.pdf](https://nips2018creativity.github.io/doc/entendrepreneur.pdf)

</comment><comment><USER15> Anyway... here is a 100,000+word portmanteau for your entertainment [https://www.youtube.com/watch?v=QVn2PZGZxaI](https://www.youtube.com/watch?v=QVn2PZGZxaI) (no phonemes)

Againyway... that's odd [https://www.punchlinedesign.net/pun_generator/%21+%21](https://www.punchlinedesign.net/pun_generator/%21+%21)

<comment><USER16> dunnope [https://www.punchlinedesign.net/pun_generator/%3F+](https://www.punchlinedesign.net/pun_generator/%3F+)!

whenyway suckordingly anyhowever whenyhow [https://www.punchlinedesign.net/pun_generator/!+](https://www.punchlinedesign.net/pun_generator/!+).

</comment></comment><comment><USER17> "existential" \+ "angst" yields some great results, including despairitual (despair/spiritual), tormentological (torment/ontological), and sartrevail (sartre/travail)

</comment><comment><USER18> Seeded it with fish and plane because they were the first two words I could think of.

"tarmackerel"

I am complete.

</comment><comment><USER19> Oh, I've got another one:

Britain and exit yields: Briturn - I think the signs have spoken

</comment><comment><USER20> Very cool and impressive project. "portmanteau" \+ "website" yields "internetymology".

</comment><comment><USER21> Rockstar + Developer yields the rather delightful "insomniactor".

</comment><comment><USER22> In this friendustry informat is the mewsage.

</comment><comment><USER23> Suggestion: integrate this on a domain name suggestion service.

<comment><USER24> As far as I can tell, it already serves that purpose beautifully in its current state :P

<comment><USER23> For sure. Showing what .com is available would be nice, though.

</comment></comment></comment><comment><USER25> My favorite:

timid + programmer => softwary (software/wary)

</comment><comment><USER19> This is internet gold

spaghetti + mom yields:

grandpasta mommytball spagheteenager spagheteen fettuccineice

I think I found my next online nickname: "grandpasta flash"

</comment><comment><USER11> A think the right way to test such a tool is to _start_ with a list of known portmanteaus or rhymes, and check if the tool successfully finds them, and with what precision and recall.

Just having people plug in words and find things that they find interesting is going to result in people feeling it's better than it actually is. I tried a few examples, and while some of the outputs seemed "OK", they missed what seemed like obvious puns that I know exist in the lexicon because I was able to massage the inputs until it found them.

<comment><USER7> I think the first step would be to use a tool for word selection that does a better job finding actual synonyms instead of "words that are vaguely the same".

The phoneme matching aspect of it obviously works very well. I think if you had more control over the words it would use, you'd get better results. See my comment about "politician" above. I've repeated tried combinations with the word politician in them, and none of the synonyms I would expect to show up ever showed up.

</comment></comment><comment><USER7> This is a really cool implementation, and I'm impressed with the examples given.

So, I did what every obnoxious person would do and put in "stupid" and "politician", but I didn't get any real good results, mostly because it didn't use any of the synonyms for "politician" that I would expect... like president, senator, congressman, governor, prime minister (would it even deal with compound words?) or even the most obvious: politician!

Instead it used these words: moralist, orator, critic, rabbi, teacher, entrepreneur, philanthropist, leader (OK, that one is good), economist, attorney, prelate, administrator, constituent, assemblyman, and assemblywoman. Everyone of these was either not really a kind of politician, or a pretty obscure word.

Now some of these portmanteaus were pretty clever through the matching of phoneme clusters, and not just exact ones, but similar ones, and that's what's really cool about this tool, but ultimately I couldn't get what I was looking for!

At the very least it should use the words you entered!

Nevertheless, I definitely want to play with this more.

So, to the authors I'd say they've built something really cool and I'm looking forward to seeing how it can be improved.

</comment><comment><USER26> I put in "software engineer" and got 'technologyologist'... which _feels_ right!

</comment><comment><USER27> continuous integration = continunity (continue/unity)

artificial intelligence = smartificial (smart/artificial)

garbage collector = debriscycler (debris/recycler)

</comment><comment><USER28> Ah, it's an adjecdevice! Or a pejoradevice, depending on how rude it's being.

</comment><comment><USER16> I'd love to see a version for non-US English. Seeing "AA" for sounds like the 'o' in 'pot' is..very strange. And it gives rhymes like

shock bach SH.AA.K B.AA.K

which I guess only rhyme in the USA.

</comment><comment><USER29> bad seed: horrendousperm (horrendous + endosperm). Possibly produced by a fertilizer miser.

</comment><comment><USER10> Also discussed on SSC: [https://slatestarcodex.com/2019/02/24/ot122-openne- thread/#c...](https://slatestarcodex.com/2019/02/24/ot122-openne- thread/#comment-724333)

<comment><AUTHOR> Where do you think I found it? ;)

</comment></comment><comment><USER30> Evil Corporation > sindustry (sin+industry)

Small Business > slenderprise (slender/enterprise), businessmany (businessman + many), revenuemerous (revenue/numerous)

Boring Movie > screenplazy (screenplay/lazy)

Stupid Idea > retardicle (retard/article)

These are so good!

</comment><comment><USER31> "Hacker" "News" \- gossipculture \- newsworthief \- subculjournal

</comment><comment><USER31> [https://www.punchlinedesign.net/pun_generator/Venture+capita...](https://www.punchlinedesign.net/pun_generator/Venture+capital)

rhymes with... misallocation exploration.

</comment><comment><USER32> I was hoping to see motel from motor and hotel, brunch from breakfast and lunch.

</comment><comment><USER22> Tongue in cheek: misleader (mislead/leader) and the rhyme "disrespect reelect"

</comment><comment><USER33> [https://www.punchlinedesign.net/pun_generator/lazy+fox](https://www.punchlinedesign.net/pun_generator/lazy+fox)

Stop being such a grumbeaver (grumpy/beaver)!

Genious!

</comment><comment><USER34> poop + politician = craparatchik. the math checks out.

</comment><comment><USER35> Idiot + Friend = Dumbigo (dumb/amigo)

I'll be using that!

</comment><comment><USER36> Software + Engineer -> electrontrepreneur. So true, nowadays.

<comment><USER37> I found this one too, and registered the .com - lol!

</comment></comment><comment><USER38> This is terrible fun, or dare i say "shitty-witty"

</comment><comment><USER39> Your generator keeps suggesting me to use the n-word (hard r) and I am not putting anything racist in. Can you please add some filters?

<comment><USER40> I would even go so far as to say he should just take that word out of his dictionary. There's never a time that it should serve it as a suggestion, IMO.

</comment></comment><comment><USER41> crypto + currency = greenbackdoor

</comment><comment><USER42> warfareogance (warfare arrogance) needs to become a thing

<comment><USER43> We used to just call them NeoCons.

</comment></comment><comment><USER44> labyrinth + monster = navigator (navigate/gator)

</comment><comment><USER45> nightmairline

</comment><comment><USER46> This is where rappers hang out.

</comment><comment><USER43> President Trump:

contradictator (contradict/dictator)

<comment><USER43> haha I love that I am being downvoted for the output of this service/bot</comment></comment>


Ask HN: What is the best mobile HN app? - <AUTHOR> <comment><USER2> Materialistic (Interact with the "Hacker news" site) - [https://f-droid.org/app/io.github.hidroh.materialistic](https://f-droid.org/app/io.github.hidroh.materialistic)

<comment><AUTHOR> I'm on iOS, but it looks good!

</comment></comment><comment><USER3> I prefer this one, especially with nested comments. [https://app.hackerwebapp.com](https://app.hackerwebapp.com)

<comment><AUTHOR> This looks cool! I'll check it out!</comment></comment>


Twitter: It's About People, Not Technology - <AUTHOR> http://www.avc.com/a_vc/2009/01/its-about-peopl.html

<comment><USER2> Sounds familiar, right? "Facebook is about connecting people"

Massive sites should always be about people. I heard a great quote the other day: "facebook is where you go to connect with people you used to know, twitter is where you go to get to know people better"

It's true for me.

</comment><comment><USER3> Comment I left on his blog:

Would you say this is a shift we're seeing across the entire tech industry?

In my opinion, throughout the 90's and early 00's technology was compared by a lengthy feature-set, but not necessarily by accessibility -- the human factor. The entire PC industry is losing ground to gaming consoles and Apple for a fundamental reason: it's not what the product can do as a whole, but what it can do for ME as efficient and perfectionate as possible. Technology has been over-complicated in many instances, the people & companies that can humanize it are going to win in the next era. my 2 cents.

PS. I have this taped to my monitor and live by it: "Brands can't be commoditized, and features inevitably are." - Jason Calacanis. Twitter has become a lifestyle brand... it's unstoppable.

<comment><USER4> Yeah. Until it runs out of money without a business plan. Then it will stop...rather suddenly.

<comment><USER3> If Twitter lacks a business plan, then Briteny Spears is a virgin and she does not have a twitter account. (@britneyspears)

With the number of enterprises/companies/marketers/PR/CR/etc. using the service, if Twitter hasn't found a viable business model then it deserves to die. Maybe I'm oversimplifying the task here but from this armchair — it seems to be pretty simple, and a matter of flicking the switch when the time is right.

I suppose you could say the same thing about Facebook, but I think they got too caught up in global growth, relied heavily on ad revenue, overextended themselves, and now face the challenge of reaching profitability with a heavy burn (700+ employees) on their back.

<comment><USER4> The number of people who communicate using the service when its free != the utility of a commercial service that's charging you to help customers.

It never hurts to add "one more" free tool to your promotional toolset. That said, if its $.75/update for @britneyspears, it makes more sense for them to just post info on her facebook "fan" page. Or leak it to TMZ.

Again, Customer Service through twitter while free == awesome. Paying for it, when you're already paying for an outsourced Customer Service Center (like Comcast and Time Warner cable do) not so much benefit.

</comment></comment></comment></comment><comment><USER5> Yeah, this is obviously true for most websites. If a website is social than its about the people. Most sites these days are social. From basic forums to facebook and brightkite. Twitter doesn't deserve any hype and the concept is so simple. Facebook really should implement a more twitter-like service now before its too late, which it probably already is.

</comment><comment><USER4> People != "Business Model".

Just like "Success != Failure + Excuses".

</comment><comment><USER6> Twitter is People?

So is soylent green and the Internet.

</comment><comment><USER7> Twitter: should be about money, not people.</comment>


Why I don't use a parser generator - <AUTHOR> http://mortoray.com/2012/07/20/why-i-dont-use-a-parser-generator/ <comment><USER2> First, you should absolutely write couple of parsers by hand first and then repeat this exercise now and then.

I understand the reasons why author does not use parser generators. However, if you are writing a parser for serious production use I urge you to seriously consider parser generator instead of going manual route. Here is why/

Parser generators are akin to compilers. They require certain constraints to be met but in return they generate extremely efficient parsing code. For classes of languages for which parser generators exist, you cannot beat generator with handwritten code neither in terms of parsing nor in terms of maintainability.

Citing shift-reduce conflicts as one of the reasons to write parser by hand is akin to resorting to assembly being frustrated with C compiler errors.

Yes, there are cases when hand-written parsers are preferred. gcc switched for parsing of C/C++ from flex/bison to handwritten parser during 3.x and clang also has handwritten parser.

But this is because C and C++ are languages with context-dependent grammar and C++ syntax became increasingly arcane over the years. You constantly have to resort to tricks during C++ parsing. For example, to properly parse C++ class definition, you need to pass it two times, first reading declarations and only then both declaration and method bodies. You also need to resort to tricks and heuristics if you want to parse '>>' as part of nested template instead of right shift operator etc etc.

Almost always that kind of complicated, context-dependent grammar makes it possible (and in case of Perl, even very easy) to write WTF code.

<comment><USER3> Generated parsers are seldom the most efficient parsers; they can't use many tricks that can make hand-written parsers much faster, because they need to cope with the full generality of the language class they're targeting.

Maintainability is a moot point. The more complex your language, the bigger a maintenance benefit you get from a parser generator, providing it's expressive enough. For parsing C++ outside of a commercial compiler, I'd look at a GLR parser, for which the tables would most likely be tool-created. (In a commercial compiler, I'd be back to hand-written again.)

The value of being able to change your grammar and have your parser follow suit instantaneously isn't high past the prototyping stage. Other things will consume the parse tree, and depending on the tool, the parse tree's shape may be driven by the parse rules (ANTLR) or the parser actions may be more or less deeply embedded in the grammar and require refactoring themselves (most other tools). The downstream consumers of the structures almost certainly need modification too, since it's not likely you're just changing syntax sugar. Whereas if you have a hand-written parser, you can minimize the work needed to adjust downstream. You have more latitude for engineering.

It's great to use tools to validate a grammar, to prototype parsing it, and perhaps even for lightweight work like analysis. But when it's essential you have a 100% accurate semantic analysis, great error messages, excellent performance, deep tooling integration (e.g. IDE code completion), the more control you need over the parsing processes. It's closer to the critical path of success for your target market, and generators are too generic.

For me, parser generators work well for a certain range of applications. Given a range of complexity, with 1 being a date format parser and 10 being a commercial compiler with IDE integration, parser generators work well somewhere around 3 to 7. At the lower end, their costs in terms of integration, third-party dependencies etc. outweigh the complexity of the problem they're solving. At the higher end, you need a lot more out of the tool than it is designed to give you, and working around it causes more pain than anything you're saving.

I was a front-end engineer on the Delphi compiler for 6 years. I don't know of any major commercial compiler that uses a parser generator. Almost all use hybrid recursive descent.

<comment><USER2> Your comment of range of applicability is a very good one, it could be that I found myself within that range more often than not. I did write and maintain C++ parser that supports multiple dialects and self-recovering from syntax errors. It manly was written using flex/bison, but unavoidably used a lot of hand-written tricks.

</comment></comment></comment><comment><USER4> I agree with the main point of the article but there are parser generators like OMeta [http://tinlizzie.org/ometa/](http://tinlizzie.org/ometa/) that help (more than ANTLR/Lex/Yacc) to think in the grammar from a higher level point of view without paying a lot of attention about ambiguities and grammar restrictions. Sure, OMeta is slow but it offers some solutions to the problems presented in the article.

<comment><USER5> I was so impressed with OMeta when I read about it the first time that I decided to write my own implementation for Python. I got a first version released[1] but I sort of ran out of steam before I could take it any further. Luckily, there's another OMeta-based parser library for Python called Parsley which seems to be better-maintained (it's already hit v1.0!)

[1]: [https://pypi.python.org/pypi/python- omega](https://pypi.python.org/pypi/python-omega)

[2]: [https://pypi.python.org/pypi/Parsley](https://pypi.python.org/pypi/Parsley)

</comment></comment><comment><USER6> I used to mostly code parsers by hand for many of the same reasons, for years -- this article gives a nice rundown -- but the repetitive code really does kind of annoy, and I've found something else that works for me. Going over the listed problems:

 _Lexing and context_ : PEGs don't need a separate scanner; the option of calling an arbitrary function to parse a part usually suffices for unusual context needs.

 _Shift /reduce and grammar conflicts_: PEG again sidesteps the problem, at the cost of sometimes resolving ambiguity in an unexpected way.

 _Syntax tree_ : Call semantic actions instead. For example: [https://github.com/darius/peglet/blob/master/examples/regex....](https://github.com/darius/peglet/blob/master/examples/regex.py)

 _Mixed code_ : Semantic actions are denoted by function names instead of inline code. I've used the same grammar in different languages.

 _Other limitations_ : Given a _small_ parsing library -- like one or two pages of non-golfed code -- it's more thinkable to hack it to address whatever particular problem comes up.

So most often these days I use [https://github.com/darius/peglet](https://github.com/darius/peglet) when I have a parsing problem. It's definitely not for coding gcc with.

<comment><USER7> I use LPeg myself. What I like about LPeg is that you can compose it. Once I have an LPeg expression that parses, say, an IPv6 address, I can reuse that expression in a larger grammar.

</comment></comment><comment><USER8> I've used parser combinator libraries (usually based on Parsec), and it's super nice being able to write your grammar as code, very quick and easy, but I'm not sure if it helps with the problems listed, since I think you still need to manually write a bunch of code to process the parsed tokens.

<comment><USER9> I've used a few Parsec-based parser combinators and now I'd never go back to a parser generator.

It might be a little slower at runtime, but the ability to see everything in your chosen language is worth it in my opinion.

<comment><USER10> It doesn't have to be slower at runtime.

Parsec will by default have to be slower, because it allows eg infinite backtracking / lookahead. If you use a parser combinator library that has less power, you can make it faster. E.g. if your library only has to exprose on Applicative interface.

I am working on a Parsec-like library for parsing regular languages (as in theoretical computer sience, not as in Perl). As opposed to grep I want to do something with the results instead of just accepting / rejecting, and I also want to expose more operators under which regular languages are closed, like difference or intersection (i.e. parallel match) or matching all elements of a set once but in any order, or chopping off a regular prefix or suffix.

</comment></comment></comment><comment><USER11> It sounds to me like he wants a PEG parser - PEG is a formalization of a recursive descent parsers that operates in a single pass and can quite easily handle the "parse different things in different contexts" problem (like the inline assembly the author mentions).

It's not terribly mature yet, but I've been poking away at building a PEG parser generator myself (mostly as an exercise to learn C++11): [https://github.com/bruceiv/egg](https://github.com/bruceiv/egg)

<comment><USER3> PEG parsers use backtracking and do not operate in a single pass. They use memoization to avoid the combinatorial explosion, but that trades one problem for another (though of lesser magnitude).

Recursive descent parsers are normally LL(k) and are O(n) in the size of the input - choices are made based on the next k tokens and no backtracking or alternate grammar paths are generally ever tried. Though they are not particularly efficient when rules nest deeply on the left before consuming tokens. It's better to use an operator precedence parser for parsing arithmetic expressions than use LL(1) rules to handle precedence, for example.

Having a separate lexer has other benefits besides eliminating explicit whitespace. It enforces consistency in the token set, which can otherwise seem arbitrary - a keyword has a special meaning in one part of the grammar, but not elsewhere. And this in turn helps with keeping backward compatibility when growing a language, because you can know for a fact that using a keyword elsewhere in the grammar doesn't introduce new problems.

<comment><USER12> _PEG parsers use backtracking and do not operate in a single pass._

Backtracking + memoization is but one implementation technique for PEG parsers. Another such technique is akin to dynamic programming -- fill in a table with possible parsing outcomes as you go. No "backtracking" (which really, is moot in a memoized PEG parser) required.

Either way, the performance is identical to that of a recursive descent parser (linear in the size of the input and number of nonterminals).

<comment><USER3> Recursive descent parsers are linear in the size of the input, but they're also linear in the nesting depth of the grammar, unlike e.g. PDAs or operator precedence parsers, which is why they're a poor choice for things like math expressions.

And performance is not just time, but also space.

There are niches for most parsing algorithms, but PEGs are a poor fit for most tasks except lightweight ad-hoc use, especially implementation languages for which tool support is poor.

</comment></comment></comment></comment><comment><USER13> Off topic: in what context do so many people on here need parsers? Do you actually use them for your jobs or are all of these use case for pet languages? When reading comments for threads like this I cannot help but feel that every day a half a dozen new programming languages get released that I never hear about.

<comment><USER14> Not every parser is for a programming language. Often you need something to parse a specific file format you need to handle or made up. Although back at university my job was working on a large-ish modelling and simulation framework, and we had all kinds of parsers because each simulator needed some way of storing its initial state or the model configuration. Simply shoe- horning all of those things somehow into XML, JSON, YAML or CSV doesn't always work.

</comment></comment><comment><USER15> > _I find context-free lexing to be a serious limitation on parsing._

What is this supposed to mean? _Context-free_ and _context-sensitive_ are well-defined terms in formal language theory, but OP seems to be using them in a non-standard way.

In any case, when we talk about lexers it's normally understood we're parsing a regular language, which is simpler than parsing general context-free languages (let alone context-sensitive) [1]. If you're doing something that cannot be expressed with a plain regular expression, then it's probably not lexing in the first place.

        Age 37
        Group 15-B
        Phone +49.(0).123.456

Maybe I'm dense, but I can't see this would be problematic. If OP said what did he try, and why it didn't work, it would be nice.

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

<comment><USER16> I hope lexers aren't only for parsing regular languages! I definitely want my lexer to be able to parse balanced parens.

<comment><USER15> Interesting. You mean you use a language where "sequence of balanced parens" is a token?

<comment><USER16> No, I use many languages that care about whether parens (each one of which is its own token) are balanced. The language of balanced parens (a language that includes "" and "((((()()(()))())))" but not "()())(()" or "(((()))))") is a simpler language that also cares about parens being balanced. It was also the first language I saw in compilers class that was not regular.

<comment><USER15> Then you don't need the lexer to parse balanced parens. The job of the lexer is to turn

        ("Foo(" + bar)

into something like

        OpenParen String Op Identifier CloseParen

Then the (synyactical) parser takes over. This is pretty standard.

</comment></comment></comment></comment></comment><comment><USER17> Fair enough. I've definitely run into many of those issues too. It sounds like the features you're missing are:

\- an ability to switch some blocks of input text to an alternative parser for another language or more free-form mode

\- a better model of CFGs that reduces or eliminates unnecessary errors from the tool not understanding your particular normalization of the grammar

\- better tools for working with the resulting ASTs

It sounds to me like the real issue is with the tools we have, not necessarily with parser generators as a concept. Maybe a more accurate title would have been "why today's parser generators don't work for me", because at the end of the day, unless your really good at cranking out sensible parsing code on your own, going the ad-hoc route seems to have a huge drawback when it comes to reinventing the wheel and maintenance of the resulting parsing code. The other major advantage of using a parser generator in my mind is that the resulting language is likely to be way more consistent and portable than something that's parsed ad-hoc. But maybe for simple languages, this isn't a big deal.

<comment><USER18> If the tools are still seriously lacking after several decades, that does point at a problem with the concept IMO. I don't think the core idea of a parser generator is an awful one, but I do think it's become clear that the classic lex/yacc approach is the wrong one, and while PEGs and things like Parsec as a good step in the right direction, I think another conceptual shift will be needed before they're unambiguously better than a handrolled parser.

</comment></comment><comment><USER19> Parser Generators have a bad reputation because they provide a leaky abstraction. In order to use an LR parser generator effectively you need to understand which languages the algorithm can handle.

Once you do, most of the problems vanish. For instance, in my experience, shift/reduce conflicts work almost like an integrated debugger. They highlight ambiguities in your grammar and most parser generators can produce a detailed report of the conflicts.

If, however, you do not understand the algorithm you are using and are for instance formulating your grammar to be completely right linear... well, you will get spurious shift/reduce conflicts.

The same applies to the lexer. Yes, a lexer can only process regular languages. Anything beyond that can be done in the parser. The parse tree generated by a tool like yacc is often messy and full of details. You can handle this by having an additional, hand written, pass which transforms the yacc output into the actual internal data structure of your compiler. Which, outside of toy examples, had better not be an abstract syntax tree. :)

</comment><comment><USER20> mu

[https://github.com/Engelberg/instaparse](https://github.com/Engelberg/instaparse)

<comment><USER21> That is a sexy parser generator you got there. Pity it seems to be limited to use in a Clojure environment.

<comment><USER20> >Pity it seems to be limited to use in a Clojure environment.

Don't let that limit _you_.

</comment></comment></comment><comment><USER22> Most modern parser generators are capable of more than the author gives credit for. Bison/Flex, for example, can handle most of the issues mentioned (feedback from the parser back to the lexer for context-sensitivity, Flex start conditions for grammars within grammars, %prec to explicitly resolve conflicts). A project would need to have a very simple grammar or very stringent performance requirements to consider writing a parser by hand. "Parser generators can't handle my grammar" is usually a bad reason, although there are the rare exceptions.

</comment><comment><USER23>
      > I really don't want to need a post-processing
      > phase which massages the resulting tree.

Weird, it was much easier for me to simplify the tree after the fact. As for anything else this is pretty much how I feel about yacc/bison as well. You have to invest way too much time to understand their internal workings to do anything non-trivial and it's just not worth it.

</comment><comment><USER24> Are there many (computer) languages which don't use a text file (in some encoding or other) as their 'normal' representation?

If the compiler interpreter wants a tokenized input, perhaps we could/should save in that format?

Obviously the code-entry system (not sure that it's an 'editor' at this point) has to have an efficient way to let you select which tokens to enter (and enter free text in allowed places, i.e. string literals and comments).

That could either be 'one token per key' a la ZX Spectrum Basic (the only system I'm aware of which works this way): [http://en.wikipedia.org/wiki/ZX_Spectrum#Firmware](http://en.wikipedia.org/wiki/ZX_Spectrum#Firmware) or something which looks the same as auto-complete to the end-user.

The typing experience would be much like a modern IDE, but would not allow you to enter or save incorrect text strings where a token was required, and would not require a lexing step (since it would be saved as tokens, or possibly even as an AST).

<comment><USER25> There quite a few tokenized BASIC dialects: [http://justsolve.archiveteam.org/wiki/Tokenized_BASIC](http://justsolve.archiveteam.org/wiki/Tokenized_BASIC)

<comment><USER24> Interesting, thanks. Note however that the ZX spectrum also did tokenized input. Each key corresponded to a different basic token: [http://fms.komkon.org/Speccy/SpeccyKeys.gif](http://fms.komkon.org/Speccy/SpeccyKeys.gif).

In the context of lexing and parsing, I was wondering about this idea. The _program entry_ system is kind of like a potentially context-aware parser. No more syntax error are possible...

</comment></comment></comment><comment> qu4z-2 You may be interested in a parser generator someone at my uni was working on. It generates a possibly-non-deterministic parser which can be disambiguated at the semantic level. Paper here: [0], Source code: [1] It is unfortunately in Java, and I don't know if you want to go down the parser-generator rabbit hole, but if so -- it may be interesting (and it attempts to address the problems you've encountered, so it seems relevant).

[0]: [http://ieeexplore.ieee.org/xpl/login.jsp?tp=&arnumber=140201...](http://ieeexplore.ieee.org/xpl/login.jsp?tp=&arnumber=1402013&url=http%3A%2F%2Fieeexplore.ieee.org%2Fxpls%2Fabs_all.jsp%3Farnumber%3D1402013)]

[1]: [https://launchpad.net/yakyacc/trunk](https://launchpad.net/yakyacc/trunk)

</comment><comment><USER26> Parser generators are useful to explore the problem space. It allows for a higher-level thinking. I always ended up rewriting the parser by hand but I'm not sure I could achieve the same result without the first prototype.

<comment><USER27> This is the way I usually end up doing things as well. I originally tested out the text grammar for later.js using a parser generator. Then once I worked out the kinks and played around with it a bit, I rewrote the parser so that it was specific to the grammar I needed with some additional flexibility that wasn't available from the generator.

</comment></comment><comment><USER28> I always used to laugh heartily when installing Slackware (back since the 3.0 days, ~1995?), the package descriptions would come up as the floppy disks were being read, and the most ridiculously inpenetrable one of all read: _bison: A parser generator in the style of yacc_. Of course, I did try to read the man page but found it mostly unenlightening (ie. being too far from present knowledge) at the time.</comment>


Can a drug make you tell the truth? Reporter tries sodium thiopental - <AUTHOR> http://www.bbc.co.uk/news/magazine-24371140

<comment><USER2> "There is a serious risk you will say what your interrogator wants to hear rather than the truth."

This statement seems entirely plausible to me, but it was in no way implied by the evidence provided. I hate terrible experiments!

<comment><USER3> Yeah. Really disappointing article, kind of just stops right when it gets interesting.

<comment><USER4> Agreed, but at the same time was still interesting enough that I'm glad I read it.

In addition to wanting an actual explanation on his claim that it makes you very suggestible, I also want details on whether this could be avoided by a good interrogator. If it makes false confessions easy then for sure I wouldn't support allowing it in legal proceedings, but if it's possible to be used both safely and effectively then perhaps it might be useful still in some cases. For example you wouldn't convict someone of kidnapping based on a confession on this, but if they confessed to where they were holding their captive then it could be well worth doing. Possibly even as an internal, non-admissible, form of investigation (e.g. "under this drug he said he's not a killer so we believe him slightly more now"), as long as red tape is in place to prevent abuse.

<comment><USER5> The issue with drugs is that it takes a huge body of evidence and experiments to be able to assert, with a margin of error, that a drug is safe or that it does what we think it does. For something like a 'truth serum' of any kind to be deemed both safe and reliable, you would have to study it pretty hard and pretty long and have a very high degree of confidence that when given to a particular person, you are going to get something provably reliable from them.

On top of that, imagine that the drug (a barbiturate after all) has a chance to kills one in a million. Would it even be ethical to use it?

<comment><USER6> Honestly, considering that polygraph is used in courts despite there being no evidence at all for the efficacy of the test, I think you're greatly overvaluing the weight of evidence required...

<comment><USER7> Really? Which courts accept polygraph results as evidence?

<comment><USER6> California, Arizona, Nevada, Georgia, and Florida courts have precedent of allowing the polygraph in court.

There is likely more than that too...

<comment><USER7> I was surprised at this, so I did some cursory Googling. It looks like these states allow polygraph evidence only if both sides agree, and further limit its use in various ways. So even in these states it's not treated as real evidence. However, I don't think pseudoscience should be admitted even under these restrictive conditions.

</comment></comment></comment></comment></comment></comment></comment></comment><comment><USER8> _State v. Pitts, 116 N.J. 580 (The Supreme Court of New Jersey 1989) ("Three experts ... agreed that sodium-amytal-induced interviews are not considered scientifically reliable for the purpose of ascertaining "truth."")._

Source: [http://en.wikipedia.org/wiki/Truth_serum#References](http://en.wikipedia.org/wiki/Truth_serum#References)

</comment><comment><USER9> I wonder if MDMA has been studied as a "suggestibility drug" or "truth serum". From what I have read of the effects, it seems like it would be at least as effective, and fairly safe (maybe 250mg + 125mg 1hr later; spend the first period building rapport, and interrogate later).

<comment><USER10> It might make you hug the interrogator but not much more.

<comment><USER11> I disagree, a lot of people spill their entire life story when they take it.

<comment><USER12> The question is if they'd spill their story even if they have a strong motivation/decision to not spill the story, as described in the article. For example, many people tend to talk about themselves while drunk; but they don't magically start talking about things they really, really want to hide, they'd instead become aggressive or silent.

<comment><USER13> >The question is if they'd spill their story even if they have a strong motivation/decision to not spill the story, as described in the article.

This is merely anecdotal evidence, but having ingested MDMA and experienced these effects, I would say no. There is still very much a feeling that certain things are off-limits. I couldn't imagine that someone would, for example, confess to a murder whilst being interrogated under the influence of MDMA (unless they felt extreme guilt, perhaps).

However, I could easily see myself admitting that I'm not actually a heart surgeon.

</comment></comment></comment></comment></comment><comment><USER14> "the drug is interfering with your higher centres, like your cortex, where a lot of decision making goes on."

This line was pretty funny, at least in a 'man that's some impressive scientific illiteracy' kind of way. The cortex is a huge portion of the brain where most of your sensory processing and nearly all of your cognition takes place.

</comment><comment><USER15> Should be mixed with food in parliament house canteen.

<comment><USER16> It doesn't work if you believe in your own lies.

</comment></comment><comment><USER17> A braver and, I assume, much more meaningful experiment would have involved an interrogator with little regard for the journalist's safety and a strong incentive to keep a certain piece of information secret.</comment>