Tim Groeneveld

Random musings from the world of an Open Source geek

Fixed my Synergy

/ | Leave a Comment

What does a computer nerd do when he is at work and trying to use one keyboard and mouse for two machines and it just does not work? Well, he fixes it of course!
For the last few weeks, since switching my KDE desktop at work to Gnome, I have had this seriously pressing issue that every now and then when I moved my mouse to the Linux machine, synergy would crash on that screen, with a nice assertion error.

INFO: CScreen.cpp,99: entering screen synergyc: ../../src/xcb_io.c:243: process_responses: Assertion `(((long) (dpy->last_request_read) - (long) (dpy->request)) <= 0)' failed.

Well,I looked through the code for a few hours and I finally tracked down the issue. The synergyc application was actually trying to do calls to the X server using multiple threads, when X did not know that it was being used from a multi-threaded application.

Basically, after hunting down where the issue was, fixing the problem was as simple as adding a call to the XInitThreads() function on line 100 of lib/platform/CXWindowsScreen.cpp.

Rebuilt my package and boom, a perfect synergy.

ShareSource’s Makeover

/ | Leave a Comment

ShareSource has a new look, and it’s getting released in seven days. ShareSource3. SS3. It looks good, it feels perfect, and it works excellent. There are not really any new features, and the database schema is mostly the same (except for ten new tables), but all the missing things that just were not always there are now there.

Now Administrators of the website will have even easier control over news features, and now project administrators can unlock files, and modify the contents. Files are now stored on two machine in two different locations, as well!

It does get better! ShareSource will have the ability to create Xen containers, so you can virtually choose almost any operating system on the planet (except for Apple OS X) and compile, run and test applications.

Developers and users alike will enjoy the new look ShareSource has been christened with.

Yes, I am still alive

/ | 1 Comment on Yes, I am still alive

Between playing with my new computer and busily working away on two personal projects, I have not really updated my blog. Infact, my blog has been getting no loving at all. I thought I might just spend a few minutes at this terrible hour of the morning to update people on what is going on.

  • ShareSource (Open source code forge)
    Yes, ShareSource is still being maintained. It has not died. I have almost finished writing the last dabs of the Xen software for ShareSource, as well as rewriting the template engine so it is all consistent. (Did you know that ShareSource has three ways of rendering pages?). Digital Pacific (the crew that I work for) have donated a Xen server for a compile farm for ShareSource, which is very neat.
  • MyBanco (Open source banking software)
    I have sitting in the Mercurial repository a pile of code to do with managing loans for users who have an account with the bank. New loans can be requested by a user, and verified by the Administrator(s). The money is either a) made out of reserves (ie, pulled out of thin air… like real money) or b) pulled out of a reserve account (like a “perfect” monetary system).
  • Galium (Open source top level domain management software)
    In a few days, I will be pushing code that fixes a medium issue with the adding of new records. In some cases, a user can enter particular inputs that crash BIND.

My new computer is going well. Running Compiz and Xen together allows me to have CentOS on one side of the cube, Arch Linux on the “main” side, and Windows on the other. Now there is love. My two new wide screen monitors are also pure joy.

My “top secret” project is coming along well, too. One part of the project is nearing release soon, which should give quite a good idea on the whole solution.

Got my new computer!

| Leave a Comment

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.

My new computer

| 3 Comments on My new computer

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

No, your Mac is not better than a PC…

/ | 41 Comments on No, your Mac is not better than a PC…

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*

Getting Synergy working propperly on Windows XP / Ubuntu

/ | Leave a Comment

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 'http://internode.dl.sourceforge.net/sourceforge/synergy2/synergy-1.3.1.tar.gz'
# tar -xvf synergy-1.3.1.tar.gz
# wget http://ftp.de.debian.org/debian/pool/main/s/synergy/synergy_1.3.1-5.diff.gz
# gunzip synergy_1.3.1-5.diff.gz
# wget http://coderazzi.net/linux/synergy.patch/synergy-coderazzi.patch
# 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:
CFLAGS="$(CFLAGS)" CXXFLAGS="$(CXXFLAGS)"
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 http://coderazzi.net/linux/synergy.patch/index.htm for providing the great patch for this post.

Strange behaviour: Parallels Business Automation

/ | Leave a Comment

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 ‘hspc-import.pl’. Here, I am running the 59th file (the files start at 00). hspc-import.pl 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"?>
<data>
<account>
<type>CUSTOMER</type>
<status>active</status>
<is_corporate>0</is_corporate>
<name>Bob Smith</name>

It now says this:

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





<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!“.

Speed of photo transfers in Linux…

/ | Leave a Comment

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.

The MyBanco wiki

| Leave a Comment

Today I have started working on the MyBanco wiki. At the moment it is just a start, but it will be good to see it to start getting to completion. You can access the wiki at http://mybanco.org/wiki/