Google's self driving cars can navigate drive-through restaurants. - <AUTHOR> https://plus.google.com/u/0/116899029375914044550/posts/MVZBmrnzDio We wanted to share one of our favorite moments from some special research we conducted. Watch this video of Steve, who joined us for a drive on a carefully programmed route to experience being behind the wheel in a whole new way. We organized this test as a technical experiment outside of our core research efforts, but we think it's also a promising look at what this kind of technology may one day deliver for society if rigorous technical and safety standards can be met.  <comment><USER2> That should be,"Google's self driving cars can navigate drive through restaurant _drive-throughs_." Although I am highly impressed by Google's self- driving cars, I can't help but feel a little bit let down that the car did not navigate around tables, make way for waiters, or squeeze through tight spaces.

<comment><USER3> Actually the video doesn't show the car navigating through the drive through space, it shows it driving up to the speakers and stopping, then it cuts to a scene from the restaurant where he's ordering, then it cuts to a scene where the car is leaving the parking lot.

As a robotics junky all my red flags went off with that bit of creative editing.

Even if the car spent 10 minutes working out the close quarters navigation it would be more 'real' than the editing which makes me suspicious that the 'side seat' driver actually did that tricky bit of navigating.

Not hating on the Goog here, just really looking forward to the era of self driving vehicles but want to be realistic about their capabilities.

<comment><USER4> There's quite a bit of footage of the self driving car making its way through congested areas with people and obstacles. It was more competent than many of the minivan drivers in my neck of the woods. :)

<comment><USER5> Got a link to that footage?

<comment><USER6> <http://www.youtube.com/watch?v=YXylqtEQ0tk>

9:00 has a good example, recognizing the state of a traffic light, other cars and pedestrians at an intersection, but lots of cool videos starting around 3:40. The whole talk is awesome and a presentation for an actual technical audience, too.

<comment><USER3> That is a great video, my observation is a bit different.

The process by which the car figures out what to do to achieve a goal requires a system for 'working backwards' from where it wants to be, and where it is. This is called 'inverse kinematics.' The more constraints you put on the path planner, the harder it is to do the plan, in fact my experience with my own robots is that the challenge goes up super-linearly at best and exponentially at worst.

In the situations in the video linked above the vehicle can often simply wait and the path options will change until there is one it can execute. But in a drive through there is a fixed route through tight constrictions where non- organic visibility is complex at best (lots of reflections / structures) and opaque at worst.

Cars that can parallel park themselves show that the problem can be solved for a given set of constraints (I actually think parallel parking is easier in this case) but the generalized solution is at least an order of magnitude above that.

Now please don't get me wrong, I have deep and wide respect for what these guys have accomplished. I want them to be successful. And solving the case of navigating into and through a drive up window (restaurant or bank for that matter) is a solid advancement in the area of self-driving transport. And making a video to show it off is a cool thing too.

Except they didn't show it.

And that is what bugged me. There is lots of video showing the car driving through traffic, and as magicalist shows video of it driving through crowded streets, and now we get a video about 'going through the drive-thru' and _it doesn't show the car navigating itself through the drive-thru lane._ We are left to imagine it.

Unfortunately for Google, this is a well known technique that film makers used for a shot that is either too expensive or impractical to shoot. They set up the theme, they show the characters starting toward and action, then a quick shot of them in the middle of that action, and then a shot of them exiting the action. They leave it to our fertile imaginations to 'fill in the rest.' And it is a great story telling technique.

But if you're talking about a real self driving car, and you say it can navigate these very difficult driving situations (and anyone who does robotics will immediately go "Whoa, that is a tough challenge.") then you use the film makers trick of not actually showing anything. Well its kinda like a research paper that doesn't include any supporting data. It looks like a publicity stunt and that Google is whoring out the research for some sort of 'feel good' brand buffing. I don't think that was where they intended to go with that spot.

</comment></comment></comment></comment></comment></comment><comment><USER7> Unmentioned in the article is that 'Steve' is Daniel Steve Mahan, who's 95% blind. He's CEO of the Santa Clara Blind Center: <http://www.visionbeyondsight.org/About-Staff.htm>

<comment><USER8> "We announced our self-driving car project in 2010 to make driving safer, more enjoyable, and more efficient."

OK so Google Labs is shut down and Google starts charging for various APIs but decides the world needs to be a better place so invests into this? I'm skeptical (even though I think this is AWESOME). What's the real story here?

Is it the extra eyeball time they get by having self-driving cars? Whereas in the past people would spend 20-60 minutes, or more, concentrating exclusively on driving each day, they could now spend that time online? I guess growth at Google is difficult when you're already the most popular search engine in the world and there's a fixed 24 hour day, the best you can do is change the % of that time people spend online, and implicitly, using your search engine. No doubt the front-end will feature Internet connectivity with a Google portal.

<comment><USER9> I'm confused by your comment. Do you really think self driving cars cannot be monetized?

<comment><USER8> Now I'm confused. Where did I say it can't be monetized? I quoted a statement from Google that makes it sound like they're investing in this out of the goodness of the hearts. I'm asking if anybody knows what their actual plans are for monetizing it.

<comment><USER10> I don't _know_ , but that doesn't stop me from speculating..

1\. Licensing fees from manufacturers for the patents, designs, etc. [once the tech is street-ready and approved]

2\. Contextual/location-based ads as you drive around?

<comment><USER11> Lost man-hours of Google employees driving to/from work.

</comment></comment></comment></comment></comment></comment><comment><USER12> How did they tell the car to stop in front of the speaker (in the drive thru)? And how did they signal to the car that they were done ordering and to go to the pick-up window? The video conveniently skips those sequences.

<comment><USER13> "a drive on a carefully programmed route" - given careful enough programming, this appears to allow for an indefinite amount of smoke and mirrors specific to this demo.

<comment><USER14> To be fair, it would be easily worth it for a blind person to spend a few hours carefully programming important routes like this. And of course, when self-driving cars are widely adopted, Taco Bell will automatically make instructions available. (This could be as simple as a standardized sign denoting the entrance and two windows of a drive through.)

<comment><USER15> > This could be as simple as a standardized sign denoting the entrance and two > windows of a drive through.

3/4 of McDonalds and other restaurants I go through already have signage, road markings, etc. for the drive through. Even some of the McDonalds I've been through have signs in the windows saying "Window 1" and "Window 2" (why this is necessary for humans of an age and intellect capable of driving a car, but apparently the ability to count windows does not have an impact on motor vehicular ability).

It really wouldn't be much difficulty for the companies to standardize these signs as most already use their own anyway.

<comment><USER16> I can't tell you how many times I've been told to "drive to the first window" only to sit there for a couple of minutes before realizing they meant the second window I encounter. It may seem stupid... But better safe than annoyed, I suppose.

I just hate the "drive up and we'll bring it to you" bit.

</comment></comment></comment></comment></comment><comment><USER17> Driving seems to be the only daily activity in which a large population of people need to abide by a set of logic and rules to _not die_ and not get hit by a big financial burden in the case of an accident or ticket. Recently I've found myself wondering if society would degrade if we lost our dependance on this sort of necessary logic in our daily lives.

<comment><USER15> I not only drive to and from work, but because I'm in construction I also spend a portion of my day driving either to the job site or between job sites, often hauling a trailer that weighs over double what my truck does.

Just this morning I had a woman swearing at me and giving me the finger, with her two small children in the vehicle, because I abided by the 4-way stop outside an elementary school and she tried to run it.

Between the cell phone users, and the middle aged women in their SUV's that can't do a shoulder check or read a single lane sign, and the guy with the chronic one-upsman syndrome who guns it to 30 over the limit just to pass you on the highway and go slightly under the limit.

IMO only about 20% of people on the road actually follow the rules because they know they're right and help keep them and their passengers safe. Then there's probably another 60% who generally follow the rules simply because they don't want to get a ticket. The last 20% just don't give a shit, do what they want, when they want and god forbid they don't get it.

I'd also say there's an additional 10-30% who are purely seasonal drivers known the other 7-9 months as "cyclists". They only come out in the winter, and are likely responsible for as many if not more accidents than inclement weather. Living in southern ontario I actually dread the roads on that first heavy snow because, no joking around, I'm actually worried I'm going to kill someone and it won't be my fault.

I don't think driving is doing society any good except at providing a way for the stupid, and the stupidly unfortunate, ways out of the genetic pool.

<comment><USER18> Are you really saying that many cyclists who switch to driving in the winter are characteristically terrible drivers? This is just really at odds with my cycling experience - A biker always needs to be on the defensive just based on the fact that the average driver is likely to not even perceive a smaller vehicle. Even though I haven't seriously biked in several years, I'm still generally aware of what most cars are going to do before they actually do it. (Then again, I guess I've also seen my share of moronic bikers - the kind that think they don't really need to think about what they're doing as long as they're doing it slowly). The first snow is indeed always a mess of bad drivers, but I blame that on people forgetting how slippery snow really is.

<comment><USER15> It's not so much the snow, it's that the cyclists disappear when it starts getting near freezing, which is the exact time you get a bunch of awful drivers on the road.

I don't mean to say all bikers are bad drivers, I'm just saying the correlation between the two events (the absence of cyclists from the roadways and the new presence of masses of bad drivers) is uncanny.

There's always the bad cyclists that just scare the crap out of you, like the 60-70 year old man who's wobbling about 2 feet from side to side, essentially rendering the bike lane useless. But in my experience as a driver, I've only seen a handful - and by handful I mean one or two - cyclists that actually obey the rules of the road. I see them run red lights and stop signs, I see them go on the side walk to cut past cars to make a right turn. etc

</comment></comment></comment></comment><comment><USER19> I followed one of these on US101N the other day, near Mountain View. It was one of the better drivers on the road, although it was an easy driving environment.

I have to admit I wanted to be a dick to it (tailgate, brake check, etc) to see what it would do. I wonder if anyone has crashed into one yet.

</comment><comment><USER20> The car does a pretty average parking job in the dude's driveway at the end of the video..

</comment><comment><USER21> Much better than my ad for Google Driverless cars: <http://www.youtube.com/watch?v=eC2SBX2nnUw>

(Warning: Link is to a near endless string of awful car crashes with sad music in the background. Cannot be unseen.)

