Languages

Stack Overflow just announced a Portuguese version of their site. Apparently enough people didn’t understand the reasoning behind this that they had to put out a long blog post to explain:

Assumption: All of the serious developers in the world are highly proficient in English.

Which… actually sounds plausible. But it’s wrong.

  1. Not every developer in the world speaks English.

  2. It’s almost impossible to feel like part of a community if you’re not highly proficient in the language.

  3. Requiring that all aspiring devs "just go learn English" first isn’t who we want to be.

Just the other day I wrote a post (link in Italian) about why Italian bloggers should blog in English to increase their audience. So I should be all up in arms against this move by Stack Overflow, right?

Actually, no. I think it’s a great idea.

Wait, what?

I definitely think that developers, bloggers, and generally anyone who wants to be a part of an international community should learn English. Note that this is not because everyone should move to Silicon Valley! I am quite happy living in Italy, thankyouverymuch. It’s just that English is the lingua franca of our days.

A step back: here’s the etymology for the original lingua franca (from Wikipedia):

The term "lingua franca" is from a particular example, Mediterranean Lingua Franca. Lingua Franca was a mixed language composed mostly (80%) of Italian with a broad vocabulary drawn from Old French, Greek, Arabic, Portuguese, Occitan and Spanish. It was in use throughout the eastern Mediterranean as the language of commerce and diplomacy in and around the Renaissance era. At that time, Italian speakers dominated seaborne commerce in the port cities of the Ottoman empire. Franca was the Italian word for Frankish. Its usage in the term lingua franca originated from its meaning in Arabic and Greek, dating from before the Crusades and during the Middle Ages, whereby all Western Europeans were called "Franks" or Faranji in Arabic and Phrankoi in Greek during the late Byzantine Period. The Douglas Harper Etymology Dictionary states that the term lingua franca was first recorded in English in the 1670s. An earlier example of the use of lingua franca in English appeared in 1632.

In other words, lingua franca was nobody’s first language, but it was used for communication between many different people who could not speak each others’ first languages. In a world in which commerce might require communication with people who spoke Italian, French, Greek, Turkish, Arabic, Hebrew, Ladino, Portuguese, Spanish, and any number of other languages, it was simply not practical for most people to learn every one of those languages.

This is exactly how it works with English today. If a Finn, a Swede, a Spaniard and a Chinese need to communicate, the odds are good that they will do it in English. Therefore, if you want to be a part of those conversations, you’d be better off learning at least some English.

But I thought you liked Stack Overflow launching in Portuguese!

Yes, yes I do.

There’s a difference between saying that a Portuguese-speaking developer should learn English in order to be part of a wider international community, and saying that all Portuguese speakers must learn English in order to learn how to develop. My hope (and, I imagine, the hope of the good people at Stack Overflow) is that many of those new developers will go on to join the bigger conversation on the English-language site.

On the other hand, they shouldn’t have to learn English just to get started. In particular, the SO blog post points out:

How old were you when you first realized you could type things on a keyboard and control machines? Great. Now, at that age, were you proficient enough in another language to have learned to code without any English?

There’s your answer. That’s why resources need to be available in local languages. Individuals should learn English eventually, but they should not be obliged to just to get started.


Image by Caroline Gutman via Unsplash

Flappy Mario

tumblr_n0pfhlcETG1qiof36o1_500.gif

Okay, funny, but there’s a dark side to the whole Flappy Bird story:

For years now, the iTunes (and lately Google Play) app store has been this gigantic, rushing torrent of infinite money, and everyone has scrambled to grab their piece.

It's the most soulless, joyless, metric-obsessed market/ethics-free-zone imaginable. There is nothing that can't and won't have all fun and creativity sucked out of it to earn an extra penny from the "whales" (i.e. compulsives) who will happily shell out a hundred bucks a month to get Candy Crush Saga to let them play Bejeweled. (Hot tip: Uninstall Candy Crush Saga and play all the Bejeweled you want forever ad-free for three bucks.)

So for the last couple weeks, people, when they weren't raging about EA's pillaging all of their happy memories of Dungeon Keeper, were noting the runaway success of a tiny, free, ad-supported game called Flappy Bird.

