WordPress 2.6 out in the wild
15th July 2008Though there was a time when I tested out a new WordPress release when it made its appearance, I now keep tabs on development versions too. It helps me to be ready in ample time and avoid any ugly stuff appearing on either here or my hillwalking blog. On the surface, the changes made don't seem so dramatic after the revamp of the administration interface that came with 2.5. Under the bonnet, many bugs have been fixed, and many behind-the-scenes features have been included for the first time. I'll leave it for you to go to Planet WordPress or check out the relevant entry on the WordPress Development blog. You'll find a Flash video tour of the latest version from Automattic below.
Of course, WordPress development doesn't stop here and there are some considerable changes to the administration interface to come at some point if they ever make out into the mainstream from the crazyhorse branch. I'll be continuing to keep an eye on how things go from here to be ready for whatever might be in the offing. For now, enjoy 2.6, though it'll be interesting to see where it all goes from here.
An introduction to Wubi
14th July 2008
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 wish 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 need 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 pops an entry in the Windows boot menu that allows 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 as 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 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 username 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 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 to 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
12th July 2008My 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 fulfil the need. That's what I did and all was well thereafter.
A collection of lessons learned from using Eclipse on Ubuntu
9th July 2008I 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. While 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, 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 the 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, only for that not to resolve the issue. In fact, it created another one that we'll talk about 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. While there was no problem using what I wanted it to use, it wouldn't remember the setting. There was more blundering about before I happened on the cause: access permissions. Then, 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 its contents 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 the impression that I have, so I'll stick with smaller project bundles from now on. Learning all this was useful.
Running Internet Explorer on Linux
7th July 2008
On first sight, this probably sounds daft given how good Firefox is, yet you cannot ignore those surfing the web using the ever pervasive Internet Explorer when doing some web development. Though using virtualisation is a solution to the need, 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 LAMP 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 your 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
5th July 2008I 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 appears to be another option for terminating a 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 appears 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?
3rd July 2008I 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 uninitiated, since the amount and quality of the logging is determined by an interpreter not 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. While learning Java or Flash might have been useful, 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 who 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). Since I have happened on their respective websites, they might make good places to start, and who knows where my curiosity might take me?
A case of "peekaboo" behaviour in Internet Explorer
1st July 2008Recently, I changed the engine of my online photo gallery to a speedier PHP/MySQL-based affair from its PHP/Perl/XML-powered predecessor. On the server side, all was well, but a peculiar display issue turned up in Internet Explorer (6, 7 & 8 were afflicted by this behaviour) where photo caption text on the thumbnail gallery pages was being displayed erratically.
As far as I can gather, the trigger for the behaviour was that the thumbnail block was placed within a DIV floated using CSS that touched another DIV that cleared the floating behaviour. I use a table to hold the images and their associated captions in place. Furthermore, each caption was also a hyperlink nested within a set of P tags.
The remedy was to set the CSS Display property for the affected XHTML tag to a value of "inline-block". Within a DIV, TABLE, TR, TD, P and A tag hierarchy, finding the right tag where the CSS property in question has the desired effect took some doing. As it happened, it was the tag set, that for the hyperlink, at the bottom of the stack that needed the fix.
Of course, it's all very fine fixing something for one browser, but it's worthless if it breaks the presentation in other browsers. In that vein, I did some testing in Opera, Firefox, Seamonkey and Safari to check if all was well and it was. There may be older browsers, like versions of IE before 6, where things don't appear as intended, yet I get the impression from my visitor statistics that the newer variants hold sway anyway. All in all, it was a useful lesson learnt, and that's never a bad thing.
A quick way to create a blank text file
27th June 2008The primary job done by the touch command in UNIX or Linux is to update the time stamps on files. However, it also has another function: creating an empty text file where you are "touching" a file that doesn't exist. This has its uses, particularly when you want to reduce the amount of pointing and clicking that you need to do, or you want to generate a series of empty files in a shell script. Whatever you do with it is up to you.
Error: User does not have appropriate authorization level for library xxxx
25th June 2008In a world where write access to a folder or directory is controlled by permission settings at the operating system level, a ready answer for when you get the above message in your log when creating a SAS data set would be to check your access. However, if you are working on Windows and your access seems fine, then SAS' generation of an access error message seems all the more perplexing.
Unlike the more black-and-white world of UNIX and Linux, Windows has other ways to change access that could throw things off from the straight and narrow. One of them, it would appear, is to right-click on the file listing pane in Windows Explorer and select "Customize this folder..." to change how it appears. The strange upshot of this is that a perpetual read-only flag is set for the folder in question, and that flag triggers SAS authorisation errors. The behaviour is very strange and unexpected when you find it, and the quickest and easiest solution sounds drastic. This involves deleting the folder and creating a new one in its place, saving anything that you want to retain in another temporary location. An alternative approach uses the attrib command and is less invasive.
It begs the question as to why Microsoft is re-appropriating a flag used for access purposes to be used to determine whether the HTML components of a folder display have been changed or not. This is very strange stuff and does not look like good software design at all. With all the other problems Microsoft creates for itself, I am not holding my breath until it's fixed, either. There seem to be other things like this waiting to catch you out when using Windows SAS, and a good place to start is SAS' own description of the problem that I have just shared.