Monday, December 31, 2007

Ruby include path

This has been bothering me for some time, wanting to include paths that will be searched when I want to 'require' or 'load' some class in my project. It is not very nice to have to use a -I flag, but there are other ways.

Use of the $: global variable:
  • $:.push("/whatever")
Or the $LOAD_PATH variable:
  • $LOAD_PATH.unshift '/whatever'

IRC fun!

Year in review 2007!

As 2007 is almost over, I look back and see not only exciting family events, but a new job, an excellent year of cycling, and a very productive year in my open source projects.

The year started with my sister visiting our newly born son (Dec 2007). She dropped in with her son and they spent a lovely week here playing and visiting. I also got my first Daddy Prize this year and even a repeat!

I continued to teach freelance for IBM Netherlands Learning Services. This time for and external customer in Rijswijk, the European Patent Office. Another amazing event was that my site was Dugg, someone found my online Linux courseware and the server was severely challenged. I moved over to Blogger after that to evade. One think that came out of it all was that I took some time to update the courseware and provide distance learning solutions to all my courses.

AbTLinux project progressed well this year, I got the package manager to install its first package and much more. Another project, the Baby Game was re-released and used by three different families to run their own baby games (results: a girl and two boys). I decided to stop my work on eGroupware and the Publication Management System, just focusing on AbTLinux. I continued to post Linux and Macbook solutions on this blog (over 55), see Software category.

In April I started the application for Dutch citizenship, finally getting my first Dutch passport this year! Just in time too, as the Queen stopped in at my work to open our new building.

Cycling this year included my last trips to Nijmegen as I started a new job at the SNS Bank in s-Hertogenbosch. I also cycled in the Veluwe, Normandy (Pointe du Hoc, Utah, Omaha, Port Bassin), and Limburg. I booked over 3000 km's and the best part is that I did not fall down once! ;-)

We closed out the year by purchasing a new house and selling our current house. This brings many new plans for the beginning of 2008 when we have to paint, modify, and then move into our new home.

Wishing you all the very best for the New Year and a happy and healthy 2008!

Sunday, December 30, 2007

Mac security update causing cups failure: Symbol not found: _cupsFileRead

Today I wanted to print over my home network using the cups system on my macbook, but BOOM, got this message when starting cupsd:

Link (dyld) error:

Symbol not found: _cupsFileRead
Referenced from: /usr/sbin/cupsd
Expected in: /usr/lib/libcups.2.dylib

Seems the last security updates have borked out all pre-cups v1.3.5 printing systems. When looking at the cups download site you also find the following note from Apple:

"We are no longer providing binaries for Mac OS X since CUPS 1.3.x is not fully compatible with Mac OS X 10.4.x. You can compile and install CUPS 1.3.x from source, however most of the GUI administration tools provided in Mac OS X will no longer work."

