Posts Tagged ‘Oracle’

On Software Patents, Oracle & VisiCalc

The web is aflutter at the moment with discussion of the patent system and its relationship with the software industry in particular (the most thought-provoking piece on the subject so far comes from Nilay Patel and is fully worth the requisite time investment). Should we let people patent software? At what point does math become a patentable invention?

Like most people, I’m unversed on patent law, but I am a sometime software developer. Personally, my gut feeling is that if a piece of software is developed for an explicitly commercial application then it absolutely should be protected under law, particularly if the software effectively IS the business (Google, for example). Surely it isn’t right that I invent something, someone else brings an identical product or service to market and my company is forced out of business? But gut feeling seems to be what most pundits are running on, and is not necessarily the best way to approach the issue.

Current hysterics calling the system ineffective or broken should consider two software cases from near the dawn of our industry, over three decades ago. The first case is Software Arts’ VisiCalc, the first electronic spreadsheet program for personal computers. Although a new invention, the fundamental concept – an electronic spreadsheet – of VisiCalc was not patented, and within a couple of years of its release the market was populated with alternatives, most notably from Lotus and Microsoft. If the core idea behind VisiCalc had been patented, 1-2-3, Multiplan and later Excel would not have existed, or would have needed to invent a totally new spreadsheet metaphor to be permitted under law. But Software Arts did not patent the electronic spreadsheet, and consequently the only time they or VisiCalc are mentioned these days are as points in patent discussions.

Dan Bricklin, one of the co-creators of VisiCalc doesn’t argue for specific change, but does intimate that the patent system is not best suited to the software industry. However, in the same post he actually states that the lack of a VisiCalc monopoly (which would have been enabled by a patent of Software Arts’ take on the electronic spreadsheet) encouraged competition and improvement in quality of all the available software packages (Multiplan correcting the mistakes of 1-2-3, which improved on the shortcomings of VisiCalc etc…). If the core concept behind Archie had been protected by law at the beginning of the ’90s, Yahoo!, Google et al. perhaps wouldn’t exist. Because the overarching concept of a web search engine isn’t itself patented, but the effective and novel technical innovations that make a great search engine can be, we have multi-billion-dollar companies built on the foundations of innovation, protected by the patent system. Bricklin is correct to assert that the broad metaphor of an electronic spreadsheet doesn’t benefit from being patented, much as the fundamental idea of an internet search engine wasn’t. But the current patent system has demonstrably fostered protectable innovation in the case of Google – not so broken in that case, apparently.

One company famous, perhaps more so than any other, for developing, patenting and licensing high technology is IBM. In the 1970s, researchers at IBM developed the relational database model, a vastly superior means of storing and operating on data to the existing database paradigms on the market at the time. To protect the revenue streams provided by their existing database systems however, they chose not to immediately market products based on the new technique. Instead, one Lawrence J. Ellison and colleagues formed a company of their own to being a product to market based on an implementation of the SQL concept outlined in IBM’s research – the Oracle Database.

Oracle, the company, was started to market a software concept developed but not exploited by another organisation, and just like Microsoft with Multiplan and Lotus’ 1-2-3 they may not have invented the central idea but they have innovated on it and created a technologically progressive sector of the industry where there would instead have been a monopoly.

Those are the two cases which spring immediately to my mind when I meditate on this subject (again, not one which I am educated to consider from a legal standpoint). It’s difficult to separate my feelings as a developer – if I invented the RDBMS and Larry Ellison ate my lunch, I wouldn’t be very happy – from my thoughts as an observer – had IBM patented the RDBMS concept or SQL as an implementation thereof, this site wouldn’t be running (and the LAMP stack wouldn’t exist). It seems to me that if any changes need to be made, and again, I’m not a lawyer, they need to be made to what kind of patents you can be granted rather than whether you can patent software at all. Larry Page’s patent on PageRank doesn’t preclude anyone else from creating a search engine, but it isn’t allowed to work just like his does, which is what forms the core of his competitive advantage. And in Oracle’s ongoing complaint against Google and Android, Oracle shouldn’t be allowed to own the idea of a VM with JIT compilation, but they should be able to protect the innovations which they own to do with its operational techniques. The legal system would be best improved by stipulating the breadth and application of concepts eligible for patent protection, as well as those who are permitted to action upon them (no trolls, please).

Install Java for Mac OS X 10.7 Lion

Like many people out there living on the Macintosh, I’ve spent the best part of this evening backing up, installing and downloading files, all to upgrade my machines to the latest and greatest from Cupertino, CA – OS X Lion. I’ve got a pretty epic Evernote listing all the software I need to reload, but one absentee from the default install is the Java platform. As a Java dev, this is one of the first points I’ve looked to address.

Installing Java on OS X Lion is actually really easy, but for some reason starting the process is not very obvious.

Java is installed by the Software Update program, however to launch the process you’ll need to open a Terminal window and type:

$ java

Software Update will take it from there. Seems so odd, the pairing of Terminal and Software Update, probably the least and most friendly parts of the Mac OS.

Create VHD Images Using VirtualBox

