App store for free software?

General IT wishful thinking – skip this to next article if you are not an IT person.

Following Apple’s App store for the iPhone got rolled out also for the iPad and imitated for Android and Windows phones, it seems Apple want to adopt the same methods for people buying software for Macs as well.

I personally this is a great idea, some people will still want to buy software that arrives in a box with media and documentation that they can put on a shelf they can get to if support query or a reinstall becomes necessary, but I think it would good to give the customer a choice.   Just like music can be downloaded or its nice to have a tangible item, an actual CD with artists notes, lyrics etc.

Heres an idea, what would happen if the free/open source software movement could have a online software store?

Free software as alternative to popular commercial apps can be got from sites like www.alternativeto.net or www.osalt.com, but instead of downloading an executable file, you have an automated way of doing it using a simple browser plug in.  Why?

There is a quite a bit of usability aspect which is not always factored in on some software.  Some free software, the method of downloading the app can a bit confusing.  Anyone who has downloaded a Linux ISO image knows this, you get taken to an FTP site with a whole load of confusing files, which its not easy to tell which is the download that suits you.

A lot of consumer users don’t free software as they don’t know a lot of exists.  They use Internet Explorer as that was the browser that came with their computer, and they don’t want to change anything as they don’t feel confident to do it.   Joe Consumer may often not know how ZIP or RAR files are handled or what they are for.  As an IT pro I had never heard of Virtualbox, a free virtualisation client as an alternative to VMware and Microsoft’s Virtual PC until a work colleague told me about it.  I have yet to find a really good web site that announces new and exciting developments in free software thats not just geared to coders and developers.   So essentially a typical consumer goes out to a physical shop to buy software as its too confusing working out what software is free and what is a trial version and what comes bundles with spyware and other unwanted rubbish.

I use and recommend Infrarecorder to burn CDs and DVDs on Windows PC rather than the more common commercial Nero burning suite which has got so over complicated and comes with many annoying unwanted extras which have caused crashes and stability problems in previous places I have worked for.   Infrarecorder is great as it does everything you want burning discs easily without any fuss.

You could:

1/ Have a simple way to deploy top quality free software for all type of people, via a portal which makes installing onto your computer in a standard uniform way (Windows/Mac/Linux)

2/ An option to pay some money for software thats normally free but get a support package, ie: printed manuals or training or X number of tickets or hours or professional telephone or email support with a specialist who know a lot about this app.    Or, sell extra tools to deploy apps in a large network environment, like with SMS that rolll out apps silently to each workstation.

A check box would be default only search the free software store for fullly completed release apps, unchecking the box would should beta test versions of software with a usual disclaimer that this software is not production ready yet.

More and more free software is multiple languages as well, a search engine could be customised for all languages or English only.

The software store would only have applications that follow the GNU general public licence for free software,  ie: this means nothing with spyware, bundled toolbars or other tat.   No trial versions commercial applications either.

I think this would give the open source software movement more audience from all kinds of PC users of all platforms, all abilities, consumers and businesses alike.

Virtualising PCs using Virtualbox to make system admin easier and use less hardware

IT things, skip down a bit if not your thing 🙂

At work I have been using Virtualbox to manage virtual machines.   As an open source replacement for VMware or Microsoft’s VirtualPC I like it, its got the backing of Sun Microsystems (now owned by Oracle)  There are regular updates and active forums for support.   When I first heard of it from a colleague 3 years ago, you can literally throw almost any operating system at it, I used one of the first betas of Windows 7, various Linux distros, and things like Android, the fast becoming popular phone operating system, and all of these worked first time with very little issues.

In a nut shell, it makes a PC into multiple independent computers to run several systems at once, meaning less physical hardware to run servers, test PCs and other things.   The host (physical lump of metal) machine can be Windows, Mac or Linux.

This saves our organisation money as we have less actual hardware, patches and updates are easier manage and less power consumption and disk space used.

Each host that controls virtual machines has folders on the root of a drive as follows, with shortcuts onto the desktop:-

I wrote some documentation what I have done for work, this is not exhaustive, nor have I read much in the way of best practices for virtualisation.  But it is what has worked well for me.   At the moment I have a server which uses macros with Microsoft Excel and Outlook to process helpdesk app for our home repair team.   I didn’t create this system as there was no documentation for it, I took it off a physical PC, virtualised it and stored it safely on a dedicated server.   By stripping out unnecessary applications (Windows Media player, Adobe Acrobat etc) , it only needs about 8Gb of disk space.   I also have our SAP finance app which is on an Windows 2000 server box virtualised which made it one heck of a lot easier to apply patches and updates and do maintenance.   This week a normal Windows XP PC used by a member of staff who is the US which is only controlled by a VPN connection has been converted and stored the same way.

On the root of the drive I have made several folders on each host PC as follows:-

\live
– for real running machines currently used in production. When planning backups, these cannot be copied easily as files will be ‘locked’ as they are actively in use.
\backups
– Copies of critical virtual machines before making any changes. In the event of a change or update breaks the configuration, you can revert back to a previous build.   Make this folder sharable over the network.
\nonproduction
– VMs used for experimental use.  These don’t need to be backed up.
\isos
– copies of CDs, operating system media, service packs, etc. Instead of needing physical media inside the host, these come in handy, as you can do changes to the host remotely with VNC or Remote desktop (RDP)  and grab the CD you want from here.