It was a source tarball download of v1.3.5 and configure, make, make install for me to get the cups server to run again. A few gotcha's I ran into:
  • it seems printers configured with the standard preferences tools on the macbook don't work over cups.
  • using the localhost:631 administrative interface to adjust your configuration changes the permission (group set to lp instead of wheel) on the entire tree /private/etc/cups/*
Another posting of this issue can be found here on the Apple Support Forum which describes installing the cups v1.2.12 also solves this issue and allows you to work with the preferences tooling to install printers again. I did not try this one yet as I am comfortable setting up printers by hand or with the cups admin web page (not forgetting to adjust the permissions on your /private/etc/cups).

Macports update

How to upgrade / update your macports software (both packages, repo, and installed software:

$sudo port selfupdate
$sudo port -d sync
$sudo portindex
$sudo port upgrade installed

Thursday, December 27, 2007

AbTLinux - more coding progress on the package manager

It has been awhile since I last posted on this subject, so thought it might be time to provide some news on the various updates to the code base.

My new job has settled down a bit so that I have been able to make some time for coding on AbTLinux. This has led to the completion of features and reduced our unit test failure count from 18 down to 12. Here is a summary of the updates:
  • refactored reinstalling a package to allow for fully automated runs
  • implemented show-frozen
  • implemented freeze
  • added /etc/abt configuration directories setup
  • refactored update package and package tree implementation
  • implemented retrieve package tree (part of package-repo add)
  • refactored some logging to make use of ruby Logger
  • implemented verify-integrity
  • fixes to the pruge-src function
  • implemented show-files
I have also split out the general software posting I was doing on AbTLinux into it's own category. This is due to the fact that I might be losing my current Trac and website hosting in 2008. I am not sure, but want to have someplace to document the projects coding progress until I am able to sort out a new site location.

Sunday, December 16, 2007

JBOSS jBPM team lead

It has been quiet here on all things software related since my new commercial job started at the end of the summer. I must admit, it has taken me by storm and I did not realize how much fun a commercial software job could be!

I started out as a bit of a software engineer and have quickly migrated into the team lead on an interesting piece of Java software,jBPM. This component provides (as stated on the projects site):

"Create business processes that coordinate people, applications, and services. Designed for SMB and large enterprise applications alike, JBoss jBPM brings process automation to a much wider set of business problems, from embedded workflow to enterprise business process orchestration and BPM."

This has put me into an interesting position in a rather short period of time, one that gives me the chance to direct how this component will be applied in our future software projects. We are currently setting up a reference project so that we have a valid and well researched application that includes not only the coded solution (jBPM flow, node handler code and web services), but also a proper testing framework and a complete set of documentation (Software Architecture Document with Use Cases and Use Case realizations).

I am very excited by this as it shows a desire from within our organization to learn from the past experiences, invest the time to improve the process, and apply what we have learned directly into the coming projects. jBPM will remain a core component for our organization and I will be posting more on my vision and experience with this tool. Subjects like where should business logic be placed within our work flows and integrating jBPM into web services themselves are topics that are coming in the near future.

Should you have a desire for more information or have experiences you might want to share, feel free to contact me.

Tuesday, October 30, 2007

Ubuntu default acpi-support values shorten laptop disk lifespan

The bug is listed on launchpad.net and should get your attention:

"When switching to battery power, /etc/acpi/power.sh issues the command hdparm -B 1 to all block devices. This leads to extremely frequent load cycles. For example, my new thinkpad has already done well over 7000 load cycles -- in only 100 hours. That's at least one unloading per minute. Googling for "load unload cycles notebook OR laptop" shows that most laptop drives handle up to 600,000 such cycles. As these values clearly show, this issue is of high importance and should be fixed sooner rather than later.

Please see for yourself how often your drive is load cycling:
smartctl -d ata -a /dev/sda

(This command is for an SATA drive; you'll need to install the smartmontools package first.)

See also http://paul.luon.net/journal/hacking/BrokenHDDs.html for a rather dramatic account of the effects the current default values may have."

I have seen this happen to several Toshiba laptops I had under my wings, so I am always checking my installations to ensure this is not being activated on my laptops.

A pretty good fix is:
  • create a file "99-hdd-spin-fix.sh"
  • put in the following two lines:
    • #!/bin/bash
    • hdparm -B 255 /dev/sda
  • place file in following directories:
    • /etc/acpi/suspend.d/
    • /etc/acpi/resume.d/
    • /etc/acpi/start.d/

Spread the word!

Thursday, October 25, 2007

Last cycling trip for the year

My buddy and I took our postponed summer trip to Limburg last weekend. It was cold and sunny but nothing was going to prevent our climbing the Cauberg one last time. I also stopped at the cemetary in Margraten to visit PFC H. Hooper. We stayed in a small house over night and the photos show that the leaves are falling heavily.


Sunday, October 14, 2007

Recruitment: Hello from Google!

I have been waiting to post this for some time now as I wanted to get settled into my new job that I started in August. I am far enough along there that I can pass on this bit of news to anyone out there interested in how Google approaches people and what I personally thought of it.

On May 19th of this year I got an email with the above title (posted below with names X'ed out for privacy reasons). I was really flattered that Google found me interesting enough to approach for a position within their Engineering Team! I must admit my first reaction was that someone was messing with me. My friends would do that...

I responded rather carefully and turns out that it was for real. We arranged an evening phone call (my time) as they were calling from Google HQ in California. When they called we discussed a bit about me, my background and some of the work I have done including my Free Open Source Software work. They then began to explain what the work was they did, what I might find interesting there, and some of the finer points of working at Google. I had to break in at this point and ask where I would be working, here close to home or did I need to come to California? They said I did not need to come to California, I could move to any of the following locations:
  • Mountain View, CA
  • Santa Monica, CA
  • New York, NY
  • Kirkland/Seattle, WA
  • Dublin, Ireland
  • Zurich, Switzerland
  • Sydney, Australia
I am not planning to uproot my family for a job so at this point I had to do the unthinkable... I said 'no' to Google, can you believe it?

They were rather nice about it and stated that they still were interested in me. Would I be interested in a few years when Google plans to open offices for the Engineering Team here in the Netherlands? I of course said I would always be interested in discussing the opportunities that Google has to offer!


Letter from Google:

Hi Eric-


My name is XXXXXXXX; I'm a talent scout for the engineering team here at Google. I came across some of your work on the Web and was impressed with your development experience - particularly the breadth of your background in Linux and your contributions to the open-source community.

I actually recruit for the Google.com engineering team here, which is the group of engineers that's essentially the mission control of Google. They're responsible for the design and development of the infrastructure for all our web applications and internal services. You'd be able to tackle some of the most unique scalability problems in the world and work on the newest products we have. It's a mission-critical role that involves a lot of coding and requires a high degree of creativity and troubleshooting expertise, so we're looking for Unix experts and great coders with broad skill sets (like yourself)! We have several positions within the Google.com department that I feel would be a good match for your skills and qualifications.

I'm not asking you to quit what you're doing now - just seeing if you might be interested in exploring opportunities with
Google. If you're at all interested in the department or in Google in general, I'd love to speak with you about the opportunities we have here.

Thanks for your time, and I hope to hear
from you soon!

Best regards,
-XXXXXX
Engineering Staffing Team

Tuesday, October 2, 2007

News report from Iraq (Halarious)

My inner D&D character

After taking the online test I got these results:

"After analyzing your answers with state-of-the-art medieval fantastic psychology profiling tools, Dungeon Mastering is confident that your inner D&D character is a Chaotic Evil Dwarf Fighter!"

Hmmm, wanna give it a try? Take the test here at the Dungeon Mastering site (takes about 2 minutes). ;-)



Monday, October 1, 2007

I love Halloween

Carved the first pumpkin of the year!

Friday, September 28, 2007

My new passport!

The circle is complete, today I was able to finish the process as I blogged in Applying for Dutch Citizenship Today!

Walking in the woods

(This is a test posting from my new mobile phone, with a photo from my new mobile, a nokia E65)

We headed outdoors last weekend as the last day of summer was sunny and warm. In the woods by Uden there is a very nice pancake house, which the kids loved! ;-)

My son was just hanging out (or hanging sideways, depending on how you hold you head when viewing the photo) and my daughter was collecting all kinds of 'gnome' cups (little acorn hats that they show them drinking out of in her books)!

Girls on IRC

Sunday, September 16, 2007

Back on the bike this week

This week was able to take the bike to work, cycled for little more than 75 km this week. The weekend was too full of fun and sun to spend a day on the bike so nothing ridden this weekend.

Saw this on a t-shirt (Unix joke)

This was too funny not to mention, and I am pretty sure only the geeks will get it:

who | grep -i blond | date;
cd ~; unzip; touch; strip;
mount; finger; gasp; yes;
uptime; umount;
sleep

Friday, September 14, 2007

Today I could have retired...

Today was a sort of shock to me... I had been watching it creep up on me for about the last two weeks. It all started with a Skype call with my best friend who is currently deployed for the third time to Iraq.

We joined the Marine Corps together, straight out of high school. I was in first, he followed a week later. Not really all that shocking, but we got to talking about what he will be doing after the Marine Corps. You see, I served for five years and left, he stayed in the last 20 years. Today would have been exactly 20 years of service and I would have retired. That call got me thinking about it and I realized I would have retired today... at 38 years of age. Wouldn't that have been something!

This is not about missed chances, I have no illusions that 20 years of service in the Marine Corps is an easy thing. It is a very dangerous life, no doubt about that. I guess I am just very glad to have had my five years of adventure and excitement. I would not trade a minute of what happened during or after that time. I love my life and would like to think that much of what I am was shaped in those years. It was very intense.

I just didn't want to let this day go by without slowing down to remember. I would have liked to spend it with my best friend reminiscing, but this was not possible. Instead, I had a beer and toasted to our lives and to our times. We will have to do it properly the next time we get together, and we will!

Semper Fi

Sunday, September 9, 2007

My personal hero

This is a bit of an insider posting, you have to be in on the background to appreciate it.

For those on the inside, I guess you recognize the President of the United States (or as we called him the Commander in Chief (CIC)), right?

My personal hero is in this picture. He is celebrating 20 years of service this month, congratulation my friend!

Can you find him? ;-)

Wednesday, September 5, 2007

Mini blew the water pomp!

I was on the way to work yesterday and I noticed the engine temperature climbing towards the red zone. Hey, it never gets even close to half way, so must be something going on.

I pulled over by a parking lot next to my normal Mini garage (a Rover dealer) and the steam started to come out from under the hood even before I got out of the car. By the grill I could see brown dirty radiator water coming out on the right side. I opened it up and thought for sure the radiator was blown or maybe a hose. The water got all over the fan belt and was thrown all over under the hood. I checked the water level in the radiator (careful, it is under pressure and hot) but plenty of water so it was not leaking there. Turns out the water pump blew up on me.

I let it cool down a bit and was able to drive it over to the garage itself for repairs, about 100m away. They were really great (Damon & Kroes in s-Hertogenbosch), even brought me home so I could take our other car to work.

Saturday, August 25, 2007

Ik ben een Nederlander!

As of yesterday I have received Dutch citizenship. After 15 years in the Netherlands, many hassles with the Dutch Foreign Police for my stay permits, and the last adventure with City Hall (as described here) it is a fact.

They had a nice ceremony at City Hall and even a reception with a band afterwards. The Mayor did the official presentation to each of the new Dutch citizens and we even got our group picture on the front page of the local section of the Brabantse Dagblad.



Friday, August 24, 2007

USMC Rules For Gun Fighting

Passed my desk today and I found the rules to be a bit funny, but sadly enough to contain a grain of truth. What do you think?

Rules of engagement
  1. Bring a gun. Preferably, bring at least two guns. Bring all of your friends who have guns. Bring their friends who have guns.
  2. If you can, make friends with those on the crew served weapons. Bring them as well. Borrow money from them, it gives them an added incentive to protect you.
  3. Anything worth shooting is worth shooting twice. Ammo is cheap. Life is expensive.
  4. Only hits count. Close doesn't count.
  5. If your shooting stance is good, you're probably not moving fast enough nor using cover correctly.
  6. Move away from your attacker. Distance is your friend. (Lateral and diagonal movement are preferred.)
  7. If you can choose what to bring to a gunfight, bring a long gun and a friend with a long gun.
  8. In ten years nobody will remember the details of caliber, stance, or tactics. They will only remember who lived and who didn't.
  9. If you are not shooting, you should be communicating (calling for arty or air support), reloading, and running.
  10. Accuracy is relative: most combat shooting is more dependent on "pucker factor" than the inherent accuracy of the gun.
  11. Use a gun that works EVERY TIME. "All skill is in vain when an Angel pisses in the flintlock of your musket."
  12. Someday someone may kill you with your own gun, but they should have to beat you to death with it because it is empty.
  13. In combat, there are no rules, always cheat; always win. The only unfair fight is the one you lose.
  14. Have a plan.
  15. Have a back-up plan, because the first one won't work.
  16. Have a back-up, back-up plan in case CentCom or SecDef finds the first two plans "unacceptable".
  17. Use cover or concealment as much as possible. The only visible target should be in your gun sights.
  18. Flank your adversary when possible. Protect your flank.
  19. Don't drop your guard.
  20. Always tactical load and threat scan 360 degrees.
  21. Watch their hands. Hands kill. “In God we trust. Everyone else, keep your hands where I can see them.”
  22. Decide to be aggressive ENOUGH, quickly ENOUGH.
  23. The faster you finish the fight, the less shot you will get.
  24. Be polite. Be professional. But have a plan to kill everyone you meet.
  25. Be courteous to everyone, friendly to no one.
  26. Your number one Option for Personal Security is a lifelong commitment to avoidance, deterrence, and de-escalation.
  27. Do not attend a gunfight with a handgun, the caliber of which does not start with a "4."


Army Rules for Gun Fighting
  1. See USMC Rules to gun Fighting.
  2. Add 60 to 90 days.
  3. Hope the Marines already destroyed all meaningful resistance.


Navy Rules for Gun Fighting
  1. Adopt an aggressive offshore posture.
  2. Send in the Marines.
  3. Drink Coffee and eat donuts.


Air Force Rules for Gun Fighting
  1. Kiss the wife goodbye.
  2. Drive to the base in your sports car.
  3. Fly to target area, drop bombs, (try not to hit the Canuks) fly back to your home base.
  4. BBQ some burgers and drink beer in your back yard, and talk shit about the Navy, Army and Marines.

Thursday, August 23, 2007

Prep work for Dutch citizenship

As stated earlier I am currently in the process of becoming an official Dutch citizen. As study material before I am allowed to become a Dutch citizen, I thought it would be a good idea to learn the national anthem. It is called the Wilhelmus and goes as follows (original and translation):

Wilhelmus van Nassouwe
ben ik, van Duitsen bloed,
den vaderland getrouwe
blijf ik tot in den dood.

Een Prinse van Oranje
ben ik, vrij onverveerd,
den Koning van Hispanje
heb ik altijd geeerd.

[Listen to the song]


English translation:
William of Nassau, scion
Of a Dutch and ancient line,
I dedicate undying
Faith to this land of mine.
A prince I am, undaunted,
Of Orange, ever free,
To the king of Spain I've granted
A lifelong loyalty.



Monday, August 20, 2007

Big ride yesterday to Boekel

Yesterday off to the Ronde van Boekel to watch the semi-prof men's cycling races and the women's pro tour cycling races. This gave us a destination for our weekend trip and we made a nice long trip of it. We went through s-Hertogenbosch, Oss, Uden, Vokel, Boekel and then back via Erp, the Zuid Willemsvaart canal to s-Hertogenbosch.

Along the way we watched the cycling races, drank some coffee and also had some nice strawberry pie to keep the blood sugar up for the total of 89 km's we ended up cycling. It was over a period of 3,5 hours and we had a bit of head wind on the way out, but wind behind us on the way back. There was enough sun that we both got a little burned and just managed to get home before the rain caught up with us.

All in all, a good weekend ride on my bike since having it serviced. I have new handlebars, new gears on the back (were worn out) and a new chain. Not bad after 3600 odd km's and one fall! ;-)

Friday, August 17, 2007

Austin Mini gets electronic ignition

I took my Mini into the shop for some needed work that I am unable to take care of myself as I have no garage. The front windscreen has been leaking for some time now so had the seals replaced and windscreen refitted. It now has a wider rubber seal as there is some rust starting on the bottom half of the windscreen area.

I have also been thinking about upgrading the ignition to an electronic version instead of the original contact points. I have been having problems with jittery rides a different speeds and at different temperatures. Yes, I can adjust various things to fix it, but have been getting tired of this ongoing game. So I took the plunge and let them install an electronic ignition. What a difference!

Finally, I had them troubleshoot and fix a problem I have been having with the electrical wiring on the drivers side. Intermittent loss of hazards, dome lighting and back windscreen heating elements has continued to escape my attempts to locate the cause. It seems that it was a few in-line fuses that were pretty bad and some of the wiring in the firewall that was corroded. They replaced some of the wiring and included some newer waterproof fuses.

Weekly overview

This week I was forced to cycle to work every single day, no matter the weather. My mini was in the shop for some needed upgrade work (electronic ignition and new front windscreen seals as it was leaking like crazy). Diverse routes taken and was able to keep dry by cycling between the rain showers with a total of 75 km's.

The hard part was that this was on my small folding bike as my racing bike was in the shop for some much needed repairs and overhaul. I am over 3500 km's on the bike and had a nasty crash last summer. The repairman was surprised that my handle bars were not broken off yet, ouch! It will be finished Saturday, so next week I am back on track for some faster rides to work. ;-)

Wednesday, August 15, 2007

My code is compiling!

(credit where it is due: http://xkcd.com/303/)

Sunday, August 12, 2007

A US Flag with meaning

Today we got a package from my best buddy who happens to be on his third tour in Iraq as a US Marine. He had sent a few presents for my kids; two bears dressed in camouflage with t-shirt text of "Greetings from Al Asad Iraq", play dough kit and a small box containing a US Flag.

This last one was for me and I thought that it was really a neat idea as I can't just go down to the store and buy a flag to fly here in the Netherlands. I opened the box and pulled out a 3x5 foot flag. What really made it special was the other contents of the box...

It contained a certificate that this particular flag had been flown over his air base:

"This is to certify that this National Ensign of the United States of America was flown atop the Expeditionary Airfield Bunker, Al Asad Air Base Al Anbar Province, Republic of Iraq on the 4th of July in the year of our Lord 2007."

This is not just any flag and I am sure that I will be keeping this flag in a special place. Wow, you have made my day Jody!

I do get a lot of questions about proper flag etiquette, so follow the link an you will know all there is to know. Here is some history on the Al Asad Air Base and some images of a sandstorm hitting the base.


Friday, August 3, 2007

Still searching for a good cycling route to work

From home to my new job it is about 10 km one-way, almost exactly on the other side of the city where I live. The problem with cycling straight through town is that I get hung up in other cyclists (that are going much slower) and have to stop for all the traffic lights.

The idea is to find a nice route that takes me outside of town and with a minimum on stops. I tried a new route from work to home that took me around through Rosemalen, but that ended up being 18 km's one-way to home. I guess I will keep looking.

Having only cycled once this week due to being a bit sick (throat infection, taking antibiotics) my total distance was only 28 km's.

Thursday, August 2, 2007

AbTLinux - coding month reduces failing unit tests to 18

I finally found a few weeks where I could spend some time almost daily on AbTLinux and made a real good coding push. I finished up last time with 27 unit tests failing. After this coding push I am down to 18 unit tests to go!

This coding push involved some major refactoring, included a migration of the file names, method names in all classes, and general unit testing cleanup. This all involved turning my 'java-ish' code into a more 'ruby-ish' look, something pointed out to me by some of you. I checked each of these changes with the fine people that hang out on irc at #ruby-lang. Outside of this work, here is a list of issues that have been implemented:

  • able to purge sources for packages not installed.
  • a simple single word search of package descriptions available.
  • the verification of installed package files (are they installed) implemented.
  • able to view install, build, integrity, configure logs from an installed package.
  • able to generate a list of installed packages.
  • source packages are validated for sha1, currently not allowing failing checks to install.
  • implemented reinstalling of a package.
  • implemented removal of an installed package.
  • can remove build directory (unpacked source tree) or not, configurable in abtconfig.rb.
  • added ipc package source tarball to packages directory, used for copy to correct location instead of having to download sources. This speeds up unit testing.
  • diverse small bugs found along the way.
Over 76 separate code commits over a three week period. We have 46 unit tests running with 54 assertions, 18 failures, and no errors. Things are starting to shape up and I really need a package file generator soon to expand the testing. Things are starting to shape up nicely for the abt framework! ;-)

Wednesday, August 1, 2007

Are they blocking your GMail at work?

I am not looking to advocate circumventing security measures at your work, so will only be showing the single solution that gives a very limited access to your GMail here. At least you can read and write mails through your GMail account.

  1. search for gmail lite via google.com
  2. login to one of the sites you find (such as http://www.litemail.eu/)
  3. you now have a simple HTML interface to access your GMail account.

Tuesday, July 31, 2007

Last day at the Radboud University Nijmegen


Today I close out almost 6 years of work, in one form or another, at the Radboud University Nijmegen. The picture shows my desk, something sad about an empty workplace don't you think?

It has been a wonderful job that had to end one day, with plenty of diversity. I have worked chiefly as a Scientific Programmer for both research projects and for the IRIS department. I spent time as system administrator, application administrator, deployed both a groupware calendaring system and a publication management system, and contributed to science with my publications. I also was able to teach courses like Requirements Engineering and ICT Infrastructure on campus as well a several off campus courses (evening masters). I was also able to continue teaching my private Linux courses as well as freelancing for IBM Learning Services here in the Netherlands on occasion.

I have nothing to complain about, I made the most of my time there and it is time to move on. Tomorrow I start my new adventure and enter a new family at the SNS Bank.

Wednesday, July 25, 2007

Short ride in and around s-Hertogenbosch

Today I just had time to take a long lunch and ride around town. About 20 km's and enough to blow off some steam. Had been awhile since getting back from vacation and have not been able to find the time to cycle much.

I just toured around the edges of Den Bosch, circling around the city back to where we live by the Maas river. Was sunny, bit windy, but nice.

Tuesday, July 24, 2007

Vinokourov fails Tour doping test, leaves Tour 2007

This breaks my heart to see, but my favorite cyclist Alexandre Vinokourov has popped on his blood testing... I am pretty much blown away to hear this after watching him fall hard in the fifth stage of the Tour. He then hung in there, cycling with 30 stitches in his knees and elbow until he was fit enough to win the time trial last Saturday and a very tough stage in the Pyrenees Monday.

It seems he might have used blood transfusions to recover from the earlier stages and tested positive for blood doping after winning Saturday's time-trial stage. He asked for second sample to be tested but the damage has been done, as stated on the BBC SPORT website.


The Astana team was leading the team classification and had two other riders in the top ten of the individual classification. The Astana team released a statement stating:

"The anti-doping control on Alexandre Vinokourov, which was carried out on July 21 after the time trial in Albi, has tested positive.

"According to the ethical code of the Astana Cycling Team Alexandre Vinokourov has been suspended from the team with immediate effect. The rider has asked nevertheless for a B-sample analysis.

"Informed by the Astana management, the organisers of the Tour de France invited the team to withdraw, which was immediately accepted."


Alexandre Vinokourov faces a two year ban if the second sample tests positive. The yellow jersey and the leader in the youth classification both being shrouded in doping allegations, this years Tour de France has left me in despair...

Installing the Miro video player in Ubuntu

Wanting to give the Miro player a try for some time now I thought I would install it on my two x86_64 machines. It is a rather simple set of instructions that only require you to add a third party repository to your sources listing. Choose the version you are running:

Fiesty:
deb http://ftp.osuosl.org/pub/pculture.org/miro/linux/repositories/ubuntu feisty/

Dapper:
deb http://ftp.osuosl.org/pub/pculture.org/miro/linux/repositories/ubuntu dapper/

# add the repository to your sources.
#
$ sudo echo "" >> /etc/apt/sources.list

# install miro with aptitude.
#
$ sudo aptitude install miro

Reading package lists... Done
Building dependency tree
Reading state information... Done
Reading extended state information
Initializing package states... Done
Building tag database... Done
The following NEW packages will be automatically installed:
firefox-dev libnspr-dev libnss-dev miro-data
The following packages will be automatically REMOVED:
j2re1.4
The following NEW packages will be installed:
firefox-dev libnspr-dev libnss-dev miro miro-data
The following packages will be REMOVED:
j2re1.4
0 packages upgraded, 5 newly installed, 1 to remove and 0 not upgraded.
Need to get 4693kB of archives. After unpacking 27.0MB will be freed.
Do you want to continue? [Y/n/?]
WARNING: untrusted versions of the following packages will be installed!

Untrusted packages could compromise your system's security.
You should only proceed with the installation if you are certain that
this is what you want to do.

miro miro-data

Do you want to ignore this warning and proceed anyway?
To continue, enter "Yes"; to abort, enter "No": Yes
...
[..snip of install..]

Miro allows you to play virtually any movie format, download video from YouTube, access BitTorrent downloads, and subscribe to RSS feeds, podcasts or video blogs. Pretty amazing piece of software!

Tuesday, July 17, 2007

101 Ways To Know Your Software Project Is Doomed

I am putting my top 25 from the list here, but I hope this handy little guide holds no truth for your current project(s):

My favorites
  1. Management has renamed its Waterfall process to Agile Waterfall
  2. You start hiring consultants so they can take the blame
  3. Continuous Integration server returns error message “Screw it, I give up”
  4. Your source code control system is a series of folders on a shared drive
  5. Allocated QA time is for Q and A why your crap is broken
  6. All of your requirements are written on a used cocktail napkin
  7. You start considering a new job so you don’t have to maintain the application you are building
  8. Ever iteration meeting starts with “Do you want the good news or the bad news…”
  9. Progress is now measured by the number of fixed bugs and not completed features
  10. You are friends with the janitor
  11. The SCRUM master doesn’t really care what you did yesterday or what you will do today
  12. You do not understand the acronyms DRY, YAGNI, or KISS; but you do understand WTF, PHB, and FUBAR
  13. Your manager could be replaced by an email redirection batch file
  14. Your manager thinks ‘Metrics’ is a type of protein drink
  15. Project estimates magically match the budget
  16. Developers use the excuse of ’self documenting code’ for no comments
  17. Your favorite software pattern is God Object
  18. You still believe compiling is a form of testing
  19. Developers still use Notepad as an IDE
  20. Your manager wastes 7 hours a week asking for progress reports (true story)
  21. You do not have your own machine and you are not doing pair programming
  22. Team Rule - No meetings until 10 AM since we were all here until 2 AM
  23. Your team believes ORM is a ‘fad’
  24. Your spouse only gets to see you on a webcam
  25. The company motto is ‘Do more with less’
[...read more here...]

Wednesday, July 11, 2007

Will it blend?

Will your IT infrastructure blend smoothly?

New distance learning offerings for Linux courses


I have recently been contacted by a new customer that is interested in distance learning offerings for my Linux courses. This lead to some revisions to bring the student materials up to date and packaging this into a distance learning offering.

I have done some thinking and have published my new distance learning offerings on the Linux Courses page. I included the support structure that is offered for each of the courses you find there.

I am excited about these new offerings which include all of my Linux courses. I would be interested in any thoughts you might have on the structure of the offerings, including anything I am missing.

Tuesday, July 10, 2007

Massive thunderstorm with hail, July in the Netherlands!

It's enough to make a grown man cry... guess they were not kidding about the climate changes going on in the world. We have not had much of a summer here, but today takes the cake.



Hail on the backyard patio table.



Hail sizes of 1cm diameter!

Firefox plugin for configurable Snap Shots everywhere


I am still not too sure about this product. I have run it previously on several sites I maintain but eventually removed it. It was a personal preference, it was irritating to have the previews pop-up everywhere. The often got in the way of under lying links I wanted to reach. These and other usability issues have been discussed and criticized on the Internet.

I have recently put Snap Shots back into this website as they have a new option to allow only previews from the icon next to a link. This makes it much more manageable.

Now they have come up with a Snap Shots Firefox Add-On (install) which includes a selling point that hit closer to home on usefulness:
  • Add Preview Shots to popular sites such as Google, Yahoo!, Wikipedia, and more...
I have installed it as I think that, for example, the Snap Shots of search results will be very useful.

Friday, July 6, 2007

Undo a Macbook Linux dual boot setup

I have been running my macbook with a bootcamp and rEFIt enabled dual boot. Ubuntu Linux and osX on two seperate partions. I decided to undo this and put Linux in a virtual machine setup with Parallels. Here is what I had to do:

First off I needed to win back the partion I had created with bootcamp, so I started the assistant you can find in Applications -> Utilities and choose the option to reclaim my extra partition. A restart was needed which still shows me the rEFIt menu with osX and Linux as choices.

To remove this menu you can follow the instructions at the rEFIt project:

Removal when using rEFItBlesser

While booted into Mac OS X, rename or remove the “efi” folder. For a 100% clean
de-installation, also remove the folder “rEFItBlesser” inside “Library/StartupItems”.

Removal for manual installs

First, open the “Startup Disk” preference pane and select “Mac OS X” as the operating system to boot. This will re-bless your Mac OS X volume and instruct the firmware to boot from it. After this, rename or remove the “efi” folder.

Troubleshooting

If Mac OS X no longer starts up after removing rEFIt, boot from the Mac OS X Install Disc (hold down the ‘C’ key while booting) and run “Startup Disk” from the “Utilities” menu. There, select “Mac OS X” on your hard disk as the operating system to boot.


After this I installed Parallels and put Kubuntu 7.04 on that. There were a couple of hitches to the process so here are my tips:

  • memory must be <= 512MB
  • at the boot prompt enter live vga=790
A good detailed step-by-step for the installation can be found at SimpleHelp. Good luck!


Thursday, July 5, 2007

Apple ads, out of the box part II

Security features?

Apple ads, out of the box part I

Ain't it the truth?

The use of presidential power!

My absolute favorite scene from the series West Wing.

Monday, July 2, 2007

Perfect retirement home project on the beach!

Jody, we can fix this up! When our women/kids are tired of us they can place our wheel chairs next to each other with a crate of beer between us! We can watch the tides role in and out at one of the most historical battlefields in the world. I think it would be a perfect Marine rest home, what do you think?

Listen to MP3 Files Online Using Google Flash Player

I found this over at the Google OS blog. The quick story is that you can make any mp3 file playable on the web with the following link (just replace [MP3_file] with your MP3 file):

<embed type="application/x-shockwave-flash" 
wmode="transparent" 
src="http://mail.google.com/mail/html/audio.swf?audioUrl=[MP3_file]" 
height="27" width="320">
</embed>


More on the story at Google operating system. [...read more...]

Lifehacker Code: Better Gmail (Firefox extension)

This has got to be one of the best addons I have seen for Firefox. If you are a Gmail user it also includes a split screen option with the Google Reader included in the overview page. Amazing!

"We've featured several Greasemonkey scripts that enhance Gmail in lots of different ways, but not everyone wants to install Greasemonkey and hunt down all those scripts. To save you the time, I've compiled the best Greasemonkey scripts for Gmail into one handy Firefox extension, called Better Gmail." [...read more...]

Gmail with the clean skin

Thursday, June 28, 2007

Final ride in Normandy, France!

Yes, all good things must come to an end. Soon to be back to flat cycling in the Netherlands, but first my last ride.

I cycled from Isigny-Sur-Mer, through Grandcamp-Maisy along the beach, climbed out of that village past Pointe du Hoc, taking a big climb from the US Cemetery (needed my second gear to get up the last bit, was very steep), down along Omaha beach and climbing up past the museum to finish at Port-en-Bassin.

Total ride was 40 km and we ate a huge seafood dinner with the whole family (11 oyster starter, can you imagine?) before hanging the bike on the car to drive home.

Tuesday, June 26, 2007

Utah beach ride!

Today I toured up north, through Carentan, Dead Man's Corner, and up to Utah Beach. Lots of great climbing on the way and speeds of 36-38 km/hour on the long stretches of road for a total of 56km's. Legs seem to be adjusting to the climbing, not tired after the ride at all.

Saturday, June 23, 2007

Cycling to Omaha Beach!

My second ride in France. I covered 57 km from our house, via La Cambe to view the German cemetery (slide show). It has over 21300 German soldiers, many unknown.

From there I went on through the country side down towards the coast through one lane villages like Asnieres where I stumbled across a memorial in a field from a P40 crash site from the D-Day invasion.

I went down along Omaha Beach for another look at the memorial site:

From there it was up a steep climb at Verville-Sur-Mer, down along the coast at Grandcamp-Maisy and home to Isigny-Sur-Mer.

Friday, June 22, 2007

Viewing the Utah beach landing routes in Normandy, France

We toured through the northern part of Normandy today. From Isigny-Sur-Mer we headed through Carentan where some of the heaviest fighting went on. We stopped at Dead Man's Corner and spent some time in Sainte-Mere-Englise:



We ended at the famous WWII landing site of Utah Beach. A few photo's give you an impression:


Here is a nice video view of what you see when just exiting the waters onto the beach:

Monday, June 18, 2007

Omaha beach landing birds-eye-view

Toured the famous WWII D-Day landing site of Omaha Beach. Here is a slide show and a video impression of the view the soldiers had upon reaching dry beach:



After taking a look around, we happened upon a flag raising with the Mayor and an Omaha veteran with a group of US school children, very moving.

Sunday, June 17, 2007

First ride in France!

My first ride through France is in Normandy on Fathers Day. I took a short exploration ride up to Pointe du Hoc and back to Isigny-Sur-Mer, getting caught in the rain on the way home. Welcome to the quickly changing weather in Normandy! Total ride was 34 km's and I walked around a bit at the battle site.

Friday, June 15, 2007

AbTLinux - caching package installs now!

Having not put time and/or energy into my AbTLinux project lately I decided to push for at implementing one of the failing unit tests (only 27 to go!).

I choose caching a package, which is in the AbTLogManager and runs now after a successful package installation. You can see the coding progress on our Trac (if you get some Trac error message, just hit refresh until it goes away).

Only 26 failing unit tests to go!

Wednesday, June 13, 2007

Mocking up packages in AbTLinux with FlexMock

I was looking for a solution to mocking up objects for my Ruby project Unit Tests and came across the FlexMock project.

I have been looking for something simple that would allow objects, in my case software packages, to be easily tested without all the overhead of actually running through downloads, configuring, building and installing a real package. The obvious solution is to mock up the package object and test that. FlexMock provides a rather extensive tool set for mocking up my package objects.

As of yet I have not exactly decided where and how to integrate this, but I will. For now I have included the library into the code base and will get back to this soon.

Tuesday, June 12, 2007

Gmail Rolls Out PowerPoint Preview

Not that I am a big fan or user of PowerPoint, but should some DoDo send me one I am now able to view them painlessly as a slideshow. For more information:

"Interesting: Google rolled out their slideshow feature for Gmail (some of you were already getting this as experiment for a while). What happens is that whenever someone sends you a PowerPoint attachment, you can instantly open it in a new browser window by clicking “view as slideshow” to then go through the pages." [...read more...]

AbTLinux wiki setup on Sourceforge

With the announcement of Sourceforge hosting support of project wikis, AbTLinux will now be hosting it's wiki.abtlinux.org within it's Sourceforge project space.

I have migrated all old pages over to the new location, set security to prevent spamming and encourage both developers and eventual interested persons to take a look.

To edit the wiki you need to be a project member, which entails getting a sourceforge user account and then requesting addition to the About Time Linux project.

The original announcement for those interested:

SourceForge, Inc. (NASDAQ: LNUX) today said it has teamed-up with Wikispaces to integrate wikis directly into SourceForge.net, the world's largest repository of open source software. The addition of wiki functionality into SourceForge.net gives the community a simpler and more efficient tool to mass-author the documentation and communication necessary to support its open source projects.

"Open source succeeds because of community," said Michael Rudolph, vice president and general manager, SourceForge.net. "Adding the collaborative power of wikis into what is already a vibrant community will create a better way for the members of SourceForge.net to maintain their projects. Wikispaces gives us the ability to support the high volume of projects on the site and bring greater value to the open source community." [...read more...]

Portland Velo riding club

Cycling in Portland, Oregon is something I have not ever really done much of. When I was first taking up the sport in 1988 I was stationed in California (USMC) so only rode in the dessert.

After putting the bike away for some years due to travel and work constraints, I picked up a new one and started again last year here in the Netherlands. I have since rode in Belgium and soon will be doing some riding in France (Normandy).

Looking for some contact points for my next trip home I came across this club in Portland that does not mind if guest riders tag along, Portland Velo. Looks like a well organized group with a good ride calendar that has a bit of everything for each level of rider.

Sunday, June 10, 2007

Notifier for Google Reader

Google Reader Watcher is a Firefox extension that monitors your feeds from Google Reader and shows alerts when there's something new to read. The extension shows the number of unread posts in the status bar (this number is only an approximation, because Google Reader doesn't count past 100 for an individual feed). If you hover over the icon [...read more...]

Friday, June 8, 2007

Another ride to work yesterday!

I did a run to work on the bike again, this time the wind was a bit much on the way to work so after 26 km's I just jumped a train for the rest of the way.

The return trip was nice and warm (28 degrees) and a bit of a tail wind so was able to keep the speed up around 35 km/hr and was home in 90 minutes for a total ride of 83 km.

Thursday, June 7, 2007

Integrating Digg tools into your Blog

I was messing around with trying to get a pretty embedded Digg button on my Blog and found this integration manual with all the button options explained with examples.

I added it to my Blogger template as the following code (results are on my site by each posted article):

<!-- digg button -->
<div style="float:left; margin-left:10px;">

<script type="text/javascript">
digg_url = "<data:post.url/>";
digg_bgcolor = "lightyellow";
digg_skin = "compact";
digg_title = "<data:post.title/>";

</script>

<script src="http://digg.com/tools/diggthis.js" type="text/javascript"/>
</div>
<!-- end digg button -->

/*
* The only option missing (I don't use it) is:
*/
digg_bodytext = "<data:post.body/>";

