Are we all born with perfect pitch? - <AUTHOR> https://medium.com/cuepoint/your-baby-knows-music-better-than-most-adults-e34bb619e860 <comment><USER2> I can't find in any of the linked sources any conclusive proof that all children are born with perfect pitch. From my own research in 2011, I hadn't discovered any papers which would make so bold of a conclusion.

This proposal[0] linked by the article mentions a few studies that show some environmental factors that seem to have a high correlation to absolute pitch, such as growing up around tonal languages, but nothing conclusive about absolute pitch just being a thing that we all have but that most of us lose. There are correlations to age groups, ethnic backgrounds, linguistic backgrounds, and musical backgrounds, but again most studies have looked at the environment for clues about how absolute pitch works as opposed to presenting evidence of something innate.

Musical cognition is an absolutely fascinating field of study, and it absolutely plays a critical role in the way humans function. However, I think this article is a little click-bait-y, seemingly drawing an unfounded, fantastical conclusion about a particularly popular aspect of the field. As far as I can tell, it's completely unsubstantiated.

[0] [http://www.auditory.org/mhonarc/2004/save/pdf00001.pdf](http://www.auditory.org/mhonarc/2004/save/pdf00001.pdf)

Edit: words are hard

<comment><USER3> Something major changes within our speech and/or auditory systems after early childhood. We lose the ability to learn fine differences such as the accent. It's not clear whether this is a difference in the way speech (sound) is perceived, or our ability to pronounce, or something in between.

Sure, accent is not pitch, it's more like timbre. In any case, both are related to the ability to do spectral analysis of the sound, and act upon it.

<comment><USER4> It has been shown that this changes after childhood, and that certain drugs (valproate) can reverse this effect.

[https://www.ncbi.nlm.nih.gov/pmc/articles/PMC3848041/](https://www.ncbi.nlm.nih.gov/pmc/articles/PMC3848041/)

</comment></comment></comment><comment><USER5> The article is written in such a fantastical style that my BS-meter was going off the entire time, so I wish I had the experience or time to determine how valid these conclusions are from the studies linked.

The only anecdotal experience I can bring to the discussion is that I have seemed to acquire a _very_ limited version of absolute ("perfect") pitch, whereby I occasionally will hear a note or chord and instantly perceive the unmistakable "C minor-ness." Sadly, while the phenomenon seems to be perfectly reliable when it occurs, it only occurs rarely. This is probably what Wikipedia calls "pitch memory" rather than absolute pitch.

<comment><USER6> Absolute pitch doesn't tell you the quality of the chord, it only tells you its constituent notes. To know that a chord is minor is simply relative pitch aka ear training.

<comment><USER5> I just meant that I can occasionally recognize both, e.g. I will hear a chord at the beginning of a song and instantly know "A minor." You're right, only the "A" part is the absolute pitch. I can always recognize the "minor" part, which is just easy relative pitch.

</comment></comment></comment><comment><USER7> The biggest howler in the article might be this: "Piano tuners frequently possess this gift, making their seemingly difficult craft effortless."

In actuality, absolute pitch is of hardly any utility in piano tuning. Even those who are recognized as having some degree of "perfect" pitch very very very rarely can tell 440 Hz from 440.1 Hz, which is the sort of thing a piano tuner deals with. And this task is always done with electronic help anyway, these days.

<comment><USER8> Its quicker if you don't need a tuner.

The key (forgive the pun,) is to listen for the tell-tale signs of a slight discord.

Most people can get within 2hz on the same note. With practice you can use one note to tune another.

For example when I worked in a sound studio, I could tune a guitar using a single reference note(e, a, d, g or b) (without harmonics or similar) More skilled people could use other notes.

<comment><USER7> Right. And the point is, none of what you are describing requires perfect pitch or is even helped by it.

Just another example of a non-musical writer with no understanding of the difference between absolute pitch, and relative pitch.

</comment></comment></comment><comment><USER9> A music teacher once explained it to us like this: "perfect pitch" is simply memory. If you recall what something sounds like you can can compare and figure out what any note is. Some people have an amazing memory, some people have to work at it. But you can create all kinds of mnemonics to help you remember things, and pitch is no different.

By the end of his class I had a firm grasp on all the intervals and was getting _really_ good at getting absolute notes. Had I continued training myself I have no doubt I could be considered to have "perfect pitch" (as could most of the class). It really demystified the whole thing to me.

<comment><USER10> Mnemonics is totally how it works for me. I can hear songs in my head in tune. Through learning to play guitar, I've memorized songs for each note, by the first chord of each song.

A: Jessica, Allman Brothers

A#: In Bloom, Nirvana

B: Out on the Weekend, Neil Young

C: Like a Rolling Stone, Bob Dylan

C#: Say it Aint So, Weezer

D: Moonage Daydream, David Bowie

D#: Woman, John Lennon

E: Melissa, Allman Brothers

F: Smells Like Teen Spirit, Nirvana

F#: Foxy Lady, Jimi Hendrix

G: Santa Monica, Everclear

G#: Brain Stew, Greenday

The only part I'm not completely convinced is a learned skill is being able to internalize the song in the first place.

Intervals are the same.

Minor 2nd: The Jaws theme

Major 2nd: Mary had a Little Lamb

Minor 3rd: What Child is This

Major 3rd: Kumbayah

Perfect 4th: Here Comes the Bride

Tritone: The Simpsons

Perfect 5th: The Star Wars Theme

Minor 6th: Close Every Door to Me

Major 6th: The NBC Theme

Minor 7th: Somewhere(Theres a place for us)

Major 7th: Take on Me

Octave: Somewhere over the Rainbow

<comment><USER11> This is amazing. Thanks so much for posting this. I "listen" to music all day in my head but never thought about using it to be able to sing the specific notes. I'm looking forward to trying this later with my guitar.

</comment></comment></comment><comment><USER12> No. The inference from "every baby in this study has perfect pitch" to "every baby has perfect pitch" is as unwarranted as "every person I have ever met is handed so ambidextrous people don't exist."

Most babies may well have better pitch than the vast majority of adults. To claim therefore that every baby has perfect pitch is sensationalist, unwarranted, and almost certainly wrong. Very poor science-reporting.

The interesting question, as always, is what the distribution is, not sweeping and almost certainly false categorical claims ("All members of category X have property Y!")

<comment><USER13> From one of the studies cited: ( [http://www.auditory.org/mhonarc/2004/save/pdf00001.pdf](http://www.auditory.org/mhonarc/2004/save/pdf00001.pdf) ) "We conclude that the potential to acquire absolute pitch is universally present at birth, and that it can be realized by enabling the infant to associate pitches with verbal labels during the critical period for speech acquisition."

The article claims "each and every one of us is born with perfect pitch", but this is not cited, and being born with absolute (aka. perfect) pitch is not the same as being born with the potential to learn absolute pitch.

EDIT: Possibly evidence for babies being born with absolute pitch was hidden behind a misleading link (the "synesthesia" link). But full text is paywalled so I can't be sure: [http://www.ncbi.nlm.nih.gov/pubmed/11206435](http://www.ncbi.nlm.nih.gov/pubmed/11206435)

<comment><USER14> I think it's just the common mistake of misunderstanding how to invert a logical implication.

Which is to say, what the journalist _meant_ was "no one is born tone-deaf."

<comment><USER15> And to write 'of those babies we have examined...'.

</comment></comment></comment></comment><comment><USER16> Just to add another anecdote, I feel like the people I know who are able to whistle generally recall pitches very accurately, they just can't name the pitches without further training.

Whistling isn't hard to learn, and it is easier to control pitch through whistling than it is through singing (in my experience). I feel like whistling can be very helpful in revealing "perfect" (or very accurate) pitch recall in people.

</comment><comment><USER17> I don't know that putting labels on pitches at a young age was a sufficient condition for my perfect pitch, but I feel like it was necessary.

<comment><USER18> Sapir-Whorf hypothesis for music.

</comment></comment><comment><USER19> Mandarin is linked with perfect pitch

[http://www.sciencedaily.com/releases/2004/11/041114235846.ht...](http://www.sciencedaily.com/releases/2004/11/041114235846.htm)

</comment><comment><USER20> radiolab episode that deals with this

[http://www.radiolab.org/story/91512-musical- language/](http://www.radiolab.org/story/91512-musical-language/)</comment>


ThingieQuery: a SQL plugin for Excel - <AUTHOR> http://thingiequery.com/ <comment><USER2> I'm banging my head against Excel, wishing for SQL right now! But I could never go to my boss and ask for a purchase order for something called ThingieQuery. Give it a more bland gray name and make a massively expensive corporate site license available, and I think you're onto a winner.

<comment><USER3> Author here. I'm inclined to agree, the naming is poor, it didn't start out as a serious product, and I never changed the name. That said, you can at least use the trial licence (free for 30 days) and after that who knows, maybe I'll rename the plugin to Excel SQL Studio 3000 XT and add an Enterprise Ultimate Premier License for 1200$.

<comment><USER4> Personally I think the guy is a moron. If he wasn't banging his head so hard he might realize it's reasonably priced and he can save all the corporate hassle by purchasing it himself.

<comment><USER5> Enterprise doesn't work that way. There are a lot of situations where you aren't even allowed to use free-as-in-beer open source software due to security and/or other concerns, let alone software that you've paid for yourself. Besides, if the company is the one getting the benefit from the usage of the tool, why should he be the one paying for it?

<comment><USER6> The way where I work works (technically enterprise, a couple thousand full- time employees), if you want some software and think it's reasonably-priced, you can buy it and expense it. I've never heard of anyone getting in any trouble over this. You can also submit a helpdesk ticket to have purchasing buy something for you, which is what we'd do for e.g. Subscription licenses which require someone entering a corporate card and keeping track of it.

</comment></comment></comment></comment></comment><comment><USER7> This is only the most AMAZING thing to happen to Excel! I got some Excel data from a friend to analyze and went through the usual PivotTable way for a while until I hit a roadblock and I needed something more advanced. I knew how to solve my problem with SQL but not with Excel, so I ended up downloading and installing SQL Server Express. This would have saved me from having to do that. Looking forward to more features.

<comment><USER3> That's exactly the kind of response I was aiming for:) Thanks for saying that, it's amazing to read!

</comment></comment><comment><USER8> Nice. Though, from a finance perspective, my daily nightmare is in the sharing piece - not in the analysis piece - of my job. Sharing numbers in spreadsheets and consolidations is a deep un-solved pain in the finance world. But I do see this solution as a potential fix for the many pivot functionalities shortfalls.

<comment><USER9> Any chance you could expand on some of those pains? Is the problem with simply sharing the data itself or with being able to slice/dice/query/do smth with the shared data? I'm sure there are a bunch of people around here who'd love to hear some user pains/stories to improve their apps.

<comment><USER8> Well, what do you want to know? I have many horror stories, actually, I just had 1 today - it took me half day to upload 6 Income Statements (6 spreadsheets) to our Company official tool (HFM). This should take no more than a couple of minutes. Other story? Try to run an Opex (Operating Expenses) budget when you need engineering, cus service, mantainance, etc., departments to all give you costs estimates and then try to track those costs (BPC is one other terrible tool that is supposed to help you with this kind of need). I am talking +500 cost centers each one split in cost types, each cost type split in natural accounts. Getting data and dealing with data in those cases can be a nightmare.

But you are right, there is a reporting part too to it. It's just that I think the sharing and data handling piece is the real key. There are many decent reporting solutions out there, none that integrates a serious data sharing/integration solution (I am also referring to data feeds from other systems, other painful topic). One other big topic is integration, companies do not know what an API is, so getting data out of systems usually requires jumping through different hoops of terrible UIs and button clicking.

But hey, if the topic sounds interesting for you and/or others, feel free to send me an email.

</comment></comment></comment><comment><USER10> I don't know if it's a regional thing or what, but the idiom is usually "color me interested" rather than "paint me interested." Maybe you care, maybe you don't. I've just never seen "paint me interested" like that and thought it was curious.

<comment><USER3> Point taken:) I have no idea where I got the "paint me xyz" from. Thanks for pointing it out, I changed it to "color me interested"

</comment></comment><comment><USER11> Looks interesting, how does this work under the hood? Does it use something like sqlite, or mssql? Because surely the syntax for queries is different, the page simply says it supports _all_ SQL, but SQL can vary a lot between databases (or is it your own kind, and in that case yet another variant?)

<comment><USER3> Yeah, it uses SQLite under the hood. SQLite has a mechanism it calls "virtual tables" which I used to implement an adapter that lets it see Excel tables as database tables. I also implemented hash indexes in the adapter so joins and lookups are crazy fast (searches by range not so much though). SQLite is very cool, it also lets developer hook additional functions into it, which is how I exposed some .NET functions and they can be used from SQL (replacex=Regex.Replace, ismatch=Regex.IsMatch, format=String.Format, etc...)

<comment><USER12> So what happens when I use this to create a spreedsheet, and I then share this spreadsheet with someone else who doesn't have this tool installed, or doesn't have a license?

<comment><USER3> Not much, the data will show up fine, by default ThingieQuery doesn't do anything magical with the workbook itself it just reads and if you want writes data to it.

You can however explicitly embed a query into a workbook (it gets stored in the CustomXMLParts of the workbook), and you can automate running this query from VBA. For this automation to work, the other computer would need to have ThingieQuery installed, but it wouldn't need a license. The license is only required when working with the ThingieQuery UI.

I'm currently working on the ability to automate the execution of embedded queries from the UI, since the VBA automation API is less user friendly. I'm a bit apprehensive about this, as it might encourage further misuse of Excel though.

<comment><USER12> Excellent, thank you for the reply.

<comment><USER3> You are very welcome!:)

</comment></comment></comment></comment></comment></comment><comment><USER13> I think the approach of [https://airtable.com/](https://airtable.com/) is a better solution for these kind of problems, but not everybody is free to change tools.

<comment><USER14> A lot of data is already in spreadsheets. And using an existing spreadsheet in AirTable is not quick and easy because its only possible with csv import: [https://support.airtable.com/hc/en- us/articles/203423579-Imp...](https://support.airtable.com/hc/en- us/articles/203423579-Importing-a-spreadsheet-from-Excel-or-Google-Sheets)

Strange they do not offer a more direct import. It would help the transition.

<comment><USER15> A bit late to the punch, but we also let you copy and paste from most other spreadsheet programs directly into Airtable

</comment></comment></comment><comment><USER16> Finding this has just made my whole (not great) week better by a huge degree. I've played with it on a workbook with ~100k rows and the performance is fantastic. I'm really excited!

<comment><USER3> Thanks, I'm very glad to read it, and I'm excited as heck at all the positive feedback!

</comment></comment><comment><USER17> This is what I've wanted to do in excel since forever: a worksheet function that takes a range to use as the table and the SQL query as params, something like:

        =QUERYTABLE("SELECT * FROM TABLE", A1:G1000)

I actually wrote my own in VBA that wrapped the ADO/JET db engine but involved writing out the table as a .csv in the background so I could query it. Would love a "proper" solution.

<comment><USER12> Not what you want, but Google docs has this and it's very nice.

[https://support.google.com/docs/answer/3093343?hl=en](https://support.google.com/docs/answer/3093343?hl=en)

<comment><USER18> Wow, I never knew about this! Something I'm sure to use. Thanks.

</comment></comment></comment><comment><USER19> See also: textql - Execute SQL against structured text like CSV or TSV

GitHub: [https://github.com/dinedal/textql](https://github.com/dinedal/textql)

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

</comment><comment><USER20> Can't you already do this fairly easily with VBScript and ADO/DAO/whatever it's called? That said, it's probably not a good idea to (further) encourage the relational DB paradigm within a spreadsheet!

(Also: a closed source extension for a proprietary product on HN? Is it 1st April somewhere in the world!?)

<comment><USER2> There's no simple "this workbook" connection that I'm aware of. So you have to use external connections and Access flavoured SQL to a named file and it all becomes brittle & ugly.

<comment><USER20> In my view, if you're at the point where you need to use the relational model with your data, you shouldn't be using Excel anyway. I realise it's "easy" and the go-to software for such things for corporate-types the world over, but that doesn't make it right.

SQLite -- plus, if you need it, some open source GUI -- and you are done. No pain of bending Excel to do what you want; none of the horrors of Access and its cludgy-flavoured SQL. If you _really_ need it ultimately in Excel, I'm sure there's an ODBC driver you can use to get a view on the data.

<comment><USER3> Sometimes you just want to manipulate data in your spreadsheed in place with the help of SQL but without having to go through the ceremony of importing and exporting to/from a database. For instance, with this plugin you can use regular expressions (replacex function) to transform data in a column, or you can do a join. If that's all you need to do, the overhead of importing/exporting is not worthit, and having convenient SQL+Regex can be a nice time saver. (disclaimer: I'm the author)

</comment></comment></comment></comment><comment><USER3> Hey Pete, I just wanted to say thanks for posting this, it was a huge deal for my page views. Between reddit and hackernews, my webpage went from having about 100 visitors/day to having 10k in a single day! Thanks a bunch, and if you tell me where you live (maybe via comments on my page), I'll make sure you get beer to delivered to your doorstep:)

</comment><comment><USER21> "SQL"? MSSQL? MySQL? Postgres? Oracle? DB2?

There is a the free MySQL Excel plugin ([https://dev.mysql.com/downloads/windows/excel/](https://dev.mysql.com/downloads/windows/excel/) )and I think the free MS PowerPivot plugin supports SQL databases too.

<comment><USER3> It supports connecting to PostgreSQL and MSSQL currently. When you connect to an external engine it opens up a connection, and copies selected Excel tables as temp tables to the destination DB. This makes it easy to combine excel data with existing db data in your queries, and also to move data in easily in either direction.

It uses low level bulk copy operations when importing excel data so it's pretty fast. I did not yet implement support for Oracle because it doesn't have session level temp tables, only global temp tables... I'll see what I can do there.

I haven't used the MySQL Excel plugin so I can't comment on its features...

</comment></comment><comment><USER22> It looks great. Too bad it's Windows only.

The preview of excel 2016 for mac is pretty good and some of our marketing staff are contemplating the idea of migrating to mac.

Congrats on the launch, I'm not an excel user myself but I've sent the link to some of my coworkers and they look excited :D

<comment><USER3> Glad to hear your coworkers are excited!:) I'd love to support mac but unless excel 2016 includes VSTO, it won't be doable.

</comment></comment><comment><USER14> So how about a tool that would open an Excel spreadsheet as a sqlite database ? By on-the-fly converting the tabs into tables. Then open this database in your favorite sqlite browser. Maybe even open several spreadsheet files at once, each file in a separate database.

<comment><USER23> Neat idea, you could get pretty close to that experience right now by running [http://databaseimportscriptor.com](http://databaseimportscriptor.com), then Alt+Tab-ing into MySQL Workbench.

Problem is, I can't really see a market for it. You're trying to write SQL on your database, so you're a developer, and how much would you really be willing to pay to have the experience streamlined down to a couple of clicks?

</comment></comment><comment><USER24> How does the autocompletion work? Is is context sensitive to suggest only column names after the 'WHERE' clause or will it suggest 'tables and columns'?

<comment><USER3> Good question. Unfortunately no, not yet. It's not context sensitive, actually it's as dumb as a brick:) If you enter the name of a table followed by a dot, it will offer only the columns from the table. Other than that, it offers pretty much all objects and filters them as you type.

I've been wanting to implement a SQL parser (at least for SQLite) so I can offer meaningful autocomplete, and some other nice features, but it was a lower priority than other things. I've done some work with Antlr a few years ago, but I'm itchin' to roll my own since I'm already dusting off my compiler theory books...

Anyway, why not give it a try, the trial is free:)

<comment><USER24> I'd love to, but unfortunately I don't have Windows or Excel. :(

I was curious because I wrote pgcli ([http://pgcli.com](http://pgcli.com)) which does context-sensitive auto-completion. So I was wondering if there was a better way to do it than what I'm doing right now.

[https://github.com/dbcli/pgcli/blob/master/pgcli/packages/sq...](https://github.com/dbcli/pgcli/blob/master/pgcli/packages/sqlcompletion.py)

The demo videos look impressive. Congrats on the launch. :)

</comment></comment></comment><comment><USER25> Nice project! I made a similar one but using NoSQL-like syntax and a Google Spreadsheet for fun and I learned a lot, but of course nothing so professional (;

</comment><comment><USER26> Very nice tool. It might become very useful at work if I can comvert all the heavy excel users towards SQL queries.

<comment><USER3> Even basic SQL can make a lot of things easier in Excel, and SQL is not that complex so it might be doable. And the plugin is perfect for teaching SQL to someone, you can immediately see the effects of queries on data. Just sayin... :)

</comment></comment><comment><USER27> All the screenshots seem to be based on Excel 2013. Is it compatible with earlier versions of Excel?

<comment><USER3> Yes, it will work on Office 2007, 2010, 2013 on both platforms (x86/x64)

</comment></comment><comment><USER28> I have been wanting a tool like this for a few years. I can see a bazillion uses for it. Home-run!

</comment><comment><USER29> I think Excel just got developer friendly. Cool tool.

</comment><comment><USER30> Is there anything similar for Google spreadsheets?

<comment><USER31> Google spreadsheets has a QUERY function which takes an SQL query

</comment></comment><comment><USER32> This could be awesome for teaching SQL

<comment><USER3> Yeah, I'm hoping it will be used that way also, since you can read and write data both by hand and using SQL and immediately see the effects.

</comment></comment><comment><USER33> nice, playing with it now</comment>


Mootools head apologizes, fires developer over JQuery Misinformation  - <AUTHOR> http://blog.mootools.net/2007/12/13/an-open-apology-to-the-authors-of-jquery-prototype-and-others <comment><USER2> Can't help but feel that this is a bit of a harsh reaction. Although I guess you'd better know what you're talking about before you represent your company in front of such wide audience.</comment>


'I've become isolated': the aftermath of near-doomed QF72 - <AUTHOR> https://www.smh.com.au/national/i-ve-become-very-isolated-the-aftermath-of-near-doomed-qf72-20190514-p51n7q.html <comment><USER2> A similar thing happened with the captain of SAS MD-81 in 1993[1]. Clear ice had formed on the upper side of wings overnight, but it was not detected during de-icing. Shortly after takeoff, pieces of ice broke off and hit engines, deforming fan blades, which disturbed airflow and caused right engine to surge 25 seconds into the flight.

Pilots properly responded with thrust reduction to decrease engine stress, but unknown to them, the MD-81 had been fitted with Automatic Thrust Restoration[2] that kept increasing thrust to maintain normal climb setting. Increased thrust led to surging of the left engine too, until both engines failed at 78 seconds.

The aircraft crashed into a field and broke into three parts (everyone survived).[3]

Post-crash analysis determined that reduced thrust would have kept both engines operational, and maintained thrust would've lead to failure of only the right engine, which would have allowed to keep flying and perform a safe landing. ATR increased thrust and caused both engines to fail.

Captain of the flight retired from flying, saying that he lost trust in airplanes.

[1] [https://en.wikipedia.org/wiki/Scandinavian_Airlines_Flight_7...](https://en.wikipedia.org/wiki/Scandinavian_Airlines_Flight_751)

[2] [https://patents.justia.com/patent/4662171](https://patents.justia.com/patent/4662171)

[3] [https://i.imgur.com/k4q0WMm.png](https://i.imgur.com/k4q0WMm.png) and [https://i.imgur.com/KzPNhsU.jpg](https://i.imgur.com/KzPNhsU.jpg)

<comment><USER3> For every vindicated hero, there are probably dozens of pilots who would no longer be alive without smarter systems.

Airline fatalities decreased 10-fold in the last 30 years, while total miles travelled increased by the same factor. Flying today is 100x safer now, and I don't quite understand peoples' fetish with human control.

<comment><USER4> Where do those figures come from? They appear to be completely inaccurate. Looking here [1], while there has certainly been a reduction in fatalities over the past 30 years, it's not even close to 10x. Maybe 2x or 4x. As far as miles travelled, there has been at best a 2x increase over the past 30 years, at least for the US[2].

Airline travel certainly has become safer, at least on a per-mile basis, but 100x safer? That's fantasy.

1\. [https://en.wikipedia.org/wiki/Aviation_accidents_and_inciden...](https://en.wikipedia.org/wiki/Aviation_accidents_and_incidents#Statistics) 2\. [https://www.bts.gov/content/us-passenger- miles](https://www.bts.gov/content/us-passenger-miles)

<comment><USER3> Sorry, I continue calculating from 2000 because it's easier, but the errors bars of that are starting to grow. Make it 50 years:

[https://en.wikipedia.org/wiki/Aviation_safety#/media/File:19...](https://en.wikipedia.org/wiki/Aviation_safety#/media/File:1970-2018_fatalities_per_revenue_passenger_kilometre_in_air_transport_\(cropped\).png)

In any case, the larger point should be undeniably clear. Air travel is getting safer and safer.

<comment><USER5> You've only established that flying is getting safer. None of this proves or even implies that most of that improvement in safety is because of added features like ATR, especially ones that subtly subvert expectations and remove agency/control from pilots.

<comment><USER6> We need standards for ways to recognize when the computer controls have chosen to override the pilot, why they are doing it, and a way for the human to override. This is hard, not easy, because there are so many things going. One place to look and report back.

Tesla has some of these things. It beeps at you when it detects you are about to hit cars in front of you. If you are in traffic and it doesn't see that your lane will be going around say a stopped car in a different lane in traffic you can easily override it. Similarly for the driver can override the autopilot, and because it has a kind of tactile feeling when you use the steering wheel to override the self-driving. Still it's far far from perfect, current evidence being the front end crashes into immobile barriers. But they have these notions built in of feedback, control, override. I expect every self-driving vehicle has something different in how they handle these things. Eventually we'll have standards across car lines. I bet planes are all different with all those amazingly huge number of controls the pilot has to understand.

</comment></comment></comment></comment></comment></comment><comment><USER7> The humans are required to be there for a reason, and that reason is so important TWO are required to be inside the control cabin at ALL TIMES. If they aren't given the final say in what course of action should be happening at a given moment it's been designed wrong.

"For a pilot, loss of control is the ultimate threat. It's our job to control the aircraft, and if computers and their software, by design, can remove that functionality from the pilot, then nothing good is going to come out of that."

<comment><USER8> Pilot here. 100% agree. An autopilot isn't autonomous (like the most of the public think). It's more like flying the plane by pushing buttons vs manipulating the flight controls. You dial up a heading or altitude and press execute. You still have to watch it closely and it does mess up quite often ie: won't capture a localizer, altitude wasn't armed, etc. Procedure in the cockpit is to call out altitudes like "1000 above" when leveling off.

I've flown an F-16 where the fly by wire system won't let you over G the jet. So, I think some level of automation is good in that regard. But, it's very subtle and you feel in control at all times. I would never fly an aircraft that would actively take over control of the aircraft... because the automation messes up all the time.

<comment><USER9> HN has had two classes of aviation technology articles recently:

\- Horrible examples of automation going wrong, hard to design and failing easily.

\- Autonomous app-based air taxis are coming together with automated urban air traffic control (Uber and others). Market estimated to be worth €1.5 trillion by Morgan Stanley analysis.

What's your take?

<comment><USER10> Air taxis will become possible only when a quiet method of vertical take off and landing is developed, if ever. No current VTOL lightweight aircraft would be able to gain even experimental status in an urban environment, let alone thousands of them running at all hours of the day. The noise levels propellers make are absolutely horrendous.

<comment><USER11> I've always wondered if blasting inverted phase sounds recorded from the propellers (like noise cancelling headphones) would help a bit with the noise problem.

<comment><USER12> You can't cancel noise in general, only at specific chosen points. Noise cancelling headphones can work because your ears and in a consistent place relative to the headphones.

</comment></comment></comment></comment></comment></comment><comment><USER13> > Qantas Flight 72 is descending in a nose-low altitude for just over 15 > seconds

Yes, aviation-ignorant editor, he really did mean to write attitude before you changed it to altitude.

<comment><USER14> Uhm, you're arguing with an automaton, a spelling checker.

Apt and ironic, given the circumstances

<comment><USER15> More likely a human sub-editor on a paper like the Sydney Morning Herald, surely.

<comment><AUTHOR> Yes I would think so too

</comment></comment></comment></comment><comment><USER16> This is heartbreaking. Only a markedly superior flight officer would be affected the way he was, and it made him unable to continue. The flying public loses one of its best protectors.

<comment><USER17> Exactly -- "The flying public loses one of its best protectors."

And the loss is the direct result of badly designed and badly implemented software automation.

Yet, software continues to eat everything, and large swaths of the industry praise a "move fast and break things" attitude about it. Even life-critical industries consider it OK to make airframe changes rendering a passenger aircraft unstable in parts of the performance envelope and patch it over with software supposedly compensating for those new flight characteristics, dependent on a single faulty sensor and no input sanity checking. After 346 people die in two incidents, they reconsider, only after forced by regulators.

This <it'll be OK, just patch it> attitude needs to be eradicated.

<comment><USER18> The thing is, the software automation _wasn 't_ badly designed and badly implemented. This isn't like Boeing's non-redundant MCAS system - a huge amount of engineering work was put into making every part of the system redundant and robust against erroneous data from a failing component and verifying that it worked as intended. It's just that some really weird, rare failure mode that no-one anticipated or ever found the cause of somehow created a data pattern which foiled all those checks.

<comment><USER17> "making every part of the system redundant"?

Really? From every account I've read, it depended entirely upon a single flight attitude sensor, and did no sanity checking whatsoever against other data, sensors, or inputs. There was an _extra-cost-option_ for a second AOA sensor and an obscure cockpit light that would tell when the two AOA sensors disagreed, but those were not installed in either of the crashed airplanes.

It seems at the very least, such a critical system should have three primary sensors with full algorithms to check for disagreement, plus checking against the artificial horizon display inputs, airspeed, throttle, etc. to determine if they were _actually_ in the part of the envelope where the MCAS would be useful.

So, unless it there are a number of checks & features that have been written in no account I've read, it's really bad design -- software.

Moreover, they could have decided to NOT design the airframe so that it would have deadly characteristics requiring a software patch to hide.

Again, really bad design - airframe.

Or, they could have decided that this is a potential critical and deadly failure mode which properly required extra training and a new Type Rating for pilots to fly the new aircraft. But instead they decided to try to bury it in the same type and an hour of iPad training, so that their airline customers would see the a lower overall cost of the new model.

Again, really bad design -- process.

Perhaps you can point me to some documentation I'm missing here, but this is what I've consistently gathered from the substantial number of articles I've read.

<comment><USER18> Boeing's disasterous MCAS system relied entirely on a single AOA sensor and did no real sanity checking, yes. The Airbus plane this article is about had three AOA sensors fed through three redundant ADIRU modules, with the data being checked and cross-checked by each of the three primary and two secondary flight control computers, each of which also had an internal monitoring channel running independently-written software on seperate hardware checking its internal calculations.

The reason Qantas Flight 72 only nose-dived twice, if I'm understanding the incident report correctly, is that each nose-dive caused the internal monitoring to fail and that part of the flight control computer responsible to be faulted out for the rest of the flight. After the second nose dive, all three of the primary flight computers had faulted, disabling the affected flight control features.

</comment></comment></comment></comment></comment><comment><USER19> Interesting how what is essentially a _success_ in handling a crisis, can still be traumatic. It seems like I recall Chesley Sullenberger being on record stating that he and the rest of the crew of that "miracle on the Hudson" flight suffered from PTSD symptoms for weeks.

<comment><USER20> It's not that hard to get.

I hit a dog with my car and had flashbacks and intrusive thoughts about it for about three weeks.

</comment></comment><comment><USER21> A write-up of the technical side [http://avherald.com/h?article=40de5374](http://avherald.com/h?article=40de5374)

</comment><comment><USER22> This really resonates with me:

"One thing is certain: the computers blocked my control inputs. For a pilot, loss of control is the ultimate threat. It's our job to control the aircraft, and if computers and their software, by design, can remove that functionality from the pilot, then nothing good is going to come out of that."

</comment><comment><USER23> The lesson is that automation can fail suddenly, even in domains like aerospace which are unusual in that they have an infrastructure of professionalism and safety. If an automatic system fails and then leaves the system in a position that humans can't recover from then the failure will be complete.

This is not real supervision, automatic systems must be designed to relinquish control before the situation is dangerous.

</comment><comment><USER20> Note that New Zealand regulators were inspired by QF72 to provoke the following accident:

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

which reads like something right out of Perrow's "Normal Accidents" book in that it was an incredible confluence of hardware and human failures.

<comment><USER24> "Provoke"? They seem unrelated.

<comment><USER20> The wikipedia article doesn't explain it well compared to the accident reports.

The regulators were trying to test the envelope protection system under stressful conditions and it turned out that the AoA vanes were non-functioning which contributed to the crash.

Thus it is relevant to the later 737 MAX crashes.

It is a "normal accident" because of the human factors: e.g. no flight plan filed because it was a test flight, regulators ordering the pilots to defy the air traffic controllers, regulators ordering pilots to go forward with a test they didn't want to do... And on top of it all a maintenance error.

</comment></comment></comment><comment><USER25> Aren't there standards on what is considered a safe flight maneuver? Small adjustments here and there are fine, but sudden pitch downs like those encountered on QF72 and with MCAS should be cross checked and analyzed by the computer systems. This is the whole point of triple redundancy, not just to maintain an accurate reading but also to detect when the reading accuracy has failed so you can respond accordingly.

Of course for every QF72 there are probably a bunch of injuries and deaths attributed to pilot error, which is why the computers are there, but at some point there has to be a middle ground. If you defer control to the computers in all situations, what's the point of the pilots?

If these computers and their software are smart enough to make life critical decisions, why can't they make the most important decision of all: should I stop?

<comment><USER26> Yes, there are standards. The full Australian accident report finds that the 3 times in 29M flying hours that this issue occurred were within the standard (for a non-catastrophic issue, as they found this was). The systems did indeed cross-check, but there was an algorithmic edge case where the incorrect data was inappropriately used anyway, as happened here.

It also did give control back to the pilots: after the second nose-down, the control law reverted as designed to 'alternate' (a degraded state) which removed the part of the envelope protection causing the nose downs. And the pilots also correctly switched to the backup ADIRU, which disconnected the faulty data from (most of) the aircraft's systems.

For me, the interesting part of the article is the severe consequences for the pilot's mental health. A serious, but non-catastrophic problem occurs, and is skillfully dealt with by the crew (whose training is designed for exactly this). There are a number of injuries, but none are life-threatening. But the pilot's sense of responsibility, the feeling that it could all have been much worse, and a loss of faith in the aircraft, results in long term disability despite the 'successful' result.

<comment><USER27> Yeah I found that pretty moving. It's worth pointing out he continued to fly for 8 more years between the incident in 2008 and his retirement in 2016, but seems like he was really struggling most of that time.

</comment></comment></comment><comment><AUTHOR> Its not only Boeing thats had issues with automation:

"I've learnt from these events, but none have generated the body response or trauma that this one has on October 7, 2008. This scenario involving computers, denial of control and potential mass casualties is at a different level. It seems we've survived a science-fiction scenario, a No Man's Land of automation failure on an unprecedented scale."

<comment><USER28> At least none of these incidents killed anyone. Boeing's automation (MCAS specifically) has a lot of blood on its hands.

<comment><AUTHOR> Yes good point! But it seems by luck/good piloting that it didn't kill anyone.

<comment><USER18> Less luck, more good design. The accident investigation report reckons that this was close to the worst-case scenario: the first pitch-down was almost at the maximum possible, the other fault protection systems made it unlikely that more than two such uncommanded pitch-downs could happen in a flight, and it wasn't possible for this to happen anywhere near close enough to the ground that the pilots wouldn't be able to recover even if they panicked.

</comment></comment></comment></comment><comment><USER29> Anyone know why autopilot cutoff switches aren't a thing? I know these aircraft aren't designed for pure manual operation, but I don't understand why there is not a way to downgrade the level of computer control, turn off all but the most simple autopilot functions. Anyone here in the know on this?

<comment><USER30> They are, even with autopilots in general-aviation airplanes that commonly have a disable button on the control yoke, a button on the panel, and a circuit breaker to cut George's power.

<comment><USER29> Ah I was more aluding to the automatic system that caused the crashes (MCAS I believe), but after a bit of research it seems this is not an autopilot function, more of a flight assist function. Still, it kinda blows my mind that any system that can forcibly counteract the pilot's control could not come with an off switch. I'd feel uncomfortable if my car didn't have an off switch for traction control.

</comment></comment></comment><comment><USER31> An automation failure is scary because nobody understands what is going on or what can be done about it. Mechanical failures also occur and the risk is accepted. What are the odds of a bird strike? What are the odds of a bird strike being dangerous or catastrophic? Although Boeing isn't helping, Probably the odds or number of occurrences of mechanical failures with bad outcomes is way higher than For electronics or automation.

Is it a Similar situation to coal and nuclear power? Better the devil you know.

<comment><USER32> Related to Boeing old stats may be irrelevant since a big change in the process happened and the MAX plane updates were rushed, corners were cut, pilots were not informed on the changes and on top of that after the first crash Boeing proved that they would risk other crashes then grounding the planes until the fix is ready and even on top of that still after the first crash the pilots did not know that disagree lights won't turn on on some planes. It looks to me and I hope the investigation would find the proof that Boeing hoped they can push an update fast enough before the next crash and that with some luck the first crash fault would not be conclusive and they could blame the pilots or the airline.

</comment></comment><comment><USER29> This story brought to you by Boeing; please try out our new 737 Max at your next opportunity!

</comment><comment><USER33> related article [https://en.wikipedia.org/wiki/Qantas_Flight_72#FCPC_design_l...](https://en.wikipedia.org/wiki/Qantas_Flight_72#FCPC_design_limitation)

</comment><comment><USER34> I believe the pilots should intimately undestand the systems and the automation and have the ability to understand what the plane does and why, especially when it is wrong. In this case knowing the FBW envelope protections of airbus it was clear that the system was responding to a high angle of attack situation to avoid stalling, of course it was wrong and after disconnecting the autopilot the pilot should have immediately turned off the 2 out of the 3 ADIRUs to force the plane into alternate law where those protections are off.

</comment><comment><USER35> As we go through life, we place faith in things based on past experience or on what other people say. In this case, the pilot lost faith in the aircraft automation and could not ever really trust it again. He couldn't live in the illusion that hurtling along at 600mph with computers in control is inherently safe at all times. His new reality is that computers bear watching at all times. That sort of hyper vigilance has got to be extremely taxing.

It's important to not place faith in things.

</comment><comment><USER36> What are the odds Boeing paid for this article to be published? This incident happened in 2008.

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

<comment><USER37> Seeing as the article doesn't specifically say anything negative about Airbus and it's an extract from a book released this month, I would find that incredibly unlikely.

<comment><USER14> Indeed it reads that as the final bits of data streamed out of the recordings, Airbus realizing what a lucky break they had when no one died from this f*ck- up, they rushed to fix the software and issue new procedures to turn off the dodgy computers.

In the more recent cases, with 100% death counts, I read unsubtle accusations at third world pilots not knowing how to fly planes</comment></comment></comment>


Ask HN: What is better: artist.domain.com or domain.com/artist? - <AUTHOR>

I'm putting together a simple web app that profiles artists.  I'm curious which is better for search engines - having the artist at the beginning of the domain or after? <comment><USER2> If you want to build strong domain authority and have the artist profiles take advantage of the positive metrics & ranking ability of the domain then use: domain.com/artist (the sub-domains do not always inherit all of the positive metrics and ranking ability of domain.com)

</comment><comment><AUTHOR> Thanks everyone - domain.com/artist is what it will be. Look forward to a Show HN: soon once I get this put up.

</comment><comment><USER3> domain.com/artist for seo and easier handling. If you are allowing user generated content and logins, than go for artist.domain.com because it is the only way to isolate cookies.

<comment> T-hawk Cookies have a Path attribute, right? A cookie can be defined to go only to domain.com/artist1 and not domain.com/artist2 .

</comment></comment><comment><USER4> If the artist focuses on the art, and the art is good, then why would it matter if it's artist.domain.com or domain.com/artist?

</comment><comment><USER5> I have one word for you: pushState. Eventually you will want to use it, and you're screwed if you used subdomains.

</comment><comment><USER6> DOMAIN.COM/ARTIST

Giving people directories vs. their own subdomains is much easier/simpler to manage.

</comment><comment><USER7> Subdomains can be a little confusing for nontechnical people. Go with domain.com/artist.

</comment><comment><USER8> artistdomain.com

(not artist.domain.com, not domain.com/artist)

keyword ('artist') within the name part (www.name.com) <= 15 characters for the main part, no - or _ in the name part

<comment><USER9> It sounds as if he/she's starting a website for artists to join, purchasing a new domain for each artist is hardly reasonable.</comment></comment>


AOL-Yahoo merger? - <AUTHOR> http://www.reuters.com/article/idUSTRE6B50MF20101206 <comment><USER2> Not taking the MSFT offer will go down as the biggest blunder in tech business of the past 10 years.

What the hell were they thinking.

</comment><comment><USER3> <http://news.ycombinator.com/item?id=1973907>

<comment><USER4> I see what you did there.

<comment><USER5> Infinite recursion!

<comment><USER4> <http://news.ycombinator.com/item?id=1974241>

<comment><USER6> GOTO 10

</comment></comment></comment></comment></comment><comment><USER7> FTA: "The plans are still in the exploratory stage and Yahoo has not been contacted, the sources said. The plans are also fraught with complications involving myriad moving pieces."

In other words: we're just making sh1t up to get pageviews!</comment>


Our three months of hard work. Phototapper is now on App Store - <AUTHOR>

Here is the story about prototyping app that we created in 3 months time with a feature that we couldn't find in the market. An effective feedback loop and security!<p>http://phototapper.blogspot.sg/2013/07/finally-we-are-there.html <comment><AUTHOR> Please give us some feedback!</comment>


On Severance - <AUTHOR> http://rrwhite.com/on-severance <comment><USER2> Severance doesn't reward the incompetent employee, it penalizes the incompetent employer.

Writing too many severance checks? Figure out how to improve your hiring process.

<comment><USER3> It's not an either or thing. It does both.

</comment></comment><comment><USER4> The author might as well be a sociopath. The only reason he pays severance is because if he doesn't, then society will realize he is a dick. Most people have empathy for the people they fire, and that is reason enough to provide severance.

<comment><USER5> Not necessarily. He says "the thought of paying someone I was forced to fire because he (or she) is incompetent burns me up inside."

It's more the thought of paying someone more than you're legally required too when you know they don't deserve it.

<comment><USER6> He does not even hint that the firing could be due to management and hiring process failures. Does he fire the people who approved the hire of a person who winds up not working out? They failed, too, and you don't want a company built upon the wood of a poisoned tree.

<comment><USER7> I did not mean to imply that all firings are the result of employee incompetence or poor performance. Because that's clearly not true. There are often other factors that lead to a bad "fit".

And yes, the first thing you should do post-firing is examine your hiring process to see if it could have been foreseen and prevented. But in some cases it does come down to someone just not having the experience, the talent or the work ethic to meet the performance required. It's those cases, especially with tech workers, where founders are apt to ask "do I really need to provide severance to HIM (or her)". Writing at $20K check to someone to walk out the door is never an easy thing to do especially at a startup where that $20K could go a long way. That's what I was addressing here.

<comment><USER6> _But in some cases it does come down to someone just not having the experience, the talent or the work ethic to meet the performance required_

This is all predictated on "some" cases? "On Severance (in some cases)?" From the way you describe it, _some cases_ are those in which the employee was able to rook the entire hiring process despite their inability to do the job, but how did they get an offer in the first place?

This brings up a secondary point: is "the performance required" something that changed between hiring and the decision to fire, i.e. a leadership issue?

Without having illustrated these scenarios, it sounds more like "Ready, Fire, Aim," sweeping employees to the side when it turns out a little-informed guess was wrong.

</comment></comment></comment></comment></comment><comment><USER8> The flip side of severance is the two week notice. Quitting is often the moral equivalent of "firing your employer". Giving another two weeks to an employer who drives you out the door with their own poor performance is frustrating, but again necessary for your reputation.

<comment><USER9> I think that's tough on everyone involved. The soon to be gone employee won't want to stay. Especially after hearing - "hey you're a poor performer so leave in 2 weeks."

Employers should give formal warnings. Employees need hard metrics on where they are flailing.

<comment><USER10> 2-weeks notice is a system where an employee tells their employer "I am going to be leaving your company in 2 weeks." It's not the employer telling the employee "I want you gone in 2 weeks." Usually when someone is fired, they're swiftly removed from a company to keep sabotage at a minimum (I presume).

<comment><USER11> I know a couple of companies that have a policy with IT employees, that regardless of the 2 week notice[1], the IT employee is escorted out of the building upon giving notice. They worry more about security than hand-over. Doesn't matter if the company loves the employee or not.

1) they do pay for the two weeks

<comment><USER10> Oh is that how that works? That makes more sense.

<comment><USER11> It is not universally true. Some companies even do the same thing if an employee is going to go work for a competitor regardless of job function.

</comment></comment></comment></comment></comment></comment><comment><USER12> As a company you always have to temper playing the long term game vs the short term game. The temptation will always to play the short game, so you will probably want to over-emphasize the long term game.

If you have $15k left - and that employee needs $15k in severance - it may be a good idea to explain to them that you really want to help them out but cant.

If you are still at $1M and the employee needs $15k in severance - then that it is obvious that you should give it to them.

Anywhere in between - use your gut, but lean on the long term game.

<comment><USER6> $15K left? That's well short of even a "short game." The company is less than one pay period from bankruptcy at all but the tiniest ramen startups. You should give up the $15K as an apology for failing the entire company if things are that dire.

<comment><USER12> 15k left is obviously hyperbolic. It is an extreme used to make a point.

</comment></comment></comment><comment><USER13> Not every employee who loses their job does because they performed poorly. There are lots of situations (especially at startups that are evolving rapidly) where you might hire someone to do a job that is no longer necessary, or has been made obsolete as your operation evolves.

Also, paying severance isn't just about doing the right thing for the departing employee. It's also about ensuring that your other employees feel good about their own jobs and don't have to worry that one day, they might be left in the cold with no cushion to help cover the search for a job (which will likely take far longer than the severance covers.)

<comment><USER7> In this context the original discussion revolved around someone being fired for cause (extremely poor performance). That someone was a knowledge worker and fairly well compensated. There was also little reason to believe that person wouldn't have a new job by the time they walked out the door (job market being what it is).

Thus my goal was to argue for a reason why you should always pay severance even when none of those conditions you mentioned apply. Otherwise I agree with everything you wrote.

<comment><USER13> Even poor performance is the fault of both the company and the employee to some degree... unless something changed, the company hired them for something they weren't suited to do, or failed to develop them properly. And generally, other employees don't know exactly how much someone underperformed, so it's moot from their standpoint.

The fact they were "fairly well compensated" is irrelevant, by the way. Severance isn't paid because people were underpaid.

</comment></comment></comment><comment> a-priori Severance serves an important purpose for senior-level employees and executives: it makes it more painful to fire them. This frees a good employee to take more risks, hopefully for the employer's long-term best interest, because they have greater job security.

<comment><USER14> Would it not also free them to stop caring about their job performance?

<comment><USER13> No, because even a relatively large severance package is still worth far less than the expected value of ongoing employment. Especially for senior executives, who will generally have to spend longer searching for the next job than a more junior employee. Getting 3 months severance then being out of work for 6 months is not a good trade.

</comment></comment></comment><comment><USER15> Severance is NOT generally paid for sacking incompetent employees, that process is called Termination For Cause.

Consider the following:

1\. A company lays off a thousand employees as it outsources a division, or combines with another firm (management decision).

2\. A company decides that a product isn't cutting it and lays off the entire product team.

3\. My own experience: I was asked to leave a senior position to join a brand new division of a >billion revenue organization - with the expectation that a new business unit would be formed. Four months in, the parent organization was facing external pressures and decided to stop the whole venture - and yes I had pre-negotiated a severance deal for just this eventuality. According to the author, that decision by the parent company was somehow my fault? Was I incompetent? Should I have skulked away in shame, with no payment at all for the risk I took?

This article is business advice as dispensed by a grade schooler.

<comment><USER16> First, the author is talking about startups, not companies which might have reason to lay off thousands of workers or whole teams.

Second, in a startup, it's probably worth getting an employee to sign a separation agreement even if they were terminated for cause. Part of that separation agreement will include a release of claims, making it impossible for the former employee to return after the fact and dispute the cause of his termination.

This makes it possible to say "There are no former employees who might come out of the woodwork a sue us for wrongful termination.", e.g., while fundraising.

</comment></comment><comment><USER17> "The thought of paying someone I was forced to fire because he (or she) is incompetent burns me up inside."

I think we all hate working with incompetents, but if someone working for you is just simply not competent for the job they were hired for, that's more your fault for hiring them in the first place than their fault, IMO.

And if you're running a company and you hire enough incompetents for this to be an ongoing issue of frustration for you, that would seem to point to you being incompetent yourself.

<comment><USER7> My assertion is that you should provide severance in all cases. I chose to attack the most contentious case (poor performance) where one might think not to provide it to prove that point.

I didn't mean this to imply that it's a regular issue I have to deal with :)

PS Priority #1 post any firing is a careful review of the hiring process that got you there.

</comment></comment><comment><USER18> Is severance essentially the expected value of firing an employee? The way I've seen it used is what you pay an employee in exchange for them not suing you for wrongful dismissal. Once it hits a certain threshold an employee will take the money and shut up. If it's not enough or they believe they can get more they will retain a lawyer and sue.

</comment><comment><USER19> I'm curious if anyone's had experience negotiating a severance package up front? The kind we all bitch about executives having. I've never relocated for a job, or made a particularly sacrifice to start a job, but I always thought that if I did I'd want some agreement, as I'd be investing a great deal in that job change, and I've seen a few people get really hosed. Usually when they jump into a position that is more political than they realized.

<comment><USER20> >I'm curious if anyone's had experience negotiating a severance package up front?

Nope, it isn't popular here in Texas. I tried to negotiate for severance when working with a company who had previously surprise-fired me. They were determined not to agree to any future severance or anything named severance. I ended up baking it into a higher hourly rate. In the end they paid my severance wishes many times over, in advance.

</comment></comment><comment><USER21> They generally pay you severance and ask you to sign an agreement not to poach people for 1 year.

</comment><comment><USER22> > I always require a departing employee sign separation agreements.

How is it possible to require that?

<comment><USER23> Because they don't get the money if they don't sign. It's not absolutely literal, but I can almost guarantee everyone will sign.

<comment><USER22> Oh, I see. The severance is conditional on signing the termination agreement.

<comment><USER16> It's more than that. A contract isn't binding unless both parties offer consideration. In the case of a separation agreement the employer's consideration is the severance pay.

</comment></comment></comment></comment><comment><USER24> Ok. I get it. You hate paying severance, and I understand how unpleasant it must feel. Tell me, how do you feel about staff members leaving your employ without notice?

</comment><comment><USER25> What's normal severance at a startup?</comment>


Embed the Chicken Scheme runtime into a FastCGI module hosted by Apache server - <AUTHOR>

I just spent a few months hacking a web application handled by the Chicken Scheme runtime. Just posting a link to the project page. In the unlikely event you find anything useful there, please feel free to use it :) http://mathieu-desrochers.github.io/Scheme-Experimentations/ <comment><USER2> That's a really cool project dude!!

Apache is slow and FastCGI adds even more overhead. To speed it up you usually tune the kernel, sysctl.conf, use SSDs add a nginx-caching proxy infront etc. But this is usually overkill.

We know Chicken-Scheme is close to the speed of C. That's why I think that creating a platform such as erlangonxen.org, an nginx module, or using a development environment such as gwan.com would yield in much more performance than anything you can get with Apache. But I understand that Apache is very widespread and "easier" to setup.

hmm I didn't try it and don't know if it works, but maybe Chicken Scheme can run on G-WAN without extra efforts. Worth a quick trial and error experiment :) I believe that you can ask the author for adding that language, if it doesn't already work out of the box. He has added support for many languages so far and adding another language shouldn't be a problem except that it may require patience.

<comment><AUTHOR> Thanks for the G-WAN hint. Looking at their hello.c example, I could easily translate my FastCGI integration to their API, and by doing so, port my project to their web server.

[https://github.com/Mathieu-Desrochers/Scheme- Experimentation...](https://github.com/Mathieu-Desrochers/Scheme- Experimentations/blob/master/sources/infrastructure/http/main.c)

Definitely worth a try.

This is beauty of Chicken Scheme generating C code; integration with everything is easy.

<comment><USER2> Oh wow, this is smart. I forgot that it generates C code, hahah! :)

Well that'll be a lot easier that way. Glad that I could help a little. Ask me if you have any questions, I've worked with many servers and your project is very interesting.</comment></comment></comment>


Children's life trajectories largely determined by family they're born into - <AUTHOR> http://hub.jhu.edu/2014/06/02/karl-alexander-long-shadow-research

<comment><USER2> In other news; Pope is a catholic, bears shit in the woods.</comment>


How self-driving cars could become weapons of terror - <AUTHOR> http://www.sfchronicle.com/business/article/How-self-driving-cars-could-become-weapons-of-9958541.php <comment><USER2> I agree with the danger of networked cars but most other things are already possible now. Leaving a bag with explosives in a train is easy, equipping a drone with explosives and flying it into a parade as well. Manipulating the traffic light system, etc. Self-driving cars may be another possibility in terrorist attacks but most of the things described are not really a problem of self-driving vehicles but rather problems inherent of mass transportation or the internet of things.

<comment><USER3> > _equipping a drone with explosives and flying it into a parade as well_

Ever since at least last year I keep waiting for the news to break out: drone + computer vision + navigation system + some kind of weapon (maybe a gun, maybe a poison dart) - all that stuff sent to seek someone out and "deal" with them. Totally doable.

Just a matter of time.

<comment><USER4> I wonder how they protect the important people (president, VP) from something like that. Modern drones are crazy fast. RC jet planes are insanely fast.

<comment><USER5> Defensive drone swarm? It's drones all the way down.

</comment></comment></comment></comment><comment><USER6> _> Picture hackers employed by a hostile nation finding a way to command large numbers of cars on U.S. roads. Picture those hackers ordering the vehicles to suddenly accelerate and turn hard to the right, flipping them over, killing many passengers and clogging freeways with junked cars._

Car only needs a computer - not a network. Modern cars already have computers. Picture hackers employed by a yadda yadda remotely disabling power-steering on cars across the nation or disabling ABS and you have the same disaster scenario in an already-existing attack vector.

 _> Or envision a lone-wolf terrorist loading explosives into a car and programming it to drive to a targeted building or public space._

Already possible. Even Mythbusters sets up "life size" RC cars for some of their crash-related myths.

I really hate puff scare pieces.

<comment><USER7> > Already possible. Even Mythbusters sets up "life size" RC cars for some of > their crash-related myths.

It's already possible, but it takes a lot of work, and (AFAIK), you don't end up with a vehicle that can be programmed with destination coordinates tens or hundreds of kilometers away and then left to its own devices.

There's always the possibility of a lone-wolf, obsessed Unabomber-style terrorist who has their own machine shop and whatnot, but that's an edge case. The potential danger here (IMO) is the terrorist who can steal a few autonomous cars from parking lots (or call up a few autonomous taxis), load them up with cellphone-detonated explosives, and be all set. That scenario doesn't require anything really technically-challenging, and IMO is very likely to occur.

The random "crash a bunch of cars on the freeway" scenario is not as likely, IMO, because the number of people who are interested in killing tens or hundreds of random people is lower than the number who are interested in killing a few very specific people, or destroying a very specific building/piece of infrastructure.

I don't think this is a reason to _disallow_ autonomous vehicles, but I don't have a good answer for how to address it, either.

</comment></comment><comment><USER8> I'm not really worried about that. Thanks to the recent release of a comprehensive hacker toolkit I'm able to plug into the IoT and block any self driving car attacks with my flying drone squad.

</comment><comment><USER9> > What of the lone-wolf terrorist, placing explosives in a programmable car? > At a National Highway Transportation Safety Administration hearing in April, > one speaker urged the government to require sensors inside autonomous cars > to sniff out hazardous materials and disable the cars if necessary.

How does that make sense? They are talking about "hackers" seizing millions of cars remotely in one paragraph, on the next we have perfect technology that can sniff dangerous chemicals and disable a car. But wait, aren't those people supposed to be hackers? Why can't they disable the sensors then?

Also, what's preventing them from retrofitting a car to be remote controlled, if they are so skilled? Newer cars are almost "fly-by-wire" anyway already.

<comment><USER10> <sarcasm>But no one could ever cover or electronically bypass a sensor</sarcasm>

Also, if we could do that might as well also have it call the police with the exact GPS location and drive the perp to a remote bomb disposal location.

</comment></comment><comment><USER11> This is the same fear spreading as with 3D printed guns.

Alternatives are cheaper, already available and you can't stop someone who really does want to spread terror.

<comment><USER4> Alternatives are not cheaper if you count the labor and the cost of the machines.

</comment></comment><comment><USER12> Nice! Weird scare pieces in the format $new_thing + TERROR is a strong sign that new thing is catching on.

</comment><comment><USER13> _"We have big firewalls, really strict firewalls to make sure no one can operate the airbags and take over the car. "_

That's not very comforting. We're just getting to the point where it's becoming mainstream for corporate IT to understand that "the firewall" is not some magic line of security demarcation where "evil" stays firmly on "its side".

<comment><USER14> What benefit could possibly come about by connecting the airbag system (intertial sensor(s), the airbag, and the explosive device) to the v2v or any other electrical system other than power?

Why does there even need to be a firewall. It should be air-gapped in the truest sense.

<comment><USER15> For one, NHTSA and equivalents have regulations for vehicle behaviors in the event of a crash beyond just deploying airbags.

Not defending this behavior, but that's a reason..

<comment><USER14> True, I recall now that cars automatically turn on hazard flashers and some attempt to connect to OnStar and the like. IMO, that should all be a separate inertial sensor...

</comment></comment></comment></comment><comment><USER16> see [https://www.amazon.com/DAEMON-Daniel- Suarez/dp/0451228731](https://www.amazon.com/DAEMON-Daniel- Suarez/dp/0451228731)

&

[https://www.amazon.com/Freedom-TM-Daniel- Suarez/dp/045123189...](https://www.amazon.com/Freedom-TM-Daniel- Suarez/dp/0451231899)

fun reads.

</comment><comment><USER17> Imagine a horrible future where cars kill hundreds of thousands of people annually!

</comment><comment><USER18> Committing acts of terror is _REALLY EASY_ already. Because most people are basically decent, and intelligence agencies are largely capable of preventing most threats at the current rate; we don't see a huge number of problems.

But if you have more people ready to accept the guilt tripping and ideological shame it takes to make a radical, I'm guessing those capabilities will dry up. We really ought to be focusing on the intent rather than the means, because the means is obviously already common.

</comment><comment><USER19> I'm more afraid of the 10TB/s self driving car DDoS.

</comment><comment><USER20> Aside: anyone read Daemon by Daniel Suarez? Some vicious self driving cars in that book.

</comment><comment><USER21> The same thing can be done with current cars and trucks.

</comment><comment><USER22> Anyone willing to ride a self driving car doesn't value his life

</comment><comment><USER23> "Maximum Overdrive"

(Also "Demon Seed")</comment>


GDPR: Don't Want to Be in Photos? Put a Red Dot on Your Forehead - <AUTHOR> https://petapixel.com/2018/08/17/festival-dont-want-to-be-in-photos-put-a-red-dot-on-your-forehead/ <comment><USER2> This is clearly a stupid gimmick. Who in their right mind would walk around with a dot on their head like that? (ignoring religious excemptions of course ;-) )

Big surprise: they only managed to hand out three of the red dots.

It almost seems like they are trying to (in bad faith) argue that no one has a problem with their photograph being published.

</comment><comment><USER3> Of all the possible colors and shape, why would they pick something already used by a fraction of the population?</comment>


Can weighing passengers at airports help cut carbon emissions? - <AUTHOR> https://www.cnn.com/travel/article/weighing-passengers-airport-fuel-matrix/index.html <comment><USER2> In so much as it will cause your airline (or industry if you implement it at the TSA level) to cease to exist, and thus cease to contribute to carbon emissions, sure.</comment>


Radeon Instinct – Optimized Machine and Deep Learning - <AUTHOR> http://radeon.com/en-us/instinct/ <comment><USER2> What's particularly interesting here is that the Fiji card they propose is a very different beast than any of the NVIDIA offerings.

The MI8 card's HBM has a great power and performance advantage (512 GB/s peak bandwidth) even if it's on 28 nm. NVIDIA has nothing that has even remotely comparable bandwidth in this price/perf/TDP regime. None of the NVIDIA GP10[24] Teslas have GDDR5X -- not to surprising given that it was rushed to marked, riddled with issues, and barely faster than GDDR5. Hence, the P4 has only 192 Gb/s peak BW; while the P40 does have 346 GB/s peak, it is far higher TDP, different form factor and not intended for cramming in into custom servers.

[I don't work in the field, but] To the best of my knowledge inference is often memory bound (AFAIK GEMV-intensive so low flops/byte), so the Fiji card should be pretty good at inference. In such use-cases GP102 can't compete in bandwidth. So the MI8 with 1.5 the Flop rate, 2.5x bandwidth and likely ~2x higher TDP (possibly configurable like the P4) offers an interesting architectural balance which might very well be quite appealing for certain memory-bound use-cases -- unless of course the same cases are also need large memory.

Update: should have looked closer at the benchmarks in the announcement; in particular the MIOpen benchmarks [1] MI8 clearly beating even TitanX-Pascal which has higher BW than the P40 indicates that this card will be pretty good for latency-sensitive inference as long as stuff fits in 4 GB.

[1] [http://images.anandtech.com/doci/10905/AMD%20Radeon%20Instin...](http://images.anandtech.com/doci/10905/AMD%20Radeon%20Instinct_Final%20for%20Distribution- page-021.jpg)

<comment><USER3> Those MIOpen benchmarks are a bit dubious, since MIOpen is AMDs own deep learning framework. It's unlikely that code written by AMD is optimal for the Nvidia hardware.

To be realistic you need to compare AMD hardware running MIOpen to NV hardware running a framework backed by cuDNN.

<comment><USER2> It's clearly indicated on the slide that those are Deepbench [1] GEMM and GEMM-convolution numbers. Data for M40, TITAN Maxwell/Pascal and Intel KNL is actually provided by Baidu in their Github repo.

[1] [https://github.com/baidu-research/DeepBench](https://github.com/baidu- research/DeepBench)

<comment><USER3> Sorry, not sure how I overlooked that.

</comment></comment></comment></comment><comment><USER4> Does anyone use AMD for deep learning in scientific / industry ? All the libraries for deep learning I have seen require CUDA and NVIDIA is winning by merely being the most popular API. Searching github it looks like they are university assignment projects see [https://github.com/search?utf8=%E2%9C%93&q=opencl+deep+learn...](https://github.com/search?utf8=%E2%9C%93&q=opencl+deep+learning&type=Repositories&ref=searchresults)

<comment><USER5> For what it's worth, AMD has been working on a CUDA compatibility solution for at least a year now. Announcement[0] and Progress[1]

[0] [http://www.anandtech.com/show/9792/amd-sc15-boltzmann- initia...](http://www.anandtech.com/show/9792/amd-sc15-boltzmann-initiative- announced-c-and-cuda-compilers-for-amd-gpus)

[1] [http://www.anandtech.com/show/10831/amd- sc16-rocm-13-release...](http://www.anandtech.com/show/10831/amd- sc16-rocm-13-released-boltzmann-realized)

<comment><USER2> Additionally, here's an example of how Caffe was porting using HIP [1]. To be honest, if the approach really does work, you might see a very quick increase in the number of applications ported.

All in all, given how elegant HIP is and that HCC seems to make GPUs more approachable than CUDA (and less silly than OpenACC), there is a great potential for AMD to gain some traction. My greatest concern is the quality and robustness of their software stack, their overly optimistic view (at least from the outside), and their relationship with the rest of the OSS world, especially given the conflicts that they seems to be running into with upstream contrib [2].

[1] [https://www.youtube.com/watch?v=I7AfQ730Zwc](https://www.youtube.com/watch?v=I7AfQ730Zwc) [2] [https://news.ycombinator.com/item?id=13136426](https://news.ycombinator.com/item?id=13136426)

<comment><USER3> The catch, which AMD are quick to gloss over, is that Caffes performance on Nvidia hardware largely comes from its use of Nvidia's proprietary cuDNN kernels.

AMDs HIP port is using the "fallback" open-source CUDA kernels, which are nowhere near as fast as the hand-optimized cuDNN code.

</comment></comment></comment></comment><comment><USER6> There seems to be considerable effort being undertaken to allow TensorFlow to work with OpenCL [0]. Also see [1]. This coincides nicely with the introduction of these AMD cards.

I'm looking forward to the day that Nvidia gets some competition in the GPUs- for-deeplearning market. Further, doing some smaller Deep learning experiments on my MacBook Pro with AMD discrete GPU is another benefit I'm looking forward to ;)

[0] [https://github.com/tensorflow/tensorflow/issues/22](https://github.com/tensorflow/tensorflow/issues/22)

[1] [https://github.com/benoitsteiner/tensorflow- opencl](https://github.com/benoitsteiner/tensorflow-opencl)

</comment><comment><USER7> Interesting that NVDA is down almost 4% for the day [1] while AMD is up 3% [2]. Is Wall Street realizing that NVidia is not alone in the ML Hardware space?

[1] [https://www.google.com/finance?q=NASDAQ:NVDA](https://www.google.com/finance?q=NASDAQ:NVDA)

[2] [https://www.google.com/finance?q=NASDAQ%3AAMD](https://www.google.com/finance?q=NASDAQ%3AAMD)

<comment><USER8> It's way too early to be making guesses like that.

Micro-trends are mostly meaningless with stocks, unless you're trying to do high frequency work. Stock shifts and changes to small extents all the time based on the quirks of all sorts of trading companies, and each of _Especially_ if there hasn't been any significant news about the company, and this isn't significant news. It's interesting, but it isn't really threatening Nvidia's dominance or profits at the moment. AMD needs to make a bigger name for itself in the sector, start picking up some splashy customers before most of the market might react.

Looking at the bigger picture, Nvidia stock is up 160% so far this year, but has been fluctuating a bunch over the last month or so, and it's still well within the scope of those fluctuations.

</comment></comment><comment><USER9> Ahh, what exciting times we live in. Just look at the example applications:

\- autonomous vehicles

\- autopilot drone

\- personal assistant

\- personal robots

\- ...

i know it's optimistic, but it's not science-fiction.

<comment><USER10> \- running out of natural resources

\- child slavery to build new iPhones in Africa and China

\- killing and burning wildlife to build new farms in Latin America

\- still not having any solution for problem of drinkable water in 2/3 of World

What a time to be alive!

<comment><USER11> Yes, the world is not perfect by any stretch of the imagination. Lots of things to be improved. If you could choose another time to live in, when would it be?

<comment><USER10> Wow, that's a great question. I can't decide if it would be in 20 years or 40 years ago. Just to be part or witness of creating Internet as we know it or as we will see it! When some of the above problems don't exist any more because of technological advancement and some worsen because of the very same reason, but we no longer see them, because no one is looking at the wild parts of the world.

</comment></comment></comment></comment><comment><USER12> What's a good GPU / setup for someone doing deep learning at home? Does anyone have recommendations?

<comment><USER13> I've been curious about this too. AWS does have K80 instances available for $0.90/hour which isn't too bad for playing around and as long as they keep updating their infrastructure, you can play with the newest stuff versus having to upgrade your own all the time.

<comment><USER12> That doesn't sound that bad. I might investigate AWS until putting an investment into my own dedicated hardware.

I'm just starting off, so my primary concern is speed of iteration and learning. I want to train on and generate audio phonemes, so this will undoubtably take a lot of practice.

<comment><USER14> If you also play video games, then just get one of the new Nvidia Pascal chips and install it in your home PC. Dual-boot Windows / Linux. Which card to get? Bigger is better but it also depends on your wallet.

</comment></comment></comment></comment><comment><USER15> One thing that would be interesting is if you could use cards like this for rendering multiple instances of X, for the purpose of running things like WebGL browser screenshotters.

I had to ship out a high-end gamer GPU with a dummy HDMI adapter for this purpose recently. But it's obviously not very efficient. It would also be nice to be able to run multiple screens in parallel, not just one per GPU.

I doubt there will ever be a product for my use case, but one can dream...

That said, these are cool. I think they're lower power than the Nvidia equivalent, but I could be mistaken (I just recall the Tesla models being power hungry.. enough to cause a real problem in a datacenter rack).

</comment><comment><USER16> I really don't think this will make a dent in CUDA's platform. CUDA has a well established ecosystem in deep learning and compatible cards like Quadro coupled with very matured platform makes it miles ahead of platform.

That said, I would love to be proven wrong. Healthy competition such as this fosters much better results. Also CUDA is not without issues in certain matters.

<comment><USER17> Just speaking from a personal perspective, I took a parallel computing course at my uni this past semester and CUDA was the main platform we worked on (and I'm an undergraduate). Nvidia also has a great Udacity course they offer for free. Unless AMD gets CUDA compatibility working soon, I really don't see how they're going to catch up as far as adoption goes.

<comment><USER18> They either get CUDA or compatibility with all major frameworks. And they'd better be cheaper or faster than NVIDIA.

</comment></comment></comment><comment><USER19> Are the drivers for this open source? That would be a major improvement over NVidia.

</comment><comment><USER20> I can't even look at the press picture without remembering that is the exact same metal card slot tab that I had on my IBM PC 35 years ago. They should take a picture of the other end or something.

<comment><USER21> I wish modern chassis, and indeed, consumer cards, would come with these support brackets.

</comment></comment><comment><USER22> this website is terrible. it tries to sell me the product, but neglects to mention what it does.

</comment><comment><USER23> Other than ML applications, what can I write on this?

OpenCL? Something comparable to CUDA? What about utilizing Vulkan?

</comment><comment><USER24> Am I the only one that saw this and immediately thought "mining cryptocurrency"? :)

</comment><comment><USER25> loving on the UI, very reflective of their product

</comment><comment><USER26> But Keras and Tensorflow still only work on nVidia right?

<comment><USER27> AMD is supporting development efforts to port Caffe, Tensorflow and Torch [http://www.anandtech.com/show/10905/amd-announces-radeon- ins...](http://www.anandtech.com/show/10905/amd-announces-radeon-instinct- deep-learning-2017/3)

</comment></comment><comment><USER28> This really doesnt matter for deep learning. There is a large ecosystem built around CUDA. Unless AMD becomes CUDA compatible (they are working on it but not there yet) and I can install Torch/TF and run it on my AMD GPU, I will stick with NVIDIA.

I am all for choice, but AMD has a lot of catching up to do.</comment>


Has someone copied your app idea + design? (Like totally copied) - <AUTHOR> https://medium.com/@sonaal/copying-a-design-is-easy-but-creating-a-great-experience-is-hard-2b5d7d07d71f

<comment><USER2> Could you register it as a trademark and then issue take down notices?

<comment><AUTHOR> Yes we can. But didnt know that when such blatant ripoffs are pointed out (name, style, even content n description)- its still a time consuming process. Apple has written to 1 of the 5 people. Let's see how long this takes</comment></comment>


Show HN: Pullbox – A dead-simple dropbox alternative using Git - <AUTHOR> https://github.com/prashanthellina/pullbox

<comment><USER3> Git is no good for binaries. And SparkleShare is dead. The proper alternative is SyncThing [https://syncthing.net/](https://syncthing.net/) I have it on my home and work laptops, a NAS and a VPS and it just works brilliantly.

<comment><USER4> Awww, dammit. Why did I never hear of this before? I just spent like 400 hours building something equivalent but far less finished.

Syncthing has almost 10,000 stars, so it's not like others hadn't discovered it yet. Is there a way for me to browse all the popular repos on Github so I can see what other amazing things I've been missing? There's [0], but that just shows me an utterly useless view of all the repos _I 've_ starred.

[0]: [https://github.com/stars?direction=desc&sort=stars](https://github.com/stars?direction=desc&sort=stars)

<comment><USER5> Try the trending page : [https://github.com/trending?since=monthly](https://github.com/trending?since=monthly)

<comment><USER4> Thanks. Yeah, I guess that's not too bad (I'd overlooked it before because "Trending" is a section I avoid (and/or install extensions to hide) on other social sites). [https://github.com/trending?l=go&since=monthly](https://github.com/trending?l=go&since=monthly) shows syncthing. I'll have to go explore a bunch of the other listings. :)

</comment></comment></comment></comment><comment><USER4> Your story is very familiar to me, including trying and failing to use Dropbox due to terrible symlink-handling!

I built something similar recently [0] (also a bit like Sparkleshare, which I _just_ learned about from another comment in this thread...), but for me I needed to sync all of my source code between multiple machines. You can't do that with stock git, but I was able to s/git/gut/gi to make "gut" (which uses .gut folders to store its own state and will happy gut-add files inside .git subfolders) and now I have a "~/work" folder on my laptop, on my desktop, and on a dev box on AWS, with all of my source code synced in real-time.

I also wrote much the same thing in Node and also in Python before rewriting (again) to Go. You can peruse my Python code at [1] if you're curious. I used plumbum (awesome library) for executing local/remote commands (makes it a bit simpler than using subprocess and calling ssh with shell commands). Also, you can use inotifywait with the "\--monitor" option which makes it keep running when there are changes; you have to then parse out what changed, and make sure you handle state correctly, but that way you don't miss changes made while inotifywait starts back up again.

[0]: [https://github.com/tillberg/gut](https://github.com/tillberg/gut)

[1]: [https://github.com/tillberg/gut/tree/0ce233d44f7f55448c15411...](https://github.com/tillberg/gut/tree/0ce233d44f7f55448c1541147c01136f0b28fa5f/gut)

<comment><USER6> > What would happen if you took git, sed, rsync, and inotify, and you mushed > and kneaded them together until smooth?

You'd get unison ([https://www.cis.upenn.edu/~bcpierce/unison/](https://www.cis.upenn.edu/~bcpierce/unison/)) :)

</comment></comment><comment><USER7> Alternatives:

Git Annex[1]

Very robust and well-written (Haskell), and extremely fast. An extension (daemon, client, and webui) to git. Gitlab uses this to provide large file support (which is similar to Github's LFS)[2]. Author is a Debian maintainer (and obviously a Haskell dev).

Sync Thing[3]

Fast and professional golang synchronizer with its own protocol[4]. Usually compared to BTsync.

1\. [https://git-annex.branchable.com/videos/](https://git- annex.branchable.com/videos/)

2\. [https://about.gitlab.com/2015/02/17/gitlab-annex-solves- the-...](https://about.gitlab.com/2015/02/17/gitlab-annex-solves-the-problem- of-versioning-large-binaries-with-git/)

3\. [https://syncthing.net/](https://syncthing.net/)

4\. [https://github.com/syncthing/specs/blob/master/BEPv1.md](https://github.com/syncthing/specs/blob/master/BEPv1.md)

<comment><USER8> Linking to alternatives is not exactly constructive criticism for someone looking for feedback from a Show HN. It feels dismissive and out of spirit of what's trying to be accomplished here. Without any commentary or questions, it's almost like you're saying, "Why did you bother?"

Now, I very much doubt that was your intention, but please have some empathy for the person taking a chance when sharing something on Show HN. It's not easy and I'd hate for someone to give up on something just because someone linked to other things that already existed in the world. We wouldn't have Dropbox or Google under those conditions.

At the very least ask the creator how his project is different from these other projects or ask if he's seen these alternatives or even ask why he might have decided to build his own. A little bit of effort on your end shows you recognize his effort and isn't tone deaf to what's going on here.

<comment><USER7> Point taken, and you're right. I'm extremely sensitive about my work too. My deepest apologies to the OP!

<comment><AUTHOR> No apologies required! Thanks for taking the time to post the links. I discovered "syncthing" via this thread and while it sucks that I did not come across it before, I am excited to try it out.

<comment><USER7> You're a champ mate. Try out git annex too. The presentation might put you off a bit but it's really powerful.

</comment></comment></comment></comment></comment><comment><USER8> Despite all the competitors everyone is linking to here, I bet you learned a ton while building this. What was most surprising to you? What was the trickiest part?

<comment><AUTHOR> It was a ton of fun on a saturday afternoon when I wrote this code. I was trying to avoid rolling my own syncing solution but I guess my Google-fu failed me :)

My goal was to write a very thin wrapper around the workflow I would follow if I had to sync the changes myself manually. The tricky part was in figuring out how to inform multiple client machines when the backup server noticed a change in the file system. I wanted to avoid writing a server-side component that I had to install on the server and maintain.

When I found that I could use a combination of "ssh" and "inotifywait" (run inotifywait on the server using ssh from the client and listen for changes), I was pleasantly surprised that this even worked! I see my implementation in this aspect as the equivalent of AJAX long-polling that used to be applied for chat like communication in the browser in some implementations. i.e. When some modification happens on the server filesystem, the "inotifywait" command quits thereby unblocking the "ssh" command upon which I do a "git pull".

Because of the above, I was able to keep my implementation really simple - <USER2> whole functionality was achieved in under 300 lines of code.

</comment></comment><comment><USER7> Really great code - clean and extensible! I also really like inotify for this sort of code and actually use it myself to kick off my build scripts automatically when changes are detected. BTW, have you run into too many files/dirs issues with inotifywait?

<comment><AUTHOR> Thank you! I tried hard to keep the code very simple sacrificing some 20%-scenario requirements (such as automatic conflict resolution).

I am using this to synchronize my Markdown based notes files across machines. There are under a hundred files now so I haven't hit any issues in that department yet.

However, there is a gradual memory leak which persists even when I kill and restart my process. I observed this only on a KVM based Linux guest - not sure if this is because of inotify based listening but I'm going to have to dig deeper to find out.

<comment><USER7> Forking might be easier to debug.. but I think I might have missed some of the functionality in your script.. something like (totally untested):

       (while true
            do
                inotifywait \
                    --exclude '.*\.sw.' \
                    --recursive  \
                    --event close_write  \
                    --event delete \
                    --event moved_to \
                    --event moved_from \
                       dir1/
                 git push
                 sleep 0.1
            done
        ) 2>&1 >/var/log/push_log.log &

       (while true
            do
              cat << 'EOF' | ssh remotebox
                inotifywait \
                    --exclude '.*\.sw.' \
                    --recursive  \
                    --event close_write  \
                    --event delete \
                    --event moved_to \
                    --event moved_from \
                       dir1/
                 git push #??
                 sleep 0.1

EOF

            # (second EOF cannot be indented)
            done
        ) 2>&1 >/var/log/pull_log.log &

        echo "Kicked off pull and push processes."
        wait

<comment><AUTHOR> That is Gold! Implementing the functionality in shell itself was what I considered first however I needed two things

1\. Make it work on OSX 2\. Use a lock file to prevent multiple instances from running when I put this in crontab

I found watchman[0]. Got to see if I can use that in place of "inotifywait".

[0]: [https://facebook.github.io/watchman/docs/install.html](https://facebook.github.io/watchman/docs/install.html)

<comment><USER7> Yeah that should work!

</comment></comment></comment></comment></comment><comment><USER9> Did you had a look at Sparkleshare? [https://news.ycombinator.com/item?id=1424299](https://news.ycombinator.com/item?id=1424299)

<comment><AUTHOR> I tried using Sparkleshare. It was buggy and kept crashing after being unresponsive. When I checked the repo, I found that there wasn't much activity.

</comment></comment><comment><USER10> One drawback is that deleted files take disk space permanently.

</comment><comment><USER11> How does it deal with conflicts?

<comment><AUTHOR> It is based on Git so uses the same mechanism. When a merge cannot be done because of conflict, you can resolve in the usual git workflow.

<comment><USER4> It's also possible to specify other conflict resolution options, such as `git merge --strategy=recursive --strategy-option=theirs` [0], which avoids the need for manual conflict resolution (and it's "worked for me"). Discarded hunks are still available in the repo history, in case you needed to restore a file/hunk that was discarded in this manner.

[0]: [http://git-scm.com/docs/git-merge](http://git-scm.com/docs/git-merge) (be sure to look for the "ours" option for the "recursive" strategy, not the "ours" _strategy_ )

<comment><AUTHOR> Thanks for the tip. I wanted to keep my implementation extremely bare-bones and simple so I chose to leave conflict resolution (which itself is a rare event in my a use-case as I usually only make modifications on one synced machine at a time).</comment></comment></comment></comment>


Startup Starter Kit Framework - <AUTHOR> We have embodied all our two-year experience in evaluating and launching startups in one document.
See the link for step-by-step startup startup instructions.
https://www.notion.so/StartupStarterKit-9597580c2300470995b031bb8fb83cd4 <comment><USER2> URL without click tracking (bit.ly is blocked by HN): [https://www.notion.so/StartupStarterKit-9597580c2300470995b0...](https://www.notion.so/StartupStarterKit-9597580c2300470995b031bb8fb83cd4)</comment>


Google is looking to integrate Glass into existing wearables and clothing - <AUTHOR> http://venturebeat.com/2015/08/06/google-patents-google-glass-screen-that-attaches-to-your-hat/ <comment><AUTHOR> "Google is apparently looking for ways to integrate Glass into existing wearables and clothing, instead of positioning it only as a standalone device worn by "Glassholes."</comment>