Best settings for typical configuration

  • Use modern hardware for your host.   You should have a PC with a dual core processor which support hardware assisted virtualisation, Intel and AMD’s recent chips do this.   You should have at the very least 2Gb of RAM, preferably 4, and a mirrored disk RAID array where you VMs are going to sit, as a safety net in case of one disk fails.   Below make sure VT-x/AMD-V is ticked if you do have the one of the newest Intel/AMD cpus that support it.  It will work without this, but this is definitely recommended to have decent hardware.
  • OS for the host.   I am using plain old Windows XP (32 bit, with SP3) as a host, this isn’t ideal for several reasons.   You can’t run 64 bit guests, such as Vista, 7 and all recent Linux distros have 64 bit versions.  Secondly, standard plain-jane XP only can cope with a maximum of 3.5Gb of memory, so if you have 4Gb or more, the extra memory is redundant.   We don’t have licences for any other OS to be used as a host, and I don’t know enough about Linux to do system administration this way, but for those who do, it would be a good plan.
  • Disable sound, USB, floppy drive, serial port, support, etc you are unlikely to need these.
  • Once the Virtual machine has booted, install the guest addons.   This is a clever set of drivers that let the VM integrate well with the guest environment, you get proper video card drivers, mouse pointer will work seamlessly with the host.
  • Make sure you set network card settings to bridged (default choice is NAT)   If you don’t do this, the network card doesn’t work properly, and after I switched the setting from NAT to Bridged it still didn’t work, so I ended up building a new VM.
  • Disable the blue/green Windows XP trim on both VMs running Windows XP and the hosts, this boosts performance.   To do this:- goto control panel / system /  advanced / tick box for best performance / ok.
  • Install only the bare essential applications on the host.   My host, just has AVG antivirus, Infrarecorder, (CD burning) VNC and latest RDP for remote access, Internet Explorer 8 (This PC is not used for web browsing, its there as part of the updates)    I purposely left out things like Adobe Acrobat, as it will mean another set of updates to worry about.
  • Use a specific IP range for your VMs, I choose 192.168.x.90-99.
  • Put a second network card in your host, you can make your VMs work choose which network card to use (upto 4)  as I have found today, one network connection stretches things, when you have a dedicated finance server and another PC which requires a user to use remote VPN connection to it, which kept dropping.   Today, I took the server down and put an extra NIC card and directed the remote user’s VM to this.

Known issues and risks

  • When changing settings on a virtual machine, consider this like a real PC, the VM must be shut down for any changes made in configuration.   Changes to memory, disks, etc cannot be done whilst the VM is running.
  • Make sure your host does not have Windows updates on automatic.   Otherwise unexpected reboots to the host will happen when patches get rolled out.
  • When installing Virtualbox, the installation will add and extra virtual network card to the host system, it will also temporarly break network connectivity on the main network card you are using, normally RDP will attempt to reconnect soon after.   Tip! Download and install the latest version of RDP, there is a new version Microsoft released with Win7, this works happily with XP, and has some improvements on this old version. 🙂
  • Some legacy operating systems (or at least if they are converted from physical to virtual) may hang upon boot up. With Windows 2000 Server I built you need to tick the box for IO APIC.
  • When rebooting some VMs, you may experience a system hang with green stripes, you need to manually restart the VM. This does not impact the VM or damage any system files, but just remember if you remotely reboot that system you might need to manually reboot.  Since I moved from 3.2.8 to 3.2.10 this problem seems to have gone I think.
  • Dont be too enthusiastic to indiscriminately install a new version of Virtualbox without making careful back ups of your VMs. Be prepared for possible problems, seeing as many Virtualbox users have said their VMs failed to boot or crashed if a new version of Virtualbox was installed, due to differences in the way it handles the virtual hardware.
  • The feature that suspend VMs (click the X in the corner, there is an option to send shutdown signal, force a shutdown or suspend a VM) seems to give an odd issue that slows the clock down. This could cause some odd side effects with important servers, so I suggest not using this.

This set up works well for a smaller organisation like us, feel free to comment if you have questions.

One thing I would like to ask, and that if anyone can recommend an app I can run on my host, to monitor network, memory, CPU and hard disk space to make sure I don’t overtax my server with too many tasks.

Need software tools for network diagrams

IT stuff – skip below if this is not your thing.

This last week we got another volunteer in the IT department, its great to get some help, and also pool together ideas on we I can make IT support easier and plan for changes and improvements.

One of the projects for the future is re-do some documentation for our network.

The typical software application to do flow charts and diagrams is Microsoft’s Visio in places I have worked before.

Visio is quite expensive though and has a propriety file format, so all members of a team (and clients) need to have Visio to read the file.

I am thinking of what else I could use to do the job.   As well as cost, and there could be some free tools to do the job, there is the need for extreme simplicity, to making designing and altering diagrams easy and be able to hand over this role to future staff who will eventually replacement me.

I would like to ask my fellow IT peers, in systems admin, and those who do web design and programming, what their views are there on this.

When consulting, do you sketch out things on paper, then on chart modeling software of some kind?   Does complex projects need two or more people to work on a model before coding commences?   Or does a sketch of what’s needed get shown to the client, to check hes happy with the solution that is to be built?

I have largely ditched Microsoft’s Word and Excel in favour of Google Documents, as I like being able to get documentation on any computer, inside my network or indeed anywhere in the world with a web connection.   Plus documentation to rebuilt a server is no good, if it was saved on the one that went down due to a failed disk!!   This is an example of a cloud makes perfect sense here.

A lot of web designers are likely to be using Macs, so an app that’s on Mac and Windows, or a web based app that’s transparently usable on any darn OS/browser is good.

Now, if remember correctly Google now do a vector graphics as part of the Google Documents suite.  Having something cloud based is a huge plus, especially if there becomes a problem with a server that contains documentation.

This isn’t about knocking Microsoft or Adobe, but there is a wealth of free and open source apps, so please feel free to tell us what is the best tool for the job, and responses from fellow IT pros on your preference for ways to do this would be great. 🙂