Archive for UNIX

Looking at a few Operating Systems

The last few weeks have seen me poking around with a few different operating systems to see how they perform. None of these were particularly in-depth in their nature but brushes with alternatives to what I currently use for much of the time. While I am too sure what exactly has kicked off all of this curiosity, all of the OS’s that I have examined have been of the UNIX/Linux variety. With the inclusion of Unity in the forthcoming Ubuntu “Natty Narwhal” 11.04, I am mindful of the need to be keeping an eye on alternative options should there ever be a need to jump ship. However, a recent brush with an alpha version has reassured me a little. Then there are interesting OS releases too and I recently forgot the Ubuntu password (a silly thing to do, I know) for my Toshiba laptop too so I suppose that a few things are coming together.

It was that latter development that got me looking in amazement at the impressive minimalism of CrunchBang Linux before settling on Lubuntu to see how it did; these were Live CD runs so I tried before I committed to installing. It helped that the latter was based on Ubuntu as its name suggests so I wasted little name in finding my way around the LXDE desktop. By default, everything supplied with the distro is lightweight with Chromium coming in place of Firefox. There’s no sign of OpenOffice.org either with offerings like Abiword coming in its stead. For the sake of familiarity, I started to add the weight of things without reducing the speed of things, it seems. Well, the speedy start-up wasn’t afflicted anyway. Being an Ubuntu clone meant that it didn’t long to add on Firefox using the apt-get command. LibreOffice was downloaded for installation using the dpkg command and it seems much more fleet-footed than its OpenOffice.org counterpart. As if these nefarious actions weren’t enough, I started to poke in the settings to up the number of virtual desktops too. All in all, it never stopped me going against what be termed the intent of the thing. In spite of what Linux User & Developer has had to say, I think the presentation of the LXDE desktop isn’t unpleasant either. In fact, I reckon that I quite like it and the next thing to do is to restore the entry for Windows 7 on the GRUB menu. Well, there’s always somthing that needs doing…

While I may have learned about it after the event, the release of Debian “Squeeze” 6.0 was of interest to me too. Well, I have used it a fair bit in the last few years and retain a soft spot for it. The new release comes on two kernels: GNU/Linux and FreeBSD. Regarding the latter, I did try having a look but it locked up my main home PC when I tried booting it up in a VirtualBox virtual machine. Given that it’s a technical preview anyway, I think it better to leave it mature for a while no matter how fascinating the prospect may be. Or is it VirtualBox 4.x that hasn’t around long enough? Debian’s latest Linux incarnations showed no such inclinations though I found that the CD ISO image that I’d downloaded didn’t give such a complete system when I fired it up after doing the installation. Being someone that knows his way around Linux anyway, it was no problem to add the missing pieces using apt-get though that’d stop it being an option for new users unless the DVD installation yields more complete results. Other than that, it worked well and I lost no time getting to grips with the OS and it’s gained a much fresher feel than version 5.x (“Lenny”). In summary, I look forward to continuing my investigations of the new Debian.

To round up my explorations of different UNIX/Linux operating systems, I have updated my test installations of Ubuntu 11.04. Initial looks at the next Ubuntu release weren’t so encouraging but things are coming along by all accounts. For one thing, Unity can be switched off in favour of the more familiar GNOME desktop that we’ve had for the last few years. The messages that popped up telling you that there’s no 3D graphics support on your machine have been replaced by graceful degradation to the GNOME and that’s no bad thing either. In case it hasn’t been so obvious, I am one of those who needs convincing by the likes of Unity and GNOME Shell so I’ll sit on the fence for a while. After all, there always are alternatives like LXDE if I want to decamp to something else entirely. One of the nice things about Linux is the amount of that we all have; it might be tricky to choose sometimes but it always is good to be able to find a niche somewhere else when someone makes a decision that doesn’t suit you.

A look at Emacs

It’s amazing what work can bring your way in terms of technology. For me, (GNU) Emacs Has proved to be such a thing recently. It may have been around since 1975, long before my adventures in computing ever started in fact, but I am asking myself why I never really have used it much. There are vague recollections of my being aware of its existence in the early days of my using UNIX over a decade ago. Was it a shortcut card with loads of seemingly esoteric keyboard shortcuts and commands that put me off it back then? The truth may have been that I got bedazzled with the world of Microsoft Windows instead and so began a distraction that lingered until very recently. As unlikely as it looks now, Word and Office would have been part of the allure of what some consider as the dark side these days. O how OpenOffice.org and their ilk have changed that state of affairs…

