Archive for July, 2008

An introduction to Wubi

The Toshiba laptop that I acquired at the start of the year is a Windows Vista box and it isn’t something with which I want to play too roughly because the OS came pre-installed on it. I still want to continue to see how Vista goes at close quarters so removing it to put Ubuntu or some other Linux distribution on there wasn’t ever going to be an option that I was willing to take either. Neither was the option of setting up a dual booting arrangement using disk partitioning; I have plenty of experience of doing that to set up dual booting machines over the years and I don’t needed any more than what I already have. So, I was happy to leave it as a Windows box and only as a Windows box.

That situation has changed and the cause was Canonical’s decision to go for something novel when it brought out Ubuntu 8.04. The premise is as follows: a Windows style installation that popped an entry in the Windows boot menu that allowed you to fire up Ubuntu without ever having to do disk partitioning or other similar rough play. For those who are less than enamoured with the Linux option, it’s even easy to remove too, as easy any other Windows program in fact. Removal of Linux is very definitely not what I’d do and that’s even without the pain and upheaval of more more customary means for setting dual booting machines. In these days of virtualisation and hypervisor technology, I have my ideas as to what has been used to give us that easy way in.

Being an Ubuntu user anyway, the possibility of having Ubuntu on the laptop and the interesting opportunity that Wubi offered for getting it on there was too tempting for me to give it a miss. A small download from the Wubi website is all that is needed to set things off. You get a number of options up front like where to put the (large) file to be used to house the Ubuntu world and how large you might want it. Setting a user name and password for the thing gets included among other items. The next stage is to download the files to be used to perform the installation. Once that is completed and it took me a few goes to get the whole lot (thankfully, it stores things up to the point where the downloading operation cuts out so you didn’t start from scratch each time; even so, it’s still annoying and could put some off), it is time to restart the computer and boot into Ubuntu to complete the set up of the operating system itself; it is at this point that the familiar very much returns. A reboot later and you are into a world that does its level best to fool you into thinking that Windows is another universe and never existed on that machine at all.

So, a machine that seemed destined only ever run Windows can run Linux now as well. Wubi comes across as a neat and clever way to get a dual booting computer and I hope to leave mine as I now have it. No feathers were ruffled on the Windows side and I saw no sign of any destruction. That makes Ubuntu’s way of doing things a much better option than other distributions that make you go down more invasive routes when creating a dual booting PC. A question remains in my mind. Could this approach take off?

Watch where you store your virtual machines when using VMware on Linux

My experience is with Ubuntu on this one but I have found that you need to be careful as regards the file system used by the drive where you keep your virtual machines. If it is NTFS, VMware can fail to start a VM because it cannot create a virtual memory file while it presents as physical memory to a guest operating system. Use ext2 or ext3 and there should be no problem, even if that means formatting a drive to fulfill the need. That’s what I did and all was well thereafter.

A collection of lessons learned from using Eclipse on Ubuntu

I have been running into a few woes on the home computing front that may or may not give rise to a number of posts on here. Having my Windows VM’s going awry on VMware is a more worrying development with my need to use a Windows-based application for my hillwalking mapping  but I am going to devote this entry to a spot of bother that I started to have with Eclipse, if only because I managed to sort that one out.

Up to yesterday, I had all my offline website development stuff in a single project area for sake of ease of testing. I suppose that I got led into this by my use of Dreamweaver and the way that it sets up what it calls Sites. Applying that same of working to Quanta Plus and Netbeans just chokes up the respective IDE’s and makes them less usable. Until recently, Eclipse escaped this because it seemed to check if a file had changed when you tried editing it and asked you if you wanted the latest version. This stopped in the last few days for whatever reason and it started to stall just like the others.

Naturally, I wanted to set it back as before so a certain amount of investigation was in order. I ended up refreshing my installation in /usr/lib, a manual extraction of the Eclipse PDT archive but that didn’t resolve the issue. In fact, it created another one but we’ll talk about that later. Creating a smaller project made it all work again and I’ll be building up a number of these.

The new issue pertained to the creation and selection of the Eclipse workspace. There was no problem using what I wanted it to use but it wouldn’t remember the setting. There was more blundering about before I happened on the cause: access permissions. I copied the new Eclipse files in as the root user and that meant that Eclipse couldn’t update its setting when I was running it under my own account. Running the editor using sudo sorted out the workspace selection issue for now but a more permanent fixing such as giving myself write access to the configuration directory and what’s in there remains an outstanding task.

The mention of the Eclipse workspace brings me back to the way that it was working before the upheaval hit me. It does keep a copy of every file that you edit in there and maybe more besides. Thus, having a copy of every file in the project would have meant that it didn’t need to do the constant churning being performed by Quanta or Netbeans. That’s impression that I have but I’ll sticking with smaller project bundles from now on. Learning all this was useful.

Running Internet Explorer on Linux

