Category Archives: Technology

Three letter ccTLD domains

The Ring of ccTLDs #3

The Ring of ccTLDs #3 by Grey Hargreaves.
Creative commons license, found on Flickr.

My registrar of choice, Gandi, had its 15th anniversary this month. Apparently, I’ve been a customer for 15 years too. Has it been that long? Anyway, they gave away prizes and I’ve got codes for three free .xyz, one free .me, a .com at 50% and a .eu at 1€. To be entirely frank, I have no idea what to do with any of those codes1, but as you do when you get something for free, you tend to look what’s up for grabs. As the shortest, non-grandfathered, domain names you seem to be able to get are three letters long, I tried a few for .xyz and to my surprise I saw that the corresponding .lu was free.

That was a surprise. I’d have expected that most, if not all, three letter .lu domains would be taken. So I decided to investigate. A quick one-liner pounded the whois servers, and, well, I got banned quite quickly at my work IP address. I should have foreseen that. You might have seen a Facebook status about it, and someone suggested to first look whether there are DNS records2 and, then, and only then do the whois checks3. I decided to do exactly that and I ended up with 14291 three letter domains that have no valid DNS entries. That’s an amazingly a small amount. There are 26×26×26 = 17576 possibilites4, which means only 19% of all three letter .lu domain names have DNS entries.

Now, what? That’s way too much for bulk querying the whois servers and I had no desire to get my home IP blacklisted. My plan was to do one whois every 20 minutes, but that would make nearly 200 days. I decided to go manually over the list and pick the ones that caught my eye. I’m human, I get bored, so that’s probably why I selected more at the beginning of the alphabet. Anyway, I selected 87 domains for investigation and it turned out that 71 of those were not registered. Some examples (but really, just a few):

  • ado.lu : “ado” is French for teenager.
  • aes.lu : Advanced Encryption Standard. Neat to have as nerd.
  • asm.lu : Nobody in the demo scene got this? Seriously?
  • foo.lu, bar.lu, and baz.lu : Yes, you can still have the full metasyntactic-variable sequence. That “bar.lu” is isn’t taken, is simply amazing.
  • bbw.lu : I am so tempted to get this one.
  • bid.lu : For an auction site?
  • fac.lu : In French “la fac” is pretty much the colloquial equivalent of university.
  • fkk.lu : The Germans will understand.
  • gnu.lu : All hail Richard Stallmann!
  • jiz.lu : If you don’t know why, you need to have your perversion levels adjusted.
  • jts.lu : Ok, this one only means something to me. Online I get referred to as JTS. I don’t know when people started to do that, but I guess it’s because “jawtheshark” is too long.
  • nan.lu : Not a number. Another nerdy one.
  • pdp.lu : Neeeeerd! You should also take vms.lu, which is also available.
  • pie.lu : The cake is a lie, but the pie isn’t.
  • ocr.lu : Optical character recognition. I could see value in this if you’re in document management.
  • raw.lu : Calling the photography nerds… or for weird porn.
  • tit.lu : Again, I’m so tempted to take this one.
  • xen.lu : I should get this one, just for when I need to go freelance and want to offer virtualization services.
  • zzz.lu : Because I really got sleepy after going through so many domain names.

You can get the full list of the ones I verified as “not registerd”. (List without DNS entries) A .lu is free to register for everyone, worldwide and costs about 25€ per year.


Addenum
Apparently, while creating this post, I opened up the wrong list, namely the DNS verified one. My mistake. A few listed here are not free and haven’t been for a while. Those are foo.lu and bar.lu. No metasyntactic-variables for you. Sorry.


1I could add a few to my “free-for-friends” dynamic DNS. For now you can only get a subdomain of ipv4.lu.
2 Script used: for domain in `echo {a..z}{a..z}{a..z}`; do if [[ -n `host $domain.lu | grep NXDOMAIN` ]]; then echo $domain.lu; fi; done > threeletters.txt
3 Script used: for domain in `cat selected-domains.txt` ; do QUERY=`whois ${domain} | grep "% No such domain"` ; if [[ -n "${QUERY}" ]]; then echo ${domain} is free ; fi ; sleep 1200 ; done > available-threeletter.txt
4 Ignoring numbers, which would expand the search space a bit more.