Searching for PFC Henry L. Hooper

I have often visited the American Memorial Cemetery Margraten. I can not even begin to describe to you the feeling you get when you approach such a field of crosses, more than 8000 of them... I have adopted a grave and have some background information posted here on PFC Henry L. Hooper but would like to make a call for help.

Full details on his story as far as I have them can be found on the PFC Henry L. Hooper page.

Do you know anything about this person, his history, his family or just want to leave some information, please submit a comment here.

Free online Linux courses (slideshow's available)

I have redone the presentation of these courses and due to site migration I thought the best way to let everyone know how to find them again was to push them here. As previously stated, these are released under GFDL, viewable now in online slideshows (Linux First Steps, Linux on Apache and Linux Networking).

See the Linux courses page.

Wednesday, June 6, 2007

Moved to Blogger

I have moved my site over to Blogger this last week.

This means many of my old links are no longer working and that trackbacks and pingbacks need to be updated. Is there a way to do notify the link owners?

I am also working on subscriber migration to provide email updates when posting. Let me know if you notice broken links or any other such problems?

Wednesday, May 30, 2007

20 Ways to Use Gmail Filters

One of the coolest things about Gmail is its filters — set up properly, filters can add loads of functionality to your already-powerful Gmail account. Save time and space, rid your inbox of unwanted emails, and turn your Gmail into a multi-functional tool with simple filters.

read more

Friday, May 25, 2007

DB - Nijmegen - DB

Again a ride to work and back, this time over a new route from DB -> Oss which is through the farms and country instead of through the city. It seems to be a single km longer but the route saves me about 15 minutes each way!

Total ride was only 85 km’s as I was a bit late leaving for home so decided to take a train part way home and rode from Oss -> DB. Weather was great, 25 degrees! ;-)