Yesterday, I wrote a post offering some VHD image files of various sizes for download. However, if you’re a bit more intrepid, you might want to create some of your own.

Despite the fact that (as far as I’m aware) you can’t create VHD image files using the GUI version of Oracle’s VirtualBox software, it is possible to create them using the command line tool ‘VBoxManage’.

Here’s how:

$ VBoxManage createhd --filename 40GB_VHD.vhd --size 40000 --format VHD --variant Standard

This command is fairly self-explanatory. Options as follows:

  • createhd (create a virtual disk image)
  • –filename [filename.vhd]
  • –size [size in MB]
  • –format [specify the new file as a VHD image]
  • –variant [‘Standard’ equates to self-expanding]

VBoxManage and other VBox command line tools are installed when you load the full version of VirtualBox (available here), so there’s nothing extra you need to load on. This command works on PC, Mac and Linux. Enjoy!

Booting a Virtual Machine from a USB Disk (Easily)

Virtual Machines are fantastically useful – whether you want to try out something beta, something old, run apps across platforms or in the cloud, VMs are a killer part of any power user’s repertoire.

One thing which I’ve felt has always limited their flexibility, however, is their storage mechanism, the virtual hard disk. In a previous tutorial, I used Oracle’s VirtualBox to install Ubuntu Linux to an external storage device. Out-of-the-box, however, VBox and its ilk don’t make booting from a physical disk a particularly simple process (see here, for example).

Luckily, this doesn’t need to be, thanks to the Plop Boot Manager.

This boot manager obviates the need for any command line trickery to boot your VM from USB. (This assumes you’ve already got an OS installed to a USB drive – if you don’t, have a look at this tutorial, which demonstrates how to install Ubuntu to a USB disk from within a VM).

How to:

1. Download the Plop boot manager to your host computer (here)

2. Open up your virtual machine and connect ‘plpbt.iso’ to your virtual CDROM drive.

3. Connect your USB disk to the virtual machine.

4. Boot up the VM. When the Plop boot screen appears, select USB.

The machine will now boot from the external disk. Once the OS has started loading, it’s safe to ‘remove’ the Plop image from the virtual CDROM drive.

Install Linux to and Boot from a USB Drive on Your MacBook

I, like millions of others, use Mac OS X as my main operating system. It’s fast, reliable and secure, and the computers it runs on are undeniably the best designed and built machines available on the market. There are many options available to users who need the added flexibility of running Linux or Windows alongside OS X, perhaps through SSH or by using a Virtual Machine. Sometimes, though, you need a full, non-virtualised OS environment to work in, and while Boot Camp is great it’s not ideal for someone like me who rolls with a very fast, but very small, SSD boot drive.

In this tutorial, I’ll show you how to install Linux to any external USB device and boot your Apple computer from it. I’ll be working with Ubuntu 11.04 32-bit and a MacBook Pro running Mac OS X 10.6 Snow Leopard. Guides elsewhere online seem to only help you if you happen to already have a Linux box to work with – my tutorial only requires one Macintosh computer. All the software used herein is open source and free of charge.


Vintage & Rare Part II – Windows Me Beta 1 (Georgia)

No, you read that title correctly – there actually was a beta version of Windows Me. Contrary to popular belief, Microsoft did test Me before shipping it, under the beta code name of Georgia. I loaded up Georgia 4.90.2380 on VirtualBox this week to take a look at a prerelease version of a product who’s negative reception could give Vista or Kin a run for its money any day of the week.

I decided to set my VBox ostype to ‘Windows98’ for this installation rather than ‘WindowsMe’…this is a beta version which definitely still has more in common with 98 than the final product. This VBox is equipped with a generous 128MB of RAM and a 2GB hard drive.

The Georgia CD is bootable, and immediately asks if I’d like to install Windows 98. The mislabeling of the OS on the CD is a pretty good indicator of the completeness of the CD installer – my copy didn’t even have the facility to partition and format the hard drive. Instead, I had to boot to a Windows 95  installation disk to prepare the disk. Further to this, the installer wouldn’t load automatically from the CD: even if you select ‘Start Windows Setup’ at the main menu, you are sent to a command prompt with an error message declaring that the Windows setup files cannot be found. Luckily, switching the prompt to the CD drive and typing ‘SETUP’ kicks things back into life. (more…)

VirtualBox ostype List

When you’re creating a VirtualBox VM, you need to specify an –ostype when using ‘VBoxManage createvm’. A list of these options is, bizarrely, not in the VBox documentation. You can get this list by typing ‘VBoxManage list ostypes’ at the command line, but here it is reproduced for reference.

ID:          Other
Description: Other/Unknown
ID:          Windows31
Description: Windows 3.1
ID:          Windows95
Description: Windows 95
ID:          Windows98
Description: Windows 98
ID:          WindowsMe
Description: Windows Me
ID:          WindowsNT4
Description: Windows NT 4
ID:          Windows2000
Description: Windows 2000

Porting a Virtual Machine to a VirtualBox Server

If you’re like me, you’ll have a few virtual machines in the stable on your main desktop computer, which isn’t always the best place for them. Virtual hard drives take up tons of room, and the machine itself will be a big resource drain on the host system. This task is ideally suited to a server, and if you use VirtualBox it’s easy to port your desktop VMs to the cloud, freeing up hard drive space, wiping out the resource toll and making the virtual machine accessible from any computer.