The unfortunate part of the Emacs story might be that its innovations were never taken up as conventions by mainstream computing. If its counterparts elsewhere used the same keyboard shortcuts, it would feel like learning such an unfamiliar tool. Still, it’s not as if there isn’t logic behind it because it will work both in a terminal session (where I may have met it for the first time) and a desktop application GUI. The latter is the easier to learn and the menus list equivalent keyboard shortcuts for many of their entries too. For a fuller experience though, I can recommend the online manual and you can buy it in paper form too if you prefer.

One thing that I discovered recently is that external factors can sour the impressions of a piece of software.For instance, I was using a UNIX session where the keyboard mapping weren’t optimal. There’s nothing like unfamiliar behaviour for throwing you off track because you felt your usual habits were being obstructed. For instance, finding that a Backspace key is behaving like a Delete one is such an obstruction. It wasn’t the fault of Emacs and I have found that using Ctrl+K (C-k in the documentation) to delete whole lines is invaluable.

Apart from keyboard mapping niggles, Emacs has to be respected as a powerful piece of software in its own right. It may not have the syntax highlighting capabilities of some, like gedit or NEdit for instance, but I have a hunch that a spot of Lisp programming would address that need. What you get instead is support for version control systems like RCS or CVS along with integration with GDB for debugging programs written in a number of languages. Then, there are features like file management, email handling, newsgroup browsing, a calendar and calculator that make you wonder if they tried to turn a text editor into something like an operating system. With Google trying to use Chrome as the basis of one, it almost feels as is Emacs was ahead of its time though that may have been more due to its needing work within a UNIX shell in those far-off pre-GUI days. It really is saying something that it has stood the test of time when so much has fallen by the wayside. Like Vi, it looks as if the esteemable piece of software is showing no signs of going away just yet. Maybe it was well designed in the beginning and the thing certainly seems more than a text editor with its extras. Well, it has offer a good reason for making its way into Linux too…

Copying only updated and new files

With Linux/UNIX, the command line remains ever useful and allows you to do all manner of things, including file copying that only adds new files to a destination. Here’s a command that accomplishes this in Linux:

cp -urv [source] [destination]

The u switch does the update while r ensures recursion (by default, cp only copies files from a source directory and not anything sitting in subfolders) and v tells the command to tell the user what is happening.

Though buried and hardly promoted, Windows also has its command line and here’s what accomplishes a similar result:

xcopy /d /u [source] [destination]

Anything’s better than having to approve or reject every instance where source and destination files are the same or, even worse, to overwrite a file when it is not wanted.

Ghostscript: **** Unable to open the initial device, quitting.

The above error message has been greeting me when creating PDF’s with Ghostscript on a Solaris box and does need some translation. If you are directing output to a real printer, I suppose that it is sensible enough: nothing will happen unless you can connect to it. It gets a little less obvious for PDF creation and seems to mean that the pdfwrite virtual device is unable to create the specified output file. A first port of call would be check that you can write to the directory where you are putting the new PDF file. In my case, there seems to be another cause so I’ll have to keep looking for a solution.

Update: I have since discovered the cause of this: a now defunct TEMP assignment in the .profile file for my user account. Removing that piece of code resolved the problem.

A way to combine PDF files in UNIX and Linux

My latest adventure in the world computing has led me into the world of automated PDF generation. When my first approach didn’t prove to be completely trouble-free, I decided to look at the idea of going part of the way with it and finishing off the job with the open source utility Ghostscript. It is that which got me thinking about combining bookmarked PDF files and I can say that Ghostscript is capable of producing what I need as long it doesn’t generate any errors along the way. Here’s the command that does the trick:

gs -dBATCH -dNOPAUSE -q -sDEVICE=pdfwrite -sOutputFile=final.pdf source_file1.pdf source_file2.pdf

The various switches of the gs command have very useful roles with dBATCH ensuring that Ghostscript shuts down when all is done, dNOPAUSE removing any prompts that would otherwise be given, q for quiet mode, sDEVICE using Ghostscript’s own PDF creation functionality and sOutputFile creates the output file, stopping Ghostscript from sending it to its default stream. All of this applies to Windows Ghostscript too, though the name of the executable is gswin32c for 32-bit Windows instead of gs.

When it comes to any debugging, it is useful to consider that Ghostscript is case sensitive with its command line switches, something that I seen to trip up others. I am getting initial device initialisation so it strikes me that dropping some of the ones that reduce the number of messages might help me work out what’s going on. It’s a useful idea that I have yet to try.

There is also online documentation if you fancy learning more and Linux.com have an article that considers other possible PDF combination tools as well. All in all, it’s nice to have command line tools to do these sorts of things rather than having to use GUI applications all of the time.

  • 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.