Personal names around the world - <AUTHOR> http://www.w3.org/International/questions/qa-personal-names.en.php?changelang=en <comment><USER2> Another sorting oddity: you can't correctly sort proper names in Danish without knowing if the name is a Scandinavian or foreign name, e.g. via some big lookup table (or maybe heuristics). If it's a Scandinavian name, 'aa' is an alternate rendition of 'å' (retained mainly in proper names), and is sorted after 'z'. But if it's a foreign name, 'aa' is just two 'a' in a row, and is sorted at the front. Therefore the city of Aalborg goes towards the end of an encyclopedia, but the city of Aachen goes towards the front. Also the case with personal names, e.g. Kierkegaard (a Danish surname) is sorted as if it were Kierkegård, but Haas (a German and Dutch surname) is sorted as H-a-a-s, not H-å-s.

On the other hand, people are getting more used to just sorting 'aa' as 'a-a' rather than 'å', because many computer systems do so. Encyclopedias still use the traditional sort order, as do hand-ordered lists of people, but if you get a printout of students registered in a course from the registrar, it's pretty likely it'll be sorted the way an English speaker would expect. Either that, or the reverse: the computer might use a collation method where _all_ 'aa' pairs are treated as an 'å', which isn't quite right either, and maybe actually more confusing.

<comment><USER3> Does that mean that you can use Kierkegård and Kierkegaard interchangeably? Does that cause confusion when you are trying to locate personal records?

<comment><USER4> I don't know about Danish, but in German, ü "decomposes" into "ue" and is sorted that way in phonebooks. Herr Müller wouldn't be surprised to see his name spelled Mueller in ASCII-only contexts. OTOH, in some families it is traditional to write the name without the umlaut, and in these cases it's wrong to write it with, so Frau Mueller wouldn't like to see her surname written Müller (though it has the same pronunciation and origin). Famous examples are Goebbels and Goethe (not Göbbels and Göthe). There's a similar situation with ß vs. ss.

So if Danish is like German, you can't call Kierkegaard Kierkegård, but they're still the "same" surname and appear next to each other in the phone book.

<comment><USER2> That's generally the same in Danish, although one historical tidbit to add to it is that the aa->å respelling in Danish happened only in 1948. With that spelling reform, all normal words using 'aa' as a digraph were respelled to use 'å', so for example "cemetery" went from "kirkegaard" to "kirkegård". The latter is now the standard spelling, and "kirkegaard" would only be accepted in situations where it's a technical necessity (e.g. using 7-bit ASCII).

If that had been done across the board, Danish would be easy to sort, since the only digraph would have been eliminated, replaced with an atomic character. However the reform was not made mandatory for personal names; people could choose to retain the 'aa' or switch to 'å', and many retained the traditional spelling (the traditional spelling was also retained for historical figures). There was some discussion about officially reforming the names of cities to use the new 'å' spellings, but both Aarhus and Aalborg (the 2nd- and 3rd-largest cities) strongly objected. So placenames were not reformed (unless a specific locality opted in). You do _occasionally_ see the spellings Århus and Ålborg, especially in writing closer to the time of the reform, but those spellings didn't catch on.

<comment><USER5> Actually, Århus changed its name immediately after the reform, but Aalborg did not. It was not until 2012 that Århus decided to change its name back to »Aarhus« to become 'easier to spell internationally' (which was the argument).

I still spell it Århus to taunt the idea that it was the »å« that prevented Århus from the same business opportunities as Copenhagen -- I'm sorry, København.

</comment></comment></comment></comment></comment><comment><USER6> To sum it up:

TL;DR - Names are complex, simply ask the person for an unicode representation of how they'd like to be called and use exactly that.

1\. Any reasonable assumptions or generealizations that you could try to make about names are wrong for millions of people, so don't make any.

2\. There is no reasonable way to automatically split a person name in meaningful parts, because there is no such thing as a single universal ontology of meaningful name parts that will fit everyone. Treat personal names as indivisible, immutable items; don't try to separate them in parts.

3\. There is no reasonable way to automatically generate a short-polite- addressable form from a full name, aside from (a) asking the user or (b) limiting yourself to a whitelisted subset of names that won't work for millions of USA citizens, much less globally. So don't even try.

4\. Don't assume that you can infer [non]existence of family relations from their names. You can't.

<comment><USER7> > Treat personal names as indivisible, immutable items; don't try to separate > them in parts.

Unfortunately, that's (often) not an option; as soon as you have to interact with external entities such as banks (but not exclusively them), you're going to be asked for the first and last name of the user.

EDIT: and, by the way, I think that's horrible. Mangling someone's identity like that is pretty bad.

<comment><USER8> Don't treat those as personal names, then. Expose the bank's interface to your user. If the bank is asking for "first and last name", then say, "the bank is asking for your first and last name; what do you wish us to tell them?"

<comment><USER7> The customer doesn't really care if it's going into a bank, CC processing (my case), a hotel registration system (also my case), or a soulless SAP installation somewhere in the guts of your company (yes, this is also my case). They're also used to dealing with this (in my opinion unfortunately), but usually not that interested in reading excuses.

FWIW, we only ask for first/last name where relevant (i.e. billing information), but splitting hairs and asking for both is more bother for the user than it's worth.

<comment><USER8> > but splitting hairs and asking for both is more bother for the user than > it's worth.

Then don't. Be honest and don't ask for personal names at all. Ask for billing information.

The "name" fields in billing forms are not personal names. They're keys by which the billing system can correctly identify the account to access. Don't try to pretend that you know someone's name just because you have their billing information. That's lying.

Especially in cases as simple as a customer who is using someone else's credit card to pay for your service. That name is definitely wrong even if one is John Smith and the other is Jane Doe.

</comment></comment></comment></comment></comment><comment><USER9> Fascinating article.

Back in the early 1980s, my sleepaway camp went to Boston, where we visited the Children's Museum. It had a computer with which you could interact.

Ever the aspiring nerd, I went over the computer. It asked me to enter my name. I did so.

It answered: "Reuven isn't a real name. Please enter a real name."

(I ended up entering "David," my counselor's name, just to get through that first screen.)

Be very careful when you vet names; for format, spelling, or anything else: As this article points out, there is a lot of variety among names in the world.

However, even well-meaning people can make mistakes, and it's useful to be forgiving. I have been teaching programming courses for years, and in one of my examples, I create a Person class. However, when I got to China, I realized that all of my slides talked about a "first name" and a "last name," which was both confusing and backwards from what my students expected. I'm working on updating these slides, so that they will be appropriate for all of my audiences. But as this article points out, it's a struggle to do so.

<comment><USER10> Unbelievable, especially in the days of few-hundred-kb memories, that someone had that idea and thought it was good.

<comment><USER11> Well, if you restrict people to a list of 65536 names, you can just use the index into the list to save space on representation ;)

<comment><USER12> Some countries have a list of "approved" names, and it's very hard to register a name not in it, for example in Argentina, every province has a list of approved names, and you have to write a letter with the etymology of the name for it to get approved:

[http://www.planetamama.com.ar/nota/ley-nombres-como- registra...](http://www.planetamama.com.ar/nota/ley-nombres-como-registrar-un- nombre-raro)

Law:

[http://www.sdh.gba.gov.ar/comunicacion/normativanacyprov/pue...](http://www.sdh.gba.gov.ar/comunicacion/normativanacyprov/pueblosoriginarios/nacional/nac_ley18248.pdf)

<comment><USER13> How do these countries handle immigrants from countries where there are no such regulations?

<comment><USER4> Usually, I think, by the simple expedient of allowing them to keep their names. However, ISTR that in Thailand there is a requirement for anyone who becomes a Thai citizen to adopt a new, unique Thai-style surname (only people who are actually related may share a surname).

</comment></comment></comment></comment></comment></comment><comment><USER3> I am a naturalized US citizen who was born in the former USSR republic, which then became the independent country Ukraine. (PSA: it's pronounced ukrAIne, not UKraine, and definitely not "the UKraine"). My original name was Igor Andreevhich Partola, where Andreevich is my father's name with a -vich ending. My birth certificate was issued in the USSR with this name, but since the USSR was no more, and Ukraine started using Ukrainian as the official language, before coming to the US, my middle name on my birth certificate translation got changed to Andriyovich (Ukrainian version). Thankfully my first name did not have to change.

When I got to the US, I stopped using my middle name altogether, both to avoid having to spell it on the phone, etc. and to minimize this type of confusion. In most cases I had no issues, but the immigration process was stumped by this. In general, immigration officers are not really prepared to deal with foreign documents and foreign names. You'd think by now they would have seen it all, but seeing a birth certificate from the USSR and a translation of it in English was something that stumped most of them. Going from being here on a visa to getting a green card is a grueling process because of issues likes this. By contrast, going from green card to citizen is a cake walk since they can simply refer to your US-issued green card as a form of ID.

P.S.: I am lucky that my last name does not change between genders. For example Ivanov and Ivanova is the same last name but one is masculine one is feminine. I have heard from friends about having issues with this too.

<comment><USER14> I am pretty disappointed with our name handling also. I was helping an Iraqi move to the US, and someone translated his name as Hogar instead of Hoger on one document, and it cost him a few months. As far as he was concerned his name doesn't have any english letters in it, so Hogar and Hoger are just about the same.

<comment><USER3> To me the best solution really would be to issue documents with two fields: your name as an unbreakable set of characters in your mother tongue, and pronunciation of your name in Latin1. That way I could be:

Игорь Партола / Igor Partola

The trouble with this is when you have to spell your name over the phone. Nobody would figure that out. One day that won't be a problem. That'll probably be the same day that all manner of government computer systems stop using all caps.

</comment></comment></comment><comment><USER15> OT and nitpicking but the part about Icelandic names is actually slightly incorrect. The typical Icelandic "surname" is made up of the genitive case of the father's name (in rare cases the mother's) followed by "son" or "dóttir", not "sson" or sdóttir". It just so happens that the genitive case of most names ends with an "s", e.g. Gunnar->Gunnars or Guðmundur->Guðmunds. There are however many names where this is not the case. My name for instance, "Örn", is "Arnar" in genitive case and thus if I had a son his surname would be "Arnarson" and my daughter's surname would be "Arnardóttir".

<comment><USER16> what do you do if the parent has a foreign name?

<comment><USER15> I am far from being an expert but I think the most common thing to do is to just take on the surname of the parent as a sort of family name. So if Björk's father was John Smith then she would be Björk Smith. Family names are not unheard of and there are even a few Icelandic ones (although they are definitely the exception). Name laws in Iceland are really strict[0] but they mostly regard peoples "given name". I think you actually get to choose the surname of your child. I have seen cases where people have gone with the "-son" or "-dóttir" formula, typically in cases where the foreign name has an Icelandic counterpart, e.g. "John" and the Icelandic "Jón". The surname of the child could then be either "Johnson" or "Jónsson".

[0]: [http://www.theguardian.com/world/2014/jun/26/iceland- strict-...](http://www.theguardian.com/world/2014/jun/26/iceland-strict- naming-convention-cardew-family)

</comment></comment></comment><comment><USER17> In a similar vein:

[http://www.kalzumeus.com/2010/06/17/falsehoods- programmers-b...](http://www.kalzumeus.com/2010/06/17/falsehoods-programmers- believe-about-names/)

<comment><USER18> I too though of this post while reading the article. Great insight on both counts, but I appreciate how the W3C article gives some strategy for how to account for most cases that you will run into. Trying to turn Patrick's list into a practical design is quite an undertaking.

</comment></comment><comment><AUTHOR> It exists a gender API [1] which predict the gender of a personal name on a -1 (Male) to +1 (Female) scale. Examples:

[http://api.namsor.com/onomastics/api/gendre/John/Smith](http://api.namsor.com/onomastics/api/gendre/John/Smith)

[http://api.namsor.com/onomastics/api/json/gendre/Alix/Dupond](http://api.namsor.com/onomastics/api/json/gendre/Alix/Dupond)

[http://api.namsor.com/onomastics/api/json/gendre/声涛/周](http://api.namsor.com/onomastics/api/json/gendre/声涛/周)

[http://api.namsor.com/onomastics/api/json/gendre/淑珍/張](http://api.namsor.com/onomastics/api/json/gendre/淑珍/張)

[http://api.namsor.com/onomastics/api/json/gendre/معين/المرعب...](http://api.namsor.com/onomastics/api/json/gendre/معين/المرعبي)

[http://api.namsor.com/onomastics/api/json/gendre/Илья/Коваль...](http://api.namsor.com/onomastics/api/json/gendre/Илья/Ковальчук)

[http://api.namsor.com/onomastics/api/json/gendre/בנימין/נתני...](http://api.namsor.com/onomastics/api/json/gendre/בנימין/נתניהו)

[http://api.namsor.com/onomastics/api/json/gendre/Julia/Rober...](http://api.namsor.com/onomastics/api/json/gendre/Julia/Roberts)

[http://api.namsor.com/onomastics/api/json/gendre/Olga/Sokolo...](http://api.namsor.com/onomastics/api/json/gendre/Olga/Sokolova)

[http://api.namsor.com/onomastics/api/json/gendre/Kjell/Bergq...](http://api.namsor.com/onomastics/api/json/gendre/Kjell/Bergqvist)

[1] [http://namesorts.com/api/](http://namesorts.com/api/)

<comment><USER19> ...and it gets my gender wrong (USian bias, I suppose?). A nice idea, but not very reliable.

</comment></comment><comment><USER20> At least once every 2 years I have to deal with trying to explain why the following set of requirements is a bit of an issue:

1\. We want separate first name and last name fields, but no additional fields.

2\. We want to be able to sort by last name.

3\. We want to go international.

The worst part is: this happens in the Netherlands, where "van" and "de" are common and people should really know better. It is so hard to explain why beyond a simple "full name" field naming conventions are tricky to design and code for.

</comment><comment><USER21> My legal name is "William Godfrey". (No middle name.)

My stage name is "Bill P. Godfrey". (Because Google have too many called Bill Godfrey ahead of me.)

In an informal setting I prefer to be called "Bill", 4 characters which appear nowhere in my legal name.

So yes, please have "What should we call you" field on your forms.

<comment><USER22> And also, if you ask "what should we call you," DO NOT use that as any sort of unique identifier. I just registered on a site that did not let me use my given name as "what should we call you" because it was taken. The stupidity.

If you need something unique, generate it, and keep it to yourself. I don't care a whit about your database.

<comment><USER23> It sounds like the form you filled out just poorly labelled their "Pick a Username" field; The concept of a website generating something to call you is interesting though. It could lead to hilarious scenarios.

<comment><USER22> No, the login is your email. Or is there a login _and_ a username? Stupid again.

And no, I don't mean generating something to call me. I'm assumming they need a unique digital identifier, and they're just falling back on "name," whatever "name" means.

<comment> k-mcgrady >> "Or is there a login and a username? Stupid again"

Lots of sites allow you to login with a username or an email address. I agree it can complicate things but is you need an email address to validate a user is real and a unique username for the service (e.g. it's social) allowing either for login will probably result in less forgotten logins.

<comment><USER24> How does an email address validate that a user is real?

<comment> k-mcgrady Not real, I meant 'not a bot'. Ask for email, send a link that must be clicked etc.

<comment><USER25> That doesn't answer the question. There's no particular reason a bot can't have an email address.

<comment> k-mcgrady Maybe I'm wrong, I was always under the impressions one of the main reasons to ask for an email address was to make things more difficult for bots. Rather than just setup a script to create accounts on your server they would also need a valid email address for every attempt.

</comment></comment></comment></comment></comment></comment></comment></comment></comment><comment><USER26> When I see forms that ask "what should we call you?" I have a very hard time (and often fail) resisting the urge to put "Captain ..." or "Beloved Leader ..."

</comment><comment><USER27> > People in Korea, who typically do have 3 names but who don't usually > initialize them...

No, not really. This is a completely wrong interpretation of Korean names. Most of us have two names: family/clan name ("last" name like "Park", "Kim", etc) followed by given name ("first" name like "Chan-Ho" or "Geun-Hye"). The given name typically consists of two parts, but that doesn't mean we have three names.

<comment><USER28> I was always curious as to why nearly every Korean person I've met has "two" first names. According to Wikipedia [1], traditionally Korean names were "generation names", where everyone in a specific family of a specific generation shares part of the first name. The example they give of an equivalent Chinese name would be someone named Xia Zhou-jin might have a brother named Xia Zhou-sui, and children Xia Han-zheng and Xia Han-Li (in this case Xia is the family name, Zhou and Han are generation names, Jin, Sui, Zheng and Li are personal given names).

I'm curious - is this no longer the case, or do you (either you personally or, if you can speak to it, the zeitgeist in Korea) not think of the "generation" part of the "generation name" to be a separate name?

1\. [https://en.wikipedia.org/wiki/Korean_name#Given_names](https://en.wikipedia.org/wiki/Korean_name#Given_names)

<comment><USER29> The "generation" part is only _part_ (one syllable) of the given name and doesn't constitute a separate name. The "yong" in my name is "generation name", but no Korean will call me "Yong" any more than an English speaker would call Richard "Chard".

Because most Korean names are neatly split into three characters (each character is a syllable in Korean), many people also write their names in three space-delimited words in Latin alphabet. And then westerners get confused and end up with patterns like "Gil D. Hong". (I'm not blaming them; you can't expect everyone to understand all the world's naming systems.)

<comment><USER28> Just to push back on this a bit, the fact that the "generation name" part of the name carries some additional semantic information in some ways makes it even _more_ of a name than a "middle name" that is somewhat popular in the West. In a sense, my name is my full name (first, middle and last), but it is split into three parts. The last one has some meaning (it's a family name), the first two are given names, and the cultural default here is that I would go by my first name, and if a conflict is found, I'd go by the first + last, and if a conflict _still_ exists, you'd default to first + middle name or first + middle initial. I don't think it's that unreasonable to consider generation names to be "compound names", consisting of two sub-names, even if the cultural default is to always use the full compound and not either of the parts.

I also think that "Richard"->Chard is a disingenuous choice, because people named Richard _often_ go by Rich. People named Andrew very frequently go by either Andy or Drew, similarly people named Alexander often go by either Alex or Xander. Of course, there's no semantic meaning associated with the component parts of those names anyway, so it's not like you can infer something from the fact that someone is named Alfred and someone else is named Albert, and either one might go by "Al".

<comment><USER29> Well, OK maybe Richard was a poor example. What I'm saying is: some Richards go by Rich, but few goes by Chard, and certainly nobody interprets Richard as a combination of two name components "Ri + Chard" (or "Rich + Ard"). The probability a typical Korean would consider their given name as a combination of two parts is probably higher than that of Richards, but not _much_ higher.

Maybe a better example is Anderson, which historically meant "Anders's son", but few living Andersons would consider "Anders" an acceptable way of writing their family name.

<comment><USER30> That's because it's really a combination of "Ric + Hard".

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

:-)

</comment></comment></comment></comment></comment></comment><comment><USER31> With the spread of the LGBT+ movement, the connection between titles, personal names, and gender can also change. Some people would rather not identify as being male or female, and instead identify as a specific gender minority. This has different conseqeunces for different languages, since some have gender- specific naming and others have gender-specific titles, prefixes, suffixes, etc., but the fact is that most websites ignore gender minorities.

There is also the distinction between gender and sex, which websites often neglect (in some cases to the detriment of intersex individuals).

I would love to see either more websites that, like Facebook, offer treatment of gender as more than just a binary data value, or forgoe it altogether. Of course, gender is always going to bring up problems when attempting to translate both names and standard text.

</comment><comment><USER32> Thais don't have family name system until early 1900, everyone was named by short syllables like Daeng, Maew, Pu, Chai, etc. Once the family name system is introduced, the custom of naming someone using short syllables continues in a form of family nickname. The trend continues to today, thus Thais have a nickname that don't related to the full name.

Except in formal situation, everyone here would refer to each other with their nickname. Calling Thais by first name or family name is equally awkward (even more so for ex-nobles, who have "na $Location" suffix in their family name, e.g. "na Ayudhaya"). So yes, please have a "What should we call you" in your form.

</comment><comment><USER33> What's the advice if you have a business requirement to support both formal, informal and full names?

For example, the order confirmation e-mail might say "Good news Joe, your order is on its way" while the apology e-mail might say "Dear Mr Biden, we're sorry but your order isn't on its way" and the parcel might say "Joe Biden, White House, Washington DC"

Should you ask the customer to fill out three different fields?

<comment><USER34> If you want to be international, you don't even try that. You let the communication say "Dear $Name" and you are done. Even if it means none of the emails say what you want it to say. And yes, even for a US system I don't think it's a good idea to ask for first/initial/last _or_ to ask for formal/informal. Chinese users in the US will be happy to just see a "Name" field. Just ask for a name!

I'd stay away from gender/greeting too. Mr/Ms/Mrs/Dr etc. are way too culturally narrow even for the US.

<comment><USER35> This might break if the language the name is in has a vocative case [http://en.wikipedia.org/wiki/Vocative_case](http://en.wikipedia.org/wiki/Vocative_case)

<comment><USER34> interesting. If the message is in English, would such rules still apply? We are talking about formatting a message with a foreign name (origin unknown) in a known language, e.g English.

<comment><USER25> Not normally. Typically you'd pick the 'least marked' version of the name and just use that.

</comment></comment></comment></comment></comment><comment><USER13> The first form we have to change is the birth certificate. When my daughter was born, we knew that she was going to have 4 names (2 given, 2 surnames). My wife is from the Philippines, and it is typical there to have 1 or more given names, and then maternal surname and paternal surname. It is common for people to have several names (e.g. the signer Sheree is actually Cherry Hazel Sweet Fae Bautista Augustin). Unfortunately the birth certificate only had first, middle, last. We didn't want to hyphenate the last name so we had to either have a 2 word first name or middle name. In the end, we went with 2 names for the first name, maternal surname as middle name, and paternal surname as last name.

</comment><comment><USER36> My first name is hyphenated. I still run into web forms that insist that having a hyphen in your first name is "invalid" or that my first name is too long for the form. So I get mail addressed to all sorts of variations of my name not to mention people that "correct" my name by thinking that it is my last name that is hyphenated. And there's also the fact that search engines seem to ignore a hyphen so someone searching for me will get lots of results for someone whose first and last name make up my first name. That is real fun when that person is a famous kidnapper...

</comment><comment><USER37> I don't like the "Full name" label. It's very uncommon to be asked for your full name in the Netherlands. You use initials in almost all formal documents. Why not "Name"?

<comment><USER7> I loved that after moving in! The culture I'm from is actually more compatible with most entry systems than the Dutch one (no vans or anything), but my full name is _long_ , and doesn't fit e.g. on credit cards. In Netherlands, nobody bats an eye when I just reduce my names to a bunch of initials.

</comment></comment><comment><USER38> Fun fact: Pocahontas's given name was Matoaka. "Pocahontas" meant "little naughty one" and was a nickname, but among the Powhatans it was customary to give one name for ingroup people to call you and another for outgroup people to call you; and "Pocahontas" also filled that latter role.

Complicating matters further she converted to Christianity and took the name Rebecca Rolfe.

</comment><comment><USER39> Great article. This is forcing me to ask myself why I would ever need to separate first and last names. Maybe it is time to stop.

</comment><comment><USER40> Don't forget about catering for the symbol formerly known as Prince :) No but seriously, names are horrendously complex, just as adresses are. But you might be better of ignoring some detail than trying to cater for every possible case.

</comment><comment><USER41> I tried something similar in my last organisation using millions of social media profiles : check out [http://whatsinmyname.prokta.com](http://whatsinmyname.prokta.com)

</comment><comment><USER42> Here is an interesting video on names by Django core dev Russell Keith-Magee:

[http://www.youtube.com/watch?v=KHg6AoExYjs#t=125](http://www.youtube.com/watch?v=KHg6AoExYjs#t=125)

</comment><comment><USER43> I wonder how much people adapt to things though... I work with a company that sells something with "first name", "last name" fields. And they do manage to sell it around the world. To my knowledge (I'm not involved in sales), the fact that the name fields are very Europe-oriented has never really been a problem: people buy the system because it's very good at other things, not because it's good at record keeping. In a newer version, we're considering dropping the first/last name, but some people are wary of that.

<comment><USER6> Well, people are flexible enough to mangle their names to fit pretty much any arbitrary criteria, and that is sufficient for selling & shipping goods. E.g. I can misspell a few letters of my name to fit ASCII and invent a middle initial if it's required for some stupid form.

It simply leads to names that don't really represent reality, and unhappy customers - people often are quite attached to their names and like to see them properly.

<comment><USER44> I didn't have a legal middle name until this year and I lost count of how many imaginary middle initials and names I've had to make up until now.

Then... My husband decided to hyphenate one of his names and Social Security explicitly didn't use the hyphen even though it's on the marriage certificate. I wonder what DMV and the Department of State will do with his documents next.

Even the author of the original post kinda gets it vague by saying Korean names are three names - maybe technically so - but the middle name is not a middle name like in the US sense. My parents' given name is the first+middle put together unless you're looking at their English names that got separated out. My name they chose on purpose to match in both languages - Jane in English, 제인 (jae-in) in Korean. My nickname Janey works in Korean too - 제인이. ;)

Speaking of Korean, I'm not sure there's even a process for changing my Korean name like there was my English name since it's rare for women to change their names after marriage. I'm looking into dual citizenship right now. The idea of having passports with mismatching names is kinda sad and funny at the same time.

Names are hard but there's definitely a nice feeling when people don't screw it up. :)

</comment></comment></comment><comment><USER45> Let's just assign a UUID to every baby born and nature solves the problem in about 100 years. ^^

...historic data you say...</comment>


Convenient and tweakable Atom+Markdown+Pandoc+Jupyter experience, exportipynb - <AUTHOR> https://github.com/kiwi0fruit/pandoctools <comment><AUTHOR> Convenient and easily tweakable Atom+Markdown+Pandoc+Jupyter experience (can export to ipynb) </comment><comment></comment><comment></comment><comment></comment><comment>

(R Markdown alternative)

Assume you want Jupyter notebook experience but in IDE like Atom/Visual Studio Code.

So you either write markdown document with insertions of python code blocks. You can run these code blocks via Atom's Hydrogen package and instantly see their results.

Or you write Hydrogen .py file split by `# %%` separator into cells. You can run these cells via Hydrogen and instantly see results. You even can edit this file in PyCharm studio as it's a valid python (unless you use magics).

If you want to convert this document to some output format (html/pdf/ipynb) and send to other people then you use [Pandoctools]([https://github.com/kiwi0fruit/pandoctools](https://github.com/kiwi0fruit/pandoctools)). It can convert both .md and .py files described above to valid mardown, or valid ipynb, or html, or pdf (but default pandoc templates are not what I like).

And Pandoctools not just converts - it gives you ability to tweak and tune the process of conversion the way you like. Then save this conversion algorithm as profile and reuse it. It's really convenient to use Pandoc with it's filters for this task - or even use simple CLI pipe text filters.

And you write conversion algorithm in bash script - the best language for this task as it can easily glue and combine text filters written in any language (as long as they have command line interface).

So in the proposed tool chain you:

* Write Markdown in Atom (with all available packages that help much), * Insert Jupyter code cells and deploy via Hydrogen, * Apply any Pandoc or text filters via [Pandoctools]([https://github.com/kiwi0fruit/pandoctools](https://github.com/kiwi0fruit/pandoctools)) to convert to markdown/html/pdf/ipynb, * Pandoctools lets you define text filters pipelines ("profiles") and apply them to any file by simply adding two lines to markdown metadata section and opening the file with Pandoctools. You define text conversion algorithm once and then just use it with few 'Open with' clicks (or even with one short key with Atom package). * Collecting Jupyter cells outputs is also a Pandoc filter, * There are even working cross-references in exported ipynb, * Can convert markdown to markdown in order to post-convert with existing tools, * Optionally write math in SugarTeX that is a more readable LaTeX language extension and a transpiler to LaTeX.

[ __Example doc __]([https://github.com/kiwi0fruit/pandoctools/blob/master/exampl...](https://github.com/kiwi0fruit/pandoctools/blob/master/examples)): from markdown with Jupyter python code blocks, SugarTeX math and cross- references to ipynb notebook.

See more about all mentioned tools in [Pandoctools repo]([https://github.com/kiwi0fruit/pandoctools](https://github.com/kiwi0fruit/pandoctools)).

There are also recommendations of nice Atom packages and even good open-source font fallback chains for Unicode-rich markdown documents (monospace for editor, serif/sans for output).

 __UPD __

Worth noting that there is another way of joining plain markdown documents with Jupyter notebooks: storing Jupyter notebooks in markdown format - <USER2> still use Jupyter but have another content manager (or something). [notedown, podoc and ipymd]([https://gist.github.com/mrtns/da998d5fde666d6da26807e1f24624...](https://gist.github.com/mrtns/da998d5fde666d6da26807e1f246246e)) go this way.

Another way is to abandon writing code in Jupyter (I myself find it frustrating) and write it in Atom editor with Hydrogen package. But then the question of export to ipynb arises. And Pandoctools solves this problem.

And even more! It's shell pipelines allow you to add custom text transformations and leverage pandoc filters. So for example I added SugarTeX filter because I didn't liked how LaTeX insertions look alien in Markdown (I guess it's because of low readability of LaTeX - both Python and Markdown are very readable languages).</comment>


Heroku CI in public beta - <AUTHOR> https://devcenter.heroku.com/articles/heroku-ci <comment><USER2> Was very excited about this during the private beta, when the only pricing indication was about the dyno usage (billed by the second). Now, the GA pricing of $10/mo/pipeline doesn't seem like much, but with our small startup already at 32 pipelines, it ends up blowing past what we're currently paying for CircleCI.

I guess that's actually a more general criticism of Heroku in the microservices context; high availability (at least 2 dynos per service) and predictable performance (non-shared dynos, Performance-M at minimum) combine to make the cost of a "production" setup start at $500/mo/service. Non-issue for a monolith, quite tough for small microservices.

(To be fair, we compromise on both of those requirements and use both single- dyno apps and shared dynos, and so Heroku is very affordable for us. But the downside of those choices ends up biting us often enough that I, in turn, end up lamenting about it on HN.)

<comment><USER3> Heroku's strategy is about locking you in through services. It's the same playbook being followed by AWS, Azure and GCP. The concept of spinning up and scheduling containers is now well below the value line -- there are many competing platforms in this space. Raw compute is nearly a fungible, undifferentiated product at this point.

Insofar as you can decouple yourself from Heroku service offerings, you are able to decouple from Heroku.

Whether that's a full-service standalone platform like Cloud Foundry (partly inspired by, and partly sharing code with, Heroku), an IaaS-smoothing platform like Convox (founded by Heroku alumni), integrating some intermediate platforms like Deis or rolling your own with Kubernetes or Marathon.

Disclosure: I work for Pivotal, which sells a commercial distribution of Cloud Foundry. And I work in the Cloud R&D section on opensource bits of it. So I have a horse in this race.

<comment><USER4> If you were Heroku, how would you plug the hole of people running some parts of their deployments in AWS us-east-1 to save on their Heroku bill?

<comment><USER5> Maybe I just have the wrong idea, but I'm pretty sure the whole USP of Heroku is easy deployments without having to worry about Dev Ops and infrastructure. If you want to use AWS directly, that's great... but that's not the customer they're targeting.

</comment></comment></comment></comment><comment><USER6> For anyone using github and heroku - this may be convenient, but for anyone on bitbucket side - there is built in alternative (even within free tier). I'd say that they are quite late in the game

</comment><comment><USER7> Congrats to the Heroku team for pushing forward with this. While it's not attractive to this Heroku customer due to my preference for CI solutions that are agnostic to the rest of the deployment workflow, I'm sure this is a great prospect for orgs that are 100% Heroku ride or die.

I'm curious about the pricing model. Other hosted CI solutions have a low- power free tier or provide totally free services to OSS. I wonder if Heroku would consider providing a free version of CI with hobby dynos and other free- tier addons.

Also hoping that charging pro rata for usage is something that can be extended to hosting dynos.

<comment><USER5> > Also hoping that charging pro rata for usage is something that can be > extended to hosting dynos.

All dynos are charged pro rata are they not?

</comment></comment><comment><USER8> Want to start learning more about CI tools, as Heroku CI hasn't been released yet, is there something similar I can try? Would Travis be a good start?

<comment><USER9> I personally use the GitLab CI. It's great.

GitLab as a whole is brilliant, tbh.

<comment><USER10> Thanks! I saw someone in this thread mentioning the markup that various services charge [https://news.ycombinator.com/item?id=13902492](https://news.ycombinator.com/item?id=13902492) With GitLab CI we want to make sure it is easy to test your code on any infrastructure. So you can use runners we host, but you can also bring your own runners from any (public) cloud. This way you can use whatever solution is cost effective for you.

</comment></comment></comment><comment><USER11> The most interesting problem they are trying to solve is the way this integrates with their addon partners. Typical CI you specify services like MongoDB, Redis, Postgres, etc. to be installed directly on the image that your tests are running. Heroku seems to be literally creating accounts with their partners, forcing them to spin up necessary resources, and then just churning the account as soon as the tests are done. Most Heroku partners offer a free tier assuming they can get a percentage to switch to the higher tiers, but this is going to increase usage of those free tiers by a very large amount and I don't see it converting well for the partner.

Edit (clarity): They didn't solve the problem yet, and are limiting the addons to just Heroku services (Postgres/Redis) until they figure out best way to handle with partners. I will be keeping a close eye, very curious what they land on.

</comment><comment><USER12> Still JSON? Why not YAML?</comment>


"A Shocking Sabbath Carnival of Death": The Central Park Zoo wild animal hoax - <AUTHOR> http://www.slate.com/articles/news_and_politics/history/2014/07/james_gordon_bennett_jr_s_new_york_herald_the_central_park_zoo_wild_animal.html

<comment><USER2> The sad part is, I think they would have been arrested for terrorism charges if they tried this today.

</comment><comment><USER3> I have a 150 Mbit connection. It took almost ten seconds until the text appeared on that page (I guess because of fonts that needed to be downloaded).

I've noticed this on a growing number of sites recently. Is none of them doing any user experience tests?</comment>


Going to space in a homemade rocket: What you can do if you put your mind to it - <AUTHOR> http://maximise.dk/blog/ <comment><USER2> I don't buy the "you can do it if you set your mind to it" recipe for success. It's the airport literature approach.

The opposite is obviously true: You _can't_ to it if you _don't_ set your mind to it, but it takes more. Madsen and von Bengtson are brilliant and talented engineers who's applying their skills to unusual projects.

If I were to "put my mind to" building a rocket to take me into space, in the first part I'd would look like Ralph Wiggum, and in the second I'd probably blow myself and three buildings up.

Success takes will, but it also takes skill and a realistic assessment of those skills. Find out what you're good at, and execute the heck out of it. If you're not good at something, find something else to do.

<comment><AUTHOR> Actually they're not. Bengtson is an architect, and Madsen doesn't have a formal education at all. While they're by no means stupid they aren't geniuses either. But they're dedicated as hell, and that's what makes the difference.</comment></comment>


CaptionBot by Microsoft - <AUTHOR> https://www.captionbot.ai/ <comment><USER2> I found it curious that this Bot is really bad at recognizing apes: chimpanzees and gorillas specifically. I fed it a lot of the images from a Google image search for these animals and more often than not it either doesn't recognize anything or considers them bears.

I don't mean to offend, but I'm left wondering if the creators of image recognition services disincentivize their neural nets from recognizing something as an ape, gorilla or chimpanzee so as to avoid the same mistake Google made when it falsely recognized black people as gorillas [1].

[1] [http://blogs.wsj.com/digits/2015/07/01/google-mistakenly- tag...](http://blogs.wsj.com/digits/2015/07/01/google-mistakenly-tags-black- people-as-gorillas-showing-limits-of-algorithms/)

<comment><USER3> Reading the blog post and the Twitter thread.

Wow. 10 years ago it would have been seen as a comical blunder of a stupid AI. Something to be fixed for sure, but not a Serious Social Issue by any means. Nowadays, it apparently warrants several follow-up articles in the mainstream media, "social" commentary and 3,309 retweets.

From the blog post: _"The bias of the Internet reflects the bias of society," she said._

In some cases - yes, but this one seems more like society deliberately projecting human motivations onto a primitive algorithm and jumping to conclusions about what its errors "really" mean.

-

For people who disagree, here is a scenario your might want to consider. Imagine that _you_ built an image tagging service. Imagine that someone found a glitch in _your_ service that they consider offensive. Imagine them tweeting about it (before or instead of contacting you directly) and getting a similar kind of reaction, complete with extensive social commentary and media coverage. Nice, big crowd of people using _your_ company and _your_ service as a convenient example of things-that-are-wrong-with-our-society. How would you feel in that case?

<comment><USER4> The issue here is that race relations in the U.S. are so convoluted and have so much history that it's literally impossible to tell what would be considered "racist" without a broad understanding of the culture and a comprehensive list of past racial slurs and grievances.

Witness the KFC ad ([https://www.youtube.com/watch?v=ZaIhf41ctkM](https://www.youtube.com/watch?v=ZaIhf41ctkM)) which was broadly labeled as "racist", despite the fact that the 'black people love fried chicken' stereotype is (as far as I know) only a U.S. construction.

<comment><USER2> > The issue here is that race relations in the U.S. are so convoluted and have > so much history that it's literally impossible to tell what would be > considered "racist" without a broad understanding of the culture and a > comprehensive list of past racial slurs and grievances.

I understand, but isn't the logical conclusion that one cannot make a piece of technology (like an image caption bot) that is unaware of, for instance, such complex racial relations? And if so, should technological progress really be hampered by people's sense of outrage, even in the absence of malicious intent?

<comment><USER4> The logical (to me) conclusion is that people need to unbunch their panties and stop looking for things to be offended about.

I don't think it's reasonable for anyone to expect an AI system, at our current level of technology, to have a complete understanding of every nuance of human pique to the degree where it will never do anything which could be interpreted as offensive by anyone.

Hell, that's a far higher bar than we humans can hope to meet in today's 'outrage culture'.

</comment></comment></comment></comment></comment><comment><USER5> I fed it the "Wat" meme and it thinks it's Pope Benedict.

> _I am not really confident, but I think it 's a man is smiling for the > camera and they seem . I am 99% sure that's Pope Benedict XVI_

Source Image: [http://memesvault.com/wp-content/uploads/Wat-Meme-Old- Lady-0...](http://memesvault.com/wp-content/uploads/Wat-Meme-Old-Lady-01.jpg)

Needless to say, my errant habits of trying to break stuff shine through once again.

<comment><USER6> Truth to be told it wasn't off too far.

<comment><USER5> Hah, yeah but when I got it working again, this time with a screenshot of Jules from Pulp Fiction, it thinks his gun is a camera.

> _I am not really confident, but I think it 's a man holding a camera. _

Source Image: [http://www.cinemablend.com/images/news_img/79237/pulp_fictio...](http://www.cinemablend.com/images/news_img/79237/pulp_fiction_79237.jpg)

<comment><USER7> Imagine this tech matures and it can be incorporated with bodycams for police, when confronting a subject with objects in their hands it may be able to confidently estimate the probability of being a firearm or not, with better predictability than the police/people.

<comment><USER8> ...and better proveability. Most people are actually unarmed. [http://www.theguardian.com/us-news/2015/jun/01/black- america...](http://www.theguardian.com/us-news/2015/jun/01/black-americans- killed-by-police-analysis)

While we're here, let's go the full way and set up a proveable and public way to train a robocop, and I'd trust that more than a human cop. The awkward moment when AIs have more brains than cops (at least under the US system).

<comment><USER9> ITT: someone who didn't actually see the original Robocop: [https://www.youtube.com/watch?v=A9l9wxGFl4k](https://www.youtube.com/watch?v=A9l9wxGFl4k)

</comment></comment></comment></comment></comment></comment><comment><USER10> Took a few tries but worth it - my son from the other morning:

[https://imgur.com/a/w1Uai](https://imgur.com/a/w1Uai)

Edit: They should have named it CationBot.

<comment><USER11> Are you sure your son is fine with you giving Microsoft his image and accepting all what you permit them by doing so?

<comment><USER10> God only knows. I guess if he shows up at school and people say, "hey, you look just like that Microsoft kid!", I'd feel slightly guilty. Seems unlikely, and I'd have reasonable grounds for a C&D.

<comment><USER12> Actually, their ToS says they can do whatever the hell they want with it:

[https://www.microsoft.com/en- us/legal/intellectualproperty/c...](https://www.microsoft.com/en- us/legal/intellectualproperty/copyright/default.aspx#o11)

</comment></comment></comment></comment><comment><USER13> "I seem to be under the weather right now. Try again later :(" i.e. we killed it.

<comment><USER14> That's disapointing. But it worked once and did very well. I sent this picture [http://www.sofoot.com/IMG/img-le-regard- perdu-1460478703_580...](http://www.sofoot.com/IMG/img-le-regard- perdu-1460478703_580_380_center_articles-220493.jpg) and it said "I think it is a football player on the field and he looks :(".

He didn't mistake the football player with a rugby player, a cricket player or else. And +1 for the emoji

<comment><USER15> I uploaded a photograph of a bunch of snow piled on top of a round table[0], which looks a lot like a marshmallow to the human eye. But it came back with "I am not really confident, but I think it looks like a polar bear lying in the snow." Not terrible :)

[0] [http://imgur.com/nKRK5hc](http://imgur.com/nKRK5hc)

<comment><USER15> Recorded: [http://imgur.com/dtBmoBQ](http://imgur.com/dtBmoBQ)

</comment></comment></comment></comment><comment><USER16> CaptionBot team here. Thanks for the images and captions! Please keep sharing them and give us feedback.

<comment><USER17> First of all congratulations on a) the science (built on the shoulder of giants...) b) the accessibility / interface and service

Wondering if you plan to open up a caption API of any sort? Can definitely use something like this. If you desire the training feedback, then that could be added as well as part of the API. I'd be willing to do that for some images. So if you do add a training feedback API, please make it optional.

<comment><USER16> Thanks! We published all the APIs for free. Check them out @ [https://www.captionbot.ai/Home/Magic](https://www.captionbot.ai/Home/Magic)

<comment><USER17> Thank you! Don't know how I missed that Cognitive Services link...

</comment></comment></comment></comment><comment><USER18> I'm super impressed by its response to this image:

[http://i.imgur.com/tc5rz9s.png](http://i.imgur.com/tc5rz9s.png)

<comment><USER19> I'm less impressed by what it made of this:

[http://imgur.com/KAmCF2m](http://imgur.com/KAmCF2m)

</comment></comment><comment><USER20> I worked in Image Processing and Vision for a long time. If you'd asked me 2 years ago that something like this could be possible, I would have laughed you out of the room. But in the last year or so, I've been stunned beyond belief at how well these networks work.

<comment><USER21> I remember seeing this about two years ago that seemed to do a pretty good job:

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

(Site's gone now but it was a demo on top of Clarifai)

Honest question, is this much better than Clarifai?

</comment></comment><comment><USER22> Hmm I can't help but think it should have done a little better with this image [http://i.imgur.com/yBNJWKf.png](http://i.imgur.com/yBNJWKf.png)

<comment><USER23> I got the same response not really confident but think it's a cell phone. Mine was a cluster of little buildings with gardens on top. Your is a ketchup bottle. Maybe 'cell phone' is the default response when it doesn't know.

</comment></comment><comment><USER24> Feeding noise to a neural network is always fun: [https://i.imgur.com/pPdwIGx.png](https://i.imgur.com/pPdwIGx.png)

<comment><USER25> Lol epic fail

</comment></comment><comment><USER26> Pretty good. Can't wait to see how good this tech gets in the next few years.

[https://www.dropbox.com/s/ty34c02y1mngyrc/Screenshot%202016-...](https://www.dropbox.com/s/ty34c02y1mngyrc/Screenshot%202016-04-13%2013.50.59.png?dl=0)

</comment><comment><USER27> I gave this image - [https://i.imwx.com/images/maps/truvu/map_specnewsdct-109_lts...](https://i.imwx.com/images/maps/truvu/map_specnewsdct-109_ltst_4namus_enus_1280x720.jpg)

and I got this result "I am not really confident, but I think it's a couple of glass vases with flowers on top of a surfboard."

<comment><USER28> I gave it this one [1], it claims "I think it's a blurry picture of a boat." which is not entirely bad description but obviously misses the point.

[1] [http://vignette3.wikia.nocookie.net/lovecraft/images/9/95/5b...](http://vignette3.wikia.nocookie.net/lovecraft/images/9/95/5b1d071c622d3bb26b6c26a80d80534e.jpg/revision/latest/top- crop/width/480/height/480?cb=20140818055502)

<comment><USER29> Of all things to try to make a brand new AI describe, you give it an indescribable god/priest of R'lyeh???

:)

<comment><USER30> It is important to unit test the boundary conditions.

</comment></comment></comment></comment><comment><USER31> It's only a matter of time before a repeat of Microsoft's last AI experiment (Tay), when the Internet teaches CaptionBot all of the positions in the Kama Sutra.

<comment><USER5> Potential future quote:

"In a development that surprised even us, after an influx of /b/ and Something Awful Goons, the AI decided to shut itself off."

</comment></comment><comment><USER32> Made me chuckle:

[http://imgur.com/GSpanVe](http://imgur.com/GSpanVe)

<comment><USER33> You think there's not a glass of water in that picture?

</comment></comment><comment><USER34> It says "any image" but I think they really mean "any photograph", based on the samples as well as the stuff I uploaded to it.

<comment><USER34> I had to share this one, I sent a screenshot of the Yahoo homepage from a while ago (yeah, I had that hanging around...) with the main image being of Donald Trump.

The caption guess was "I am not really confident, but I think it's a television screen and he seems ."

<comment><USER35> Did you know that television screens are not only alive, but male?

</comment></comment></comment><comment><USER36> This one is really Funny [https://pbs.twimg.com/media/Cf8LJk6WcAAqZ0X.jpg](https://pbs.twimg.com/media/Cf8LJk6WcAAqZ0X.jpg) (image can be found on windows default install!)

<comment><USER37> I'm dying. This is hilarious.

</comment></comment><comment><USER25> This is a ton of fun. Cat on a counter... Lol [http://m.imgur.com/2tYgmmL](http://m.imgur.com/2tYgmmL)

<comment><USER38> That image is just.... wrong :) Poor AI is going to have some nightmares.

</comment></comment><comment><USER39> Fun stuff

[http://i.imgur.com/kS6sgNT.png](http://i.imgur.com/kS6sgNT.png)

Edit: I was expecting it to think an eel was a snake, but... [http://i.imgur.com/EmpRNkA.png](http://i.imgur.com/EmpRNkA.png)

</comment><comment><USER40> This is no fun to talk about without permalinks to uploaded images/results.

</comment><comment><USER41> I tried a Magic Eye photo. It didn't see the sailboat at all.

<comment><USER42> It's a schooner!

</comment></comment><comment><USER43> My lab is trying to do something similar for answering questions about images. We have a significantly better system than the current system that's online, but we haven't had a chance to update it yet: [http://askimage.org](http://askimage.org)

It is far from perfect, but is near state-of-the-art. I'm guessing it won't hold up to HN.

</comment><comment><USER44> I like it. [https://i.imgur.com/5HPdbSa.png](https://i.imgur.com/5HPdbSa.png)

<comment><USER16> Awesome picture, we love it! -CaptionBot team

</comment></comment><comment><USER45> This is amazing. This is exactly what I needed to get through a long on-call shift.

[https://m.imgur.com/N72gtoC](https://m.imgur.com/N72gtoC)

</comment><comment><USER46> It is almost as smart as a child. I uploaded a picture of my Notre-Dame vacation photo, and the caption was "A person standing in front of a church"... which is close to my sons "mommy standing in front of that church we went to"

<comment><USER47> Yep, on the stuff it recognizes. It recognized a picture I tested taken from the Grand Tetons as "a lake with a mountain in the background", which was quite correct, but also kind of generic.

On the other hand, it described a picture of Grand Prismatic Springs in Yellowstone as "a train with smoke coming out of the water." Which also is kind of like the crazy things kids sometimes say when they see something new.

[http://imgur.com/JBlpJvQ](http://imgur.com/JBlpJvQ)

</comment></comment><comment><USER48> It's amazing how wrong this gets some things, and then again its amazing how right it gets other.

The last one in this set really surprised me:

[http://imgur.com/a/gLTl4](http://imgur.com/a/gLTl4)

</comment><comment><USER49> Ohh I got a good one: "I am not really confident, but I think it's a close up of a plane with a blue umbrella."

[http://imgur.com/FYucrda](http://imgur.com/FYucrda)

<comment><USER50> I got a pretty good one too: "I am not really confident, but I think it's a close up of a man with a cow."

[http://imgur.com/DmQHP7W](http://imgur.com/DmQHP7W)

</comment></comment><comment><USER51> It was spot on for 30% of the images, but wildly inaccurate on the rest.

In fact, I assume this is a crowd sourced training for the tech..

Kind of disappointing, but at the same time I understand that this task is not trivial at all.

</comment><comment><USER52> Links to a couple of the initial super impressive research papers on generating captions for images from 2014 and 2015: [http://googleresearch.blogspot.com/2014/11/a-picture-is- wort...](http://googleresearch.blogspot.com/2014/11/a-picture-is-worth- thousand-coherent.html) [http://cs.stanford.edu/people/karpathy/deepimagesent/](http://cs.stanford.edu/people/karpathy/deepimagesent/)

As far as I know this was the first research to do the super cool thing to combine multiple neural nets trained on different data in super cool ways:

"Now, what if we replaced that first RNN and its input words with a deep Convolutional Neural Network (CNN) trained to classify objects in images? Normally, the CNN's last layer is used in a final Softmax among known classes of objects, assigning a probability that each object might be in the image. But if we remove that final layer, we can instead feed the CNN's rich encoding of the image into a RNN designed to produce phrases. We can then train the whole system directly on images and their captions, so it maximizes the likelihood that descriptions it produces best match the training descriptions for each image."

AND

"Our alignment model is based on a novel combination of Convolutional Neural Networks over image regions, bidirectional Recurrent Neural Networks over sentences, and a structured objective that aligns the two modalities through a multimodal embedding"

<comment><USER53> Here's a whitepaper on the tech behind the CaptionBot.ai demo: [http://research.microsoft.com/pubs/264408/ImageCaptionInWild...](http://research.microsoft.com/pubs/264408/ImageCaptionInWild.pdf)

This demo uses the Vision API and the Emotion API from here: [https://www.microsoft.com/cognitive- services/](https://www.microsoft.com/cognitive-services/)

</comment></comment><comment><USER54> It can't recognise B. Gates photo. Ok.

<comment><USER29> Shows how far MS has come since the 90s!

</comment></comment><comment><USER55> Android users: do you get a lack of memory/resources error when you try to take a pic instead of selecting from gallery? It is a silly bug where the camera activity kills the browser activity that called it.

Google: we cannot move forward with 'Progressive Webapps' if you guys don't fix these silly bugs.

Take-picture-do-something is a common feature of webapps like here Mr CaptionBot!!

<comment><USER56> Nope.

I have a bunch of tabs open which included a video (~30minutes)

Using a Nexus 5, Android 6

</comment></comment><comment><USER57> Yeah, the tech is not yet ready for prime time.

1) Close-up of a roman coin

\- I think it's a banana peel

2) Inverse black-on-white outline drawing of a wolf howling at the moon (logo of comic series Elfquest)

\- I am not really confident, but I think it's a close up of two giraffes near a tree.

3) Red-on-black drawing of eight arrows with a circle in the middle (chaos symbol).

\- I am not really confident, but I think it's a red and white sign.

4) Red-on-black drawing of a hammer-and-sickle (communism symbol).

\- I am not really confident, but I think it's a picture of some sort.

5) Ltd Cmdr Data laughing, one hand on his chest, the other extending outside the picture.

\- I am not really confident, but I think it's a man holding a wii controller and he seems :D

6) Germaine Greer biting the head off a barbie, while shaking another off its ponytail

\- I am not really confident, but I think it's a woman eating a doughnut and they seem :D D:

7) Image of a tiny lilac octopus on a black background

\- I am not really confident, but I think it's a close up of a doughnut.

8) Red-on-black drawing of an "A" in a circle (anarchy symbol)

\- I am not really confident, but I think it's a lamppost

9) Black-and-white picture of actress Liv Ulmann

\- I am not really confident, but I think it's a man with a stuffed animal.

10) Portrait of countess Elisabeth Bathory

\- I am not really confident, but I think it's a woman wearing a hat and she seems :|

For the record, number (10) is spot on (though with low confidence, so may be just random).

</comment><comment><USER58> At least it got the tree part right.

[http://m.imgur.com/sIm97r9](http://m.imgur.com/sIm97r9)

</comment><comment><USER59> Hmm.

A couple of days ago I think there was a post about Google doing a lot of development and research around creating systems that understand / categorize / comment / recognize images.

One thing I took away from reading about it is that Google has billions of images to train it with from all their different ventures.

Does Microsoft have access to anywhere near the same numbers of pictures?

<comment><USER60> Microsoft owns Corbis, doesn't it? [http://www.corbisimages.com](http://www.corbisimages.com)

<comment><USER59> It is my understanding that it was owned by Bill Gates not Microsoft.

Bill Gates sold it earlier this year to a Chinese Company [http://www.ft.com/intl/cms/s/0/d6fbcb88-c126-11e5-846f-79b0e...](http://www.ft.com/intl/cms/s/0/d6fbcb88-c126-11e5-846f-79b0e3d20eaf.html) (paywall),

The Chinese company has structured a deal with Getty to take over licensing outside of China.

However, having access to world class photography is great, but the images that (probably) will be the most interesting for Microsoft to recognize will be selfies, and other "crowd" created amateur photography and possibly memes.

I personally would think it to be cool to see if the bot could traverse the Getty collection and see if it could recognize the photographer of an image it had not seen before. Why yes, this is Leibovitz.

</comment></comment></comment><comment> chris-at > I am not really confident, but I think it's a close up of a cat.

Hello kitty: [http://i.livescience.com/images/i/000/024/750/i02/tarantula-...](http://i.livescience.com/images/i/000/024/750/i02/tarantula- spider-edited.jpg)

<comment><USER61> Not surprisingly, if its training material was scraped from the web, it is biased toward cats, as my experiment also indicated:

[http://imgur.com/z4zQLzz](http://imgur.com/z4zQLzz)

</comment></comment><comment><USER62> An interesting project, but it fared pretty poorly on all of the images I gave it - the suggestions were wildly outlandish.

</comment><comment><USER63> I wish services like this would be released without any kind of moral filter on the subjects it classifies.

I uploaded a picture of Michaelangelos David to the service to see what captionbot would say about it, and I got back a message "I think this may be inappropriate content so I won't show it."

</comment><comment><USER64> Tried it with three different pictures, one from clker.com ([http://www.clker.com/cliparts/0/3/f/0/1194984730712928848mag...](http://www.clker.com/cliparts/0/3/f/0/1194984730712928848magnolia- white_patricia__01.svg.hi.png)) mistaken for a lamp-post, and two from unsplash ([https://unsplash.com/photos/2Ts5HnA67k8](https://unsplash.com/photos/2Ts5HnA67k8) and [https://unsplash.com/photos/iIg4F2IWbTM](https://unsplash.com/photos/iIg4F2IWbTM)). In the latter two it tells me that it cannot recognise anything. So for me, it isn't there yet....

</comment><comment><USER65> It classified my picture of a dog as inappropriate content and wont display it. Dang it.

</comment><comment><USER66> It feels like there are two sides of this: either recognition is amazing, either is really really far.

It seems that after it generates the caption, this needs to be fed to some semantic pipe, so that a plane sitting on a book would not make sense, and try further.

After all, it really depends on the training data. If the picture of a train ticket was never seen by the NN, how could it answer correctly? How ever, it should try to reduce the answer to some more meaningfull info, for example instead of two giraffes near a tree, ideally would have said, it's a text and would attempt OCR.

</comment><comment><USER67> I gave it a photo of a Cylon [0] and it said "I am not really confident, but I think it's a close up of a motorcycle." Close but not really there; Google's reverse image search has a better detection in this case. As an aside, it'd have been really cool if it said it was a picture of a toaster.

[0] [http://www.xperiax10.net/wp- content/gallery/cinema_x10/cylon...](http://www.xperiax10.net/wp- content/gallery/cinema_x10/cylon-droid-wp.jpg)

</comment><comment><USER68> CaptionBot doesn't really know what to make of Winged Doom: [http://imgur.com/86uwKfa](http://imgur.com/86uwKfa)

<comment><USER33> That's what I would have said and my AI is reported to be pretty good.

</comment></comment><comment><USER69> Pretty impressive - gave it a few profile photos and it did suprisingly well, correctly identifying "A couple walking on a beach at sunset," "a man looking out a window", etc.

It struggled with wildlife photos - a pack of arctic wolves was "a sheep standing in the snow", and penguins swimming was "a bird flying over a body of water" (close but no cigar).

<comment><USER70> Flying over, flying through... Minor detail.

</comment></comment><comment><USER71> Uploaded a cropped version of Mars in a photo that shows its atmosphere from [http://spaceref.com/onorbit/mars-methane-and- mysteries.html](http://spaceref.com/onorbit/mars-methane-and-mysteries.html)

And was told: "I am not really confident, but I think it's a toilet that is in the dark."

</comment><comment><USER72> I tried a bunch of different images and I got 'two giraffes near a tree' a bunch of times. They were drawn images though.

</comment><comment><USER73> It's not at all working. Every time, the same thing pops up - "I am under the weather now. Try again later. :("

</comment><comment><USER74> Definitely not a picture of 2 giraffes near a tree: [https://www.dropbox.com/s/ki9p59txh8mk143/Photo%20Apr%2013%2...](https://www.dropbox.com/s/ki9p59txh8mk143/Photo%20Apr%2013%2C%2010%2009%2041%20AM.jpg?dl=0) It's just a Caltrain ticket ¯\\_(ツ)_/¯

<comment><USER75> That's weird - $workchum fed it a screenshot of Perl 6 and it thought it was two giraffes.

</comment></comment><comment><USER76> It doesn't seem to know about rockets. [http://imgur.com/mqRuLVq.png](http://imgur.com/mqRuLVq.png)

(I tried the spacex landing pictures too - it correctly identified "a boat in a large body of water" but ignored the ten-story rocket above said boat.)

<comment><USER77> I posted a photo of Just Read The Instructions, got: "I am not really confident, but I think it's a yellow motorcycle.".

-.-

</comment></comment><comment><USER78> Silly Microsoft, should have at least had some caching layer instead of analyzing every image. RIP CaptionBot.

</comment><comment><USER79> Microsoft has great tech team - no doubt, but seems it lacks in product and market strategies.

</comment><comment><USER80> I'd like to see photo battles between microsoft and google, as a live game show.

</comment><comment><USER81> My results ranged from impressive to awful. It recognized Pete Carroll with 96% accuracy from a meme picture where he struts and chews gum. Then it thought a picture of the super bowl field before the game was boats on a table.

</comment><comment><USER82> "I never felt at home here. This is an awful place to be dropped down halfway"

</comment><comment><USER83> Gave it a picture of an AR-15 on a shooting bench and it thought it was a bicycle.

</comment><comment><USER84> Service appears to be down or "under the weather" whatever that means.

</comment><comment><USER85> Ha, got eerily accurate results. Some funny ones as well, but interesting tech.

<comment><USER86> Show me.

</comment></comment><comment><USER87> Pretty impressed that it got this one, given how the faucet breaks up the outline.

[http://puu.sh/ohauF/435af67ac1.jpg](http://puu.sh/ohauF/435af67ac1.jpg)

</comment><comment><USER88> My photos did not do too well. My Coral looks like a cake, my lizard looks like a bird, my boy fishing looks like a man next to a river, and a waterfall looks like a close up of Rock.

</comment><comment><USER89> Hypnotoad is not a "person on a surf board in a skate park." [http://imgur.com/2Cf5LKW](http://imgur.com/2Cf5LKW)

<comment><USER90> I got that when I uploaded a picture of a pine cone...

</comment></comment><comment><USER91> I uploaded the sad Michael Jordan meme face and it responded "I think it's Michael Jordan wearing a suit and tie and he seems :(", sounds about right...

</comment><comment><USER92> So I looked for a random photo on my phone and fed it a picture of a spot my leg that I'm keeping an eye on. Close-up of a cat apparently. Damn these hairy legs.

</comment><comment><USER93> Hmmm... I'm not seeing it. [https://i.imgur.com/OFPArbf.png](https://i.imgur.com/OFPArbf.png)

<comment><USER94> Moar surfboard. Hmmm.

</comment></comment><comment><USER95> I gave it a picture of a Captcha, and it said it was some giraffes against a fence. :) So at least we know they haven't broken Captcha yet!

</comment><comment><USER96> [http://i.hizliresim.com/o35z6m.png](http://i.hizliresim.com/o35z6m.png)

</comment><comment><USER97> This one made me laugh [http://imgur.com/u0E5eu5](http://imgur.com/u0E5eu5)

</comment><comment><USER89> Close up of a Bicycle... [http://imgur.com/BZd088p](http://imgur.com/BZd088p)

</comment><comment><USER98> This made me laugh: [https://imgur.com/PhbyAyK](https://imgur.com/PhbyAyK)

</comment><comment><USER99> Surprisingly it does pretty poorly on the images include in Windows XP's "Sample Pictures" folder.

</comment><comment><USER100> I gave it a statue of Joan of Arc and it thinks it is a motorcycle mirror with a neutral expression...

</comment><comment><USER101> Wow! I gave it a photo of a kitesurfer and it got it (man flying a kite in a body of water). Amazing!!

</comment><comment><USER102> Uploaded dick pick. Caption said it was a micro penis :-(

</comment><comment><USER103> Feed it Deep Dream generated images.

</comment><comment><USER104> It did not work well for me. I tried to give it an easy one. A picture of a salt and pepper shaker. Here's what it said:

> I am not really confident, but I think it's a cake made to look like a > phone.

Nice try m$.</comment>


Issues relating to a bug in Intel cpus - <AUTHOR> https://marc.info/?l=openbsd-tech&m=153431475429367&w=2 <comment><USER2> >We asked repeatedly, but Intel provided no advance notice. We did not even receive replies to our requests for dialogue.

Intel's treatment of *BSD is frankly quite insulting, especially so given that they serve a _huge_ portion of the internet traffic, with Netflix using FreeBSD for content delivery.

<comment><USER3> Do other manufacturers have a better relationship with *BSD?

To be honest the attitude of "everything sucks and everything is broken" doesn't help OpenBSD though they are right to complain about some things.

<comment><USER4> _" everything sucks and everything is broken"_

Well, looking at all the chips I've bought in servers for the last 5 years, they are not wrong.

<comment><USER3> Then why did you keep buying them?

<comment><USER4> What exactly was the alternative?

</comment></comment></comment></comment></comment><comment><USER5> The key quote from Theo:

> _We believe Intel cpus do almost no security checks up-front, but defer > checks until instruction retire. As a result we believe similar issues will > be coming in the future._

</comment><comment><USER6> More links:

[https://wiki.ubuntu.com/SecurityTeam/KnowledgeBase/L1TF](https://wiki.ubuntu.com/SecurityTeam/KnowledgeBase/L1TF)

[https://www.kernel.org/doc/html/latest/admin- guide/l1tf.html](https://www.kernel.org/doc/html/latest/admin-guide/l1tf.html)

<comment><USER7> There's also a dedicated site: [https://foreshadowattack.eu/](https://foreshadowattack.eu/)

</comment></comment><comment><USER8> Is x86 dead now?

<comment><USER9> These are bugs related to caching and thus unrelated to cpu architecture.

The core lesson appears to be that Intel has been playing loose with security. That is not a fundamental x86 problem, not so long as AMD is producing competent cpus.

</comment></comment><comment><AUTHOR> HN mods: This is not a dupe! Also could whomever changed the title, please change it back? This specifically addresses these issues on Intel CPUs in relation to OpenBSD.

<comment><AUTHOR> Thanks.

</comment></comment><comment><USER10> Discussed here:

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

<comment><USER11> Where? I can't see discussion about this submission at that link.</comment></comment>


Is bandwidth as issue? - <AUTHOR> Do we have to consider the bandwidth of end user when building an app? <comment><USER2> I would expect large majority to have a decent fixed price data packages. However there are people that have slow speeds and/or expensive metered data plans, so I wouldn't get too frisky. Overall bandwidth is usually the bottleneck, so yes.

<comment><AUTHOR> I am building a chat application([http://tiny.chat](http://tiny.chat)) that will use less bandwidth. Is it worth optimizing reduce as many bytes as possible? Or the end user doesn't care if there are couple of extra KB used?

<comment><USER3> A couple KB shouldn't make much of a difference. If your app explodes in popularity, then yes, you should make every effort to optimize.

<comment><AUTHOR> My question is does the average joe care if app is using less bandwidth or it doesn't matter.

<comment><USER3> To be honest, for a couple KB's worth of difference, probably not. But I'd assume it'd be good practice to optimize the best you can regardless.

</comment></comment></comment></comment></comment><comment><USER4> Yes.

</comment><comment><USER5> yes</comment>


Fed Weighs Abandoning Pre-Emptive Rate Moves to Curb Inflation - jules-jules https://www.wsj.com/articles/fed-weighs-abandoning-pre-emptive-rate-moves-to-curb-inflation-11596360600 <comment><AUTHOR> There is going to be inflation. Options are some now or more later.</comment>


Cosmic rays are raining down on us. No one knows where they come from - <AUTHOR> https://www.vox.com/the-highlight/2019/7/16/17690740/cosmic-rays-universe-theory-science <comment><AUTHOR> Interesting article. I had no idea that we knew of things that can go faster than light. But aren't we asking the wrong question? With this amount of constant power, shouldn't we put more emphasis on capturing it for energy like we do with solar panels? Except these would work 24/7, both at night & on cloudy days.</comment>


From Sudoku Solver to Program Synthesis - <AUTHOR> https://synthetic-minds.com/try <comment><USER2> When I wrote a Sudoku solver I was disappointed to find that backtracking worked maybe too well; that is, I coded in the minimum constraints to follow the rules of the game and then added backtracking and voila, it found solutions quickly enough.

Why was I disappointed? Because initially I wanted to write a solver that inferred more, that used the inferences that I made when solving Sudoku.

Sadly once the solver worked, I kinda lost interest.

I hate backtracking myself and it should only be necessary at a certain Sudoku hardness level - every puzzle below that level of hardness should be solvable without backtracking.

<comment><USER3> Yep, backtracking works fine. If you only want the solution, then you don't need complex rules. But, you really want more than just the solution.

Check out [http://sudokuwiki.com/sudoku.htm](http://sudokuwiki.com/sudoku.htm)

This solver (and the whole site) is the best one I know of, and it will solve a puzzle by using rules in order of difficulty, to guarantee it tries the simple rules you know before resorting to backtracking.

The benefits of this are that you can grade the difficulty of a sudoku board. You can also solve a puzzle up to the "crux" and then work on only the hard moves manually. I like doing that so I can skip the hours of boring stuff and practice doing the more tricky inferences. Andrew's site is a window into how big of a rabbit hole Sudoku can be...

<comment><USER4> If you are interested in grading Sudokus by the difficulty of the human solving techniques required, you might want to check out the following two books:

\- "Sudoku Programming with C" [[https://www.apress.com/de/book/9781484209967](https://www.apress.com/de/book/9781484209967)] where a Sudoku solver and grader is implemented.

\- "A to Z of Sudoku" [[https://www.wiley.com/en- us/A+to+Z+of+Sudoku-p-9781847040008](https://www.wiley.com/en- us/A+to+Z+of+Sudoku-p-9781847040008)] where many human solving techniques are described and rated by their difficulty.

</comment></comment></comment><comment><USER5> So is this meant to be an advertisement for their product, or are they trying to recruit? Why are they trying to filter for people who can write a sudoku solver?

<comment><AUTHOR> We are looking for people who want to play around with constraint solvers. As others in this thread have mentioned, the vanilla Sudoku is not hard to really need constraint solvers; a generalized version would. We don't expect people to have backgrounds in program synthesis, but constraint solving is a start.

That said, it is just a fun problem. PTime specialized solutions are even more intriguing.

</comment></comment><comment><USER6> Just how long more should I leave my solver running ?

</comment><comment><USER7> Don't hijack scrolling.

<comment><AUTHOR> We don't. Which browser/OS are you seeing this on?

<comment><USER7> Yes, you do. Any browser on any os. [https://synthetic- minds.com/smoothscroll.js](https://synthetic-minds.com/smoothscroll.js) hijacks scrolling and messes with the native scrolling behavior

<comment><AUTHOR> Removed!

We are not front-end people :) and it wasn't an active choice. Let me know if you see anything else. Sincerely appreciate the help.

</comment></comment></comment></comment><comment><USER8> now that my solver has been chugging along for awhile, and i'm sort of bored of fiddling around with the supporting bits, i find myself wondering: since there's a politely-requested limit on submission rate, isn't the person who solves the most basically just the one who wrote an automatic solver fastest and/or leaves it running the longest?

<comment><USER8> well, you guys were sneakier than i initially expected, and clearly more clever than me, as i can't figure out the pattern. oh well.

</comment></comment><comment><USER9> TLDR : we use a solver to go from a formal constraint specification to an Ethereum smart contract

So 1\. the initial specification is still a formal constraint

      2. the domain complexity is low

      3. Use well known solvers to generate code in a DSL

<comment><AUTHOR> This page was just a fun exercise; seems to have missed communicating fully how we use synthesis. My bad.

You are right about about "2." and part of "3.". For "2." yes, the smart contracts are indeed simpler (small code, gas limits, closed systems). So we can skip some major hurdles that more general techniques need -- case in point the FB abstract interpretation framework Sparta here yesterday. For "3." we use Z3 (as should everybody :)!) but the target language for synthesis is Solidity. [ Hope you didn't mean Solidity is a DSL, coz that would be a generous interpretation of that word. ]

The initial spec is another smart contract (call it IN), so code and not a formal constraint. We synthesize another smart contract (call it OUT), such that the combination (IN + OUT) behaves well. See work on synthesizing program inverters for the background ideas ([http://saurabh- srivastava.com/pubs/pldi11-pins.pdf](http://saurabh- srivastava.com/pubs/pldi11-pins.pdf))

<comment><USER9> Thanks for the explanation. Program synthesis is HARD, and we may never solve it, so any progress on this is great to read about.

Good luck with this.</comment></comment></comment>


Ask HN: What APIs do you use the most? - jonathan-kosgei <comment><AUTHOR> For [https://MoonlightWork.com](https://MoonlightWork.com):

\- Segment (backend event tracking and frontend management of things such as Google analytics)

\- Intercom (frontend customer chat)

\- Stripe (payments)

\- Slack (we use the Api to correspond chat users with user accounts, and to create private channels for ongoing jobs)

\- Sentry (error tracking with lots of additional information)

\- Kubernetes (local and production application hosting setup)

\- Contentful (CMS for our blog)

\- Imgix (CDN that resizes photos on the fly - which we use for profile photos and logos)

<comment> jonathan-kosgei We use a lot of the same stack. I particularly love imgix and stripe.

</comment></comment><comment><USER2> Not the most, but pretty important for me: Purchasing Power Parity [0]

\- [0] [https://github.com/rwieruch/purchasing-power- parity](https://github.com/rwieruch/purchasing-power-parity)

<comment><USER3> Are VPNs able to skirt this?

<comment><USER2> Yes. In the end I hope that it's only the minority of people exploiting it and that it does more good for the people who cannot afford to pay for something.

</comment></comment></comment><comment><USER4> I love using AwGo library ([https://github.com/deanishe/awgo](https://github.com/deanishe/awgo)) to make Alfred workflows in Go.

Wrote an article about how to write Alfred workflows in Go too here: [https://medium.com/@NikitaVoloboev/writing-alfred- workflows-...](https://medium.com/@NikitaVoloboev/writing-alfred-workflows-in- go-2a44f62dc432)

</comment><comment><USER5> An internal API that I truly hate because of how poorly written it is. I'm probably going to rewrite it and quit.

<comment><USER6> This made my day.

</comment></comment><comment><USER7> For [https://ably.io](https://ably.io) (Ably Realtime)

\- Stripe (payments)

\- PipeDrive & Intercom (CRM integration)

\- Zapier (some automation between systems)

\- Rollbar & Sentry (error tracking)

\- AWS S3 (file storage)

\- AWS Route53 & CloudFlare (DNS)

\- AWS EC2 APIs (Infrastructure provisioning)

\- AddSearch (search)

\- Freshdesk (tickets)

\- Sendgrid (email)

\- Google Recaptha (captcha)

\- APILayer (tax)

\- Monitis & Uptrends (monitoring)

\- Browserstack (browser automation)

We use 100s of services ([https://blog.ably.io/94-tools-you-need-to-grow-your- startup-...](https://blog.ably.io/94-tools-you-need-to-grow-your-startup- ed5505ced995)), but I've only listed the key services where we integrate with their APIs.

<comment> jonathan-kosgei You use vatlayer.com?

</comment></comment><comment><USER8> .net's System.Web and System.IO. Most of the code I write seems to use them somewhere. They're quite old, and not particularly well factored by modern standards, but I like their straightforwardness.

</comment><comment><USER9> POSIX

<comment> yjftsjthsd-h Heh. Especially true if we allow indirect to count, since I'll bet the vast majority of the web APIs upthread are hosted on *nix.

</comment></comment><comment><USER10> POSIX, stdlib

</comment><comment><USER11> Social Login APIs such as the FB api for apps I've published

</comment><comment><USER12> AWS SDK</comment>


Builder vs. Programmer Perspective - <AUTHOR> http://csapp.cs.cmu.edu/3e/perspective.html <comment><USER2> The distinction was clear to me with the first example. A book could teach me how to implement memory caches and addressing (builder) or could teach me the impact of programming against memory caches by controlling my memory addressing.

I like it. It's a valid critique of perspective.

<comment><USER3> I agree that's what I took out of it as well. The builder perspective is learning to design and implement from first principles, which isn't very practical according to the author because most of the information will not be used in day to day programming.

The perspective the author is arguing for is understanding the principles behind how systems under the hood impact day to day programming.

An example: you don't care about how transistors work, unless you want to understand rowhammer. One theory I heard is: it works because small transistors get their electricity leaked away to bigger transistors that are reading out memory millions of times. Another: you don't care about creating a game in assembly (hello Rollercoaster Tycoon!), but you do want to be able to read assembly with regards to do compiler and/or performance analysis.

I wonder whether people agree with my examples or disagree.

<comment><USER4> Agreed: theory doesn't matter - until it does. The implementation of abstractions doesn't matter - until the consequences of the implementation leaks out as observable behavior.

</comment></comment></comment><comment><USER5> Good headline. The article would have been more interesting if it had played up the contrast between two perspectives, the way you framed it, instead of spending all its time on the programmer's perspective.

<comment><USER6> Agree, the article failed to prove the point. The distinction is still unclear to me.

<comment><USER7> The distinction is that teaching how to build a car from scratch (builder) doesn't teach you how to drive it any better (programmer). The proposal is to teach programming with "assume you have a car/compiler/filesystem" instead of _always_ starting from first principles.

</comment></comment></comment><comment> Nevada-Smith Sheesh, take a look at their errata page: [http://csapp.cs.cmu.edu/3e/errata.html](http://csapp.cs.cmu.edu/3e/errata.html)

</comment><comment><USER8> I think a curriculum based upon alternating between _builder_ and _programmer_ would be the best of both worlds. Just one perspective only would be incomplete

</comment><comment><USER9> Any lecture videos based on this book?

<comment><USER10> Yes: [https://www.youtube.com/watch?v=wVNvEGe2UOA&list=PLPXsMt57rL...](https://www.youtube.com/watch?v=wVNvEGe2UOA&list=PLPXsMt57rLtjNzxZBDg9xJB7KT83WStBO)</comment></comment>


Data.gov is open source - <AUTHOR> http://www.data.gov/opengovplatform

<comment><USER2> It should be noted that the software running Data.gov itself has not been made open source. This is a project of the American and Indian governments to produce an open-source version of Data.gov to be shared with other governments.

Here's an open-source government data catalog originally made for the City of Philadelphia, built on Django:

<http://civiccommons.org/apps/open-data-catalog>

<comment><USER3> Forgive me but I don't understand.

If the data is available for download (preferably via ftp) what needs to be "open source"?

Personally I do not care what software they use to run the site so long as the data is available for download in a open format like CSV. Compare this with offering the data in little bits via some silly JSON API or offering it in some format that requires some addtional closed source software to process.

To me, the data is what is important. What software they choose to use is not important, as long as the data is easily accesible (ftp is my preference). What's important is that I can use whatever software I want to process the data.

</comment></comment><comment><USER4> OGPL seems like a confusing acronym for an open source platform.

It is licensed under GPL, though (inherited from Drupal):

[https://github.com/opengovplatform/opengovplatform/blob/mast...](https://github.com/opengovplatform/opengovplatform/blob/master/ogpl/webapp/core/COPYRIGHT.txt)

</comment><comment><USER5> I think that having a list of open data country sources could be interesting.

At the moment we have:

\- USA

data.gov [linked by ahi]

\- City of Philadelphia

<http://opendataphilly.org/> [linked by luigi]

\- Spain

<https://datospublicos.jottit.com/> [spanish link, sources not very parsing friendly]

Which else do you know?

<comment><USER5> I found two catalogs with a lot of links

\- Wiki of Open Data Day: <http://www.opendataday.org/wiki/Data>

\- Comunity section of data.gov: <http://www.data.gov/community>

</comment></comment><comment><USER6> The open source product is the Open Government Platform:

<http://www.opengovplatform.org/>

Another solution is CKAN, maintained by the Open Knowledge Foundation, which actually does run data.gov.uk

<http://ckan.org/>

<http://data.gov.uk/project#q6>

</comment><comment><USER7> Cool, uses a few modules by my company, Development Seed.

</comment><comment><USER8> I typed in "Who is on Obama's kill list?" but it just took me to the What's New? page. Meh.

</comment><comment><USER9> I'm really excited about the possibilities of this. The exact implementation might have it's various flaws but it's an exciting move in the right direction.

</comment><comment><USER10> The NIC? Aren't they pretty reviled as the IT arm of the Indian Govt?

</comment><comment><USER11> It's been awhile since I've read through Drupal projects...but how much of this is usuable, extendable modules and how much of it is "Create a database and run the Drupal init script on it"?

<https://github.com/opengovplatform/opengovplatform>

<comment><USER12> Well [https://github.com/opengovplatform/opengovplatform/tree/mast...](https://github.com/opengovplatform/opengovplatform/tree/master/ogpl/webapp/sites/all/modules/custom) is their custom code that should be portable as should much of the features [https://github.com/opengovplatform/opengovplatform/tree/mast...](https://github.com/opengovplatform/opengovplatform/tree/master/ogpl/webapp/sites/all/modules/ogpl_features)

</comment></comment><comment><USER13> yikes, and it's Drupal 6.

<comment><USER7> What, instead of 7? Have you used 7?

/if you mean 'yikes, it's Drupal at all', yes.</comment></comment>


Free: a Tactic, not a Business Model - <AUTHOR> http://gigaom.com/2007/03/13/free-a-tactic-not-a-business-model/ <comment><USER2> Accepting credit cards: a Tactic, not a Business Model

Obviously "free" is not a complete business model, but how blind do you have to be to keep repeating these silly anti-free arguments despite the overwhelming success of many businesses based of free things? (Google, television, etc)

If you can build a product that will get a lot of users and has low per-user costs, then free is an excellent option and almost inevitable (because you will face competition from free). On the other hand, if your product has limited appeal or high costs, then you probably need to charge.</comment>


Ask HN: Do you get to have local admin rights on your work computer? - <AUTHOR> In my industry (defense), users don't get to be local admins on their Windows machines. All software needs to be requested and installed by IT. I'm curious how this works in other industries. How do you get software installed? How do you make changes to system settings?
The long story behind why I ask:
I recently requested Cygwin and VS Code and handed over my laptop to IT. Cygwin was approved for installation on the network in general and in my room in particular. VS Code was approved on the network but not yet approved in my room, so someone had to go through the process of getting it approved in my room as well. I received my laptop back 1.5 months later with VS Code nowhere to be found and Cygwin lacking the packages I need (compilers), so I'll be starting again back at the beginning of this process. Incredibly frustrating stuff. Also, there are certain icons on my desktop which I don't have permissions to delete. Surely this can't be the norm across all industries?
Luckily, I also have a Linux machine. <comment><USER2> Not having admin rights is absolutely the norm in corporate environments, and any business who entrusts anyone but IT with admin rights is going to be a bad investment bet, because everything they have is going to end up getting torched or leaked online.

That being said, you definitely have a more painful process for approval of software in that industry (and I'm not too surprised). Where I work, if a user requested VS Code, I'd load it up in our software distribution system, and remotely push it to their PC. I certainly wouldn't take their PC off their hands for a month and a half.

Usually if a user needs a system setting changed, it's a peeve for multiple people or applicable to a whole department. We can push out policy changes to groups of PCs or users which make changes to their PCs. Unremovable desktop shortcuts can be removed about a minute after someone sends me an email, but are generally there on multi-user PCs where a shortcut should be available to anyone who might log into it.

<comment><AUTHOR> Interesting--when I was in IT, the last non-defense company I worked at did allow local admin access, and it seemed to go reasonably okay. We definitely fielded more support requests because of it but nothing too crazy. Granted, that was a decade ago and at a relatively small (~400 employee) company.</comment></comment>