Quarter Century of Innovation – aka Happy Birthday Linux!


Screenshot from 2016-08-25 14-35-23

Happy Birthday, Linux! Thank you Linus for that post (and code) from a quarter of a century ago.

I distinctly remember coming across the post above on comp.os.minix while I was trying to figure out something called 386BSD. I was following the 386BSD development by Lynne Jolitz and William Jolitz back when I was in graduate school in OSU. I am not sure where I first heard about 386BSD, but it could have been in some newsgroup or the BYTE magazine (unfortunately I can’t find any references). Suffice to say, the work of 386BSD was subsequently documented by the Dr. Dobb’s Journal from around the 1992. Fortunately, the good people at Dr. Dobb’s Journal have placed their entire contents on the Internet and the first post of the port of 386BSD is now online.

I was back in Singapore by then and was working at CSA Research doing work in building networking functionality for a software engineering project. The development team had access to a SCO Unix machine but because we did not buy “client access licenses” (I think that was what it was called), we could only have exactly 2 users – one on the console via X-Windows and the other via telnet. I was not going to suggest to the management to get the additional access rights (I was told it would cost S$1,500!!) and instead, tried to find out why it was that the 3rd and subsequent login requests were being rejected.

That’s when I discovered that SCO Unix was doing some form of access locking that was part of the login process used by the built-in telnet daemon. I figured that if I can replace the telnet daemon with one that does not do the check, I can get as many people telnetting into the system and using it.

To create a new telnet daemon, I needed the source code and then to compile it. SCO Unix never provided any source code. I managed, however, to get the source code to a telnet daemon (from I think ftp.stanford.edu although I could be wrong).

Remember that during those days, there was no Internet access in Singapore – no TCP/IP access anyway. And the only way to the Internet was via UUCP (and Bitnet at the universities). I used ftpmail@decwrl.com (an ftp via email service by Digital Equipment Corporation) to go out and pull in the code and send it to me via email in 64k uuencoded chunks. Slow, but hey, it worked and it worked well.

Once I got the code, the next challenge was to compile it. We did have the C compiler but for some reason, we did not have the needed crypto library to compile against. That was when I came across the incredible stupidity of labeling cryptography as a munition by the US Department of Commerce. Because of that, we, in Singapore, could not get to the crypto library.

After some checking around, I got to someone who happened to have a full blown SCO Unix system and had the crypto library in their system. I requested that they compile a telnet daemon without the crypto library enabled and to then send me the compiled binary.

After some to and fro via email, I finally received the compiled telnet daemon without the crypto linked in and replaced the telnetd on my SCO Unix machine. Viola, everyone else in the office LAN could telnet in. The multi-user SCO machine was now really multi-user.

That experience was what pushed me to explore what would I need to do to make sure that both crypto code and needed libraries are available to anyone, anywhere. The fact that 386BSD was a US-originated project meant that tying my kite to them would eventually discriminate against me in not being able to get to the best of cryptography and in turn, security and privacy. That was when Linus’ work on Linux became interesting for me.

The fact that this was done outside the US meant that it was not crippled by politics and other shortsighted rules and that if it worked well enough, it could be an interesting operating system.

I am glad that I did make that choice.

The very first Linux distribution I got was from Soft Landing Systems (SLS in short) which I had to get via the amazingly trusty ftpmail@decwrl.com service which happily replied with dozens of 64K uuencoded emails.

What a thrill it was when I started getting serialized uuencoded emails with the goodies in them. I don’t think I have any of the 5.25″ on to which I had to put the uudecoded contents. I do remember selling complete sets of SLS diskettes (all 5.25″ ones) for $10 per box (in addition to the cost of the diskettes). I must have sold it to 10-15 people. Yes, I made money from free software, but it was for the labour and “expertise”.

Fast forward twenty five years to 2016, I have so many systems running Linux (TV, wireless access points, handphones, laptops, set-top boxes etc etc etc) that if I were asked to point to ONE thing that made and is still making a huge difference to all of us, I will point to Linux.

The impact of Linux on society cannot be accurately quantified.  It is hard. Linux is like water. It is everywhere and that is the beauty of it. In choosing the GPLv2 license for Linux, Linus released a huge amount of value for all of humanity. He paid forward.

It is hard to predict what the next 25 years will mean and how Linux will impact us all, but if the first 25 years is a hint, it cannot but be spectacular. What an amazing time to be alive.

Happy birthday Linux. You’ve defined how we should be using and adoption technology. You’ve disrupted and continue to disrupt, industries all over the place. You’ve helped define what it means to share ideas openly and freely. You’ve shown what happens when we collaborate and work together. Free and Open Source is a win-win for all and Linux is the Gold Standard of that.

Linux (and Linus) You done well and thank you!

Toshiba’s FlashAir wifi-enabled SD card


I was looking around on Saturday at the various SD cards for my Canon 500D. I thought that since there are these new fangled wifi-enabled ones, I should consider getting one of those.

