Technology Tales

Notes drawn from experiences in consumer and enterprise technology

A UNIX shell running on Windows

15th November 2007

Here's an idea that I got for a post before I spent that torrid weekend with Windows that caused me to jump ship to Linux. The idea of having a UNIX command line while still remaining on Windows did appeal to me at the time, and Cygwin seems to provide an intriguing way to do this. At its most basic, it is a set of DLL's that allow you to run standard UNIX commands in a shell like what you see below. However, it is extensible with a good number of packages that you can choose to install. NEdit is just one that gets included, and I think that I spied Apache too. The standard installation is a web-based affair, with your downloading only the components that you need; it's worth trawling through the possibilities while you're at it.

Cygwin Shell

Now that I am firmly ensconced in the world of Linux, this may be one possibility that I will park, for a while anyway. After all, I now do have the full power of the UNIX command line...

Escaping brackets in SAS macro language

14th November 2007

Rendering opening and closing brackets as pieces in SAS macro language programming caused me a bit of grief until I got it sorted a few months back. All the usual suspects for macro quoting (or escaping in other computer languages) let me down: even the likes of %SUPERQ or %NRBQUOTE didn't do the trick. The honours were left to %NRQUOTE(%(), which performed what was required very respectably indeed. The second % escapes the bracket for %NRQUOTE to do the rest.

BBC Radio Player and Linux

13th November 2007

It's been a while since I mentioned anything that might be aurally related, and then this rears its head. The Xine plugin beloved by the instance of Firefox on my Ubuntu box simply refuses to play ball with the BBC's Listen Again feature; 6Music shows are what I am trying to catch later. RealPlayer is on the system, but Firefox simply refuses to locate it. On its own, it plays live radio from the BBC and Ireland's Today FM but, unless I need to do some digging, that's not much use for the Listen Again service. It may be some hard-wiring done by Canonical as part of their packaging of Firefox: might be related to their preference for Free Software. If I can be bothered, I might replace it with the usual version to see if RealPlayer can be picked up: I do seem to remember reading somewhere that this was a possibility...

Yes, I could use one of my Windows VM's, but I have found another way courtesy of openSUSE 10.3. No, I haven't changed Linux distro, yet the reason that openSUSE has made a sudden appearance on this blog in recent times has got to do with my acquiring a copy of the latest issue of Linux Magazine. It came emblazoned with a DVD containing both 32-bit and 64-bit variants of openSUSE's latest version and, wanting to have a look at how KDE appears these days, I knocked up a VM and installed the 32-bit variant thereupon.

Unexpectedly, that has afforded a Linux solution to my BBC Radio Player conundrum. openSUSE's Firefox instance can find RealPlayer once you have it installed. That process involves a spot more work than if it was Free Software: you need to add an extra software repository to YaST (openSUSE's configuration utility). The breadcrumb trail is YaST -> Software -> Software Repositories and hitting the Add button fires up a wizard that needs the following settings to set things up as needed:

Protocol: http

Server Name: download.opensuse.org

Directory on server: /distribution/10.3/repo/non-oss/suse/

Authentication: anonymous

Once the new repository was set up (I named it Non-OSS), I found the RPM and YaST took care of the rest. So, what started out as an exercise in curiosity has now found a use. While network traffic may cause playback to stutter, I have what I want without once starting up Windows. Sorting out Ubuntu may happen, but it is a lesser priority and I don't want to disrupt my computing environment in any event.

Setting up openSUSE in VMware Workstation

12th November 2007

While it should have been as straightforward as following the instructions on the openSUSE website, a bug in VMware Tools derailed things for me. The usual procedure would have you starting by selecting Install VMware Tools from the VM menu before popping into the virtual machine to do the rest. Once binutils, gcc, gcc-c++, kernel-source and make are in place, the next steps should involve using YaST to install the RPM for you to run the vmware-config-tools.pl script from the terminal.

However, a bug in compat_slab.h puts a stop to any hopes of installing the vmhgfs component. That's needed if you like to enable the shared folders feature; looking in /mnt/hgfs then would get you to any shared folders. While everything else will be there, why miss out on one piece of functionality when it comes in useful?

Having found a useful thread on the subject, here's my way forward: it is as the expected procedure up to the point of installing the RPM. With VMware Tool installation on a Linux guest, you have two options: use RPM as described or use the compressed tarball. The latter seems the better course. Extract the contents into a folder and navigate to that folder. When there, go into vmware-tools-distrib/lib/modules/source and extract the file vmhgfs.tar. Proceed into the resulting vmhgfs-only contained wherever you put it and perform the following edit of compat_slab.h:

Change

#if LINUX_VERSION_CODE < KERNEL_VERSION(2, 6, 22) || defined(VMW_KMEMCR_HAS_DTOR)

to

#if LINUX_VERSION_CODE <= KERNEL_VERSION(2, 6, 22) || defined(VMW_KMEMCR_HAS_DTOR)