Of course we all know how the story ends:

Read the whole thing here. Sad.

Il nuovo latino

Enrico Signoretti scrive Sul valore di scrivere un blog di IT in Italiano.

Da un lato capisco che il blog in inglese ha una portata decisamente maggiore e capisco anche che alcuni articoli, magari quelli più tecnici e specifici, hanno una rilevanza internazionale maggiore, proprio perché interessano ad un pubblico più selezionato, e quindi i numeri li puoi fare solo all’estero.

Capisco anche che la "lingua ufficiale" dell’IT è l’inglese.

Poi però, se mi guardo intorno, non trovo molti blog in Italia che si occupano di enterprise IT e, soprattutto, non ce ne sono che lo fanno con costanza (non dico quotidiana, ma almeno un aggiornamento ogni tanto quello si). Anzi, sono alla continua ricerca di altri blog Italiani da seguire ma alla fine è pieno di telefonari e sysadmin che scrive articoli per altri sysadmin (spesso riprendendo stessi argomenti già sviscerati 1 o 2 anni fa su blog esteri).

Insomma, il panorama mostra una povertà di fondo abbastanza desolante.

Dato che questo è solo il mio secondo post in italiano1 mi sento un pochino chiamato in causa. È vero che scrivo soprattutto in inglese, ma questo è perché l’inglese è ormai di fatto il nuovo latino.

Sì, latino, non Esperanto - e non solo per ricordo dei miei anni di liceo classico! L’Esperanto è una lingua assurda, creata a tavolino e parlata da nessuno. Il latino è rimasto per secoli dopo la caduta dell’impero romano la lingua utilizzata per comunicare fra persone che parlavano lingue diverse. Il latino è stato finalmente scalzato dal suo discendente, il francese (lingua franca, per l’appunto) che poi ha spadroneggiato fino agli inizi del XX secolo. Solo da allora l’inglese è diventata la lingua internazionale per antonomasia, ed in alcuni ambiti hanno resistito altre lingue fino a poco fa. Ad esempio mio suocero, ingegnere meccanico, ha imparato il tedesco, non l’inglese...

Oggi se un ceco, uno svedese, uno spagnolo ed un cinese devono comunicare, oltre a sembrare l’antefatto di una barzelletta, si parlano in inglese. Non è esattamente una questione di egemonia culturale anglofona, dato che l’inglese ormai è parlato da molte più persone come seconda lingua che come prima.

Se vuoi essere aggiornato, inserito in una comunità di gente che ha i tuoi stessi interessi e non solo che parla la stessa lingua, dovrai per forza almeno arrangiarti con l’inglese. Viceversa, se vuoi che i tuoi post siano visti da più dei dieci lettori di manzoniana memoria, dovrai scrivere in inglese.

Statistiche di questo piccolo blog dicono che la maggior parte degli utenti hanno il linguaggio impostato su en-us o en-gb, e pochi su de, it e ja (vorrei sapere chi è il mio lettore giapponese!). Se però teniamo conto che molto spesso en-us è il default che non viene cambiato, vediamo quanto possano essere internazionali quei lettori in inglese.


Enrico Signoretti se la prende anche un po’ con il campanilismo del mondo tech italiano:

I peggiori sono proprio quelli che, spesso, sono più attivi all’estero. Non è inusuale infatti che quando scrivo articoli con fanno dei commenti che infastidiscono un vendor i dipendenti Italiani si "offendono" e, invece di mostrare il loro punto di vista sul blog, si mettono a mandarmi mail personali per dirmi che sono scorretto o, peggio, ricevo messaggi da amici che mi dicono "qua pensano di fare azioni contro di te" o cose ancora più ridicole.

[…]

Mi piacerebbe più interazione e meno gente stizzita, non si capisce mai per cosa poi. (e non trincerativi dietro le politiche sul social media della vostra azienda perché se no non si spiegherebbe come fanno i vostri colleghi all’estero!)