Tuesday, May 22, 2007

A day without X

Would you be able to survive one full day without using the X server? Linux offers us a wide assortment of CLI based tools. There is no reason why you shouldn’t be able look up stuff online, read your email, look at pictures, watch movies and listen to music without X. Here is a list of apps that will help you survive a day without the X server.

read more

Exclusive Lifehacker Download: Trick out Google Reader with Better GReader

Firefox only: Greasemonkey scripters have come up with a few Google Reader user scripts that make some welcome GReader tweaks like maximizing the viewing area, skipping Google's default subscribe mechanism, and adding keyboard shortcuts. Today I've rolled up those three useful scripts into a single Firefox extension, called Better GReader.

read more

PMS v1.3.1 released today!

Since my last release of PMS I have been hard at work fixing some of the bugs and problems that surfaced as a larger user group started making use of PMS. Today I release version 1.3.1 and you can see the results of ICIS research work via the publications listing found on their site, just follow the Research link.

A listing of the fixed tickets can be found in the PMS Trac

Furthermore, a new site has been opened to host the ICIS PMS at http://pms.cs.ru.nl.

Monday, May 21, 2007

WordPress - separating Trackbacks and Pings from normal comments

I have not been getting Trackbacks and Pings mixed in with my comments for some time now and thought it might be nice to sort that out once and for all in my theme. A starting point was provided by cre8d-design.com, but was not looking exactly as ordered as I wanted it to be. I prefer the Trackbacks and Pings to be summaries and the actual comments to be complete. Here is the results (see my Linux courses page for example of resulting Comments, Trackbacks and Pings):