After that, recreate and replace vmhgfs.tar before issuing the following command in the terminal window while in the vmware-tools-distrib directory: ./vmware-config-tools.pl (anything prefixed with "./" picks up the file from the current working directory rather than where system binaries are stored). Though a kernel compilation will be involved, all the defaults should be sensible. Hopefully, all will work well after this.

Update: I am left with a number of outstanding issues that I need to resolve. Lack of internet access from the VM is one of them, and a constant forgetfulness regarding the nationality of my keyboard (it's British) might be another. In the interim, I have removed VMware tools until I can spend some time setting these to rights. That means internet access has returned, and the British keyboard layout is being interpreted correctly for now...

Other uses for the middle mouse button

11th November 2007

Here's another one of those things that I discovered while being clumsy: in Firefox, click on your middle mouse button/wheel while hovering over a tab, and it will close it; you don't even need to click on the close icon. Evince, the PDF viewer favoured by Ubuntu, also makes use of the middle mouse button: for panning your way through documents using the hand tool. In a moment of lateral thinking, I tried the same trick with Adobe Reader; in version 7.x, it works in the same way. On Windows at least, Adobe Reader 8.x is a different animal and features automatic scrolling, a very useful proposition for the reading of eBooks if the text doesn't pass by you too quickly, and even a moderately reliable read aloud feature.

Choices, choices…

10th November 2007

While choice is a great thing, too much of it can be confusing, and the world of Linux is a one very full of decisions. The first of these centres around the distro to use when taking the plunge; you quickly find that there can be quite a lot to it. In fact, it is a little like buying your first SLR/DSLR or your first car: you only really know what you are doing after your first one. Putting it another way, you only know how to get a house built after you have done just that.

With that in mind, it is probably best to play a little on the fringes of the Linux world before committing yourself. It used to be that you had two main choices for your dabbling:

  • using a spare PC
  • dual booting with Windows by either partitioning a hard drive or dedicating one for your Linux needs.

In these times, innovations such as Live CD distributions and virtualisation technology keep you away from such measures. In fact, I would suggest starting with the former and progressing to the latter for more detailed perusal; it's always easy to wipe and restore virtual machines anyway, so you can evaluate several distros at the same time if you have the hard drive space. It also a great way to decide which desktop environment you like. Otherwise, terms like KDE, GNOME, XFCE, etc. might not mean much.

The mention of desktop environments brings me to software choices because they do drive what software is available to you. For instance, the Outlook lookalike that is Evolution is more likely to appear where GNOME is installed than where you have KDE. The opposite applies to the music player Amarok. Nevertheless, you do find certain stalwarts making a regular appearance; Firefox, OpenOffice and the GIMP all fall into this category.

The nice thing about Linux is that distros more often than not contain all the software that you are likely to need. However, that doesn't mean that it is all on the disk and that you have to select what you need during the installation. Though there might have been a time when it might have felt like that, my recent experience has been that a minimum installation is set in place that does all the basics for you to easily add the extras later on an as needed basis. I have also found that online updates are a strong feature too.

Picking up what you need when you need it has major advantages, the big one being that Linux grows with you. You can add items like Apache, PHP and MySQL when you know what they are and why you need them. It's a long way from picking applications of which you know very little at installation time and with the suspicion that any future installation might land you in dependency hell while performing compilation of application source code; the temptation to install everything that you saw was a strong one. The "learn before you use" approach favoured by how things are done nowadays is an excellent one.

Even if life is easier in the Linux camp these days, there is no harm in sketching out your software needs. Any distribution should be able to fulfil most if not all of them. As it happened, the only third party application that I have needed to install on Ubuntu without recourse to Synaptic was VMware Workstation, and that procedure thankfully turned out to be pretty painless.

A fallback installation routine?

9th November 2007

In a previous sustained spell of Linux meddling, the following installation routine was one that I encountered rather too often when RPM's didn't do what I required of them (having a SUSE distro in a world dominated by a Red Hat standard didn't make things any easier...):

tar xzvf progname.tar.gz; cd progname

The first part of the command extracts from a tarball compressed using gzip and the second one changes into the new directory created by the extraction. For files compressed with bzip use:

tar xjvf progname.tar.bz2; cd progname

The command below configures, compiles and installs the package, running the last part of the command in its own shell.

./configure; make; su -c make install

Yes, the procedure is a bit convoluted, but it would have been fine if it always worked. My experience was that the process was a far from foolproof one. For instance, an unsatisfied dependency is all that is needed to stop you in your tracks. Attempting to install a GNOME application on a KDE-based system is as good a way to encounter this result as any. Other horrid errors also played havoc with hopeful plans from time to time.

It shouldn't surprise you to find that I will be staying away from the compilation/installation business with my main Ubuntu system. Synaptic Package Manager and its satisfactory dependency resolution fulfil my needs well and there is the Update Manager too; I'll be leaving it for Canonical to do the testing and make the decisions regarding what is ready for my PC as they maintain their software repositories. My past tinkering often created a mess, and I'll be leaving that sort of experimentation for the safe confines of a virtual machine from now on...

Importing bookmarks into Firefox

8th November 2007

Moving from one operating system to another like I have means that a certain amount of migration is in order. While I have already talked about migrating my email, there are lesser acts too. One of these is carrying across bookmarks into the new world. This should be an easy thing to achieve and, for the most part, it is. However, the Import... entry on the File menu of the main browser only brings in bookmarks from other applications. To get more flexibility, you need to open up the Bookmarks Manager window from the Bookmarks menu (Organise Bookmarks... is the entry that you need). The File menu of the Bookmarks Manager has entries named Import... and Export...; their functions should be very apparent. The former will read from a file, very useful if you do not want to disrupt what you already have. Another migration option is the potentially disruptive act of copying in an alternative bookmarks.html file into your Firefox profile folder and overwriting the one that's already there.

The case of a wide open restriction

7th November 2007

The addition of IMAP capability to Gmail attracted a lot of attention in the blogosphere last week, and I managed to flick the switch for the beast courtesy of the various instructions that were out there. However, when I pottered back to the settings, the IMAP settings had disappeared.

A brief look at the Official Gmail Blog confirmed why: the feature wasn't to be available to those who hadn't set their language as US English. My setting of UK English explained why I wasn't seeing it again, a strange observation given that they are merely variants of the same language; I have no idea why I saw it the first time around.

My initial impression was that the language setting used was an operating system or browser one, but this is not how it is. In fact, it is the language that you set for Gmail itself in its settings; choosing US English was sufficient to make the IMAP settings reappear, while choosing UK English made them disappear again.

Personally, I am not certain why the distinction was made in the first place, but I have Evolution merrily working away with Gmail's IMAP interface without a bother. To get it going, I needed that imap.gmail.com needed an SSL connection while smtp.gmail.com needed a TLS one. After that, I was away and no port numbers needed to be supplied, unlike Outlook.

Cross-platform font compatibility challenges for web developers

6th November 2007

It's when you pop from one operating system to another that you realise how operating system specific it is that fonts are. For instance, only one of the names in the following list are understood by Firefox on Ubuntu, the last one: Trebuchet MS, Lucida Grande, Verdana, Arial, Sans-Serif. The reason that San-Serif is understood is that it's a general font class name in the world of CSS. However, that does not mean that you still are not at the mercy of operating system fonts. In fact, font sizes vary and 16px in one font isn't the same as 16px in another; that can mean broken layouts if you are sufficiently clumsy.

As it happens, the main menu bar on my hillwalking blog should all fit on one line, yet it took up two lines when viewed on Linux. If it did that neatly, there wouldn't be much of a problem, but it didn't. While some CSS hacking could have repaired the situation, I went for a simpler solution for now: picking a Linux sans serif font that fitted the bill better. So popping in mentions of "Nimbus Sans L" in appropriate places in my stylesheet was the way that I went. Since I don't know how this appears in other Linux distributions, the wonders of virtualisation should allow me to find out.

If I was really concerned about the fonts that were being used, I could have gone with a server-side approach: embedded fonts. I haven't tried this for a while but differing browser support was a major issue when I did: you had to create a set of files for IE and for Netscape when I was investigating such things, hardly convenient even in those days when Opera was merely a speck on the horizon and Mozilla was nascent. Though it's a valid approach for those exclusive fonts, so is questioning why you are using them in the first place. Adobe's Flash is another option for those who obsess with fonts, though how users take to this remains an open question, as does the accessibility of the approach.

For now, I plan to continue evaluating how applications appear across different operating systems. For this purpose, virtualisation serves as an excellent tool, as do Live CDs. The latter is particularly useful for Linux distributions which the former has application with more scenarios: names OpenSolaris and, with a spot of tinkering, OS X come to mind. This presents an appealing concept, especially considering Firefox has essentially become a cross-platform standard in today's computing environment. Mind you, seeing how websites are rendered by Safari running on OS X might be of interest to some.

Looking at from the user's point of view rather than the web developer's, there remains a question regarding the visiting of websites that break because of the font conundrum. If you find this happening to you a lot, it may be an idea to bring in some TrueType or OpenType fonts. With Ubuntu, this is straightforward: fire up Synaptic, search for msttcorefonts and install that package along with any of its dependencies. Logging off from and on to the system will make the new fonts available. There was a time when more work was needed than that...

  • The content, images, and materials on this website are protected by copyright law and may not be reproduced, distributed, transmitted, displayed, or published in any form without the prior written permission of the copyright holder. All trademarks, logos, and brand names mentioned on this website are the property of their respective owners. Unauthorised use or duplication of these materials may violate copyright, trademark and other applicable laws, and could result in criminal or civil penalties.

  • All comments on this website are moderated and should contribute meaningfully to the discussion. We welcome diverse viewpoints expressed respectfully, but reserve the right to remove any comments containing hate speech, profanity, personal attacks, spam, promotional content or other inappropriate material without notice. Please note that comment moderation may take up to 24 hours, and that repeatedly violating these guidelines may result in being banned from future participation.

  • By submitting a comment, you grant us the right to publish and edit it as needed, whilst retaining your ownership of the content. Your email address will never be published or shared, though it is required for moderation purposes.