Monthly Archives: January 2013

Interview from Another Dimension

I was asked if I was interested in covering a temporary administration position a few days ago because finding bilingual Unix people is pretty hard here in Japan. It sounded marginally interesting and stood a chance of getting me in touch with the local Unix community, so I said sure, have the interviewer give me a call.

One day the positioning agency asked for a resume. I sent one in. The next day at 3pm I got a call saying that I would get a call an hour later to conduct a phone interview.

At 4pm I didn’t get a call.

At 5:30 I called their office back to say that I didn’t get a call. They called me back asking if I’m still available today — I tell them that if its OK that I’ll be playing with my kids then I’m game. They call back again telling me that the company is really going to call this time but from the office in Yokohama, not Okinawa — I’m fine with that. They also told me that the guy calling would “be a foreigner, like you” — I’m fine with that, too.

Not a minute later I did get a call but not from Yokohama, and from a foreigner but not “like me”. The call was from India over the world’s worst connection.

This amazed me. For one thing it was 2013. I expected bad connections when calling across multiple satellite hops from contested jungle territory in Southeast Asia in 2004. But this was a lot worse than that, and this guy was supposed to be calling from an office. And he supposedly works for a high-tech company looking to contract me. It bears mentioning that you could get crystal-clear cell connections from most of Afghanistan in 2010.

So that was the first weird smell. The second hint of rotten tuna was the voice. I couldn’t, for the life of me, understand most of what he was trying to say. I’ve never been one of those “You gotta speak ‘merican!” types (hard to justify it being an expatriot myself), but if you’re going to speak English it should be English and should be intelligible, if not at least generally correct. Otherwise speak Japanese, or German, or get an interpreter, or have someone else do the interview — I’m open to any of the above. If you do know English but have a heavy accent, just slow down. But such ideas are lost on some people.

His speech had a magical pattern to it. Merely missing syllables or mushing sounds together like most non-native speakers was beneath this guy. He set a new standard for unintelligible second-hand language by injecting new syllables and sounds into each word.

The deft ease and fleet pace at which he mangled the language makes me think in retrospect that he probably considered English to be his first language. Maybe it was just taught to him wrong as some sort of cosmic joke. It was what speech would sound like if you could somehow hear a hash salt being added to it. This blew Pig Latin out of the water.

An abridged transcript of the conversation follows:

indian_guy_voice