# edit your themes comments.php file and
# look for the starting points I have provided.
#
<!-- You can start editing here. -->

</code><h3 id="trackbacks">Trackbacks/Pings</h3>
<ul class="commentlist">



<li class="">smaller">
id="comment-">
<p><cite> 
by  —  @ <a href="http://www.blogger.com/post-edit.g?
blogID=3868547292717970492&postID=5015798110612907785#
comment-%3C?php%20comment_ID%28%29%20%20%20%20
%20%20%20%20%20%20%20%20?%3E"></a></cite></p>

comment_approved == '0') : ?>
<em>Your comment is awaiting moderation.</em>



</li>
</ul>

<h3 id="comments">Comments</h3>
<ol class="commentlist">


<li class="">" id="comment-">
<cite></cite>

comment_approved == '0') : ?>
<em>Your comment is awaiting moderation.</em>

<p class="commentmetadata">
<a href="http://www.blogger.com/post- edit.g?
blogID=3868547292717970492amp;postID=5015798110612907785#
comment-%3C?php%20comment_ID%28%29%20%20%
20%20%20%20%20%20%20%20%20%20%20%20%20?%3E" title=""> at </a> </p>
</li>
</ol>


I hope this helps you to sort out something for your own site with regards to Comments, Trackbacks and Pings. ;-)