iMess with your messages

iMessage chatI want to start off with the Hanlon’s razor:

Never attribute to malice that which is adequately explained by stupidity.

I’m going to talk about iMessage and about what I perceive as technologists making myopic decisions about how something should work. If you’re reading this you are most likely in IT, and perhaps even a programmer: we are trained to look for edge cases, trying to imagine the worst case and still having the damned thing work. Also, if you are in IT, you are aware about the hub-hub going around that Android switchers are penalised for the switch as text messages sent from iPhone users never arrive. I am, by now, convinced it is totally caused by the developers of iMessage living in a tech ivory tower. However, this is not what I’m going to talk about: I’m going to talk about iPhone users being unable to communicate in certain edge cases.

Some background:
An iPhone can send SMS, the “speech bubbles” in such a conversation are green. The way they are sent are through your cellular network: it works even if you have no data connection at all, not even GPRS. SMS is part of the GSM specification and is considered “best effort”. Despite that, it is incredibly reliable.
Contrast to iMessage, the blue “speech bubbles”, where a data connection is needed to send and receive messages. It doesn’t matter how you connect to the Internet, GRPS, 3G, Wifi Avian Carriers, as long as there is Internet. At first, you do think this is a rather reasonable condition, after all iPhone users are tech-savvy always-connected people who can’t live without their precious Internet. Right? Right?
How do I compose that sarcasm sign again?

The trouble is that iMessage, presents itself as a SMS (“Text Message”) replacement, without a way to revert back. Now first, I’ll tell you why it works so well in most settings. We, even the non-tech users, are pretty much connected 24/7 to the Internet in our daily lives. At home you have your wireless setup, at your workplace probably too, the Wireless of your preferred junk-food and junk-beverage places are configured and working. Even if that’s not the case, at least where I live, iPhones are sold with a reasonable data plan. You simply don’t care, anywhere in the country you are connected, which makes the difference between iMessage and SMS totally oblivious to the end-user and this is the typical “It just works” mentality that Apple is famous for. For iPhone users iMessage and SMS are the same thing.

First, to iMessages defence, I don’t know how it gets activated. Perhaps I did that myself, perhaps I clicked away an annoying dialog and accepted it one day. I don’t remember. Fact is, my wife, my mother in law and myself all use iMessage and I sure as hell didn’t “install” or “configure” it in the traditional sense. It was there, one day, and it worked. It might be my fault it has been activated.

So, here is how I found that iMessage has an unfixable problem, at least one I can’t fix, or I haven’t found the appropriate fix. The story involves three iPhone users, two of which are non-tech and yours truly.

My wife has been in Switzerland for surgery the last four weeks, and I made sure she could go on the hospitals wireless (Those Swiss sure know how to do wireless: the whole campus is flawlessly covered!). I even made sure she has my Ultrabook so she could waste all her time, trying to ignore pain. Well, that was of no use, as it seems that she basically uses her phone exclusively and she seems to use text messages all the time. I’m not big brother, but I know that at least her mother and me are those whom she communicates most with using SMS, of course, in reality that’s iMessage.

This works as, I’m always online and my mother in law has the “fuck-yeah-all-the-data-you-want” plan. Messages always arrive, life is sweet, the Internet is a blessing. Last weekend (I visit her every weekend), my wife tells me that her Mom can send her “texts”, but the texts she makes to her Mom never arrive.
This makes me look into the issue, and I realise: Mother in law is not in Luxembourg. She’s on vacation somewhere in Austria. That means roaming, and the default setting on iPhones is to disallow data roaming, which is a good thing. This means that my mother in law, does not have Internet connectivity. Knowing her, she will be unable to connect to public wireless hotspots.

To mother in law, everything looks normal. She is doing the same as always: sending “SMS” to her daugher and they arrive. The phone probably has the “Send as SMS” option activated, which falls back to SMS when no Internet connectivity is present. That is good. On my wifes side, however, her iPhone decides: “This is an iPhone, it can receive iMessage, so let’s send iMessage”. This is, I stress, not configurable. Not per number, not any where. So, my wifes messages to her mother disappear somewhere in a message queue somewhere on an Apple server to be delivered to her mother when her mother gets on the Internet, which will be in a week or two. Brilliant, just brilliant!