<comment><USER22> > Cannot be unseen*

*[http://www.wired.co.uk/magazine/archive/2012/04/features/the...](http://www.wired.co.uk/magazine/archive/2012/04/features/the-forgetting-pill)

</comment></comment><comment><USER23> When Google wants to put these into the market, they should run ads with video of the cars in extremely dangerous situations.

Imagine watching a video of a robot car navigating coolly and safely, with split-second timing in the midst of a snowy 12 car pileup involving an 18-wheeler. That'd sell the things as a public good.

</comment><comment><USER24> My biggest question was how the car knew when to stop at the window and when to continue driving. Wish the video had shown that.

</comment><comment><USER25> How does it do on rainy days and at night?

<comment><USER26> To say nothing of snow.

<comment><USER27> Cars are already better at navigating snow by themselves than with people at the [direct] controls. Traction control and drive by wire are common.

<comment><USER28> True, but car can't see lane marks and can't even recognize where the road is once it is covered in snow.

<comment><USER27> Neither can people, but computers have the ability to see through the dark, rain and snow. They have the benefit of GPS. They have the benefit of being able to work with embedded sensors in the roadway (which to be fair is in its infancy, but you know that's where it's going).

I like people a lot, but I would not bet on a person driving better than a computer. Our reaction time is way too slow and sensory input very limited.

</comment></comment></comment></comment></comment><comment><USER29> All I could think of when I saw this were the jokes about McDonald's having braille for their drive through window.

</comment><comment><USER4> I thought that the title was a typo, and I was imagining a Prius navigating straight on through the glass windows of a strip mall restaurant. The reality is safer, but less hilarious.

</comment><comment><USER30> there's quite a lively discussion on the driving prowess of middle aged Asian women going on there</comment>


Show HN: GrokBB – My Reddit Alternative - <AUTHOR> https://www.grokbb.com
I have spent the last year building GrokBB, a Reddit alternative, and I was wondering what you guys think?
The site is not a news aggregator, like Reddit, but built more along the lines of traditional bulletin boards. Its focus will be on supporting and promoting niche communities, by giving them proper tools to manage their users and organize / produce high quality, original content. There is no voting system, and popularity is determined by what users actually do on the site. As well, there is a way for the moderators in a community to promote valuable users by giving away badges and / or points that increase their reputation on the board.
Some additional highlights ...
- Create Sticky and Private Topics
- Send Board Announcements To All Subscribed Users
- Built-In Category System for Organizing Topics
- Use Tags To Create Your Own Filtering System
- Extensive Moderation Tools (including banning users)
- Users Can Subscribe, Search, Sort and Filter Topics
- Create Badges and Customize Your Own Branding
- Access to User / Board / Topic Analytics
Anyway, I was hoping maybe some of you could give the site a shot, maybe create a few communities and let me know what you think! Owning a board will eventually require a paid subscription, and so I will be giving out extended and / or free subscriptions to anyone who provides valuable feedback or bug reports at this early stage.
If you're interested, you can see the roadmap I have planned out or suggest new features in the GrokBB Dev board.
https://www.grokbb.com/g/GrokBB_Dev/view/1 <comment><USER2> What was your time spent on in the last year? A year seems like a very long time to build a message board.

<comment><AUTHOR> It was about 2 - 4 hrs a night for about 10 months. It had just been a hobby I did, up until now, but I will be dedicating more time if it picks up.

</comment></comment><comment><USER3> What language/platform you are using? Makes me wonder how scalable the system is.

<comment><AUTHOR> I am using PHP / MySQL, with caching, load balancing and redundancy built into the server architecture.</comment></comment>


What have been the greatest intellectual achievements? - <AUTHOR> http://thinkingcomplete.blogspot.com/2017/09/what-have-been-greatest-intellectual.html?m=1 <comment><USER2> Hi all, post author here. Thanks for all the feedback. Although the idea of a definitive list would be nice, in practice a lot of it will always be very subjective. I wrote this up pretty quickly, which is evident from some of the omissions (Maxwell, the Internet(!), etc). But I've learned a lot from various suggestions I've received, which was the point of doing this, and am currently writing them all up to add to the list.

</comment><comment><USER3> Seems like a vary bias/incomplete list to me.

No guass, euler, ohm/kirchhoff, and many more people who made huge leaps for human umderstanding/achievement.

<comment><USER4> Gauss and Euler would probably each need their own lists...

More notably, the author missed Maxwell's equations, the development of the solid-state transistor, and the creation of the integrated circuit.

<comment><USER5> Yeah, Maxwell's equations occurs to me immediately. And Heaviside's reformulation of them.

</comment></comment></comment><comment><USER6> \- The internet (TCP/IP) and world wide web (HTML, HTTP).

History of the Internet:

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

History of the World Wide Web:

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

\- Relational algebra, databases, Linked Data (RDF,).

Relational algebra:

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

Relational database:

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

Linked Data:

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

RDF:

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

</comment><comment><USER7> Epidemiology ([https://en.wikipedia.org/wiki/John_Snow](https://en.wikipedia.org/wiki/John_Snow))

<comment><USER8> Yes! I was thinking some math or physics breakthrough but in terms lives saved I'd have to agree with you.

In terms of math then I'd pick statistics probably. Even though I personally never quite liked it as much in school, at least not as much as calculus or linear algebra.

</comment></comment><comment><USER9> The development of the scientific method, as advocated by Francis Bacon and other empiricists seems to me to underlie so many of the achievements that followed Bacon.

<comment><USER10> He also discovered that heat is motion, so the dude practiced what he preached to good success.

</comment></comment><comment><USER11> Bill Tutte breaking the Lorenz cipher in a fortnight using only pen and paper, and having never even seen the machine surely has to at least count as impressive.

[https://en.wikipedia.org/wiki/W._T._Tutte#Diagnosing_the_cip...](https://en.wikipedia.org/wiki/W._T._Tutte#Diagnosing_the_cipher_machine)

</comment><comment><USER12> Glad to see the Socratic method in the list.

BTW there is a guy on youtube using it to discuss religious beliefs with random people. It's fantastic.

<comment><USER13> youtube link? thanks

<comment><USER14> Is it Anthony Magnabosco's channel? "Street Epistemology"?

[https://www.youtube.com/channel/UCocP40a_UvRkUAPLD5ezLIQ](https://www.youtube.com/channel/UCocP40a_UvRkUAPLD5ezLIQ)

</comment></comment></comment><comment><USER6> The UNDHR (UN Declaration of Human Rights): [Equality,]

[http://www.un.org/en/universal-declaration-human- rights/](http://www.un.org/en/universal-declaration-human-rights/)

</comment><comment><USER15> The numerical system developed by Indian hindu sages without which there would be no maths or binary

The discovery of the Boson,by Sathendra Nath Bose

Yoga

<comment><USER16> I concede the first point, but I wouldn't really consider bosons and yoga to be as important as a numerical system.

EDIT: Also, Bose, along with Einstein, did not "discover" bosons; instead, they created a model for them. Experimental verification came later.

</comment></comment><comment><USER17> Some less obvious omissions on this list are major theological developments:

\- Zoroastrianism's development of dualistic cosmology, i.e., that the present universe is locked in a cosmic struggle between ultimate good and ultimate evil (which underpins the modern theological foundations of Western religions like Christianity and Islam).

\- The Vedic development of karma, which is similarly one of the central foundations of Eastern religions

\- Confucian and other Axial Age Chinese philosophies (although Confucian is the main one well-known to modern Westerners)

There's also a tendency to favor theoretical developments over practical developments that preceded theory by a long time. Three-field and four-field crop rotations, ship keels, square-rigged ships, corned gunpowder, double- entry bookkeeping--these are all "minor" inventions that are little-known in the popular sphere that truly made impressive advancements in agriculture, sailing, warfare, economics.

At the same time, some of these developments are definitely overrated:

Copernicus's theory is actually almost completely and entirely wrong, and certainly defied evidence that even contemporaries were more than eager to point out (the lack of stellar aberration being the biggest problem of all). The only thing that it got right didn't even originate with Copernicus (it's Aristarchus who is the earliest known proponent of such a theory, and Copernicus was definitely aware of Aristarchus).

Similarly, Freud, while popular in the popular imagination of psychology, is generally considered almost completely discredited in his own field.

</comment><comment><USER18> Comparing Kahnemann's work with Newton's is absurd.

<comment><USER19> Indeed, stopping to rank everything on absurd scales would be a great intellectual achievement for humanity.

<comment><USER20> That's what I thought browsing the comments.

As a scientist, it is important to attribute ideas to the people that put them forward.

But the essence of science is about the preservation, dissemination, and most importantly researching knowledge.

Whenever the topic of attribution comes up, it seems to quickly escalate from giving due credit to sciences politics.

</comment></comment></comment><comment><USER21> This list seems very Western. Are there Eastern developments that should be added?

<comment><USER4> Some Muslim and Middle Eastern developments that are missing from this list too (off the top of my head):

* Al Khawarizmi's development of algebra

* Al Zahrawi's creation of commonly used surgical instruments

* Ibn Sina's Canon

* Ibn Al Haytham's description of optics and how human vision works

* Ibn Khaldun as the founder of modern sociology.

<comment><USER22> Al Khwarizmi should not be credited with the development of algebra. Al Khwarizmi wrote a compendium, and algebra was used at least 2,000 years prior to Al Khwarizmi.

Similarly, Ibn Sina's Canon was a compendium of existing practices from the time.

Those two compendiums have been extremely valuable, but one shouldn't classify compendium's as great intellectual achievements.

When discussing optics of human vision, don't stop at Ibn Al Haytham, but include Al Razi and Ibn Sina. You should also include Galen, whose prior work was the foundational achievement.

<comment><USER4> > Al Khwarizmi should not be credited with the development of algebra. Al > Khwarizmi wrote a compendium, and algebra was used at least 2,000 years > prior to Al Khwarizmi.

He formalized it from what I recall. Formalization is as important as the initial discovery.

> but one shouldn't classify compendium's as great intellectual achievements.

You seem to be quite certain that both of these compendiums lacked any original contributions from their authors. May I ask why that is the case?

<comment><USER22> No. I won't say that there were no original contributions from the authors. They were written by highly intelligent individuals who knew their fields. I was attempting to say that compendiums in and of themselves are not amongst the greatest of intellectual achievements.

</comment></comment></comment></comment></comment><comment><USER6> \- CRISPR/Cas9, CRISPR/Cpf1

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

Cas9:

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

CRISPR/Cpf1:

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

\- Tissue Nanotransfection

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

</comment><comment><USER23> J.S. Bach's Wohltemperiertes Clavier

<comment><USER24> Completely agree. The lack of anything between Socrates and Copernicus alone shows the distinct bias of the list. Not a single Scholastic? No mention of achievements outside of hard science or mathematics. If the author specified that as his area of focus, we might be able to have a more profitable discussion.

<comment><USER2> I've received a fair few suggestions on insights in the humanities which I'm currently writing up to add to the post. I considered some of the Scholastics but felt that they hadn't had an impact on modern thought in the same ways as most of the others (which is a relatively good proxy for "correctness", which is one component of being "great", which is a bad metric but I have to draw the line somewhere). Would you disagree?

Also, I agree that there are some amazing artistic achievements. To keep things concise, I wasn't focusing on them here (I'll make that explicit now).

<comment><USER10> How do you define modern thought? How do you measure impact on it?

</comment></comment></comment></comment><comment><USER25> Suggestion to the future generations on Mars reading this in their archives...this would be a pretty good list in case you look for inspiration setting up monuments and busts in your libraries.

</comment><comment><USER6> \- Time, Calendars

Time > History of the calendar: [https://en.wikipedia.org/wiki/Time#History_of_the_calendar](https://en.wikipedia.org/wiki/Time#History_of_the_calendar)

\- Standard units of measure (QUDT URIs)

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

</comment><comment><USER15> CV Raman - Raman light scattering and amplification, pretty much being used everyday now in fibre communication

</comment><comment><USER26> The great writers like Shakespeare and Proust probably deserve a spot on this list.

Also I'm not sure what Said is doing on that list with all those geniuses. Not saying he isn't great, but why him?

</comment><comment><USER27> Mathematics

</comment><comment><USER28> How about Tesla?!

<comment><USER6> Nikola Tesla > AC (alternating current) and the induction motor:

[https://en.wikipedia.org/wiki/Nikola_Tesla#AC_and_the_induct...](https://en.wikipedia.org/wiki/Nikola_Tesla#AC_and_the_induction_motor)

Induction motor:

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

</comment></comment><comment><USER29> AI?

<comment><USER30> McCarthy, as one of the founders (+ Lisp!) should probably be there.

</comment></comment><comment><USER31> Why is Darwin in there? Everything in his model of evolution has failed. He's just a popularizer of evolution.

<comment><USER10> In Origin he actually acknowledges, though not too deeply, several of natural selection's failures to explain evolution entirely. And it seems unlikely that "everything" in his model has failed. Why Only Us by Chomsky/Berwick point out several of these failures in good detail, esp. with reference to language. But Darwin/Wallace were right on some pretty big things as far as I can tell, but I welcome your argument contrariwise.</comment></comment>


Show HN: Resurrecting an OLD YouTube channel – an honest guide - <AUTHOR> https://knowledgebottle.net/notes/resurrecting-youtube <comment><AUTHOR> I wanted to share my attempt to resurrect my old YouTube channel + some of the tips and best practices I used to make this a content factory once again.

Disclaimer: this number is for visual purposes, as we humans are naturally seeking even numbers.

Resurrecting an OLD YouTube channel: 50 TIPS on getting back on track, NEW content & the MACRO

<comment><USER2> It's an interesting article. Show HN is intended when people make something other people can play with or try out like interactive web sites, products, code etc. Blogs and such are better as regular submissions. But again, the article is interesting. Thanks for sharing it.</comment></comment>


Offshore windfarms will be built for a record low price in the UK - <AUTHOR> https://www.theguardian.com/environment/2017/sep/11/huge-boost-renewable-power-offshore-windfarm-costs-fall-record-low <comment><USER2> This is nothing but good news. Yes, it's not the same type of generation, we can't be 100% wind etc., etc., but the cost of wind & solar is dropping quickly and the two combined regularly contribute 40%+ of our energy needs.

I doubt there will be another nuclear agreement after Hinkley C, and we should be thinking more about how we can starting creating storage and/or redesigning the grid to take account of a highly-renewable production system.

<comment><USER3> I don't think people realize how critical nuclear power is to achieving decarbonization _in a timely manner_.

Nuclear enables decarbonization about a decade sooner.

Yes, solar and wind are inexpensive _when penetration is low_. I'm fully in favor of them. And YES, most of the world could fully rely on them if given enough money. You do this by building enough solar power to provide electricity even during cloudy winter days then enough storage to go through the night.

BUT: The UK is high latitude. That means that during the cloudy winter, it's just not feasible to build enough PV. And building enough storage for weeks is also not feasible. So you're going to burn gas, and not get to full decarbonization, or you're going to have to pull geothermal power from Iceland or something else very expensive. Going from 0 to 20% of electricity from solar/wind is cheap. 20-50% becomes more expensive. 50 to 70% is really expensive because you have to curtail a lot.

Going from 70% renewable to 100% is insanely expensive (think of that last 20-30% as being about 5-10 times as expensive per kWh) because you have to curtail MOST OF THE TIME.

But if instead you have nuclear, you can stretch your batteries and demand- response enough that you don't actually have to curtail so much. So in a world where we care about decarbonization, even 20-30% of nuclear is very valuable.

I've done the calculation. Hinkley C, even with the cost overruns, is a bargain if you're shooting for full decarbonization.

...but a lot of greens aren't. Many are being disingenuous as they care more about stomping out nuclear than they do about fighting climate change. They don't care much that it means building more gas in the near term.

Ask yourself: is throwing away nuclear worth a decade of delay in decarbonization?

<comment><USER3> Look at it this way. Average solar capacity factor usually about 10% in the UK. Average electricity output is about 38GW. So you already need about 380GW of solar before taking into account variation from cloud days and seasonal variation. Add in cloudy winter days, you need at least 5 times overbuild, so you need to build about 1900GW of solar. Even with low, $2 per watt utility scale solar, you're looking about about $3.5-4 trillion to go full solar not counting batteries for night time. For nuclear, on the other hand, you got a really high capacity factor like 90.9% (in the US recently). So a 3.2GW Hinkley C gets you about 3GW on average. So you need about 13 of them to power the whole of UK on average. Even at $26 billion each, that's only $340 billion, a tenth the cost of 100% solar not counting batteries (nuclear may want batteries for smoothing loads anyway). Even at $1/Watt, solar still not attractive in UK for 100% scenario... But if mixed with some amount of nuclear, then solar does look good again.

Note that in countries closer to the equator, you can get like 20-25% capacity factor with solar... You also have less seasonal variation (so need less over- build) and install costs may be lower due to cheaper labor and lower land prices (so, 25/10%, 2.5x overbuild vs 5x overbuild, half the install costs... could be factor of ~10 cheaper in 100% PV install scenario). So I think solar is going to be a huge boon to the "global south" even if they rely on it 100%. But high latitude countries like the UK and Germany would be out of their minds to shut down nuclear.

</comment></comment></comment><comment><AUTHOR> Also cheers to the mod who updated the title - I didn't want to editorialise it myself - though not sure if either the original or new encapsulates what is on offer here:

"the "exceptionally low" results of a government auction on Monday for subsidy contracts show two offshore windfarms will be built for £57.50 per MWh, way below even the most extreme predictions. The price is half of what new offshore windfarms were being awarded just two years ago."

This is really something considering where the figures came in 5 or 10 years ago, and amazing to compare against the number from 2015:

Estimated UK LCE for projects starting in 2015, £/MWh Power generating technology (Lowest 2015 figures in £)

Nuclear PWR (Pressurized Water Reactor)(a) 82

Solar Large-scale PV (Photovoltaic) 71

Wind Onshore 47

Offshore 90

Biomass 85

Natural Gas Combined Cycle Gas Turbine 65

CCGT with CCS (Carbon capture and storage) 102

Open-Cycle Gas Turbine 157

Coal Advanced Supercritical Coal with Oxy-comb. CCS 124

IGCC (Integrated Gasification Combined Cycle) with CCS 137

(a) new nuclear power: guaranteed strike price of £92.50/MWh for Hinkley Point C in 2023[49][50]) (from: [https://en.wikipedia.org/wiki/Cost_of_electricity_by_source](https://en.wikipedia.org/wiki/Cost_of_electricity_by_source) )

Also love this line towards the end of the article: "The lower the price, the more electricity generating capacity can be built. The government had allocated £240m-a-year for the subsidies but the competitive prices mean it now expects them to hit £176m-a-year at most."

<comment><USER4> Great summary. Still, it's not clear where the subsidies are getting paid to those wind farms

Are they paying more for generation than the consumer is paying for electricity?

<comment><USER5> Good summary here on strike prices. It talks about nuclear power, but it applies to wind as well - [http://www.bbc.co.uk/news/business-22772441](http://www.bbc.co.uk/news/business-22772441)

</comment></comment></comment><comment><AUTHOR> Hugely excited about the price point - though obviously still has the issues of intermittency and dependability - but at this price, even the losses from storage become less of an issue, so I hope it can kick start more wholesale power storage initiatives.

<comment><USER6> Part of the drop in price is because the newer turbines are less intermittent and more reliable.

Capacity factors have been rising for years as the industry matures.

And this is offshore wind, one of the benefits of which is higher capacity than onshore.</comment></comment>


How OpenBSD Leverages Malloc to Find Bugs - <AUTHOR> http://os-blog.com/how-openbsd-leverages-malloc-to-find-bugs/

<comment><USER2> Without having looked at OpenBSD's implementation, just unmapping free pages does not mean you catch all writes to free()d memory. If a block is smaller than the pagesize, which many times is the case, a page will likely still hold other objects so it wont be unmapped and therefor not trigger a segfault.

Valgrind is my tool of choice to find invalid reads or writes. It catches all of them plus it gives you nice information like a stacktrace.

What OpenBSD's implementation of malloc() does get you though is improved coping with memory fragmentation. Allocating memory in a continously heap brings lots of pain - jemalloc (which is the default allocator in FreeBSD and NetBSD) solves this nicely by also only using mmap() instead of sbrk() on Linux.

Note: I should have said "resource reclamation" instead of "fragmentation". See discussion with ajross below for details.

<comment><USER3> Or simply if the address in question has been remapped since the original free. For big 32 bit processes that's very likely. There's nothing wrong with the implementation really, it's just oversold.

Obviously the valgrind advice is great. But I don't follow your point about mmap vs. sbrk regarding fragmentation. Fragmentation is a property of memory addresses, not the syscall used to allocate them. A big linear heap allocated with sbrk will fragment just as badly as the same heap allocated in a single block, even if it's allowed to have "holes" in it.

Maybe you're claiming that jemalloc deliberatly leaves gaps between allocations? That can help a little in practice, though the real effect is just to change the size of the fragmented blocks.

<comment><USER2> Actually also with a 64 bit address space, you can easily get the same address if the allocator returns a cached block.

The problem with sbrk() is that if you allocate a few megabytes of memory + a tiny chunk, even after freeing everything apart from the tiny chunk near the "program break", _nothing_ will be given back to the OS. If you use mmap() instead though, all pages can be given back apart from the one where the tiny chunk resides in. This makes for a tremendous difference sometimes.

<comment><USER3> OK, I understand. The symptom you're describing isn't really "fragmentation". Fragmentation is the inability to use smaller blocks of memory because the larger allocations won't fit. That behavior isn't changed by this.

You're talking about a resource reclamation issue. Unmapping a page is a clear signal to the kernel that the memory is unused and can be repurposed immediately. Otherwise, it needs to find and eject a page from memory using the VM system, which is more expensive (though I'd guess not a lot more expensive except in pathologically allocation-bound systems).

<comment><USER2> You are right, it's not fragmentation but resource reclamation. I've added a note to the initial post.

I'm not sure though that the VM system can reclaim memory in the heap allocated with sbrk(). At least I've never seen that before. Or do you mean "eject" as in swap out?

</comment></comment></comment></comment></comment><comment><USER4> the windows heap manager can be configured to do this on a per-application basis using the 'gflags' utility.

it's a useful debugging tool. you're not assured that use-after-free is going to be tightly temporally coupled with the free (a lot of the time it is though) and as more time passes after free() the odds increase that the dangling virtual address is re-allocated.

it is also the enemy of performance. you should probably not run production things with the heap configured in this way.

</comment><comment><USER5> I have a number of custom allocators that use the same techniques, with some improvements.

When space is cheap: All allocations are two 4k pages The returned pointer is alligned with the end of the buffer to detect overruns. (with a 16byte allignment) The page following the alloc is always denied. The space around the allocation is filled with flag values, and these are checked on free. After free the pages are held in storage for a few thousand following allocations.

The variants of this allocator does things like only doing this for specific ranges of allocation sizes or only after a certain number of allocations.

With this a good number of overruns and use after free bugs have been found.

Mostly used this technique on windows with delphi, on linux i prefer valgrind.

<comment><USER6> Why 2 4k pages? If I'm allocating 1k of memory, what does having an entire extra page get me?

<comment><USER7> The second 4k is a guard page, to catch buffer overflows. So the heap looks like:

3k empty, 1k data, 4k empty and read/write-protected.

The extra page is needed since you can't set the memory protection flags at a higher granularity.

<comment><USER6> Ah. It sounded like you were mapping 2 4k pages for the allocation itself, aligning the allocation at the end of that 2-page span, and then mapping the following page and marking it as denied.

<comment><USER7> I wasn't the original poster, that was just my impression of the scheme. I could have misunderstood, in which case I don't have any alternate theories for what that second page is for :-)

</comment></comment></comment></comment></comment><comment><USER8> Is this really different from the glibc malloc() implementation with MALLOC_CHECK_ set to 3?

> MALLOC_CHECK_ is designed to be tolerant against simple errors, such as > double calls of free() with the same argument, or overruns of a single byte > (off-by-one bugs). Not all such errors can be protected against, however, > and memory leaks can result.

> If MALLOC_CHECK_ is set to 0, any detected heap corruption is silently > ignored;

> if set to 1, a diagnostic message is printed on stderr;

> if set to 2, abort(3) is called immediately;

> if set to 3, a diagnostic message is printed on stderr and the program is > aborted.

<comment><USER9> Yes, the OpenBSD technique of completely unmapping the memory rather than re- using it will be able to catch even some read accesses, not just write accesses that happen to corrupt malloc's guards.

</comment></comment><comment><USER10> Can this be configured at runtime using an environment variable? It would be nice to test for bugs like this in dev.

<comment><USER11> You could easily do this on Linux, where the executable format allows you to override library-defined symbols, including malloc(). Implement the new malloc/calloc/realloc/free as a static library and link it to your dev builds. Don't link it for releases.

Or just use valgrind, if you can.

<comment><USER12> You seem to miss the difference between "developer testing his/her app" and "everyone testing every app".

To the point, I'm using "/etc/malloc.conf -> AFGJPRX" on most of my systems, which means that virtually everything that runs there is checked. Can you _easily_ do that on Linux? How many apps are you running via valgrind on a daily basis?

</comment></comment></comment><comment><USER13> How is this different from efence on Linux?

<comment><USER14> It comes with the operating system, no need to re-link against a different library or a different LD_PRELOAD path.

</comment></comment><comment><USER15> Stop saying "leverages" unless you're describing lifting a heavy rock using a stick. The word you're looking for is "uses".

<comment><USER16> Your comment contributes nothing to this thread or this website. Stop wasting your time and others' posting about matters of stylistic opinion.

<comment><USER15> Pot, meet kettle.

</comment></comment></comment><comment><USER17> Why is this on hacker _news_? OpenBSD has been doing this for _years_? About as news worthy as Windows 95's BSOD.

<comment><USER18> Not everyone spends all day working in OpenBSD, I learned something from the article.</comment></comment>


Web Scraping with JavaScript. Building an App Using NextJS and Puppeteer - <AUTHOR> https://devhealth.io/food-scraper/ <comment><USER2> great usage of puppeteer. Have you tried proxycrawl.com ? they have what they call the javascript token which has an optimized browser version which is usually much faster than puppeteer, at least based on my tests with different sites</comment>


C:\ONGRTLNS.OSX - <AUTHOR> http://daringfireball.net/2009/10/congrtlns-osx <comment><USER2> I suppose that it's really a matter of preference (as mentioned towards the end), because I personally dislike the way, for example, some PNG files might open in Preview or possibly Photoshop if I created them with PS.

Recent case in point: I received HTML files from a designer that opened in Dreamweaver because that's what she used, but I really just wanted to open it in Safari. (I never use Dreamweaver)

<comment><USER3> I guess it would be nice if files kept track of individual users' preferences. In fact, I wish Finder would do the same on network shares; I hate opening a network folder and realizing that one of my coworkers has changed the way things are organized.

But that seems like the kind of tiny feature that's a lot of work for not a lot of reward.

<comment><USER4> Doesn't seem like it would be a lot of work. Just tell Finder to ignore folder/file-specific settings when accessing files/folders on a network share. That way all preferences just go to your defaults, though you also can't change the preferences and 'make then stick' it might be a compromise solution.

</comment></comment></comment><comment><USER5> I think the use of an invisible identifier to label the mapping between a file and it's app is a really non-intuitive interface. Getting rid of files without extensions and making it dead simple to know what will happen if you open a file improve the experience, even if it seems backwards, clunky, or non- sophisticated. I think this change is a really mature decision on Apple's part even if it isn't the traditional Mac way of doing things.

<comment><USER6> At the same time: extensions are a poor way to communicate with the user, largely arbitrary and very fragile.

If they were going to make a change in the name of consistency, they could have done better.

<comment><USER7> It used to be the case that the file's icon represented the file's type. But with icon previews, that's no longer the case, so the extension is the only visible means of conveying the file type.

<comment><USER8> They could overlay a small line of text or sub-icon over the actual icon, though.

</comment></comment></comment></comment><comment><USER9> From the article:

 _His closing paragraph is technically accurate, but is completely at odds with the article's title and opening premise — unless he meant that Apple has "fixed" creator codes in the same sense that one "fixes" a dog._

Scathing, but a very reasonable estimation of Apple's extremely poor explanation of why they did away with creator codes.

</comment><comment><USER10> Good article until the last paragraph where he gave in to the temptation to make a sensationalistic statement. If Windows does indeed offer this functionality I've never seen it. Not in Windows 3.0, not in 95, 98, ME, XP, Vista, or 7. You get a default application per file type and can choose to open any filetype with any other application on a per access basis. To the best of my knowledge you cannot even statically assign a specific filename.type to open with a different application. Everything goes by the filetype extension in Windows. If I'm wrong I apologize to the author in advance.

<comment><USER11> What sensationalistic statement? If Windows offers what functionality? He only mentions Windows twice in the whole article, both times comparing Snow Leopard to Windows _3.0_

<comment><USER10> Unless my reading comprehension is extremely poor today he is saying Snow Leopard has the same level of filetype functionality as Windows 3.0 which is simply not true.

</comment></comment></comment><comment><USER12> Just a little factoid, because I think a lot of readers here might be too young to know the significance of the title of this rant. When Windows 95 was released, Apple took out ads in major newspapers worldwide with the text C:\ONGRTLNS.W95.

I remember, because back then I was a 15 year old rabid Apple hater who stumbled on the ad while browsing the business section of the newspaper before heading out for school and the ad got under my skin :)

</comment><comment><USER13> I think the lesson to take from this is that metadata is always harder and more important than you think.

</comment><comment><USER14> "I just alternate-click and choose Open With Other Application" he said in his best Marie Antoinette voice...

Although I would answer that I would normally ruffle my feathers when a software company chooses for me what my actions mean, in reality I have always just lived with the behavior. Doesn't that come with the territory? I didn't write it myself, so I learn the rules of the road according to this system...

In Windows, I learned to alternate click most of the time so that I could choose the desired behavior instead of trying to remember Microsoft's rules (i.e. drag to same drive letter=move, drag to different=copy).

I am thankful Ubuntu offers at least one of the same alternate click choices.

Edit: According to the above, then, it seems I would be "taught" by Snow Leopard to open the app first, then choose what resource to work on with that app. Same work-around I use in Windows and Ubuntu.

</comment><comment><USER15> Could someone explain what his title is supposed to mean?

<comment><USER16> <http://fsinfo.noone.org/~abe/pictures/windoof/whymac.png>

<comment><USER15> Granted that picture doesnt really explain much, but it did get me on the right path[1], so thanks.

        Remember the days when DOS/Windows file name restrictions were a target of mockery?
        E.g. the sarcastic "C:\ONGRTLNS.W95" full-page newspaper ads Apple ran when Microsoft launched Windows 95.
        With the iPod Shuffle, Windows' limitations are now ours, too.

[1] <http://daringfireball.net/2005/02/firewire_hysteria>

</comment></comment></comment><comment><USER17> While Mr Gruber might not use any computer other than a Mac, the rest of the world does. There's a lot of value in following the lowest common denominator in this case -- encoding the type in the filename isn't a bad way of ensuring the type never gets lost.

<comment><USER18> We're not talking about file types; we're talking about which app is used to open a file.

<comment><USER17> His headline and the gibe about using technology from the Windows 3.1 era is about encoding filetypes in filenames and how you handle the consequences.

<comment><USER19> That's not what the article is about. Mac OS X _already_ used file extensions to derive UTIs in the absence of type & creator codes. It's a fine and practical replacement for type codes, in that they both describe the content, but they do nothing to replace creator codes, which can't be derived from an extension. There is no interoperability gain, because again extensions were already the primary way to determine type and application binding for things without type/creator codes, which means everything from other systems.

The point is that the new way is significantly more limited than the old way, which was the way the Mac had always worked. Understandably, this can be seen as a step backwards.</comment></comment></comment></comment>


"shi1 shi4 shi2 shi1 shi3" - a Chinese tongue twister - <AUTHOR> http://www.yellowbridge.com/onlinelit/stonelion.php

<comment><USER3> This is almost certainly written in literary classical Chinese (even if written recently). Basically, in Chinese, words that were once pronounced differently merged in pronunciation in modern Mandarin, though since the writing system is quite divorced from sound, the written forms never changed (at least, not until Simplified Chinese under Mao).

What that means is that a _lot_ of classical Chinese literature has a bit of this problem, in that if you read it aloud, it is tricky to fully comprehend. (This poem/story takes it to an extreme, obviously.) For a long time, up through the early 20th century, it was fairly common for written things to be written in this literary Chinese even if the writer would _say_ their ideas completely differently. A "write as you speak" movement has largely changed that: in modern written Mandarin, many words are two or three syllables long, and written with two or three characters. Etymologically, the words may have derived from compounding monosyllabic words, but in the modern spoken (and now also written) language, the sub-word syllables are simply no longer words in any meaningful sense.

(An analogy on a much smaller scale in English: many dialects of English merge /ɪ/ and /ɛ/ before a nasal sound, so that "pin" and "pen" sound identical. Speakers of those dialects will often _say_ "straight pin" or "ink pen" (or "pig pen" or "cow pen") to distinguish which kind of pin/pen they mean; they may or may not make the distinction in writing. So the writing is unambiguous, the speaking is unambiguous, but reading a written thing _is_ ambiguous. When it's just one or two words it's no big deal, but imagine that nearly every word suffered from that problem....)

EDIT: It turns out there's a Wikipedia page on the poem (naturally, should've checked that first). A lot of this is covered there: [http://en.wikipedia.org/wiki/Lion- Eating_Poet_in_the_Stone_D...](http://en.wikipedia.org/wiki/Lion- Eating_Poet_in_the_Stone_Den)

<comment><USER4> One solution to the "many characters sounding the same" problem was turning Chinese into a tonal language. I guess technically that makes them sound different. but even with tones (in modern mandarin Chinese there are 4 tones; in older time there were more; Cantonese reportedly still has 9).

Even with tones though, there are still too many characters sounding exactly the same. In a Chinese dictionary (you might want to pause for a moment and imagine what a Chinese dictionary looks like. if you come across an unknown English word in writing, you can look it up by spelling. but what's the equivalent thing to do for a chinese character?), under any one sound specification, you can easily find 10-20 characters.

where I disagree is that, yes, classic written Chinese is tricky to understand, but not in the sense that they are mostly one-syllable words. they are tricky to understand in the same sense that Shakespearean (or Chaucerian) English was tricky to understand to modern English speakers - due to unfamiliar vocabulary and old-style grammar. if this opinion is valid, I further propose that, when the Chinese talk, they might rely more heavily on semantics to parse sentences in real-time, since based on sound alone there might be too many character candidates. in other words, they use what's being talked about to do some pretty heavy-handed proning as they process incoming syllables.

<comment><USER5> On Chinese dictionaries. I actually don't think there is any difference from English ones, at least in the way I use them. When I use an English dictionary I use the word's spelling. I don't check how the word is pronounced when I do this. When I use a Chinese dictionary I use the number of strokes that make up the character, which puts all the characters in a sort of order not unlike an alphabetical one. I also do not need to know how the word is pronounced when I do this.

There is no such thing as "turning Chinese into a tonal language." Chinese is tonal to begin with. For native speakers, a different tone does sound as distinct as a different phoneme. The problem the poem exemplifies is the sort we run into when we reduce the language into only the phonetics -- a problem I'm not convinced is unique to Chinese. In fact, just the post above pointed to an example of such in English.

</comment></comment></comment><comment><USER6> The overloading of the shi sound in mandarin approaches absurd levels.

I've always liked:

四 是 四 , 十 是 十 , 十 四 是 十 四 , 四 十 是 四 十 , 四 十 四 只 石 狮 子 是 死 的 sì shì sì shí shì shí shí sì shì shí sì sì shí shì sì shí sì shí sì zhī shí shī zǐ shì sǐ de. Translation: 4 is 4, 10 is 10, 14 is 14, 40 is 40, 44 small stones are dead

Then get a southerner with say a Sichuan or yunnan accent to say this (in mandarin). They cannot properly pronounce shi (they say it like si). The above just sounds like an angry bee. Given that shi and si is used a lot this becomes a real pain for a non native speaker.

Makes this tough when you're buying something that is 44 rmb and you cant tell whether they said "is 14" or "44" or what.

<comment><USER7> My impression (from very brief study of Mandarin) is that Mandarin has a lot more homonyms than most languages, e.g. lǐ has a ton of meanings: <http://en.wiktionary.org/wiki/l%C7%90> It also seems to me that a lot of Mandarin phonemes are much closer together than most languages, e.g. ch and q are both a similar "ch" sound (likewise sh and x). Or maybe these sounds just seem similar to me because of my English upbringing?

Do linguists have a way to quantitatively measure how close together the sounds and words are in a language? Some sort of Shannon entropy measure, maybe? Or a way to measure how spread out words are in "phonetic space". I couldn't find anything, but I'd like to know if there's a way to measure these things objectively.

<comment><USER3> On the first part: See my other post for more, but basically, much (not all) of the homonymy is from older and/or written-only forms; and yes, ch and q don't sound any closer to a native Mandarin speaker than, say, sh and s do to a native English speaker or u and ou to a native French speaker.

On the second part: no defined measure that I know of. It would be a little tricky in that language is a moving target, everyone speaks it slightly differently, and even for a single speaker the "location" of a particular phone is more of a probability distribution even _after_ you factor out varying context. That said, there definitely are charts that map out the space and take a stab at identifying the prototype location of each phone in the sound space, so it's not entirely implausible that you could summarise that with a distance measure. I strongly suspect that the value of the measure would not vary much among languages with similar-size phoneme inventories, though.

</comment></comment></comment><comment><USER8> Buffalo buffalo Buffalo buffalo buffalo buffalo Buffalo buffalo. :-)

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

<comment><USER9> If we remove the adjectives formed from proper nouns, turn the nouns into "people", turn the verbs into "bully", and add a pronoun and an adjective, we get

        people whom other people bully bully people.

This makes sense.

But when we remove the pronoun and adjective and we get

        people people bully bully people

which is as far I can tell gibberish (without changing meanings such that they don't correspond with the original sentence). It can't have anything to do with many people persons, because in the original there's an adjective there.

If we assume that, just as there are social adept people, whom we call "people people", there are also socially adept buffalo called "buffalo buffalo", we can get "Buffalo buffalo buffalo buffalo buffalo". But to go beyond that is to claim an incoherent sentence missing many words is coherent and grammatical.

<comment><USER10> It seems to me that if you replace "whom other" with "that" you end up with a similar meaning:

        people that people bully bully people

I've found it fairly common to hear people drop the "that" when speaking - <USER2> in this case:

        people people bully...

the first people refers to the people being bullied while the second people refers to the people doing the bullying. It's a bit clearer if you replace some of the nouns - for instance:

        dogs people bully bully cats

which I believe is a perfectly legal English sentence.

<comment><USER9> _dogs people bully bully cats_

Aha! It finally makes sense. Thanks.

You should edit the wikipedia article, because your explanation is way better than the one contained therein.

</comment></comment></comment></comment><comment><USER11> Even though it was tough to go through slough in the snow, I ploughed through without a thought.

<comment><AUTHOR> I've heard Slough is tough enough to go through even without snow :P

</comment></comment><comment><USER12> Here's the wikipedia entry on this poem along with the audio.

[http://en.wikipedia.org/wiki/Lion- Eating_Poet_in_the_Stone_D...](http://en.wikipedia.org/wiki/Lion- Eating_Poet_in_the_Stone_Den)

<comment><USER13> It's interesting to compare the original version in Classical Chinese with the vernacular Chinese one.

The Classical Chinese version just sounds (err, reads) so much more awesome, like a smooth-talking wisecrack who can't be bothered to dispense extra breaths, while the vernacular version reads like a seven-year old's essay.

I always had the impression that Classical Chinese was painstakingly crafted and preserved by a small group of elitists obsessed with aesthetics and abhorred ease-of-learning. The ultra-minimalist syntax seems very "inorganic", but it makes every line poetry and invitation for puns. As a result, most people were illiterate, but if you were well-read, boy, the fun you could have with words.

</comment></comment><comment><USER14> NPR just had a story about this

[http://www.npr.org/templates/story/story.php?storyId=1295525...](http://www.npr.org/templates/story/story.php?storyId=129552512)

</comment><comment><USER15> the number after the word only indicates what tone it is. always good to review which tone is which :

shi1 = shī

shi2 = shí

shi3 = shǐ

shi4 = shì

<comment><USER16> True, it is also good to have an idea which tone means what. As far as I know it's: high-level, raising, falling-and-then-raising and falling (the shape of the dashes over i gives the hint) <http://en.wikipedia.org/wiki/Mandarin_phonology#Tones>

<comment><USER17> [http://www.mdbg.net/chindict/rsc/audio/voice_pinyin_cl/shi1....](http://www.mdbg.net/chindict/rsc/audio/voice_pinyin_cl/shi1.mp3) (shī)

[http://www.mdbg.net/chindict/rsc/audio/voice_pinyin_cl/shi2....](http://www.mdbg.net/chindict/rsc/audio/voice_pinyin_cl/shi2.mp3) (shí)

[http://www.mdbg.net/chindict/rsc/audio/voice_pinyin_cl/shi3....](http://www.mdbg.net/chindict/rsc/audio/voice_pinyin_cl/shi3.mp3) (shǐ)

[http://www.mdbg.net/chindict/rsc/audio/voice_pinyin_cl/shi4....](http://www.mdbg.net/chindict/rsc/audio/voice_pinyin_cl/shi4.mp3) (shì)

For the falling-then-raising (shǐ) changing the "shi3" to "chi3" in the URL gives a better idea, I think, for what the inflection sounds like.

<comment><USER18> Agree on the last point -- at least, for Taiwan. In fact, those idealized graphs caused me a bit of a headache early on. Native mandarin speakers in Taiwan tend to drop the end of the 3rd tone, so it falls slowly then holds at the bottom for a minute, then rises slightly or even just cuts off.

</comment></comment></comment></comment><comment><USER19> Its an amusing one because its easier for foreigners learning mandarin to say then cantonese speaking chinese who then learn mandarin to say.

In my chinese class in the north they just it as a way of testing southern chinese ability at speaking mandarin.

<comment><USER20> While its true that native cantonese speakers can generally be identified, its not the case that they lack the ability to speak mandarin. They just speak mandarin with a southern regional accent. Native mandarin speakers from taiwan are also easily distinguished from beijingers.

Generally, cantonese speakers actually pick up mandarin a lot more easily than mandarin speakers pick up cantonese.

Adopting an accent can be a lot harder than adopting a dialect because 1. your brain doesn't parse the new sounds well if you didn't grow up hearing them and 2. you have no experience creating these sounds and its a lot harder to learn to produce them. There's a lot of literature about native accent adoption in second language acquisition that suggests an age dependency due to increased neural plasticity in youth (even though there's a lot of dispute about that critical period for language (not accent) acquisition).

</comment></comment><comment><USER21> ...that's what Shi said. :-)

<comment><AUTHOR> Hmmm, there is potential here for multi-lingual homophonic exercises...

</comment></comment><comment><USER22> I've asked a few Japanese people to say "She sells sea shells by the sea shore..." and it comes out sounding a lot like that... Tricky because Japanese uses Shi and Chi sounds but not Si on its own.

Don't worry, they get plenty of revenge on me.

</comment><comment><USER23> there is a whole lot of Chinese stuff like this:

<http://gist.github.com/568487>

</comment><comment><USER24> Ironically, when pronouncing this you don't move your tongue at all.

<comment><USER3> Not quite true: although the tongue is not as obviously involved as it is in stop sounds (like /t/ or /k/), friction between the tongue and the air are what make the sound /ʂ/ (here transcribed as "sh"), while during a vowel sound (/i/), the air passage is open. So the tongue does have to move a little relative to the roof of the mouth; just not very much.

<comment><USER24> I really don't move my tongue when I say these in a row. Is this because I'm speaking with a Beijing accent? Apparently what's coming out for me is: ʂ̺ɻ̩. Or should that combination also force me to move my tongue?

When I lay off the accent and move the i to the front of my mouth a bit, I do seem to move my tongue a little. I'm not sure I'm doing it right though, the i's in non-Beijing Mandarin are actually always a bit stressful for me, but I'm pretty sure I'm pronouncing my "shi" correctly for Beijing.

<comment><USER3> It's likely that your tongue isn't moving _much_. It's also possible that the tongue isn't moving front-to-back (as it would for the English word "she") or that it isn't moving with respect to your lower jaw or that it isn't moving very much compared to nearly any other set of sounds you might utter. But the tongue _must_ be moving if you are making any differentiated sound at all there.

</comment></comment></comment></comment><comment><USER25> I like to use this dictionary to check pronunciation, meaning and stroke order:

[http://www.mdbg.net/chindict/chindict.php?page=worddict&...](http://www.mdbg.net/chindict/chindict.php?page=worddict&wdrst=0&wdqb=chi)

</comment><comment><USER26> Not exactly a tongue twister, but here's something similar from Korean: 가가가가가? (gagagagaga?)

In the Southeastern (Gyeongsangdo) dialect of Korean, this means "Does he have the surname 'Ga' ?"

</comment><comment><USER27> "This thread is useless without" mp3s. In all seriousness, I'd love if it somebody took a crack at this because I'd love to hear it. (And I'm sure the karma would flow.)

<comment><USER28> [http://en.wikipedia.org/wiki/Lion- Eating_Poet_in_the_Stone_D...](http://en.wikipedia.org/wiki/Lion- Eating_Poet_in_the_Stone_Den)

</comment></comment><comment><USER29> A recording a friend of mine made: <http://kassens.net/shi-shi-shi-shi- shi.mov>

</comment><comment><USER30> Imagine how hard it must be to make understandable text-to-speech / speech synthesis for Chinese.

<comment><AUTHOR> ...and how hard it would be for voice recognition systems too.

<comment><USER31> That's unlikely. How do Chinese people write a sentence on the computer? Old systems would have you write the letters, eg.: "shi", then display a long list of all the possible characters with that sound (for all 4 tones). Newer systems use context to figure out the right characters for the whole sentence at once (probably using naive Bayes --- see Peter Norvig's spell checker), so that I can just type "Wo shi Jianada ren" and the output would be the correct 6 Chinese characters. I never need to specify the tones.

So I would assume that voice recognition could do even better by analyzing tonal information.

<comment><AUTHOR> Thanks for the link to Peter Norvig's spell checker - interesting reading there.

</comment></comment></comment></comment><comment><USER32> A Spanish tongue twister: Tres tristes tigres trigaban trigo en un trigal.

<comment><AUTHOR> What does it mean? Three sad tigers...

<comment><USER32> Three sad tigers ate wheat in a wheat field.</comment></comment></comment>


Led Zeppelin Scores Big Win in 'Stairway to Heaven' Copyright Case - <AUTHOR> https://variety.com/2020/music/news/led-zeppelin-stairway-to-heaven-copyright-lawsuit-1203527581/ <comment><AUTHOR> Spirit: Taurus [https://www.youtube.com/watch?v=k8lFJWNgowo](https://www.youtube.com/watch?v=k8lFJWNgowo)

Led Zeppelin: Stairway to Heaven [https://www.youtube.com/watch?v=D9ioyEvdggk](https://www.youtube.com/watch?v=D9ioyEvdggk)

</comment><comment><USER2> link to the opinion: [https://cdn.ca9.uscourts.gov/datastore/opinions/2020/03/09/1...](https://cdn.ca9.uscourts.gov/datastore/opinions/2020/03/09/16-56057.pdf)</comment>


An overview of the demise of Nortel Networks and key lessons learned - <AUTHOR> http://sites2.telfer.uottawa.ca/nortelstudy/ <comment><USER2> This study was big news here in Ottawa, as it was Nortel's R&D HQ. The demise of Nortel decimated tech employment here.</comment>


Always Narrating: The Making and Unmaking of Umberto Eco - <AUTHOR> https://lareviewofbooks.org/article/always-narrating-the-making-and-unmaking-of-umberto-eco/ <comment><USER2> I particularly liked this compilation of lectures. Eco is great if you're interested in "postmodernism" without the (sometimes deserved) reputation for gleefully desecrating the classics. Different historical perspectives are examined and synthesized into arguments that are consistently interesting and thought-provoking.

For example, in the context of the sublimity of nature, Eco tries to define beauty as:

> when we are in the presence of something we are not a part of and do not > wish to become a part of at any cost. In that distance lies the slender > thread that separates the experience of beauty from other forms of passion.

<comment><USER3> Tbh I didn't much get that quote, so here it is in context[1], which felt helpful at first, but – while I didn't read the entire Lecture – it still feels somewhat bullshitty to me. Now of to read TFA.

>[…] a distinction has been made between what is beautiful and what is good. If what is considered to be good (a food, a fine house, the recognition and admiration of my fellows) is not mine, I feel as though impoverished. Instead, with regard to beauty, it seems that joy in beautiful things is definitely separate from possession of them. I find the Sistine Chapel beautiful even though I am not its owner, and in the window of a patisserie I find beauty in a cream-filled wedding cake even though my dietician forbids me to eat it.

>Experience of beauty always has an element of disinterest. I can consider a human being to be beautiful, even though I know I can never have a relationship with him or her. But if I desire a human being (who might be ugly) and I cannot have a relationship with them, I feel bad. […]

>Perhaps the greatest statement of aesthetic disinterest was made precisely in the period during which the experience of the sublime seemed like a celebration of our involvement in the unleashing of horror or the majesty of great natural events. Even terror can be enjoyable, but only when it does not get too close to us. For the sublime, too, beauty is reserved for those things that [are pleasing, but only seen and not suffered]. The painter who was certainly the greatest exponent of the experience of the sublime was Caspar David Friedrich, and when representing it, he almost always put human beings in the picture, confronting them with the natural spectacle as they enjoyed the experience.

>The human figure is seen from the back and, by a sort of theatrical mise en scène, if the sublime is the stage, then the man is on the proscenium, inside the show – to us in the audience – but representing someone who is outside the show, so that we are obliged to detach ourselves from the spectacle by looking at it through him, putting ourselves in his place, seeing what he sees, and – as he does – feeling like a negligible element in the great spectacle of nature, but one able to flee in the natural power that could loom large over and destroy us.

>I believe that over the centuries the experience of beauty has always been similar to the way we feel – as if seen from the back – when we are in the presence of something we are not a part of and do not wish to become a part of at any cost. In that distance lies the slender thread that separates the experience of beauty from other forms of passion.

[1]: [https://books.google.de/books?id=hDR5DwAAQBAJ&pg=PT55&lpg=PT...](https://books.google.de/books?id=hDR5DwAAQBAJ&pg=PT55&lpg=PT55)</comment></comment>


Free startup ideas - <AUTHOR> http://www.reddit.com/r/AskReddit/comments/18im0s/reddit_what_is_a_small_everyday_task_that_you_hate/

<comment><USER2> Interesting that it looks like the majority of them are related to getting ready in the morning/self hygiene.

Apparently not many morning-people on reddit.

<comment><USER3> I'm going to guess most of these are coming from teenagers in high school.

<comment><USER4> "If only I could get something to shut my mom up, y'know? _har har har_ "

Yeah, not many useful things in there. Laundry was recurring theme though, and one that I wish I had a solution for. I'm sure laundry services are popular in large cities but in mid-sized cities it's harder. I would pay decent money to have a respectable place wash/dry/fold my laundry for a flat fee. I'm aware places do it, but they look shady for the most part.

<comment><USER3> What would you pay for a service like that?</comment></comment></comment></comment>


Azure: Compute and Storage Full Service interruption in West Europe region - <AUTHOR> https://www.windowsazurestatus.com/

<comment><USER2> They really need to fix the non-sensical "North" and "West" Europe naming.

Amsterdam is western Europe, yes, but so is the UK and Dublin where their "North" Europe region is. A better name would be Central Europe, perhaps?

I'm not even sure what North Europe is? I guess it could be either Sweden, Scotland or maybe Iceland?

/minirant; feel free to downvote ;)

<comment><USER3> Northern Europe is the British Isles, Iceland, Scandinavia, Finland, and the Baltic countries, according to the UN's statistical definition of European regions. Here's a map: [https://commons.wikimedia.org/wiki/File:Europe_subregion_map...](https://commons.wikimedia.org/wiki/File:Europe_subregion_map_UN_geoschme.svg)

Western Europe in that scheme is France, Germany, Benelux, Switzerland, and Austria.

The EU's grouping, on the other hand, while mostly the same, puts the British Isles into Western Europe: [http://eurovoc.europa.eu/drupal/?q=request&uri=http://eurovo...](http://eurovoc.europa.eu/drupal/?q=request&uri=http://eurovoc.europa.eu/100277)

<comment><USER2> Interesting reply, thanks!

</comment></comment></comment><comment><USER4> We recently moved to Softlayer due to availability issues with Azure. Has anyone experienced any significant Softlayer issues that impact availability?

</comment><comment><USER5> Started at 09:39 UTC, it's 12:54 now and they're still reporting problems. Luckily for us our services in Western Europe seem unaffected.

</comment><comment><USER6> Someone forgot to renew the SSL certificate again.

</comment><comment><USER7> May 1st, nobody's here to fix it.

<comment><USER8> They should relocate it to The Netherlands, we don't celebrate Labour Day. Instead we celebrate the King's birthday. In the weekend.

<comment><USER9> "West Europe" is located in the Amsterdam area. "North Europe" is in Dublin.</comment></comment></comment>


If you can't remember why onions are in there, take 'em out. - <AUTHOR> http://garry.posterous.com/if-you-cant-remember-why-onions-are-in-there

<comment><USER2> Cute litte story, but the moral the author takes away from it is actually wrong.

The factory didn't remove the onions from the recipe because no one could remember why they were there. They were removed because Levi asked why they were there, and when no one remembered, he investigated the original purpose of the onions and determined _after_ that investigation that they were no longer needed.

I'm sure many of us have been bitten by this as developers. You see a few lines of codes or a feature and you have no idea why it's there, so you remove it. What happens? Random, seemingly unrelated application starts failing or angry customer calls wondering why some feature is no longer available. Whoops...

So my takeaway from this story was actually quite different from the author's. I took: "Before you remove the onions, make sure you understand why they were added in the first place."

<comment><USER3> _Before you remove the onions, make sure you understand why they were added in the first place._

Unfortunately, while this is correct, it is nowhere near strong enough.

Just because you know the _initial hypothesis_ that drove someone to throw the onions in, doesn't mean you know what the onions are actually doing. The onions are interacting with all the other ingredients. Onions are more complicated than you think.

Before you remove the onions you must understand what they are actually doing in your recipe, not merely what you _think_ they are doing... or you must be prepared to find out. Because even very tiny systems are generally too complicated for you to fully understand, you usually have to settle for science: You must have good enough test coverage to detect any breakage as soon as possible after the onions go out, so that you may frantically throw the onions back in and then go back to the drawing board.

And the longer the onions have been in the recipe, the longer the recipe has evolved in the presence of onions. Take the onions out and all the other changes that have happened since the onions went in might have to be tweaked. Oh, the subtle things you could find.

Here is what can happen: You'll take out the onions, and then five years later your customers will complain that your company's red paint has started peeling, ten years ahead of the fifteen-year warranty period. Oh, no. You call an all-hands meeting of your QA team. They spend months doing expensive research, while your product engineers fly from city to city trying to pacify the increasingly irate customers. Eventually the scientists find that the paint can be fixed by mixing in some kind of protein or other. But why did the paint used to work? Oops, the onions had protein in them! Sure enough, if you throw in some special Essence Of Onion Protein compound the problem goes away. Great. Now all you have to do is issue a field recall of about six years worth of your product.

You will bring this story to your CEO and the shareholders, and they will ask why you didn't just pay for some onions? Or, if removing the onions was critically important, why you didn't run a small set of onion-free test batches on a parallel process line and then put those batches through lots of tests, both in the lab and in the field, before making the change?

I've worked as a semiconductor engineer, specifically in charge of diagnosing problems that arose in the field, so believe me when I tell you that I've seen "simple", "well understood" little tweaks in a semiconductor processing recipe cost companies millions of dollars and one hell of a lot of stress. I've also lost six months of my grad student career to one specific bad step in a recipe. Once you get a working recipe _you do not change a thing without a specific plan to thoroughly measure and document the effect of that change_. Find someone from Intel and ask them how this works: I've heard that you can't so much as touch a knob in Intel's fabs without a signed change order.

<comment><USER4> _"the longer the onions have been in the recipe, the longer the recipe has evolved in the presence of onions."_

That is just an excellent explanation of why removing stuff from a working system can be so dangerous. Thank you.

<comment><USER5> And why we should write our recipes (code) carefully to imply intent such that dependencies like this are not created unnecessarily. Consider:

"Add one onion", vs "Dip piece of onion in mixture until it begins to fry"

Latter clearly indicates no aspect of the recipe should be a dependency on the onion or inherit properties from the onion as the onion will be removed before runtime (consumption)

<comment><USER6> This still wouldn't be sufficient in mechanical_fish's example. Someone might still remove the onions (and the needed proteins) after the introduction of thermometers with the reasoning that this would be a "simple" and "well understood" tweak.

</comment></comment></comment></comment></comment><comment><USER7> This piece of advice is quite at odds with another classic piece:

<http://www.joelonsoftware.com/articles/fog0000000069.html>

 _Back to that two page function. Yes, I know, it's just a simple function to display a window, but it has grown little hairs and stuff on it and nobody knows why. Well, I'll tell you why: those are bug fixes. One of them fixes that bug that Nancy had when she tried to install the thing on a computer that didn't have Internet Explorer. Another one fixes that bug that occurs in low memory conditions. Another one fixes that bug that occurred when the file is on a floppy disk and the user yanks out the disk in the middle. That LoadLibrary call is ugly but it makes the code work on old versions of Windows 95._

<comment><USER8> That doesn't sound like it's at odds at all. The point of the article is that you should investigate _why_ something was done in the past so that you don't keep repeating the same thing even when it isn't necessary anymore. All of the things in your quote are still required and shouldn't be removed.

<comment><USER9> It's at odds with the title, and in line with the content of TFA. OP used a title which has no bearing in the article he linked.

<comment><USER10> Well, "If you don't remember why onions are in there, investigate carefully as to why they were added in the first place, then take 'em out if they're no longer relevant" wouldn't fit in the title!

</comment></comment></comment></comment><comment><USER11> There was a This American Life episode a little while back that had a counter example to this anecdote: sometimes there is something in your process that makes your product special but you don't even know it until it disappears.

Audio here[1] at 34:30. A brief summary found here[2]:

"Jim Bodman, Chairman of Vienna Sausage Co. in Chicago tells the story of how the company built a brand new, state-of-the-art facility in 1970, replacing their old factory, which was actually a warren of buildings on Chicago's south side that was built up by gradually buying up buildings over the course of 70 years, until the factory complex occupied an entire city block. Once they moved into their fancy new digs, however, they faced a problem: the hot dogs weren't coming out the same. They didn't have the same distinctive red color or desired snap. They couldn't figure out what was wrong, since the ingredients, spices, cooking time, everything was the same.

After a year and a half, they still haven't figured it out...until one night, when some guys from the plant are out at a bar, reminiscing over drinks about the old days in the former plant. They start talking about Irving, a fixture at the old plant who knew everyone, whose job was to take the uncooked sausages to the smokehouse. But, given the "Rube Goldberg" layout of the old factory, it took Irving half an hour on a circuitous route to get from A to B. And they realized: Irving & his trip was the missing secret ingredient."

[1] [http://www.thisamericanlife.org/radio- archives/episode/241/2...](http://www.thisamericanlife.org/radio- archives/episode/241/20-acts-in-60-minutes) (audio at 34:30)

[2] [http://theatreeastnyc.blogspot.com/2011/10/how-sausage-er- th...](http://theatreeastnyc.blogspot.com/2011/10/how-sausage-er-theatre-is- made.html)

</comment><comment><USER12> GK Chesterton tells a similar, but sort of contradictory, story:

 _In the matter of reforming things, as distinct from deforming them, there is one plain and simple principle; a principle which will probably be called a paradox. There exists in such a case a certain institution or law; let us say, for the sake of simplicity, a fence or gate erected across a road. The more modern type of reformer goes gaily up to it and says, "I don't see the use of this; let us clear it away." To which the more intelligent type of reformer will do well to answer: "If you don't see the use of it, I certainly won't let you clear it away. Go away and think. Then, when you can come back and tell me that you do see the use of it, I may allow you to destroy it."_

In most technology fields, it seems like Onion Theory works: we can gradually get rid of the hacks we used to get round limitations. But when you're dealing with people and institutions, Fence Theory dominates: human interactions have lots of complicated nth-order effects.

Onion Theory and Fence Theory are deeply similar. In both cases, the point is: be aware of practices that don't make sense. Either they illustrate long-ago hacks and compromises, or they tell you something important but non-obvious about the nature of what you're doing.

</comment><comment><USER13> The advice I took from Levi's story is: consider the possibility that things you take for granted as necessary actually aren't. They could be mistakes, or artifacts of limitations that have since disappeared.

(It's particularly useful for startups to notice the latter, incidentally. A lot of existing businesses turn out to be artifacts of limitations that have since disappeared. E.g. hotels are to some extent a hack to get around the fact that it used to be impossible to search all the available space in the city you wanted to visit. If you built a whole building full of bedrooms, you could afford to pay to advertise it and to pay someone to work full time taking reservations.)

<comment><USER14> There are also economies of scale in stuff like cleaning. And some people want quality control.

</comment></comment><comment><USER15> I think the moral of the story for programmers _should_ be:

If you're putting something in your code that looks like a vegetable, please put a comment on it.

Ten months down the rode you won't remember why that silly looking hack is there and neither will anyone else. It might not be applicable anymore and it might be safe to remove, or it might be holding together something critical.

</comment><comment><USER16> Feynman used the term "cargo cult science", and others later used the term "cargo cult programming" to describe this.

<http://en.wikipedia.org/wiki/Cargo_cult>

Several weeks ago on HN I came across this slideshow: <http://www.slideshare.net/olvemaudal/deep-c> which sparked some debate as to the merits of deep, complete understanding of one's environment. I believe that those who do not have a broad understanding invent their own miniature cargo cult to get by -- or perhaps it is that they are willing to cargo cult and therefore do not develop a deep understanding?

Whatever the case, it's incredibly common in the world of software.

</comment><comment><USER17> There's a dangerous flip side to this: In my experience just about all programmers want to remove things from code that they don't understand or see the reason for. Why is that weird check there? Who thought it was a good idea to allocate memory that way? Very often there ARE good reasons for those decisions, and they can stem from bug fixes or odd special cases that may not be obvious..

Moral: Be careful.

<comment><USER8> Right, which is why you don't just remove the onion because you feel like it. In that story, he found out _why_ they used to put the onion in and determined it was no longer necessary.

Moral: if you don't understand code, don't change it, understand it.

<comment><USER18> > understand it.

This has been said in some replies in this tree, but sometime you can take the piece of code you don't understand as a black box, and bridge its behavior with new code, comparing both outputs during a few iterations, then remove old code.

</comment></comment></comment><comment><USER19> If you can't remember why onions are in there, you probably need better documentation.

<comment><USER20> Yes!

To me, this is the real point of the story. If you are doing anything at all non-obvious, then eventually it will make no sense at all, so write down why you did it.

<comment><USER21> The trouble is, many things are obvious when we're doing it. It becomes non- obvious months/years later. Document as much as possible.

<comment><USER20> Good point.

I think it would be good to ask yourself two questions every time you write a piece of code.

1\. Is it obvious what this code is doing? (For example, i+=1 is always obvious, at least in regards to _what_ it is doing.)

2\. Is it obvious why I'm doing this? (If you're in a loop, i+=1 is pretty obvious as to the _why_ as well, but elsewhere, it might require explanation... and you probably shouldn't be using the variable name i outside a loop, but that's not the point I'm trying to make here.)

For some idea of what this looks like, I've been working on a piece of code today that uses an external program through its API to load a file and make some changes to it. I didn't document the 3-4 lines it takes to load the file and get the object I need. Why? Because it's just how you load a file. Anyone could figure out that out from the documentation. It's already clear what I'm doing: loading a file. And why I would want to do that is obvious given the intent of the program: the whole program is created to perform some operations on files.

I do, however, document why I'm changing the working directory of the program to the folder the file is in. Because the program always saves to its working directory when you call Save from the API, which is not at all obvious or documented in the API.

For one rule (certainly not the only one): anything you had to figure out through trial and error is non-obvious.

It might be interested to collect some example of things programmers decided to or not to document and explanations for those decisions.

<comment><USER22> My experience over a long career of fixing bugs is that it just doesn't matter. Comment-free code doesn't tell you why it does what it does. "Well"-commented code devolves into lies over time. Hard bugs are just hard.

What _does_ help is keeping the voodoo out in the first place by reducing the "non-obvious" bits to an absolute minimum. Which of course is isomorphic to saying that "great code has less bugs". Not exactly profound. But notably it has nothing to do with commenting or documentation, per se.

</comment></comment></comment></comment></comment><comment><USER23> Funny story, the 3rd job I had was at this large telecommunications company. I was doing consulting, but one of the jobs I had to do was make sure that these very important reports were generated. They had to be printed out and sent over the interoffice mail.

I figured, why not generate the reports programmatically and stick them on an intranet website (this was 1999 so "intranets" were becoming a buzzword). I asked my boss, he said okay go contact the people who need the report and see if they are okay with that.

I called the person A that normally got the reports, and they said "Oh, I don't need them, I pass them off to B". So then I called B and they said they passed it to C. This went on for about 5 people, and then it turned out that no one needed the reports. It was just something that was ingrained into the process, but no one actually needed.

The funny thing is that because no one had ownership, I could neither change the process, nor get the reports from being printed in the first place. Truly Office Space-esque

</comment><comment><USER24> Reminds me of this old story:

A religious scholar was telling his wife about the interesting discussion in class one day.

"We were attributing the reason for removing the chicken's legs before cooking it for soup."

"Reb Schalcter said it was to follow the dietary laws laid out in Leviticus."

"Reb Abraham said it was to help us retain our compassion because an innocent animal had to suffer for our benefit."

"Reb Zalman said it was because the legs were most likely to be diseased."

"I said that it was to remind us that the world, like the chicken, is broken."

"What do you think?"

His wife responded, "So that it fits in the pot."

<comment><USER25> This is basically the origin of all religions, especially 'modern' monotheistic ones.

Good, sensible ideas (at the time!) get codified. Throw in a charismatic leader of some kind who (apparently) goes around trumpeting these smart ideas. Voila, religion.

<comment><USER26> Any dead religion is by definition not a modern religion. If you look at religious movements started within the last 50 years in the U.S., there are few if any that fit that pattern.

</comment></comment></comment><comment><USER27> Two paragraphs of agreement with an old pg article. Why is this getting upvoted?

</comment><comment><USER28> Of course the onion will show you if the temperature sensors are working correctly ...

</comment><comment><USER29> This piece of advice does not apply to legacy systems. There is a lot of stuff in there that nobody knows how it works or why it is in there, yet attempting to throw it out has led to so many disasters in the past that no one dares to even think about removing it. Of course there is no budget or political will to investigate - money comes in just fine even with the onion in the varnish.

</comment><comment><USER30> If you can't remember why the onions are in there you've written poor documentation.

</comment><comment><USER31> What if you can't remember why you decided to adopt "If you can't remember why onions are in there, take 'em out" as one of your personal guiding maxims?

</comment><comment><USER32> But onions go with everything and are delicious

</comment><comment><USER33> So true. The hardest part is taking away features from your own product. We need to learn to let go of non-crucial features. built. launch fast. iterate faster.

</comment><comment><USER34> Hopefully someone would remember why circumcision is done always by certain people following certain traditions, religious rules...

</comment><comment><USER35> Can anyone explain in more detail how this relates to Arc and Lisp?

</comment><comment><USER36> <http://youtube.com/watch?v=KZeiSKnhOBc> (5 Monkeys)</comment>


Confession of a corrupted Lisper here, how to get into IT? - <AUTHOR> I have been reading about Linux, Lisp and functional programming since forever, eternally excited just reading about it, yet never really programming anything serious, just snippets of here and there, after which I get lost configuring Emacs, practicing a new keyboard layout, or worst, at the end of this crazy happy spectrum, watching Stallman lecturing about freedom of our techno landscape while trying to understand subtle beauty of a Guy Steele talk , damn, then Sussman comes along, and I could watch him anytime, his intensity is captivating. Lately I like to watch Bartosz Millewski lectures on category theory and draw diagrams, but hey I still dont understand much though its really fun and helps me feel a sort of nice meditative state.. whats my point? I have been spending my time like this for the past 15 years without even trying to get an IT job, immediately being put down by realizing I will have to work on some pythonesque imperative control flows, or scripting along en endless tube of calls. Once I met a lisper while working in a restaurant and he was amazed at how excited I  about lisp, he told me its not important I do not know how to code or the mere fact I do not own a computer. Such minds should me nurtured and given jobs..well I am here now, I guess I am looking for a motivational answer that could put me on track, or am I wasting time yet again? Can anybody relate to this and how did you overcome this infinite search in constant space? <comment><USER2> I think those ruminative philosophical talks can be intellectually stimulating but you need some real world practical experience working in tech. IT can be a broad term, there's helping people with their computers, hardware issues, configuring companies web pages or intranet, software engineering, these are all very different things, you need to clarify what you are getting at. I'm guessing software engineering.

Lisp is a great language, however there are far more software jobs using other languages. I suggest you work on some fun toy problems and try programming in a more commercially employable and approachable language, I suggest python. You can do everything on line. There are these self-contained browser programming environments. After you get started you can install software on your own computer, I wouldn't start with that. A quick web search found this page - [https://www.learnpython.org/](https://www.learnpython.org/). But there are tons of them. Find one of those, work on something interesting to you and then see if you are interested. There are lots of interesting things in the computer science world, but since you have years of yearning, I suggest narrowing your focus to something that is more direct, assuming employment is your goal. As a beginner with no recent school experience as a dev or employment (apparently), it will be hard to find that first job, but once you have one your resume will get you considered for the next. Good luck!</comment>