Tux in the Indy 500!

The Tux 500 project is using the Indy 500 to promote Tux with a “We are Linux!” video and this very cool shot of the car:

Can you find the Tux?

Sunday, May 20, 2007

Den Bosch - Oss - Maas - Den Bosch

Nice Sunday morning ride today, sunny and warm with a different route towards Oss and swinging around to the Mass river before heading back. Was with Marcel and we completed a leisurely ride of 48 km’s in about two hours.

Saturday, May 19, 2007

Java on Guice - Dependency Injection (video)

A bit long (53 minutes) and informally presented, but still rather interesting video on testing. Some background on Guice for those not aware of it:

"Google Guice is an open source Dependency Injection framework from Google. Guice is based on annotations and generics unlike Spring which depends on XML of Java for wiring dependencies. Guice injects constructors, fields and methods (any methods with any number of arguments, not just setters). Guice provides support for custom scopes, static member injection, Spring as well as Struts 2.x integration and AOP Alliance method interception. Guice is available at Google Code. You can find the User guide and Javadocs from there."



Follow-up: Linux courses available online free!

This week I was Dugg on a page I have had on my site for some time now, an amazing experience to watch.

I put a new plug-in for Digg and Delicious on my site and was testing it by using my Linux courses available online free page. Well, this took off like a rocket and the web-server was straining very hard just to keep up (and failing to do so more often than not)… I was able to recover from the problems by turning on the site caching plug-in but it was still a very busy day.