I have tried everything, deleting all Mother/Daughter threads on my wifes iPhone, deleting her moms contact entry in order to make it forget that it’s an iPhone and tell it that it’s a “mobile”. Nothing helped. There was no way to convince her iPhone to send SMS instead of iMessage to my mother in law. None.
I gave up in frustration and explained it to my wife, who was very patient and understanding, that we would have to disable iMessage and revert to SMS pure. It would be more expensive, as she is roaming too, but it at least she would be able to communicate with her mother and the problem would be gone. I did so, and indeed it worked.

Now think about this twice: at that point I did a major thinking error. Let me explain. That night I go to the hotel and about around midnight I get a text message from my wife whether I’m still awake. I was and I replied. To my surprise, I didn’t get a reply to my text. My logic error manifested itself, but I didn’t realise it yet. I only understood the next day: We shifted the problem. My phone was now insisting on sending iMessages to my wifes iPhone, but I totally disabled iMessage on her phone. Yup, my messages were now the ones being held somewhere on an Apple server. Of course, I could disable iMessage on my phone, but I have people at work using iPhones who write me iMessages, which I then would then not be able to get. I can’t do that, it is my work phone after all.

So, in the end, I had to put my wife before a choice: Be able to communicate instantly with me or with her mother. She chose me, which is flattering of course. I reactivated iMessage on her phone, which then caused a re-authentication and an SMS to a UK phone number, which will cost us money. Okay, not much, but I know it will.

This all boils down to the developers of iMessage being totally confident that people will have Internet connectivity on their iPhones at all times and not providing a fall-back method. This is provably not the case, especially to people who go to foreign countries. Apple employees do seem to know about this, after all the default setting for roaming is reasonable.
What should happen is that after a timeout period, the iMessage should be sent per SMS. This can be done, by relaying the “not able to send” information back to the phone and perhaps even asking for permission (or just do the damned thing transparently, you’re Apple for crying out loud). This would also fix the issue that Android switchers have. Alternatively, they could use a SMS gateway of their own. This does shift the cost to Apple, so it is understandable that they don’t want this.
Sure, it would delay the message a bit, but that seems totally acceptable. Delayed transmission is preferable over undelivery.
Also, let the user choose per contact whether to send SMS or iMessage. The information is there in the “contact” entry. If the number is specified as “mobile”, send SMS, if it is specified as “iPhone” it is send as iMessage and then use the fall-back mechanism to avoid situations like the one I described. At least, with such a system, I could have fixed it.

Now, I may have overseen something, or have misunderstood an option or setting somewhere. I am confident enough to tell you: If I did something wrong, this rant is totally irrelevant. If it is, I sincerely apologise to the iMessage developers. If not: please, get your act together, you are developing for non-tech users. Keep that in mind.

Tomorrow Windows XP dies, long live Windows XP!

designed for windows xpTomorrow is Tuesday 8 April 2014.  The date that Microsoft kills XP support forever.  I know there are many people who want to see it die.  I don’t because it kills off mature software.  Software that has been tried and trusted, where the bugs are known and can be worked around with a well known graphical user interface.

I know, I hear you: Security!  Boooo!  Hisss.  Scare, scare, scare!  I know, as a matter of fact that it is totally possible to run XP safely.  The rules are rather simple: don’t use any other Microsoft software, use a reasonable anti-virus, don’t install stuff you don’t actually need, and…. apply the Unix principles.  You run as standard user, and do administrative tasks as the Administrative user.  That works, and illustrates that a XP machine can be safe.  Sure, the way XP does it is a bit more cumbersome than more modern systems but that does have its advantages (Oh, I’ll click “Allow”, how bad can it be… Aaargh!).  On the other hand, with “Run As” you could get a long way.

The only other reason, I see, is support for more than 4GB RAM.  Ok, fine, I’ll grant you that.  At the risk of sounding like the 640kB is enough for everyone quote, I can assure you that a normal office desktop for the typical worker bee can live with “just” 4GB RAM.  Heck, I write this on an Ultrabook with a mere 4GB RAM.  Ubuntu tells me that I only have 1GB in use right now.