Him: “Dis is Gumbntator Hlalrishvkttsh koling flum Ueeplo en Eendeya an ayam surchelin Mestarh Kleg Ewurlet?”
I could sort of make out what he was trying to say.
Me: “This is he.”
Him: “Ah see. But dis is Governator Ralrishevdish koling flum Weepro en Indeya an ayam surchen Mestarh Kleeg Iwuuret?”
Perhaps he couldn’t make out what I was trying to say?
Me: “Yes, I am the person you are looking for.”
Him: “OK.”
Me: “…”
Him: “…”
Me: “You are calling about the interview?”
Him: “So ifna kolik abbaud arun foha.”
Me: “I’m sorry, the line is echoing very badly, can you please say that again?”
Him: “So if colling aboud arun four?”
So here I think he’s calling to schedule a call at four because they screwed up today’s schedule already.
Me: “Tomorrow? Yes, you can call me at four.”
Him: “OK. So hou abbaud you al habing eksperens an de Sulrais Ziss?”
Now I don’t know what he’s saying, but I know its not a scheduling question.
Me: “Can you please say that again? This connection must be very bad.”
Him: “You al hawing eksperens wit Lenaks an de Sularis swistems?”
Me: “Yes, I have experience on Linux and Solaris systems. Mostly Linux, though, because that is the platform I develop on.”
And here it began to dawn on me that this was the actual interview. In Indo-Pig Latin.
Him: “Okai. Bud wud abaudd yor kulanted lol on de dekuhnikal missm?”
Me: “I must be having a bad phone day. Please give me a moment to get to a quieter room so I can hear you.”
Him: “So komaing fru dat ayem ah phookink zandngar an…” [and so on…]
He kept babbling on and on about something that I couldn’t hear as I moved to an environment better suited to auditory-verbal cryptanalysis. Hope I didn’t miss anything paradigm shifting.
Him: “…[continued spacetalk]…”
Me: “What would you like to know about my experience?”
Him: “Inna suba sisesutm hau ew mak da pashink?”
Me: “The reception is poor again, can you please say that again?”
Him: “Inna subaa susutem hao eww poot a pach?”
Me: “Patching? Are you asking me how to patch a server? It depends on what you mean by ‘patching’. Are we patching sources to rebuild a program, or installing upgraded binaries through a package manager or performing an automated patch and rebuild the way ebuilds and ports work?”
Him: “Yesss. Inna sabaa, hou eww poot a pach?”
Me: “What system are we talking about?”
Him: “Inna sauce.”
Me: “Sauce? In source? Oh,  Solaris? If we are receiving updated binaries I would use the package manager. I haven’t seen people bypass IPS and use the patch manager directly for a while.”
Him: “Zo uatt ai am gunda be dou nuh is abbauda passhin inna sabaa. Hau yu du?”
Me: “I’m sorry, I think you are asking me how I would patch a Solaris server, and without knowing anything else about the question I think you mean we are receiving updates from a repository. My answer is that I would use the package manager, probably IPS, or if just patches then the old patch manager. But I don’t really understand your question. It is really broad.”
Him: “SO hao eww do?”
Me: “You mean the command sequence?”
Him: “Yeis.”
Me: “You want me to spell it out over the phone?”
Him: “Yeis.”
I couldn’t help but snicker a little… is this really the way system administration interviews go?
Me: “OK, which version of Solaris?”
Him: “Inna sabaa.”
Me: “I understand in a server, but that doesn’t really change the question much, unless I’m missing something. Which version of Solaris? We are talking about Solaris, right?”
Him: “Zo vot ah em denkning niss uii nut dokkin abbaud da deweropent zicheeshn. Dust a passh a sabaa.”
Me: “Right, not a development situation, just patching a server. But this is a difficult question to answer unless I know what system we are talking about. They don’t all work the same way.”
Him: “Du eww habba poosiija fou da makkink na fou da af emma lepozitorian?”
Me: “I’m sorry, the phone is being worse than usual again, can you please ask the question again?”
Him: “Enna proosiija fou passhing. Eww habba lepozitori an poosiija. Du garanti ob da safti?”
Me: “My procedure to guarantee the safety? You mean during patching? If I make a repository? Was that part of the question?”
Him: “Yeis.”
Me: “OK, yes, in a production environment I would expect that we have separate testing and production repositories at least. I would patch or update the test servers, run applicable tests for whatever application or server software we have installed, and then deploy the update to the production servers. But this is a really basic thing to say, and I can’t give you any details without knowing what system we are talking about. Is this even a Solaris question?”
Him: “So abbaudda Lennuks.”
Me: “Linux? The question is about Linux?”
Him: “Onna Lenuks hau eww makka lepozitori?”
Me: “Repositories on Linux? Which distro?”
Him: “Onna Lenuks.”
Me: “OK… What package manager are we talking about? RPM, yum, smitty, portage, aptitude, they all do things very differently. Even RPM is different on different distros that use it.”
Him: “Yeis. Onna Lenuks. Hau eww mak da lepozitori?”
Me: “Just assuming you mean Red Hat or CentOS or something else derived from Fedora, I would collect the RPMs we want to distribute, sign them, write a meta RPM for yum installation that has the public key and config file in it and build the repository metadata with createrepo. But if this is not a development environment we’re probably just mirroring an existing repository, so most of the time syncing with the master is sufficient. If not we could sync, re-sign, and recreate the repodata with createrepo.”
Him: “So hau eww mak da lepositori?”
Me: “I think I just told you. I have maintained several software repositories in the past and using createrepo is by far the easiest and most reliable way to do it, if we are talking about a yum repository full of RPMs for a distro like Red Hat Enterprise Linux.”
Him: “Yeis. So da Redhat.”
Me: “Maybe I don’t understand the question. You want me to tell you how to create a repository?”
Him: “Inna Lenuks hau eww mobbing fom weri zmar drraib enna rojikalworuum?”
Me: “Sorry, I can’t hear the question very well, the phone is full of echoes. You are asking me in Linux how to do something?”
Him: “Mobbing werri zmorr drraib anna rojikalworuum.”
Me: “Moving a small drive in Logical Volume Manager?”
Him: “Yeis.”
And here is where it dawned on me that I should have hung up at the first sign of weirdness. Instead I had hung on and now I was really along for the ride. Until the bittersweet end…
Me: “Do you mean changing a physical block device from one volume to another, or moving the volume itself?”
Him: “Retzsai eyabba  werri zmorr drraib anna wanna denk u poot enna rojikalworuum. Hau kann godu boot?”
Me: “You are asking me how to move a Linux installation from a small drive onto a logical volume, and then boot it later?”
Him: “Yeis.”
Me: “Assuming this is a simple case I would copy the filesystem to a new partition within the logical volume and add an entry to the bootloader so that we could boot it from the new location. But what bootloader we are using in this case? Grub or LILO or Grub2?”
Him: “Inna Lenuks.”
Me: “Right, in Linux, but which bootloader are we using?”
Him: “In da Lenuks.”
Me: “Right, but are we using Grub or LILO?”
Him: “LILO. Inna Lenuks.”
At this point I was relieved just to get something other than “Inna Lenuks” by itself out of him.
Me: “OK, assuming that the version of LILO we are using is logical volume aware, I would add the entry to the LILO configuration file that points to the location of the kernel on the relocated installation.”
Him: “Wat fail?”
Me: “What fail? You mean what file? The LILO configuration file.”
Him: “So wat fail?”
Me: “You mean where is it? Its usually in ‘slash E T C slash L I L O dot C O N F’.”
Him: “Inna Redhadd.”
Me: “In Red Hat? LILO isn’t a part of that distro any more. They use Grub2 now.”
Him: “Uadda za komunt fur addikt inna neu intree?”
Me: “The command for adding the new entry? There is not a command to add a new LILO entry, you have to edit the configuration file directly. Grub2 has some commands like grub-install and grub-update. But you still have to check the configuration file to make sure things are in the right place. Is that what you mean?”
Him: “Inna Lenuks?”
Crap! We’re back to this again. I really don’t know how to debug this guy. He’s worse than the Emacs Psychoanalyst.
Me: “Yes, in Linux. But this is not exactly a Linux question. The bootloader can load anything, so I don’t know what you mean.”
Him: “Adnanujinnadundaweenananndana…[A good five-minute bunch of spacetalk that I completely cannot understand. It was riveting, though. Like a symphony it had its own movements. Initially with the monotone of a public announcement, then to the lively staccato of a friend relating a happy story, capping with a crescendo of alternate gravelly and soft sounds unique to Indian speakers, and ending with a friendly chuckle — as if he had enjoyed himself and was ready to say goodbye.]…”
Me: “OK, thank you for the call.”