The hit counter took off on the first day far above my normal average of around 200-250 visitors and peaked at 964 hits. Day two was the high point, 7314 hits! Day three saw a drop to 844 and day four (weekdays all of them) was back down to 292 hits. Today is Saturday and it is afternoon my time with the counter up to 1536 hits and counting.

The Digg.com site has a feature that ranks the top 10 most popular Dugg articles in the first 12 hours of their lives (from the point that they hit the status of ‘popular’). My courses hit the #3 spot before time ran out:


Ranked #3 on Digg.com

I have kept an eye on the comments as the material in the courses that was posted is a bit old. I teach these every so often and it has been some time since the last course was taught. I only update the material when on a paid assignment (so if hired I customize and update to the clients wishes). This was noted by a few people in the comments.

Other than that, was nice to see that there is apparently a big need of on-line free courses for Linux. Maybe a good idea to start an Open Source Project that provides this? Would there be enough interest in maintaining a set of courses on-line?

I wonder… ;-)

Tuesday, May 15, 2007

Wanna peek at United States Marines Boot Camp?

Friday, May 11, 2007

Gimp and 3D DVD box covers plugin

The blog, as days pass by as a nice plugin for Gimp to allow you to change any image you want into a ready to print 3D DVD box cover. You can download his plugin, dvdcoverdisplayer.py, "...and store it in the .gimp2.2/plug-ins/ directory in your home directory, and then make it executable. Then, get yourself a DVD cover image from somewhere, open it in the Gimp, and click Python-Fu ==> DVD Cover to get the pretty 3D version."

He would be happy to hear any comments you have over on his site. ;-)

Thursday, May 10, 2007