My enquiries in Funan Centre initially began at Challenger. They had a 8GB model for S$79 which I thought was very expensive (not that I did any check on the costs yet) and enquired if there were bigger capacity ones. The store assistant said that there are, but they don’t have any in stock.

Great, I thought.  I will use the S$79 as my upper limit for this and went from store to store. Funny that some camera stores don’t carry these devices – why that would be the case eludes me, but I reckon, those stores don’t want the extra hassle of having to understand how wifi works!

Finally, I came across Song Brothers (2nd floor, Funan), who not only had the Toshiba 16G models in stock for S$75, and another from PQI, called PQI Air Card for $68. Both were rated at 16GB. Looking at the cheaper one I decided not to get it because the brand was new to me. So, I settled for the Toshiba FlashAir 16GB class 10 SD card with WiFi capabilities. The card is a SDHC – Secure Digital High Capacity model.

The Obligatory Review:

This card is white in colour Toshiba FlashAir 16GB SD-Wifiand when you insert into the camera (or any SD card reader), the wifi hotspot fires up. The SSID takes the form of “flashair_WifiMACAddress”, which in my case is “flashair_e8e0b79af4fc”. Pretty cool I’d say.  They have a Android app as well. Even if you don’t use the app, you can connect to this SD card if your device has a wifi capability. All you then need to do is to attach to that SSID and in the browser of the device, go to: http://flashair/.

What you will see is the contents of the DCIM directory on the SD card. You can then download the contents. Nice. What I like about this is that the card does not need to connect to some external wifi access point and no need to connect to any server to make the contents available.

For the purposes of extracting the images out of the card, this method works very well. You can use it in any place so long as your other device can connect to the card via wifi. No dependence on wifi infrastructure and other server systems is very good.

What would be useful is the app on the Android to have some extra cleverness and be able to pull files out of the card and send it to other destinations and not only on the Android device (phone, tablet etc), although I reckon if you pull the images and put them into the folder on your Android device that is set up to upload to picasaweb (for example), then that would suffice. In any case, the code for the Andrioid app is not available – which is pity – for I am sure there will be clever tweaks done to it to make it very useful.

I must note that when I used the card at an event where my older son was graduating from Secondary 4 at SJI, the photos and videos were saved very quickly and at no time did I have to wait before the next shot, all because it is a class 10 card. Nice.

The file structure of the card is as follows:

./SD_WLAN:
216 Mar 11 CONFIG

./MISC:

./DCIM:
100__TSB

./DCIM/100__TSB:
128751 Mar 11  2013 FA000001.JPG

./GUPIXINF:
32768 Mar 11  2013 CARDICON

./GUPIXINF/CARDICON:
12021 Mar 11  2013 ICON_128.PNG
1800 Mar 11  2013 ICON_32.PNG
1250 Mar 11  2013 ICONINF.TXT

The CONFIG file is what that gets read and worked with by the Wifi stack. The contents of that file is:

[Vendor]

CIPATH=/DCIM/100__TSB/FA000001.JPG
APPMODE=4
APPNETWORKKEY=**********
VERSION=F19BAW3AW2.00.01
CID=02544d535731364708d085847800d401
PRODUCT=FlashAir
VENDOR=TOSHIBA
MASTERCODE=40b0fac41a58
LOCK=1

The default wifi key is 12345678 which gets replaced by the * as shown in the APPNETWORKKEY above when the card is first inserted and switched on. I cannot find where the actual value is kept for later use.  I am sure that there are some hidden areas that the actual key is kept at. Perhaps the wifi electronics has some flash storage for that. I will run testdisk on the card to see what can be found.

I am indeed pleased to see Toshiba setup and provide a lot of details at a new FlashAir developers site and all the configurable details are explained in the tutorials.   This does look very, very promising and I am sure that there will be plenty of places that Toshiba’s FlashAir can be deployed, way beyond making conventional DSLRs wifi enabled devices.

All in, I am quite pleased with the wifi card. And 16G is a decent size but with the wifi capability, it does make the use case very interesting.

Setting up the standard Andriod marketplace on the Archos 10.1


I was not a very pleased user of the Archos 10.1 ever since I got it last December.  The issue centered on the Archos supplied “AppsLib” which was not all that efficient nor useful. It would startup slowly sometimes, crash at other times, and a lot of apps that I’ve got in my Nexus One was not even available (like ConnectBot for example).  Apart from these inconveniences, the tablet is really a nice device, quite responsive and despite it’s plasticky feel, it is robust and quite well built.

The lack of the standard Android marketplace was gnawing at me for the longest time and last night, I came across a post that suggested that the XDA developers forum has a specific hack to address this. So, 10 minutes after downloading and installing the gAppInstaller, and two reboots later, the Archos 10.1 now has a pride of place and has become a delightful device to be used well.

I am not entirely sure why Archos decided not to include the standard Andriod marketplace, but I reckon this has to do with them trying to differentiate.  I think it is a huge mistake to take a path of differentiated marketplace for it splinters the ecosystem and does not leave the user in a good place.

What I would like to complete the Archos next with is a decent jacket. That is elusive still!

At some point, I’d like to run Fedora on it as well.