Posted by & filed under Computers, Linux.

Well, I finally got all (but one…) of the parts of my new computer. My new case, the Cooler Master COSMOS “S” is in one word: absolutely awesome. I love the fact that all of the drives can be pushed in, and with one press of a button, the drive will lock in.

This comes with the terrible actuality that my hot swap device, the Chenbro five-in-three hot-swap device fails to just slide and lock in, because of the grooves in the case that allow the normal 5.25″ drives (like a CD drive) to just plug in with out any screws. So, it looks like I am going to need to get a file, and file away these damn things.

So yes, the one thing that is stopping me from putting this computer together, is (one again, mind you) the fact that I want so much storage. If I had only known that putting so much storage in a decent case would be so much hassle.

Other then that, everything else plugs in perfectly fine, which is pretty cool. I still really don’t know why there is a SATA connector on the top of the case, especially seeing as I have nothing that will plug into it, yet…

Can’t wait to file the things that are stopping me from putting the hot swap drive bay in.

Posted by & filed under Computers.

file1203579412114After ranting about Apple’s overpriced machines. which are nothing short of a bad joke, I am still over excited to get my new machine. My new AMD Phenom & Adaptec 3405-based machine is going to be used by me in the testing and development of two exciting products. ShareSource’s Xen compile farm, and another, top secret project that will keep me pre-occupied while I pay off my loan.

Anyways, a quick run down on the specs of the machine:

  • Gigabyte GA-MA790FXT-UD5P
  • AMD Phenom II AM3 810 (2.6Ghz)
  • 8GB of DDR3 RAM
  • nVidia 9600GT 512MB (graphics are not my thing, but I love to watch a good quality movie)
  • 32GB System drive [for Linux – has access to RAID storage], Solid State
  • 500GB System drive [for Windows – might not have access to RAID]
  • 4.5TB of disk space, thanks to Adaptec’s 3405 SATA RAID card
  • C-Master COSMOS S case
  • 2x 20″ BenQ LCD Screens
  • Creative Audigy XFI sound card (which sadly does not have terribly good sound drivers for Linux… another thing on the TODO list)
  • 7.1 Surround Sound
  • DViCO HDTV tuner ( just for those times that I really don’t want to code :) )

Total price: $3,200

Posted by & filed under Apple, Humor.

I love it when I hear people saying that Mac’s are better then PC’s. When was the fact lost on them that ever since Apple moved to Intel’s Core Duo chips, that an Apple is nothing more then (an overpriced) shiny white aluminum case?

My only reason for ranting is that if I wanted to buy a Mac, I would right now be spending more then $11,386.99… not only that, but I still would not have all the hardware that I want in my new machine. I mean, come on guys. I can build something my self in three hours for $3,300 that is faster, has almost twice the amount of storage (and more redundancy). Infact, the only thing the Mac can offer me on their online configuration that I really want, is my 8GB of RAM…

Seriously? You have to be kidding.

I must however admit, the iPhone was a good invention though, Steve.

I love OS X. I do. Seriously. But until everyone stops calling their Mac not a PC… I will still be laughing at all people who own a Mac. A cheap Mac will set you back about $1,000. A cheap (new) PC will set you back $400. Must be another win from Apple. *sigh*

Posted by & filed under Experimental, Linux.

At Digital Pacific, where I work, I do all my work on three computers. It’s a nice life looking at three monitors all the time, however, it is not the coolest thing in the world when you have three keyboards in front of you.

When I moved here, I already knew about Synergy, it’s great software.

My setup is comprised of a Windows XP (32-bit) machine, Kubuntu [7.04] Intrepid (32-bit) machine and a Kubuntu [9.04] Jaunty (64-bit) machine. The machine that runs all my applications that I write is the new Kubuntu 9.04 machine. To allow my keyboard and mouse to be used over all three of these machines, I have the Windows XP machine run the Synergy server, and all the Linux machines run the client. The reason I have Windows XP run the server is because it’s usually the machine that’s off. That might sound strange, but I do alot of work from home, and it seems useless to have a server running that is not needed to be on the machine.

One thing that really used to annoy me with this setup however was the Windows machine would detect all keyboard repeats, but the Linux machines would not detect up, down, page up and page down repeated key presses. You could imagine as a programmer that this could get quite annoying while writing code.

This morning I got frustrated at the Linux machines and I decided it was time to go and compile my own version, with a few patches I found around the net to fix this issue.

