Tuesday, June 2. 2009
Even as a Linux desktop user, I still have a need to run various pieces of legacy software under Windows. 
Ideally, I would love to find a Linux alternative, but whilst the itch remains, I still need to scratch it.
As such, I run various Virtualbox Virtual Machines running Windows XP.
This gives me the added benefit of still being able to run my preferred operating system as my main desktop (Linux), whilst still using some legacy applications under Windows.
This is nothing new, and most people do this all the time. With most modern CPU chipsets from both AMD ( AMD-V) and Intel ( VT-x) providing hardware assisted virtualization solutions - it has become a simple task for many people.
One thing that has annoyed me, and any user that has ever had to reinstall a Windows machine (it happens to the best of us -- Windows often decides to eat it's own registry), is that whilst you might install straight from CD, it also means you have to then spend a good few hours applying all the service packs and then all the updates from the Microsoft website (and sit back and watch a dozen or so reboots between multiple updates). It's enough to send any sane person around the bend.
Once you've done it - you vow never to do it again, yet as Murphy would have it... it's bound to happen again.  This is partly due to the fact that Windows Deteriorates over time, until one day the performance is so shoddy you can swear you saw a snail push the cursor on your screen. Once it comes to that, it's time to reinstall again.
Microsoft also recognised it's a problem, particularly in corporate environments that run many desktop PCs. As such they released WSUS. That's fine and well -- if you run a Microsoft Windows 2003/2008 Server.  Unfortunately most home users don't.
Don't dispair! Some geeky German's have released a GPLv3 licensed utility that will pretty much undertake the task for you without the need for an expensive Microsoft Windows Server anywhere in sight. c't Offline Update, allows you to use either Linux or Windows to download all the updates for both Microsoft Office and Microsoft Windows platforms. In addition it can handle different language versions, and even build a nice ISO off all the updates so you can take it on the road, hand it to friends, etc.
Why on earth would they code it to download the Windows Updates on Linux? Well, it makes it easier to install in a central location -- say on a Samba server so that all your desktop machines can then install the updates from a central location over your LAN. (Call it a poor man's WSUS!)
To run under Linux it couldn't be easier. Once you have downloaded c't Offline Update and extracted it... change into the sh subdirectory. It's then just a matter of running the DownloadUpdates.sh shell script with the right arguments: $ ./DownloadUpdates.sh -help
**********************************************************
*** c't Offline Update Downloader ***
*** for Linux Systems ***
*** ***
*** http://www.heise.de/ct/projekte/offlineupdate/ ***
*** Authors: Tobias Breitling, Stefan Joehnke ***
**********************************************************
Usage: ./DownloadUpdates.sh [system] [language] [parameter]
Supported systems:
w2k, wxp, wxp-x64, w2k3, w2k3-x64, w60, w60-x64, oxp, o2k, o2k3, o2k7, all-x64, all-x86
Supported languages:
enu, deu, nld, esn, fra, ptg, ptb, ita, rus, plk, ell, csy
dan, nor, sve, fin, jpn, kor, chs, cht, hun, trk, ara, heb
Parameter:
/excludesp - do not download servicepacks
/makeiso - create ISO-Image
/dotnet - download .NET-Framework
/nocleanup - do not cleanup client directory
/proxy - define proxyserver( /proxy http://[username:password@]:)
Example: ./DownloadUpdates.sh wxp deu /dotnet /makeiso
$ c't Update also provides a simple Windows GUI to automate the task:  Tab 1: Download Windows Updates |  Tab 2: Download Office Updates |
Installing the updates on the client.
Once you've downloaded the updates and either burnt them to a CD/DVD (for easy portability) or made them available on a network share ( Tip: share the sub-directory called client) Windows users can then easily apply the updates.
A user can run UpdateInstaller.exe (in the root directory of the CD or the share). The UpdateInstaller will determine what you have installed already (and grey these options out). It's then just a case of selecting the options you want.  Client Installation of the various updates. |
Now for those family members who are in dire need of a 'computer fix' and need me to reinstall Windows for them, they'll be given burnt copies of the latest ISOs, so they can in future undertake the task themselves. I would rather educate someone how to undertake the rebuild themselves for future use. (That, and I really don't have the spare time/desire to rebuild dozens of Windows machines a year!  )
Finally it's also worthwhile downloading and running the free Microsoft Baseline Security Analyzer which will ensure you have all the updates applied (and inform you if you are missing any). It's also a good idea to disable any non-essential services the tool recommends.
Hopefully this tip will speed up the time it takes to fully patch a Windows desktop after a reinstall.
Thursday, January 22. 2009
Ahh the good ol' days.
I distinctly remember the days when you would stick a printer on the network and then wrestle with the sucker getting the right settings so your printouts didn't look like Egyptian hieroglyphics.
Installing custom filters and weird control files were all the norm. Not so much now.
Thanks to Michael Fox advice, I purchased a Brother Mono Laser printer this week (that handles Duplex/Networking as well). The Brother HL-5250DN works 100% under Linux and just required installing the PPDs off LinuxPrinting.org (though it was working fine prior to that just via CUPS and the included driver). What's even more surprising is that they have a Linux section on the Brother website.
I had the printer uninstalled from the box, read the 'setup instructions' included (plug this, remove that, etc), and had it printing duplex in < 10 minutes!
Before Michael's advice -- I had avoided Brother printers -- mainly due to having a PoS Brother plain-paper Fax machine. It seems their printers are much better than their Faxes.
So a big thanks to Michael.
So I ask Linux developers... stop making it so easy to install hardware. Otherwise everyone will be running Linux before too long!
Now -- I only need a bookcase in my office, and I've completed my new office setup!
Tuesday, November 18. 2008
It seems former Macromedia staff are busy shovelling snow in Hades.
The Adobe blog Penguin.swf has a nice post on an alpha version of Acrobat Flash for x86_64 for Linux
So all those running a 64-bit distro using the not so compatible swfdec might wish to give it a whirl.
Adobe have brought flash a long way, they've open sourced the format, provided better Linux support (though that's not to say it's without issues).
Hopefully Adobe and the Linux community work closer in the future on getting stable releases of all their product lines. Abode has a long history of Mac support, and I'm sure there would be a great following amongst Linux users, and help move an even larger user-base off Windows.
How many people do you hear that are 'stuck' on Windows because they use Adobe Photoshop or a similar Adobe product?
I wonder if this announcement means I'll see more adverts on the web now.
Sunday, September 28. 2008
Most people are aware the Google's Chrome Browser is based on the great work of the Chromium Browser Project.
CodeWeavers have even created a free 'port' of Google Chrome for Linux users, aptly named CrossOver Chromium. This means Linux people don't need to feel left out of all the Google lovin'.
There have been a few people concerned with privacy issues (also here and here) when using the Google Chrome browser. Even the EFF has raised concerns. Google has reacted and posted some information regarding privacy in Chrome.
There has been some applications produced that remove one of the largest concerns people have (a unique ID assigned to every installation of Chrome). In particular Chrome Privacy Guard will strip this unique ID out for you. Turning off some of the features (like Google Suggest) via the Browser preferences will also limit the amount of information sent back to the mothership (Google).
Buoyed by all these privacy concerns, SRWare a German software company have released 'Iron', a browser also based on Chromium source but without all the 'Googleness' privacy issues.
If you like Chrome, but are concerned about the privacy aspect, Iron might be your solution.
For those on Linux and really just wanting to use a WebKit based browser, take a peek at Midori.
Thursday, September 25. 2008
Most people don't read User Manuals. It's a shame as they miss out on lots of great tid-bits.
One such nugget can be found on Page 66 of the VirtualBox User Manual:
Like a real SATA controller, VirtualBox’s virtual SATA controller operates faster and also consumes less CPU resources than the virtual IDE controller. Interesting...
I thought I would give this a go.
I had an existing 32-bit Windows XP installation that used the traditional IDE interface, and found it used about 25% of my CPU when running (using an Intel Core 2 Duo E6600) when running under a 64-bit Linux installation.
Whilst it ran fine, dropping the CPU utilisation and speeding it up sounded like a great idea.
Once done, I compared the results... it was indeed 'zippier', and low and behold, the CPU utilization had dropped to around 5%! Now that's a big improvement!
 | So how did I go about it?
- Start the Virtual Machine as per usual.
- Download and install the Intel Matrix Storage Manager (used to see the SATA interface).
- Install the software.
- Shutdown the Virtual Machine
- Now create a temp virtual disk, and install this on SATA-1 on the virtual machine.
- Boot back up and ensure you can see the disk (it won't be formatted, so you will probably need to look in the Disk Management utility found in the Administration Tools -> Computer Management -> Disk Management)
- Hopefully you can see the newly added disk.
- Shutdown the virtual machine.
- Change your IDE disk to now be on SATA Port 0
- Remove the temp disk you previously added.
- Boot back up and you should now be on a SATA HDD, that now is more snappier and uses a lot less CPU.
You can also use the floppy disk drivers to install it directly using the 'F6' key during installation. |
NB: For those using Vista - you'll find it supports SATA out of the box. (No need to install an additional driver)
So enjoy faster and less resource hungry virtual machines.
NB: Whilst this covers SATA under Windows based Virtual machines, it also applies to running Linux based Virtual Machines.
Wednesday, September 24. 2008
I've seen many people that run Windows under VirtualBox to run those legacy applications that just haven't made it across to Linux.
Too often I see people messing about with Ethernet bridging because they feel the need to have some incoming ports on the machine active to the outside world.
Fair enough, however it's a complex way to accomplish that. You're much better using the simple NAT interface, particularly if it's only a few incoming ports.
NAT under VirtualBox does indeed allow incoming ports. Knowing how to set these up is the key!
By definition, a NAT internal IP uses an IP address in the private address space defined by RFC1918. Namely one from these networks: 10.0.0.0 - 10.255.255.255 (10/8 prefix)
172.16.0.0 - 172.31.255.255 (172.16/12 prefix)
192.168.0.0 - 192.168.255.255 (192.168/16 prefix)
Most people are familiar with 192.168.0.0/24 or 192.168.1.0/24 which many ADSL routers provide. Many know that you can setup port forwarding in their router to allow external IPs access to a particular port/service on their internal machine. Virtual Box is no different.
Like a network router that can be configured so that accessing a particular port on the router it can be sent directly to the machine(s) behind it. How is this accomplished under VirtualBox? You just configure a port on the host machine to be forwarded to the IP and port on the virtual machine.
VirtualBox ships with a nifty little GUI. It's simple but effective. Unfortunately much of the power to configuring your virtual machines is not found in this tool.
VirtualBox also packs some handy cli tools for managing your virtual machines.
One such tool is the VBoxManage utility. Infact this is the tool we'll be using to enable some port forwards.
Let's enable the Remote Desktop Protocol in our Virtual Machine. This Virtual Machine is called MyVM for ease of use: VBoxManage setextradata "MyVM" "VBoxInternal/Devices/pcnet/0/LUN#0/Config/vmrdp/Protocol" TCP
VBoxManage setextradata "MyVM" "VBoxInternal/Devices/pcnet/0/LUN#0/Config/vmrdp/GuestPort" 3389
VBoxManage setextradata "MyVM" "VBoxInternal/Devices/pcnet/0/LUN#0/Config/vmrdp/HostPort" 3389 As you can see we passed several arguments to VBoxManage. You'll find by just running VBoxManage without any arguments that it will list all it's available options (there is quite a few!).
In this example the arguments are:
- setextradata: Inform VBoxManage that we wish to do additional configuration of our Virtual Machine.
- "MyVM": The name of our virtual machine.
- "VBoxInternal....": The key we wish to change. In this example, it's a new port forwarding rule on our specific ethernet card. (You'll find more information in the UserManual for Virtual Box for a list of available ones)
- Final value: The actual value we wish to set for the key.
So what did the 3 lines accomplish?
- We informed VBoxManage that we wanted to configure a TCP rule (named vmrdp) for our first ethernet card (pcnet)
- We set the TCP port we want to send the forwarded packets to within the virtual machine. (GuestPort 3389)
- We then defined the port we wanted to listen to on the VirtualBox Host (HostPort 3389)
Now basically from anywhere on you can hit your Virtual Box Host on TCP/3389 (eg: Your Linux desktop), and it will forward the packets through to your virtual machine. Neat 'eh? If you are on your Linux box and running VirtualBox in say headless mode.. you can get a remote desktop session by just connecting to localhost:3389.
Some things to also remember: - If you need TCP and UDP rules... you need to define them seperately.
- You need to set a 'working' port forward with the triple configuration above (it takes 3 commands to get a working port forward.
- No two rules can have the same name. This also counts for a service that runs on both UDP/TCP on the same port. In that instance name it something like myserviceudp and myservicetcp to distinguish them.
- Port forwarding is set across reboots. You don't need to do this multiple times.
- VBoxManage basically edits the xml configuration file for your Virtual Machine. If you don't want the port forwards any more... just edit the xml file directly is the fastest and easiest way (likewise once you get the hang of it and the format, there is nothing stoppign you editing the xml definition file directly).
Other things you should know about NAT networking include: - By default the NAT network is 10.0.2.0/24.
- The actual network can be changed using VBoxManage modifyvm "MyVM" -natnet1 "10.10.1.0/24" (Change the last value to your desired network/netmask.)
- The IP assigned by the VBox DHCP server will be .15, with a gateway of .2.
That's a brief introduction to some of the features you can accomplish with VBoxManage. Explore a little and you'll be amazed how much you can customise.
Have fun!
Wednesday, July 9. 2008
Ask any small business owner in Australia what drives them craziest running their business.
More often then not the answer will be their accounting software.
Why? It's not because they are unable to understand the principles of double-entry accounting or even the tax system imposed on them.
No, its the lack of a decent, flexible and affordable solution.
The two most popular business accounting packages for the SME is either MYOB and QuickBooks. Both have huge hurdles, and it's not uncommon for users to find that they spend more time attempting to work the software than the software working for them.
I have previously blogged about the issue when talking about how Linux is difficult for many Aussie SMEs to take up. (Mainly due to their critical accounting software only available under Windows, though it is possible to run them under WINE if required). Though getting these Windows programs running under Linux doesn't actually solve the problem, it just migrates it. You are still stuck attempting to drive these frustrating accounting packages.
The Australian market is crying out for an alternative! It's something I've pondered over for some time.
An OSS based accounting and payroll system that put the source code directly in the hands of the users would be appealing to many.
I like the idea of a browser-based accounting system. It means end-users aren't restricted to one operating system platform, and in theory it doesn't need to be restricted to just a computer. (3G Accounting anyone?).
Accounting isn't fun, in fact it's dead-pan boring.  It is however a required evil if you wish to be paid and be compliant with the taxation law. (Particularly GST, BAS reporting and PAYG).
I've looked at programs like SQL-Ledger and LedgerSMB, though both didn't 'fit right' for an Australian environment.
SYMBOL was promising. But unfortunately has been abandoned. fiveDASH, I played with for several hours, though I found it quite primitive and in it's infancy... it's one that at least has some promise, but it will need to progress quite some way to make it in any real production system for a business.
As such, I've decided to look at writing my own. This is purely selfish, as I would like to ditch MYOB come the 2009-2010 financial year. That gives me just under a year to get something up and running.  I'll run a dummy book up til the time, by running MYOB in parallel to ensure all is working as required. The ATO also has some excellent test suites/scenarios to assist in testing an application.
The big choice now is from what components should I build it?
I think PostgreSQL is probably the most solid OSS database to use, though writing something that can also talk to MySQL (due to it's popularity) is probably also wise. End-users can then elect to run whichever they feel most comfortable for their backend.
I considered many languages, but I'm leaning towards PHP for a few reasons: - Most SMB that have a Linux server for File and Print serving also have a LAMP environment already setup.
- Writing the system using say the Zend Framework ensures a lot of the ground work is already done. Working within their coding standards also ensures the code is reasonably clean and readable (and thus maintainable).
- Python was also considered, but it's more likely a SMB has a Apache/PHP environment over an Apache/Python setup
- I already have quite a number of generic PHP libraries that will mean I can get moving much faster. My Python libraries are no-where as extensive.
- A Java-based web app would be an overkill and likely to confuse many small business owners. (ie: Install a Java Application Server, etc.)
- SugarCRM is already popular in many SMBs. It would be quite easy to have an Accounting + Payroll package integrate into SugarCRM. Sugar is written in PHP, so it would make the job much easier if they both spoke the same language.
I haven't commenced any coding to date, and am still in the embryo stage of getting something up off the ground.
I'm interested to hear people's feedback with their thoughts. Do you think a PHP application (backended by your choice of MySQL or PostgreSQL) for your business accounts is feasible? (Obviously if 'approved' by the ATO as compliant).
Do SMB owners prefer the option of paid software with support packs? (like offered by MYOB and Quicken) they can fall back on? Would you not trust your business books to an OSS based accounting package? What other hurdles do you envisage if you used OSS accounting software?
Monday, June 23. 2008
 It seems various people are getting certificates for helping the Mozilla team set a new world record for the number of downloads in a day.
It's always interesting to see some of the organisations that made it possible!
Tip: Click on the image to see a larger version.
Tuesday, June 17. 2008
 At 3:00am AEST on Wednesday 18 th of June will herald the release of Firefox 3.
It's a big jump ahead from the heady days of Firefox 1 and Firefox 2 days.  This version includes over 15,000 enhancements from the 2.x series. It's faster, funkier and doesn't eat anywhere near the memory Firefox 2 did!
The guys over at SpreadFirefox are attempting to set a world record, with the most downloads in a given 24 hour period. You too can be part of it!
I'm currently running one of the Release Candidates, and I've found it brilliant, all my favourite add-ons are now working flawlessly in it.
So help spread the world, Australia has around 30% of it's Internet users using Firefox these days. So people do understand and utilise the crazy fox based browser.
Moving more people off Internet Explorer will also ensure that Australian websites that wish to remain 'visible' will also start writing websites that are browser agnostic and follow the W3C standards (something IE only websites break heavily).
Microsoft claim that they are going to be moving fully to standards compliance with IE8, but don't hold your breath. We've been hearing that for years. As long as nasty ActiveX still hangs around like a bad fart in a crowded elevator it's not going to be compliant (or safe for that matter). And yes, IE8 will ship with ActiveX.
So hop to it! Pledge to download Firefox 3 on Wednesday, and become a World Record Holder!
Saturday, June 14. 2008
Wine is a way to run native Windows applications without Windows.
The Wine project have been able to replicate the APIs required to run quite a number of applications under their environment.
It's one way you can run your legacy Windows applications under your Linux desktop.
I daily run Wine for a number of applications for business: - Windows Lotus Notes for my office Email - it's not as crappy then as the native Linux one then. :-P
- Internet Explorer 6 for those pesky websites that refuse to run without IE (many customer client websites).
- Microsoft Office for some complicated files that get garbled by OpenOffice (but that number is decreasing with every release!)
Other good news about Wine is that 1.0 is just about out the door. (Don't be fooled by the low number - these guys are perfectionists, and it's been a long, long running project!)
Here's the blurb off their website:
Friends, vintners, penguins, lend me your ears:
We come not to praise Windows, but to celebrate our increasing independence from it.
The final release candidate for Wine 1.0 will appear this Friday (13th), and barring catastrophe, Wine 1.0 itself will be released a few days later. I recently blogged about how hard it is for many small businesses to move off Windows. One way they can (particularly those that are on pre-Vista desktops and don't wish to go to Vista) is to utilise Wine for those legacy business Windows applications that need to run. 8-)
This way they can keep their functionality, but move to a more secure, less restrictive (licensing) operating system and a better and more richer computing experience in my opinion. :-)
I recently attempted to see if I could run MYOB under Wine. Currently Pauline is stuck on Windows, due to her requirement to run MYOB to do our company books. MYOB ran under Wine without a hitch. :-D
Well... until I went to print. It went off to the dark printing gods and spat out an empty plain page -- no matter what I printed. And thus is the reason for this blog post.
— – — – —
If anyone does business accounting, you realise printing is a key feature. Many hectares of forests are destroyed each year keeping up with the legal requirement of keeping records accounting records. (Personally we print a lot to PDF -- but still, under Wine this was failing for us!).
Scroll through many Linux forums/help sites and you'll hear people whining and complaining about printing under Wine. It seems to have also increased with the introduction of CUPS. From what I could see people where having problems printing to a physical printer most of the time, even though their CUPS printers correctly are represented and available in Wine. (This is exactly what I was seeing -- just blank pages printed).
Unfortunately this was going to be a show-stopper. Without a way to print (paper or electronically) for MYOB the idea was dead in the water. I didn't want to run Windows XP in a virtual machine (more on that in my next post over the following days).
I decided to sit down and take a bit of a fiddle (that's a technical term!) :-P
Really -- if CUPS-PDF didn't work, and my native printers attached, even a Postscript file would be sufficient (I could then feed that into ps2pdf or something similar if I really wanted it in PDF format for Emailing, or just print the Postscript file directly to the printer.
I found that within the printing application I could create a virtual printer that printed a postscript file directly to a file in Linux. Okay, that works fine under Linux... Now the big test, did it print fine with MYOB running under Wine?
I could see the printer fine (as I could with all the other CUPS printers previously). I bit my bottom lip and hit print. Low and behold... a working report! 8-)
Even better I could link the Postscript printer to the CUPS-PDF printer and it would convert it auto-magically into a PDF for me.
I since tested a range of applications under Wine and they all seem to be printing.
So if you need to print in Wine and don't want a headache, try the local Postscript virtual printer hack. It works well. :-D
For those that want to replicate it, here is a series of pictures showing the Postscript printer properties.
And if you still don't believe.... here is a sample print job... one in Windows with MYOB and one under Linux
|