Subversion client hangs after post-commit
I had been hit by this problem since I setup Subversion on Ubuntu in January. The svnserve was properly invoked on Ubuntu server but whenever any svn client was trying to commit something back to the server, the client would hang for hours before it prompted an error: “Connection reset by peers.”
I searched all the Subversion and Ubuntu forums but could not find any solution to my problem. In the past months, I tried to identify the source of the problem and even tried many solutions suggested by people on these forums but the problem persisted. I had been committing to svn server with post commit email notification turned off and lost quite a number of post commit message. I used to keep track of changes by these email notification.
Yesterdat, I was trying my luck again and I accidentally noticed sendmail and sendmail-mta were called after commit. A look into syslog confirmed that sendmail process was put into sleep by some unknown reason. Failing to identify the cause, I removed sendmail and related packages from my Ubuntu server and installed Exim4. It is claimed to be easier to installed and configured than sendmail. The problem diminished after I got exim4 up and running. Now I am able to receive post commit email notification after every svn commit. Every commit takes a few seconds to complete after this. Problem resolved.
DocBook Publishing - Output to HTML
I learned about DocBook last year and found it a great tool for technical documentation. It is a XML based semantic markup language. The DocBook is originally intended for computer hardware and software documentation but it is great for other documentation purposes.
I have been working on some documentation, new and converting existing from Lyx to DocBook. With DocBook, I am able to publish the contents easily to many formats, namely TEX, text, pdf or HTML. I had been trying to output some of my DocBook documentation to HTML.
This afternoon, I have finally succeeded to publish to HTML. I installed some DocBook packages on Ubuntu. Here are the packages you need to get DocBook going:
- docbook
- docbook-xsl
- docbook-xsl-doc
- docbook-xsl-doc-html
- docbook-xsl-doc-pdf
- docbook-xsl-doc-text
- xsltproc
- and optional xalan and fop
To output your DocBook document to HTML, simply this:
$ xsltproc --output paper.html \
/usr/share/xml/docbook/stylesheet/nwalsh/xhtml/docbook.xsl\
paper.xml
You can turn on chapter and section numbering by setting chapter.autolabel to 1 and section.autolabel to 1. To include the chapter number in every sections, set section.label.includes.component.label to 1.
$ xsltproc --output paper.html \
--stringparam section.autolabel 1 \
--stringparam section.label.includes.component.label 1 \
/usr/share/xml/docbook/stylesheet/nwalsh/xhtml/docbook.xsl \
paper.xml
Pre-Alpha RC1
I am in the midst of getting the KazeServer to roll out. During this pre-Alpha RC1 stage, works have been a little pressured especially cleaning up parts of the codes to make it neater and more efficient. A number of factors are also affecting during pre-Alpha stage.
One of them is the gnat Ada compiler issue on Ubuntu Hardy Heron or 8.04. Hardy comes with gnat-4.1 with a number of packages not added. Without these packages, I can’t build AWS-2.3. So, I have to roll out Alpha RC1 on Mac OS X until Ubuntu Intrepid or 8.10 with gnat-4.3 is released (hopefully with gnat-4.3 by October). I have another option which is I have to move to Debian Etch with gnat-4.1 but including the libaws-2.2.
libaws-2.2 is a pre-built library for AWS on Debian Etch. I am developing using gnat-4.4 and AWS-2.3 on Mac OS X. Moving to Debian Etch means I am downgrading the version of gnat and AWS and I feel a little skeptical about it. This is one thing I hate most, version inconsistency among the Linux distro.
After talking to my friends on this matter, it looks like I have few choices but to target on Mac OS X for the moment considering the tasks of installing and get the Debian Etch up and a whole lot of uncertainties in gnat-4.1 and AWS-2.2.
Can’t build AWS in Ubuntu
About two weeks ago, I installed Ubuntu Hardy Heron in VMware Fusion on my MacBook (running Leopard). After some playing around with Ubuntu on my MacBook, I began to install software components such as the Ada compiler so that I could do testing on my MacBook without switching to the Ubuntu box.
I am working on a web-enabled application developed with AWS (Ada Web Server). This application is developed on Mac OS X. Building and testing on mac OS X has no problem at all. To compile the source on Ubuntu, I need AWS. So, I tried to install AWS packages from Ubuntu but found only broken dependencies. Then I decided to build one myself. The build has failed because the gnat (Ada compiler) from Ubuntu is 4.2. It lacks two Ada packages, a-calfor.ad[sb] (Ada.Calendar.Formatting) and a-catizo.ad[sb] (Ada.Calendar.Time_Zones). AWS depends on these to build.
I posted to comp.lang.ada and AWS list. It looks like I have no choice but to bootstrap gnat-4.3 myself or install from Ubuntu Intrepid or wait for the next Ubuntu release of gnat-4.3.
Virtualization - Installing Ubuntu Linux with VMware on MacBook
I have successfully installed 64-bit Ubuntu 8.04 (Hardy Heron) Linux on my Mac Book. Out of my expectation, the installation was rather quick and easy compared to installing Solaris 10. I had tried installing Solaris 10 on my Mac Book. Solaris installation was successful but I couldn’t boot into it. I wondered why.
My Mac Book sports an Intel Core 2 Duo 2.16GHz with 2GB RAM and 160GB hard drive. I am too skeptical to have 2 physical partitions on my hard drive. Thanks to VMWare Fusion, I can create virtual partition with it. After I have installed VMware Fusion 1.1.1, I created a Ubuntu-64-bit virtual partition and installed Ubuntu from the ISO disk image. With VMware Fusion, I can install directly from the disk image without having to burn a CD or DVD.
Since my Mac Book is codenamed Uranus, I called my Ubuntu on Mac Book, Uranus-Zeta. The idea is from the ζ-ring of Uranus
Like Linux, Mac OS X is a UNIX like operating system. Why do I need Linux? Well, there are a number of reasons. One being you can and another to learn new things. But these are not the reasons to motivate me. Being a software developer developing cross-platform software, I do tests on multiple platforms. Having Linux to run on my MacBook means I can develop and test my software on both Mac OS X and Linux environment without switching to my Linux/Solaris boxes. Another important reason is that I see the needs to support my clients on Linux arise and soon Solaris. Having the ability to run three different operating systems on one machine can be productive and versatile for me.
The other obvious reason is that I have a Core 2 Duo. Meaning I am having two 64-bit CPUs in one processor. It will be a waste of resources if I don’t utilize the computing power I already have. Assigning each CPU to run different operating systems and tasks is called virtualization.
With VMware Fusion, I can run Linux and Solaris side-by-side with Mac OS X without the need to boot into anyone of them at one time. This is a great feature when supporting clients in Mac OS X, Linux and Solaris.
Here are some screen shots (click to enlarge) of Uranus-Zeta:

Tunnel X from Gutsy to Leopard
I have been tunneling X from Linux to Tiger for almost two years without any problems and happy with it. After upgrading to Leopard, a disaster struck me. I was unable to access my Linux applications on my Ubuntu box. I used to do it with Tiger without any problems. When I ssh tunnel X from Gutsy to Leopard, I had keyboard problem. When I pressed some keys on the keyboard, I got numbers and some weird characters like close windows and minimize windows.
The problem lies within Apple’s new X11 in Leopard. The keyboard is not properly mapped after establishing the X tunnel. After searching the web and Ubuntu forum, I found a solution:
% ssh -X username@gutsy
% xmodmap -pke > ~/.keymap
% gnome-panel 1>/dev/null 2>/dev/null & xmodmap ~/.keymap
Just do xmodmap map once will do. After that, ssh into Ubuntu and invoke gnome-panel.
Ubuntu 8.04
The forthcoming Ubuntu 8.04 or codenamed Hardy Heron is in the final alpha stage. It is expect to be released in April. As far as I know, Hardy suffers a small glitch in CJK support. Some fonts will be confused after installation but can be overcome with simple fix. I have yet received any further details on this and I have yet to install a test version of Hardy Heron on my current Ubuntu box.
Lets look forward to this April for the release.
SVN setup
I’ve finally found time to setup svn at my home net after so many months. My svn server was down when my previous Linux box was down with a dead hard disk last year. The setup was quite a brisk. I had everything installed and configured last night. The test for remote access using a url was successful. I could import, checkout and check in. Because it was already late, about 1AM, I felt rather tire and went to bed.
This morning, I hacked some codes to provide a rather informative post commit email notification. All are done except the check in will stall. It takes a long time (and possibly hang!). I have yet to fully test before I begin my development project again.
HOWTO - SCIM and Ubuntu Gutsy Gibbon
Ubuntu 7.10, code named “Gutsy Gibbon”, has been released. I just finished upgrading from Feisty Fawn (7.04) to Gutsy Gibbon. The upgrade (downloading, unpacking, removing, installing, configuring and cleaning) took about 6 hours to complete.
The upgrade was smooth and without any problems except it broke my scim. I have exhausted the search on Internet for a fix but was disappointed. So, I tried to experiment with a few methods based on the information I had on the Internet and came up a work around for this problem.
Referring to my Chinese Input HOWTO here, I assume you have installed scim in Feisty Fawn (7.04) and later upgraded to Gutsy Gibbon (7.10).
- Goto System -> Preference -> Sessions. Delete the “Input Method” as created in my previous HOWTO.
- Uninstall and install again scim and all suggested packages.
- Click on menu: System -> Preferences ->Sessions
- Click Startup Program Tab then [New] button.
- Name: Input Methods
- Command: scim -d
- Click [OK] button
- Logout and login again.
- Go to System -> Administration -> Language Support
- Select your language(s) support. In my case, Chinese and Japanese.
- Check the box at the bottom, Input Method, to activate complex characters input. Apply, uncheck it, apply and check again and apply then quit.
- Restart Language Support to make sure the box is checked.
- Logout and restart your system.
- Login and launch any application, e.g. gedit or Terminal. Right click and select “Input Method” and check “SCIM Input Method”.
- Now click on the “Input Method” tray icon on the top left of your screen to choose your desired language support and input method.
Now, you should be able to switch input method in some applications such as Terminal or gedit. It still does not work on every applications such as Open Office. To activate scim for every applications, use the command line (or Terminal):
- Check your locale:
$ locale | grep LANG=The answer would be something like below, which is in my case:
LANG=en_US.UTF-8 - Now, with the following command, insall scim-qtimm and tell your system you want to use scim for your input method in your locale:
$ sudo apt-get install scim-qtimm $ im-switch -z en_US -s scim - Logout and login again and start Open Office. You should now able to select your input method in every applications.
This should also work (with instructions from my previous post here) if you have a fresh installation of Gutsy Gibbon. Please let me know if this works for you.
HOWTO - Chinese input for Ubuntu
This HOWTO guides you to install scim for Chinese Input in Ubuntu with Gnome.
- Install the following packages:
- scim
- scim-chinese
- scim-config-socket
- scim-frontend-socket
- scim-gtk2-immodule
- scim-server-socket
- scim-tables-zh (option)
- xfonts-intl-chinese
- xfonts-intl-chinese-big
- ttf-arphic-gbsn00lp
- ttf-arphic-gkai00mp
- ttf-arphic-bkai00mp
- ttf-arphic-bsmi00lp
- Click on menu: System -> Preferences ->Sessions
- Click Startup Program Tab then [New] button.
- Name: Input Methods
- Command: scim -d
- Click [OK] button
- Logout and login again.
- You will see a new icon on the top right menu bar.
- Right click and select ¨SCIM¨ setup and activate languag/input support you need.
- Left click to choose desired input method.
Why I like Ubuntu?
Since I switched to Ubuntu Feisty Fawn 7.04 on Spetember 26, I have been working on Ubuntu with a multitude of tasks including test compiling some Ada source codes of previous project, working on my latest Ada project, blogging, surfing, downloading torrents and many more. I personally find Ubuntu is really an OS for the human.
Unlike many other Linux favor such as Caldera (now SCO), SuSE, RedHat; it has come out of competition neatly. Based on Debian, it has a better packaging of software packages which makes installation and upgrading software components very easily and almost without hassle. The only hassle I see is when downloading some large files during a slow connection or heavy Internet traffic.
The auto-upgrade is the feature I like most in Ubuntu. It works seamlessly and the new software components are well tested before the release. I had had my system corrupted when I was using SuSE and not so long ago on FC5 (Fedora Core). Causing a lot of valuable data and time. What can I say? So far, so good!
The software update is also very frequent. This always keep my system up to date with the latest release of Ubuntu’s software components. Well done!
The other neat feature is the easy activation of SCIM, a Smart Common Input Method for all Unix-like OS for inputing complex character sets like Chinese and Japanese. This gives me another platform of choice when updating my blog and other websites (blogs) with Chinese and Japanese characters. I will write about how to activating SCIM later.
I hope Ubuntu will be the Linux for my secondary working platform.
Ubuntu Feisty Fawn
A few months ago, when fornax’s hard disk was dead, I upgraded it from 40GB to 160GB and installed Debian Etch. Debian Etch has once again boosted my confidence about Linux. The graphical desktop was working up to my expectation. It could support up to 1280 x 1024 resolution! Upgrading Debian is easier compared to other Linux distros like SuSE, RedHat and etc. Actually, I quite like Debian to power fornax as an alternative development platform and also for some general purpose computing and testing purposes. I did not blog about my Debian installation a few months ago. I should blog about Ubuntu installation to record my experience.
Today, after some months, reinstalled fornax again with Ubuntu 7.04, code named Feisty Fawn. The UI is even more superb than Debian. Everything has been nicely done and packaged. To my surprised, I can run KDE applications from Gnome’s menu. This could not be done in Debian and some other Linux. How nice!
As the matter of fact, I did not like Gnome very much because KDE applications would not appear in Gome’s menu. Ubuntu has changed my perceptual experience about Gnome and once again Linux!
I find Ubuntu has more human touch than any other Linux distros. I also find that Ubuntu is very closely competitive with Mac OS X!
Really, I have download Ubuntu’s alternate install CD in June but I had never had a good reason to install Ubuntu over Debian. This morning, I had to install and configure many software, for instance, Subversion, apache and many other software development tools; it gave me a good reason to install Ubuntu. Not because Debian did not have all these software packages (Ubuntu is based on Debian), it was because I had to do most of the tasks which were almost like installing a fresh system.
Ubuntu’s installation is easier than Debian and faster. I had it up and running in less than 20 minutes!
Now, fornax has once again become my Linux development platform as well as SCM (Source Code Management) server. Oh! I run ktorrent for downloading movies as well. It really flies and sucking all the bandwidth. I have to stopped ktorrent whenever I want to work on Internet.







Listen to my podcast