This technique is also really useful for tricky to install virtual machines, particularly those with installers requiring multiple floppy disks, which can be set up with ease on a GUI machine and then sent to the server for archiving/remote access.

i: Check Your Specs

Before opening any terminals or remote anything, you need to open VirtualBox on your desktop computer (I’m using Mac OS X but this process will be exactly the same under Windows or Linux). For this example, I’ll be porting a virtual machine containing Windows NT 4. Again, this will work fine for any guest OS.

When VirtualBox opens to the ‘VirtualBox Manager’ screen, highlight the machine you wish to port. The specs of the machine will appear in the right hand pane of the window (see fig 1).

fig. 1 – Check the specs of your VM

We need to recreate this environment as closely as possible on the server to maximise compatibility. Most of the time you’ll be using the default VBox hardware selection, but you still need to make sure that you match the other details with as much accuracy as possible.


Choosing the right Virtual OS: Windows XP vs. Windows FLP

One of my favourite things about the ubiquity of multi core CPUs, broadband and gigabytes of RAM in modern computers is that virtual operating systems are finally viable. When I was growing up, trying out another OS meant multiple hard drives, partitions and the struggle of actually tracking down discs for these exotic digital curios. (I learned the hard way about making sure you’d partitioned a drive properly when I overwrote Windows 3.1 with a copy of BeOS I got with a computer magazine sometime in the mid-90s.) Thankfully, broadband can hook you up with pretty much any *nix OS in 10 minutes flat these days, and it’s one of my favourite modern software toys which gives you a no-risk sandbox in which to experience the object of your curiosity: the virtual machine.

I wrote a post at the beginning of this year detailing how to set up a remotely accessible cloud-y virtual machine using VirtualBox 4. Covered in that tutorial were the technical instructions for actually setting up the virtual machine itself, however I didn’t go into any detail about choosing an operating system to run on your brand new VBox (mainly because I specifically needed an XP machine at the time).

To serve as an interesting comparison, and also to segue nicely into my forthcoming (I promise!) series on the ‘OS less travelled’, this post will cover the differences in functionality and performance between ‘full fat’ Windows XP Professional and ‘semi-skimmed’ Windows FLP.

Windows FLP stands for ‘Fundamentals for Legacy PCs’, and is a slimmed down install of XP specifically designed for low-spec machines. You can read up on the OS itself at Wikipedia – but is it a viable candidate for a general purpose VM?

Test Conditions

Time to get (relatively) scientific. The two machines will be set up as per my guide with identical specs: 512MB RAM, single CPU, 12GB hard drive and 8MB VRAM.

(Handy aside: to get the specs of a VirtualBox VM, type ‘VBoxManage showvminfo XP’, where XP is the name of the VM in question, at the command line)


The installer for FLP is very different from XP. At the time of its release in 2006, Vista was about to ‘replace’ XP as the computing world’s de facto operating environment. Ironically, the design language of Vista, derided for its over-emphasis on power-sucking visual trinketry, has infiltrated this ‘low power’ Microsoft OS – you can see the modern Windows flag in figure 1, for example. The installer also has a full GUI, a pioneering feature for a Microsoft OS.

fig. 1

Figure 2 shows the installation type selection – I’m going for ‘typical’ in this case. The fully-GUI installation procedure allows very easy access to advanced installation options such as unattended installations and manual TCP/IP configuration. (more…)

Setting Up a Headless VirtualBox VM in Ubuntu Server

In the past week, I’ve been asked to reinstall Windows XP onto a PC which has recently suffered a hard drive failure. One of the problems with the continuing use of this OS (which celebrates its tenth birthday this year) is its antique selection of included drivers and inability to load from anything except a floppy disk at install time – press F6, etc…

Thankfully, we have nLite, which helps the process of slipstreaming drivers written this century into an installation and creating custom media for loading the now ancient XP onto machines with such advanced features as…SATA.

This is exactly the issue I faced with this particular machine, but without a Windows machine on which to run nLite (which is sadly not available for Mac OS X or Linux) I was pretty stuck. For my own work, I never have any need to use Windows, however there is one killer application for Windows which means I do sometimes have use for it once or twice a year – repairing other Windows computers. A virtual machine is the perfect solution for this problem.

In this tutorial, I’ll show you how to set up VirtualBox on a headless Linux server and access the VM from any internet-connected computer.

(These instructions are written for Ubuntu Server 10.04, however they should work with other versions of Ubuntu and be similar to other distributions as well)


  • Oracle VirtualBox 4.0
  • Operating system installation media
  • Microsoft Remote Desktop for Mac (or equivalent)

Step 1: Installing VirtualBox

  1. Visit Oracle’s VirtualBox download page on your client machine. There is a wide range of supported Linux distributions and versions, so find the one you are running. Right-click the appropriate link and select ‘Copy Link Address’
  2. Open an SSH connection to your server and navigate to the folder you wish to download the installer to (for example /home/user/downloads). (more…)