Regardless.  XP dying is a shame.  The normal worker bee gets nothing out of Vista/7/8, neither does the normal home user.  At best they hobble along and cope with the unneeded changes, at worst they get very frustrated (at which point I send the people I want to help to Linux, and those I don’t want to help to Mac OS  X).

So, I declare the 8th April “Install Windows XP day”.  Dust off that old XP machine you have lying around and don’t use.  Write down the OEM key, then grab the ISO and install it in a Virtual Machine (For easy to start VM software: VirtualBox).  Let it update as fully as it allows you to.  Then pink away a tear, in reminiscence of all the hours you wasted reinstalling XP in the first place, but also a tear for the death of mature software.

That’s what I’ll do tomorrow.  Of course, discard the VM afterwards, after all, installing an OEM license on non-original-equipment is filthy piracy.

On social media in the past

I may sound like a hipster by saying: “I have been using social media before it even was named that way”. Well, I also could sound arrogant, but you should be used to that by now. When “blogging” didn’t exists, we nerds had our own webpages that we kept updated… or not… They were rarely dynamic and were basically “fuck, yeah, I have a website” websites.  You can’t call those “social media” yet.  In a sense, it’s ironic that you are reading this on a self-hosted dynamic website.

What we now call “social media” emerged in a certain form on a community-based news website called slashdot.org.  It’s a nerd hangout, so if you haven’t heard of it (but if you read this, you most likely have) don’t worry.  Somewhere before 2001, they introduced a concept called friend/foe.  You could mark users with a little “pill” whether you liked them or not.  I think this was a first necessary step.  The second step, may have been introduced at the same time, or may not.  I simply don’t remember.  What I do know, is that by autumn 2001, slashdot.org had a featured called “Journals”.  Basically, that’s what we call “blogs” today.  When you wrote something, the people who marked you as a friend got notified.  It was an instant soapbox!  I could talk about the world, tech and others worries and I have!  What was wonderful was that people actually read it and they could reply!  Imagine that!

For me that was the “first” social network.  You had all the key ingredients: basic publishing and a friend/foe based network.  I’m not saying slashdot.org was the first.  It may well have been, but I don’t know.  What I do know is that it was the first “social network” I was exposed to, and I used it a lot.  slashdot.org didn’t evolve much past what they made in 2001, at least not from the perspective I have as a user.

All current social networks have these basic properties:

  • Ability link users together
  • Ability to publish for each user
  • Ability for other users to interact with published items
  • Basic notifications between users to be able to keep track of interactions

Most of my contacts left slashdot.org, or they don’t post any more.  I rarely post there myself. Other social networks have taken over, with an audience that is much less technical.

These slashdot.org users often are in my “modern” social networks, but -apart from a few exceptions- I don’t know who is who due to the usage of real life names.  In a sense, I really preferred the handle-only identification.  To many of them, I am still “jawtheshark” (or “jts” in short), but by now many call me simply “Jorg”.  I bet most don’t even know how to pronounce that…

What’s my point?  I have none, but I wanted to give this background information before going head first into a rant about how people fail to handle social networks of today.

First post

My wife asked me to get her a blog.  Obviously, I could simply have pointed her to wordpress.com or blogger.com, but what’s the fun in that, right?  I have lang.lu, so why not simply give her a wordpress under nathalie.lang.lu, right?  That should look “cool” to even the least technical person out there, right?

Infrastructure?  I have infrastructure.  I made lang.lu use my DNS servers.  Then I simply created another Xen DomU on my lab server and installed wordpress and mysql-server from the repositories.  I have to admit, that setting it up is really easy, once you actually understand what goes where.  Next time, I swear, it will only take the promised 5 minutes.

The main complication was that all my infrastructure is behind an OpenBSD server.  I usually don’t run apache/php or any other cgi-based stuff on that machine, because I’m slighty paranoid.  Well, after looking into Apache reverse proxies, I had my solution right there.  Of course, you need to adapt your wordpress for that, by setting bothe WP_HOME and WP_SITEURL to the effective url, you’ll be using.  I really don’t understand why these package can’t simply keep all generated url relative.  Is that so hard to do?

Well, it seems to work now.  Well, it wasn’t really planned, but there you go: I have a “blog”.  Ain’t I hip?