MSIE 6 running on Ubuntu

On first sight, this probably sounds daft given how good Firefox is but you cannot ignore those surf the web using the ever pervasive Internet Explorer when doing some web development. Using virtualisation is a solution to the need but it can mean that you need to set up a web server with Perl, PHP, MySQL and the like in a virtual machine, all for a little offline testing and then there’s the potential for a lot of file copying too. Otherwise, you are trying to sneak things online and catch the glitches before anyone else does, never a good plan.

Therefore, having the ability to run IE to test your offline LAMPP set up is a boon and IES4Linux allows you to do what’s really needed. Naturally, WINE is involved so some flakiness may be experienced, even after the ever useful API library’s reaching version 1. Otherwise, all usually runs well once you work you way through the very helpful instructions on the IES4Linux website. I did get a misplaced message about the version of WINE that I was using and Python errors made a worrying appearance but neither compromised the end result: a working IE6 installation on my main Ubuntu box.

IE5 and IE5.5 are also on offer if you’re interested but, after looking at my visitor statistics, I think that I can discount these. IE7 and the work-in-progress IE8 make no appearance on the availability list. The absence of IE7 is not a big problem as it might appear because coding for IE6 sufficiently suffices for IE7, even now; IE8 may not be the same in this regard but we shall see. Even so, a later browser release does mean a more secure version and I reckon that including IE7 should be next on the project’s to do list. Saying that, what we have now is far better than nothing at all.

Killing those runaway processes that refuse to die

I must admit that there have been times when I logged off from my main Ubuntu box at home to dispatch a runaway process that I couldn’t kill and then log back in again. The standard signal being sent to the process by the very useful kill command just wasn’t sending the nefarious CPU-eating nuisance the right kind of signal. Thankfully, there is a way to control the signal being sent and there is one that does what’s needed:

kill -9 [ID of nuisance process]

For Linux users, there seems to be another option for terminating process that doesn’t need the ps and grep command combination: it’s killall. Generally, killall terminates all processes and its own has no immunity to its quest. Hence, it’s an administrator only tool with a very definite and perhaps rarely required use. The Linux variant is more useful because it also will terminate all instances of a named process at a stroke and has the same signal control as the kill command. It is used as follows:

killall -9 nuisanceprocess

I’ll certainly be continuing to use both of the above; it seems that Wine needs termination like this at times and VMware Workstation lapsed into the same sort of antisocial behaviour while running a VM running a development version of Ubuntu’s Intrepid Ibex (or 8.10, if you prefer). Anything that keeps you from constantly needing to restart Linux sessions on your PC has to be good.

JavaScript: write it yourself or use a library?

I must admit that I have never been a great fan of JavaScript. For one thing, its need to interact with browser objects places you at the mercy of the purveyors of such pieces of software. Debugging is another fine art that can seem opaque to the the uninitiated since the amount and quality of the logging is determined an interpreter that isn’t provided by the language’s overseers. All in all, it seems to present a steep and obstacle-strewn learning curve to newcomers. As it happens, I have always found server side scripting languages like PHP and Perl to be more to my taste and I have no aversion at all to writing SQL.

In the late 1990′s when I was still using free web hosting, JavaScript probably was the best option for my then new online photo gallery. Whatever was the truth, it certainly was the way that I went. Learning Java or Flash might have been useful but I never managed to devote sufficient time to the task so JavaScript turned out to be the way forward until I got a taste of server side scripting. Moving to paid hosting allowed for that to develop and the JavaScript option took a back seat.

Based on my experience of the browser wars and working with JavaScript throughout their existence, I was more than a little surprised at the buzz surrounding AJAX. Ploughing part of the way through WROX’s Beginning AJAX did nothing to sell the technology to me; it came across as a very dry jargon-blighted read. Nevertheless, I do see the advantages of web applications being as responsive as their desktop equivalents but AJAX doesn’t always guarantee this; as someone that has seen such applications crawling on IE6, I can certainly vouch for this. In fact, I suspect that may be behind the appearance of technologies such as AIR and Silverlight so JavaScript may get usurped yet again, just like my move to a photo gallery powered on the server side.

Even with these concerns, using JavaScript to add a spot more interactivity is never a bad thing even if it can be overdone, hence the speed problems that I have witnessed. In fact, I have been known to use DOM scripting but I need to have the use in mind before I can experiment with a technology; I cannot do it the other way around. Nevertheless, I am keen to see what JavaScript libraries such as jQuery and Prototype might have to offer (both have been used in WordPress). I have happened on their respective websites so they might make good places to start and who knows where my curiosity might take me?

  • As is commonly the case with places like these, all the views that you find expressed on here in postings and articles are mine alone and not those of any organisation with which I have any association, through work or otherwise. With regards to any comments left on the site, I reserve the right to reject any that are inappropriate. Otherwise, whatever is said is the sole responsibility of whoever is leaving the comment.