Qui si incastrano correnti diverse. Il dipendente italiano del vendor internazionale si sente a volte come nell’ultimo avamposto di periferia dell’impero. Non ha né i vantaggi di essere in frontiera, libero di fare quello che vuole, né quelli di avere una struttura solida dietro di sé. Rispetto ai colleghi esteri ha spesso prospettive di carriera più limitata, e come sempre negli ambienti un po’ claustrofobici, la politica diventa cattiva.

Io lavoro in Italia, ma raramente con l’Italia. Interagisco più spesso con clienti in Finlandia che in Italia, e non solo perché misteriosamente in quel paese piccolo e frigido si riescono a fare progetti molto più in grande che non qui da noi.

La conclusione però è la stessa: parliamo inglese, mettiamoci su una piazza più internazionale che possiamo, e l’italiano lo parliamo a casa e fra di noi. Triste? No, realista.


  1. Ecco il primo

Feature-complete

I was reading a piece in the WSJ which is a perfect example of a very common mistake in product strategy: The Business Card Will Not Die.

When the tech-savviest people on the planet meet, how do they exchange contact info? The same people who hail taxis by app and pay back friends via email have a wild way of sharing details: They hand over paper business cards.

And the only thing worse than handing over business cards is not having any to hand over. My own new business cards have yet to be printed. But if everyone I meet these days has a smartphone, with memory and wireless capabilities galore, why do I even need these 3.5 x 2 inch pieces of card stock?

The question is phrased as if it were obviously absurd - but it’s not. The article goes into a few of the suggested replacements, and guess what? None of them are as good as the humble business card!

One requires NFC, which not many phones have. Another requires scanning QR codes, which is fiddly. Bumping phones seems like it should work, but I had the app on my phone for a year and never met a single other person who used it. Ditto for the audio tones in Evernote Hello.

If you want to replace a universally-adopted technology, your replacement needs to be not just as good as what you are trying to usurp, but substantially better. Business cards have a very high bar for replacement:

  • Universal compatibility

  • High legibility

  • No battery life constraints

  • No network connectivity requirement

  • No potential security hole

What, security on business cards? Well, yes. Any time you accept data into your device, you run the risk of unwittingly executing malicious code. NFC seems the most vulnerable tech, but a QR code could redirect to a trojan, and do so transparently so that users are not even aware their connection has been hijacked.

In contrast, the business card works as-is in just about any situation. You can exchange cards in a moment, stick them in a pocket with confidence that they will still exist and be legible later, and carry effectively unlimited numbers about until you’re ready to go through them.

This doesn't mean that you’re stuck with the cards, of course. Cards work well as a vector for information, but less well as an archive. For a start, the search capabilities are terrible. Personally, I import the data with Evernote Hello, which makes it easy to scan and OCR the contact info from the card itself, geo-tag the contact, add notes on the conversation, and save the lot in the cloud.

The answer is obvious for business cards, but too many businesses try to do the same sort of thing in other fields. If you get frustrated with explaining how your app is better than existing options, it might be time to take a step back and see whether you’re not better off building a complementary solution instead of attempting a displacement.


Image by Diogo Tavares via Unsplash

(Not so) Benign neglect

IT: "We won’t support you weirdos and your Macs."

Me: "Oh, so it’ll be like that time my Windows laptop lunched everything in the Registry to do with network interfaces, and your offered solution was for me to airmail you the hard disk drive for you to format it and reinstall the OS. Got it. Quaking in my boots, I am." Proceeds to order MacBook


Time passes


IT: "We will be upgrading the webmail servers [which Mac Outlook relies on] over the weekend."

Me, on Monday morning: "How come I seem to have a 25% success rate in sending e-mails all of a sudden?"

*headdesk*

I get that IT can’t support every crazy thing that users get up to. Really, I do. I used to be a sysadmin - ok, a PFY, but still.

But would it be too much to ask that at least things that are IT’s responsibility get done properly? Or is this going to be like the time I wrote in to point out an expired SSL cert, and was told that to make the error go away, I should stop using Firefox?

Intersections

A wise person once advised me to try to find my own intersection.