I have no idea what most of that was about. I got the feeling he asked me some Solaris questions and some Linux questions and some general installation-wide question at the end that I never quite got a fix on. Actually, I never quite got a fix on anything at all, and I don’t think he did either.

This was the weirdest interview experience in my life. It is like a trick they would pull you at Robin Sage but this guy was for real; no OC is going to come evaluate me on how I did and counsel me how to better deal with the crazy and ambiguous.

Now for the scary part. This is the new face of IT outsourcing. Think long and hard whether you want to trust your data integrity and the construction of business systems you expect to get reliable answers out of to companies that have trouble communicating with their own (prospective, in this case) subcontractors and employees.

Since this is Japan, I wonder how on earth they manage to conduct interviews of Japanese people?

Am I alone here? Has anyone else ever experienced this sort of thing? (Other than when calling Dell or Microsoft tech support and being redirected to India, that is.)

Freenode Year-End Weather Review and 2013 Forecast

##c, ##c++, ##java, ##javascript and almost all other channels named after an Algol-descended language remained strong in n00b angst and help-vampire congestion (strong counter example is #bash, see below), rendering them useless for anything other than observing flame wars amongst programming newbies arguing over terms they’ve only just discovered on Wikipedia. Expect no change in temperature or inclination for 2013, and as always prepare for flurries of students hoping to get their homework done for them throughout August, October, December, March and May.

#bash took first place for overall 24-hour activity within its stated zone in 2012 — quite an achievement. This was enabled by nothing more than the militant purism of its main participants who happen to actually know (most of) what they are talking about. The intensity of discussion in #bash is likely in increase over 2013 as realization dawns on more new *nix admins and even OS X users that their systems represent a complete programming environment. A corresponding increase in the volume of beginner reference links in-channel is likely — with an associated increase in RTFM calls directed at those who don’t read links or delivered by the less patient/coddling of the regulars.

#fedora, #ubuntu, #centos, and other distribution-named channels fell into two categories in 2012:

  1. overrun with help-vampires asking the same 3 new-release migration questions
  2. overwhelmed with utter silence

The channels #ubuntu and #centos took the first-place poo cake for overall deafening off-topic, RTFM-worthy and amateur architectural astronautic clamor while #archlinux, #gentoo and #fedora managed to achieve a much better signal-to-noise ratio, mostly due to a greater percentage of knowledgeable participants. Expect very little change in 2013 with the exception of #ubuntu and #fedora. The former may grow even worse as the population of those who don’t know any better flock to Ubuntu as Steam picks up, er, steam and the latter may grow gradually quieter as new changes implemented in Fedora 18 cause a probable nose-dive in that distribution’s popularity across the year.