Ubuntu consoles missing (no F1-F6 consoles)?

This has been bothering me for some time, but not enough to sort out the problem. Today I got tired of looking at the pretty startup splash screen and wanted to have my console logins back so traced the problem to /etc/event.d/tty{1-6} files. The example file below shows a clear error in the last two lines (from the tty2 file, but same in all 6 files):

# tty2 - getty
#
# This service maintains a getty on tty2 from the point the system is
# started until it is shut down again.

start on runlevel 2
start on runlevel 3

stop on runlevel 0
stop on runlevel 1
stop on runlevel 4
stop on runlevel 5
stop on runlevel 6

respawn                                             <<< ERROR!
/sbin/getty 38400 tty2exec /sbin/getty 38400 tty2   <<< ERROR!
The last two lines are reversed for one and the last line itself is a mesh of two commands, just need to clean them up to look like this:
...
exec /sbin/getty 38400 tty2
respawn

Do this for all tty# files and you will have your consoles back under CTRL+ALT+{1-6}. ;-)

Tuesday, May 8, 2007

The Queen of the Netherlands opens Huygens building at Radboud University Nijmegen

A royal visit and a wave to us on the balcony as Queen Betrix stopped by today to open our new Huygens building. It was very exciting to see her in person after living her for over 15 years now. I have taken some pictures with my mobile so the quality is a bit less than normal, enjoy them here:







Queen opens Huygens building

There are some professional pictures in this slideshow and a very nice video report of the Queen’s visit.

Leaving the Radboud University Nijmegen

I have decided that after 3 years of working as the IRIS Scientific Programmer and more than 2 years previously as the PRONIR research project Scientific Programmer, it is time for a change. I submitted my resignation last week and signed my new contract today.

I have accepted a new job in the Java development team at the SNS Bank, in s-Hertogenbosch. This group has made a very nice impression on me and I like the atmosphere there. I will start at the end of the summer after finishing up a few things at the university.

This is the first time in my life that I leave a job due to no career advancement possibilities and not because I was unhappy (or the company went under). Very strange feeling but the winds of change are blowing and I am ready for a new challenge! ;-)

Monday, May 7, 2007

Trac setup mirror of SVN repo with SVK (includes sync)

I needed to get a mirror of my project repo (AbTLinux) on a machine hosting our Trac project software. Not much clear information on the web so here is what I finally did to get this working (assuming you have followed the previous posts to setup apache and subversion and setup trac.
#  login as root and create local svk depot.
#
$ svk mkdir //mirrors

# link the local mirror to our abtlinux repo.
#
$ svk mirror https://abtlinux.svn.sourceforge.net/svnroot/abtlinux //mirrors/abtlinux

# sync initial content over to local mirror. Just add this
# to a cronjob and you will have automated syncing to
# keep the mirror updated.
#
$ svk sync -a

# now we need to move the local repo out of our ~/.svk/local location and into 
# our svn web based location.
#
$ mv ~/.svk/local /var/svnroot/mirrors

# change the svk depotmap to point to new location.
#
$ svk depotmap

# change the file that opens to point to your svn location, mine
# looks like this:
#
---
'': /var/svnroot/mirrors
===edit the above depot map===

Finally we point our /var/lib/trac/abtlinux/conf/trac.ini at the local svn mirrror site and resync your trac with:
# my resync looks like this:
#
$ sudo trac-admin /var/lib/trac/abtlinux resync

Ubuntu Trac project management software setup

This is a bit of a howto for setup of Trac, with AbTLinux being the example target project that will make use of it. You can also follow the generic setup as described on the Trac site.

# first we need to install the packages.
#
$ sudo aptitude install trac libapache2-svn      \
libapache2-mod-python libapache2-mod-python-doc

Next we need to setup the Trac environment.
$ sudo makdir -p /var/lib/trac
$ sudo chown www-data.www-data /var/lib/trac

Now we need to setup an apache configuration with a new trac site, so add the following as /etc/apache2/sites-available/trac:


ServerAdmin eric@abtlinux.org
ServerName trac.abtlinux.org
DocumentRoot /usr/share/trac/htdocs
ErrorLog /home/erics/logs/abtlinux-error_log
CustomLog /home/erics/logs/abtlinux-access_log combined
#Alias /trac-static /usr/share/trac/htdocs


SetHandler mod_python
PythonHandler trac.web.modpython_frontend
PythonOption TracEnv /var/lib/trac/abtlinux
PythonOption TracUriRoot /



AuthType Basic
AuthName "AbTLinux Trac Server"
AuthUserFile /var/lib/trac/abtlinux/.htusers
Require valid-user

           

Now I am going to enable the new trac site (this will be pointed to with an A record as trac.abtlinux.org):
$ sudo a2ensite trac
$ sudo  /etc/init.d/apache2 force-reload 

This is a good point to go and setup Ubuntu Apache and Subversion setup with DAV support (includes SVN migration), this will get your subversion with authentication running.

With a working installation of our project, we can finish the Trac installation which will make use of our subversion setup.

$ sudo mkdir -p /var/lib/trac
$ sudo trac-admin /var/lib/trac/abtlinux initenv
$ sudo chown -R www-data /var/lib/trac/abtlinux

After all this, I opened the trac url (in my case, http://trac.abtlinux.org) and see nothing but error messages over neo_cgi.so:
Traceback (most recent call last):
File "/var/lib/python-support/python2.5/trac/web/main.py", line 387, 
in dispatch_request dispatcher.dispatch(req)
File "/var/lib/python-support/python2.5/trac/web/main.py", line 206, 
in dispatch req.hdf = 
HDFWrapper(loadpaths=chrome.get_all_templates_dirs())
File "/var/lib/python-support/python2.5/trac/web/clearsilver.py", 
line 135, in __init__ raise TracError, 
"ClearSilver not installed (%s)" % e
TracError: ClearSilver not installed 
(/usr/lib/python2.5/site-packages/neo_cgi.so: undefined symbol: 
Py_InitModule4)

Some research showed that this was a Feisty problem and upgrading to ClearSilver 0.10.4 solved the problem, so download this from http://www.clearsilver.net. Before building edit the configure.in file:

#  add 2.5 to variable python_versions.
#
python_versions="2.5 2.4 2.3 2.2 2.1 2.0 1.5 24 23 22 21 20 15"

Now we need to build and install correctly.

# just build normally.
#
$ sudo ./configure
$sudo make
$sudo make install

# then link the neo_cgi.so to the python2.5
#
$ cd /usr/lib/python2.5/site-packages
$ sudo ln -s /usr/local/lib/python2.5/site-packages/neo_cgi.so

Open the Trac url (http://trac.abtlinux.org in my case) and bingo! ;-)

As a side note, if you want to migrate Trac database data from one machine to another (as I want to here above), you need only to replace the /var/lib/trac/abtlinux/db/trac.db file with your original setup (ensure of course that your /var/lib/trac/abtlinux/conf/trac.ini file is adjusted from the defaults as needed) and resync your Trac setup as follows:

$ sudo trac-admin /var/lib/trac/abtlinux resync
$ sudo /etc/init.d/apache2 reload