Being the package Nazi that I am, I don’t really like to install anything, unless it’s installed with some sort of package management. This is how to rebuild Synergy, and get a perfect .deb that you can install :)

# wget ''
# tar -xvf synergy-1.3.1.tar.gz
# wget
# gunzip synergy_1.3.1-5.diff.gz
# wget
# patch -P0 <../synergy-coderazzi.patch
# sudo apt-get install patch build-essential
# cd synergy-1.3.1/
# patch -p0 <../synergy-coderazzi.patch
# chmod +x debian/rules debian/control

Edit debian/rules and after the line that says:
Add the following line:
find . -type f -name Makefile | xargs perl -pi -e "s/-Werror//g"

# sudo dpkg-buildpackage
# cd ../
# dpkg -i synergy_1.3.1-5*.deb

After doing this, and restarting the Synery clients, you will have perfect key responses between all the machines.

Thanks to for providing the great patch for this post.

Posted by & filed under Humor, Linux.

At Digital Pacific where I work, I have been working on migrating from our current billing system to a new; more feature complete billing system that will provide many benefits to our clients. With our new billing system, Parallels Business Automation, users will be able to see all their invoices (past, present and future) and will be able to literally click one button and switch between all of their hosting control panels.

This move, however, has not been without quite a number of funny mishaps while moving from our current billing system (ModernBill) to Parallels Business Automation (”PBA”). The following text is going to go into quite a bit of technical information, so if you don’t know what XML is, well, you might just want to close this window go to Wikipedia’s article on XML and look it up!

So what I have done, is I have made a set of files with 100 customers each. Every separate file gets imported by running the command on the PBA server ‘’. Here, I am running the 59th file (the files start at 00). is complaining that the email for person “Becky A. Douglas” is not defined, however, when I go to edit the file, the email is infact correct, and it is definitely defined. Just like it is for the clients before her.

This issue has had me baffled for weeks trying to solve this issue. Sometimes it works, sometimes it does not. Sometimes changing the name in the XML file will just magically solve the issue, as if it was not there to begin with.

So what I do, is I get on Skype and call our Sales Engineer at Parallels, and tell him what the issue is. He points out a few issues with the XML file (which is fair enough, but why did all the clients before these “just” import without any issues?).

I take into account the issues that he pointed out, and go and create a new set of import documents to get our clients into our new billing system. I run all the commands again to start the process rolling, and now the issue is coming up again!

But now something very, very bad is going on! The import is actually failing faster then it was before the fixes that were suggested by our Sales Engineer. So I back track and change a few lines in the XML file. Instead of the top of the file saying this:

<?xml version="1.0" encoding="UTF-8"?>
<name>Bob Smith</name>

It now says this:

<?xml version="1.0" encoding="UTF-8"?>

<account> <type>CUSTOMER</type> <status>active</status> <is_corporate>0</is_corporate> <name>Bob Smith</name>

After adding exactly 15 new lines after the <data> child in the failing XML file in the import batch, you wouldn’t believe it. The import actually succeeded.

So now my new motto is, “Every bug in the world can be solved with just fifteen newlines!“.

Posted by & filed under Linux, Misc, Random Thoughts.

Ever since I have started using KDE with Linux/FreeBSD as my desktop replacing Windows, there has been just one thing that has really annoyed me about both of these desktops, and that is using Kodak cameras.

Yes – I know, such a simple device, but you will be amazed at how many headaches it used to cause. Photo transfers would litrally take 20 minutes with the “KDE way” using the kioslave camera:/.

Finally there is a better way!

With the help of this site, I have found out that there is an even faster way to get my files, and it literally has saved me 30-60 minutes copying all the photos of my camera.

Instead of using the provided kioslave with KDE (and the new Kubuntu 9.04, which by the way is great!) I, for the first time in the new version of Kubuntu needed to use the console.

gphoto2 --auto-detect

This command got me a list of all the camera's that I had plugged into my system.

Model                          Port
USB PTP Class Camera           usb:

After I knew what the port was, I could literally mount the camera as part of my filesystem using this command:

gphotofs --port=usb: ~/camera

and bam! just copy the files from /home/tim/camera into the Documents folder and 300MB of photo’s were transfered in less then three minutes.

Fantastic! This is so much faster then the KDE way, I can not prove to you how happy I am that this speed bottleneck is now solved.

Posted by & filed under Finance & Payments, MyBanco.