#django was one of the strongest on-topic, 24-hour hour activity channels focused around getting actual work done, with the vast majority of interaction involving at least marginally researched questions and a great deal more courtesy than usual this millennium. This indicates that the Django project has likely reached its Goldilocks point as a project where it is just enough below the radar that the “new thing” from 1~2 years past is still soaking up the n00bs, b00bs and help-vampires (in this case, #RubyOnRails) and enough srsly gentlemen have noticed it to make it a usefully mainstream place to work. If no unexpected storms of blockbuster “Lern da Web wit Djago in 10 Dais!!1!” tutorials or books occur across YouTube and bookstores expect #django to experience only a slight increase in temperature and no bumpkin brain blizzards or humility hurricanes. The status of Django on Python3 is the most likely leading indicator of trouble here (see below).

#django-dev was boring and dead for the most part, aside from the occasional thin mist of packager discussion and “why doesn’t the TLS setting for mail mean real TLS on the correct port?” talk (nonsense!). Some rumblings of the impending Python3 reckoning could be heard, but were still far enough in the distance as to avoid a full-blown #fedora style storm in 2012. Expect this to change in 2013, as Python3 will finally give Django devs enough to talk about to wake kick them off of the ML and into IRC activity. The action is likely to be a bit below storm-strength due to the project’s (general) adherence to its own release guidelines, but may from time to time bear watching.

#RubyOnRails and related channels were clogged with help-vampires and n00bs in similar fashion to the Algol-language and distro channels. This has remained fairly steady since 2009 or so, with the effect being bolstered by the presence of all those people who gave up on mobile programming just before they might have actually figured out how native applications work. Save a major drive to some other fascinating technical mistake (“Web 3.0?” “cloud vX”?) that goes viral, the Rails community will likely continue to experience idiot floods and hails of stupidity through 2013. For the serious who are in need of actual relevant discussion, forums, IRL meetings with Real People You Know and project-specific channels for projects that happen to be built around Rails will be the only places to find it.

#guile managed a slight edge over both #lisp and #scheme last year in Occasional Wizardry, but the overall volume of discussion was far lower than either #lisp or #scheme — giving #guile the best signal-to-noise ratio anywhere but also rendering it an incredibly boring place to hang out on an average day (as in, #guile remains a statistical outlier, though an interesting one). It is uncertain whether the effects of a new project, a new major version or a new implementation of Guile, Scheme or Common Lisp will have any effect or even be noticed by anyone, anywhere, so a prediction for 2013 is beyond me. I have a sneaking suspicion that someone might eventually catch on that guile2 includes a webserver ready-made for scripting in a functional language (among other features), but the population of paren-loving teens is so low at the moment and the current infatuation with the Web and the Java religion of Absolutely Everything Must Be An Object (Amen) still so strong with the sort of computer science faculty that thinks that every student should get a gold sticker for showing up that it is hard to see if anything short of a viral breakout video complete with tits, violence and gore would be noticed.

#haskell took first prize in 2012 for overall, unadulterated, near-constant uber geekness and Deep Black Magic. Three factors influenced this strongly: the near exclusive population of serious math nerds who like to flaunt their grokness, the tendency of such people to never admit they don’t grok a mind-melting snippet in channel and instead boil in silence until something makes sense to them, and the tendency for newcomers to either struggle unflaggingly until they earn their place among the immortals or simply give up and never, ever venture into #haskell again. In this, the uniqueness of Haskell as a language serves a positive filtration role in the community much the way that the old “be smart or go home” sort of freshman math classes did back when it was OK to admit that computer science wasn’t for everybody. Expect very little change to this trend in 2013, though by the end of the year commercial projects using Haskell may be revealed as actually using Haskell, and this may drive a slight, temporary increase in interest.

#erlang was a bit like #haskell, but more average in every aspect: less magic, more noise, fewer quitters, more eternal (but not really annoying) n00bs. This is mostly due to the revelation among high schoolers and college language hipsters that Facebook uses Erlang for a smattering of projects that can’t afford downtime and how Erlang can cope with such requirements in a novel way. Other functional language channels generally fell into the pattern of the lisps and Haskell and Erlang, but these last two deserved particular mention. In 2013 Erlang stands a very small chance of sucking brains away from other interesting languages such as Lua and anything matching .*ML.*. In that case expect Erlang to eventually grow more like #bash in nature over 2013, with a particular threshold being crossed if #erlang itself becomes a bothersome place to hang out due to an excess of help-vampires and alternative Erlang-based project channels becoming the alternative arteries of community brilliance. Saving such a spontaneous increase in notoriety, however, #erlang is likely to follow or return to the majority patterns of 2012.

This has been the Freenode Year-End Weather Review and 2013 Forecast. All other networks either suck or were set up with specific crowds in mind (such as botnets).