No, this wasn’t advice about a street map! The idea is that all of us are in various circles, starting from the most inclusive ("human") and going through increasingly selective ones ("database high-availability expert", "lutenist", "olympic athlete"). Very few people can be at the absolute pinnacle of any one field, but if you place well in a few different fields, you have a shot at placing very well at the intersection of those different circles. I’m not a betting man, but if I were, I would lay good odds against there being many people in the intersection of the three random fields I threw out there!

1476382_10153661810990013_1990982286_n.jpg

I am still working at getting better at everything I do, and indeed adding new circles if I can, "father of a girl" being the latest. I did have cause to ponder the following question yesterday: what is the intersection of the sets "marketing professional" and "busts out awk at the drop of a hat"?

Context: I was looking back at the past year of (work) blogging, and wanted to see posting frequency, average views per post by author, engagement, and that sort of thing. Our blogging platform does not seem to let ordinary users dump data to file - admins may have that capability, but I don’t. This meant that my first hurdle was getting the data out.

Predictably, Excel choked when I simply copied from the web page and pasted into a worksheet. Browser developer tools helped me make sure that I was copying just the table and not extraneous DIV elements, but the data I wanted were split across multiple pages, and Excel couldn’t handle multiple TH table headers, especially in combination with cells spanning multiple rows.

I ended up pasting the raw HTML into vim, cleaning it up so it was all a single TABLE, and dropping that into Excel.

Next problem: Excel can’t handle dates.1 Despite the dates being in one of the formats Excel claims to recognise (like "February 7, 2014") I could not for the life of me persuade it to treat that cell as a date, even after trimming the trailing timestamp.

Back to Terminal! A quick romp with vim and awk produced the following (in case it’s useful to anyone else):

 BEGIN {

      FS = ";"

      OFS = ";"

      split("January February March April May June July August September October November December", month, " ")

      {

           for (i in month) {

                month_nums[month[i]]=i

           }

      }

 }



 {

      split($7, datebits, " ")

      myday = substr(datebits[2], 1, length(datebits[2])-1)

      myyear = substr(datebits[3], 3, 2)

      mymonth = month_nums[datebits[1]]

      likes = substr($3, length($3))

      bookmarks = substr($4, length($4))

      print $1, $2, likes, bookmarks, $5, $6, myday"\/"mymonth"\/"myyear

 }

Note that despite the fact I had told Excel to export as CSV, meaning comma-separated values, it actually used semicolons as the separator, so I had to set the separator for awk myself with the FS and OFS variables. Yes, I know it’s probably possible to persuade Excel to do the right thing here, but this was easier and quicker.

This translates my extended "February 7, 2014" date into "7/2/14" format, which Excel seems to be able to digest, now that its food has been chewed for it by awk. I was then able to use fun Excel functions like FREQUENCY and SUMIF to actually extract and graph the data I was after in the first place.

Fun times. Nearly as fun as that time I had to turn to Ethereal and rtmpdump to watch some videos when the online Flash player turned out to be even more brain-dead than is usual for the breed.

So much for marketing types only knowing PowerPoint…


  1. Well, we knew that. If I had a buck for every time I have wanted to murder whoever coded Excel's date-handling routines, I'd be able to afford that Porsche. The reason they are so bad is they work just well enough that you can't treat the dates as strings, without actually, y'know, working for date manipulation - hence the whole expedition with awk

We don't have to care, we're IT

Brian Katz comments with his usual incisiveness on Mobile Device Management (MDM) in "IT is in the Experience Business".

MDM is dead and it’s been dead for a long time.

Oh thank $DEITY. As I have had occasion to comment myself, users don’t want their devices to be managed. They - or in fact we, since I’m a subject of MDM, not an admin - will tolerate a reasonable amount of inconvenience in the name of what we recognise as reasonable security requirements. What we don’t want is for our phones to end up like our Windows laptops, taking half an hour to boot and prone to all sorts of random malfunctions, slowdowns and incomprehensible roadblocks due to the number of "security" solutions they are larded down with.

This is exactly what is driving the enterprise adoption of Macs. Techies had been running Linux and maybe keeping the corporate Windows image around in a VM, but now civilians are moving to the Mac as fast as they can manage. Now we know the answer to the question "how bad do products have to be to drive even Muggles to change platform?".