At the moment, a new release of MyBanco is done every one to two months. The reason that there are not more updates to the MyBanco software is because do a new release is a complicated job. Queue in and is an application that automatically clones the repository, automatically detects what the new version is, grabs a copy of the last release, and makes a patch for the last release. It also zips, tars and md5’s all the files and uploads them to the MyBanco release server. is an application that sits in the core directory of MyBanco, detects what the current running version is, and then downloads and applies all the patches to bring it up to the latest version.

What this all means is that now making MyBanco releases are easy, everything is fully automated, and also updating to the latest version of MyBanco is a breeze, because you only have to run one command.

A new update to MyBanco, MyBanco-0.10 is due in the next three to four days, which will include the new application, and also will fix up a few issues with the installer when configuration already exists (where at the moment it just crashes out.)

Also, a new wiki is going to be on the MyBanco website soon that will act as a location for users to describe their MyBanco setups, and also provide tips and tricks to get MyBanco performance to the best numbers possible.

MyBanco Phone Banking will also get a fresh new look in this release, with an easy to setup configuration file, so that doing things such as changing the voice and deactivating Lumenvox text-to-speech will be just a few minutes. I hope that later today when I open the MyBanco wiki up that people will help to add tips etc.

– Tim

Posted by & filed under MyBanco.

MyBanco 0.09 has been released. This release has a few new (minor) features in it, and a few minor bug fixes as well. The installer now ‘phones home’ to tell how many installations have been done. This is a new feature that I am working on where you can automatically be subscribed to new releases that occur, however, this is not fully complete.

[   ] mybanco-0.09.tar.bz2 21-Apr-2009 11:32 256 KB Unix/Linux .tar.bz2
[   ] mybanco-0.09.tar.bz2.md5 21-Apr-2009 11:34 55 bytes md5 checksum
[   ] 21-Apr-2009 11:32 304 KB Windows .zip
[   ] 21-Apr-2009 11:34 51 bytes md5 checksum

Also, by popular demand I have started to write documentation for all the code. It is not fully complete (there really are only five files that contain this documentation). It is however a start.

You can download the documentation for version 0.09 here, or you can read it online at

A new minor version will be out in a few days which will expand the documentation built into MyBanco, and provide a ‘Makefile’ for building documentation. Also, this new feature will expand on the new features brought in by the ‘phonehome’ function, such as update notifcations.

Please note that all data saved with the phone home feature is anonymous, and in the future it will be used to track the ten most commonly used functions on the MyInfo server, the number of users on the system and a list of the enabled features.

Also, there is now a bug tracker at, so please report your bugs if you see them!

Posted by & filed under MyBanco.

I have had a few emails regarding whether it would be possible to add Interbank communication support into MyBanco such as SWIFT, and I would just like to say here, YES! It is possible, and it is very easy to do.

If you are looking to write a new plugin to do SWIFT transactions (or any other type of external transactions) would be to do the following:

  1. Add a new $method to backend/Plugins/transfer.php
                    'swift' => Array (
                             'title' => 'International bank transfer via SWIFT',
                             'description' => 'Transfer to another {bank} account',
                             'icon' => 'swift'
  2. If necessary, change __transfer_listValidTransferMethods to make only particular users/bank account types to be able to transfer money via swift (it’s near the bottom of the function)
  3. Implement the following functions:
    • function _t_swift_required – This function returns a list of extra information that is required for the transaction to take place. (ie, extra fields that the user must enter, the account # and $amount is not necessary, as these are sent by default)
    • function _t_swift_check_data – Ensure that the data that has been imputed from the user is correct, for example, this would mean checking the LEK of a credit card transaction…
    • function _t_swift_preview – Send the data for preview. Nothing exciting here really
    • function _t_swift_transfer – This is where the fun stuff actually happens. This is where money would be removed from the account, the message put into the cron queue (if desired) or a real time message sent to SWIFTNet for the transaction to occur.

I would recommend that the way it be done would be to move the money wanting to be transferred into a temp. settlement account, and then add the item to a queue which would run on (another?) machine every 2-5 minutes. I really want to add an open source implementation of the SWIFT messaging system to MyBanco, however, like I said earlier, I no longer have access to any of the information or to any of the SWIFT servers to make this possible. If you have access to this sort of information, I would be happy to continue my development.

Hope this helps people out. By the way, if anyone has access to development documentation for SWIFTNet, I would really love to be able to access it, so just drop me a comment on this blog post.

– Tim