IT isn’t just in the solution business anymore. It can’t be reactive and spend months trying to build the perfect thing the business asked for but needed much sooner than IT could deliver. IT is in the experience business. Users need to have great interactions that lead to fantastic experiences that help them get stuff done and move the business towards its goal.

(Emphasis mine)

Exactly right. Enterprise IT apps are all overgrown with feeping creatures, and users can’t get away from them fast enough. It doesn’t matter whether the apps are home-grown or COTS that has been customised, because the issue is not a technical problem but a worldview problem within IT.

Enterprise IT departments have always operated like The Phone Company, but this is now a post-breakup world, and now IT does have to care. Users bring their own tools, their own devices, even their own clouds. Users help themselves and each other; anything to avoid dealing with the hell-desk.

But things don’t have to be this way. Brian concludes his post with this statement of the business of IT:

We’re in the business of providing secure right time experiences that allow the user to (in the words of the army) be all they can be.

Now that is an IT vision that users might actually enjoy.

Jumping the fence

Facebook just released their new iPhone client, an app called Paper. It’s quite nice, and gets good reviews.

Bit of a jerk move on the name, mind.

If you are in the US, you can just download Facebook Paper, but if you’re in the rest of the world, you’re out of luck.

Or are you?

There are a few different unofficial ways to get apps onto an iPhone, bypassing these sorts of geographical restrictions: sideloading, changing the country on your existing iTunes account, or creating a whole new Apple ID from scratch.1

Sideloading

Sideloading2 means that you install the app from your computer, but without going through iTunes. You will need to have access to the actual app file, so you will need a co-conspirator in the US to get you the app. Your confederate can find these as .ipa files in the iTunes Media/Mobile Applications subdirectory of their main iTunes directory.

Once you have the relevant .ipa file, you can use the iPhone Configuration Utility3 to load the app onto your phone. Once you’ve done this, the app should behave normally, including for updates.

Changing the country

You can change the country of an existing iTunes account quite easily: open the App Store app, scroll all the way to the bottom of the "Featured" tab, tap on your Apple ID, choose "View Apple ID" in the popup, and tap on "Country/Region" to change to the US store.

HT1311_03--account_settings-002-en.png

There is a pretty big downside to this method: your payment details will be reset, which would not be too bad, except that it also loses any recurring subscriptions you have set up. I have a few that I didn’t want to mess this, so I didn’t follow through, and can’t vouch that this method works.

Creating a new Apple ID

I didn’t want to do this because it seemed like it would be a huge hassle, but it’s actually fairly painless. There is only one wrinkle to be aware of. Apple in their wisdom will not let you create an Apple ID from scratch without setting a means of payment. However, if you sign out from your existing Apple ID, then go to install a free app (such as, oh for instance Facebook Paper), you are prompted to log in with an existing Apple ID or create a new one. If you start the process this way, you will then be able to select "None" for your method of payment.

none+iphone+13+11+16.jpg

You’ll need an e-mail address that you have not previously used with Apple to complete the registration. Once you have done this, finish downloading Facebook Paper, then log out of your US account and log back in as yourself.

Facebook Paper should pick up your existing FB credentials saved in iOS and work normally from this point on.


  1. Well, or move physically to another country, but that’s a bit beyond the scope of this post. 

  2. This is the method I used to load Google+ onto my iPad back when it was iPhone only. Remember when we were all excited about G+? 

  3. This page is not really up to Apple’s usual standards: all-lower-case title for a start, and a confusing mix of version numbers and platforms all jumbled together with no explanation. 

#ScumbagPenTester

tl;dr version: CISO pays for pen-test, receives ridiculous report. In addition to involving legal, he shares it with a prominent security blogger. Hilarity (and viral hashtag #ScumbagPenTester) ensue.

My favourite bit of the report is probably this:

MySQL configured to allow connections from 127.0.0.1. Recommend configuration change to not allow remote connections.

I

used to put stuff like this in pen tests to see if my boss was paying attention.

This sort of thing happens
in every industry, but what shocks me is that someone would try it on in an area like security. If you know you need a pen-test, surely you know enough to recognise 127.0.0.1?