Changing my Operating system

Usually, I pick up with debian at work and home and sometimes think of dual booting my system with a BSD operating system.

So Which BSD should I use? There are many choices and each are different even if they share code for some projects. Each has a  unique philosophy, politics, technical team and a foundation. But tech team in all BSD is much better than any other Operating systems so far. I don’t want to step into BSD vs Linux distro vs Windows vs .. debate. So let’s come back.

I don’t have anyone at work using a BSD that I am aware of. Some of them even don’t know about BSD. Asking on any existing forum is not a right move unless, I can find a reply from me from future!. But I would be lying that I didn’t search around internet to know why each of them are special and in what way that attracts me.  You can find things like

FreeBSD is more general purpose. I use it for desktop and server.

NetBSD is more portable. If you had searched about NetBSD, it is highly likely that you might have read: “If I want a toaster I use NetBSD or I will use a FreeBSD”

OpenBSD is more secure and if you want a secure OS use OpenBSD. So everyone want a secure OS no matter what you work right?. And remember this is not just a matter of highly secure login. 3-stage password verification and stuff like that. OpenBSD is much more.

So this BSD wave comes and goes without sticking ever into my laptop at home or work.

After a long long time………

I installed FreeBSD with zfs. Installation was not unpleasant. But first boot after install, I got a boot error. This was with FreeBSD 10.0. Looking on freebsd bug tracker this was a known issue. “ZFS cannot work with intel core2duo cPu”. Well, that was pretty neat for a general purpose OS. I gave up and didn’t tried other BSD as I lost a lot of time reinstalling, checking installation media, looking on bug tracker. You know the error is in boot code.

Two months ago…

I tried FreeBSD 10.3-release and 11.0-current in that order and was amazed to see the same error. No fix yet. There was patch attached in bug report but nobody cared.

Three weeks ago..

I got a spare laptop with no OS. So BSD wave come back like a tsunami. But this time I was prepared to not touch a FreeBSD and focused on OpenBSD.

Installation was easy. Just a couple of questions. mostly yes, no, hostname.  X  was installed by default. wifi was detecting with no problem. I installed dwm windows manager, tabbed and configured xterm and started using OpenBSD in less that 10 mins after installation.

It was very good experience using OpenBSD and wonder why is it not popular like any other linux distro. There aren’t many packages in OpeBSD which is true. But I found everything I need to replicate my development environment on Debian. Having less packages, is not a kind of excuse for me who build most of my projects from source. It has everything required for a desktop or a server use. OpenBSD has very good code base with lot of non-optional security policies which I like. I very much appreciate the effort put by OpenBSD guys.  It is a wonderful and successful effort to make a good Operating system.

I will stay with OpenBSD for now.

Finally libkml 1.3.0!

After years of inactive development, fork updates, discussion, waiting around for answers, trying a lot of quirk fix. I am finally going to release libkml 1.3.0. I have to thank Mr. Bas Cowenberg for his support which made me to take it up to here. I also thank other projects using libkml that showed a willingness to test this fork.

What’s new in 1.3.0 ?
cmake build system
cleanup of embedded sources
charming ExternalProject that allows to download and build
Generated config files for easy use of libkml with other projects.

OSSIM gets a github page

OSSIM recently started to move the code hosting to git and they have a functional github page. The svn repository is kept alive but developers are using github. The team is also rebasing commits from svn to git manually for sometime until everything is settled. I hop commits into svn will be closed and it will be git only soon!

I had tested a small pull request via github and it was nice to see this tool is moving away from svn.

For those who want to checkout sources, here is the github page.



cannot find a better web browser

I have been a long user of Mozilla Firefox. But  I am very much frustrated about its performance in these days. Disclaimer: I am not a web developer so it is not part of my job to check if a website or web app is working smoothly. To be precise, I need a simple browser without much fancy item. Here the word fancy is quite questionable. In this case, I define it as “browser the web, loading Stack overflow, nabble, mailing list archives, xkcd, news, blogs, forums.

Why the almighty firefox eats too much of my memory?

I know , you can argue to turn off javascript, buy some RAM(don’t be stingy), Get a new system with a better graphics and blah blah.  But even with the noscript addon, the memory usage is high.!. Now why should I buy an extra RAM to just feed my browser.

So I decided to embark a journey in search of a good reliable web browsers. There are a tons of other browsers in the market. text based, gui based. Both of them with and without javascript support and other Web2.0 stuff.

I didn’t have selected one right now. I will take some time to review others and find a web browser that sucks less. Having said that word, I say, I am using dwm window manager from suckless for an year now. No complaints. No worries. Completely satisfied with performance and its usability. They have some very cool stuff that really rocks. And guess what!.., there is a project “surf”.

As I am much impressed by their simplicity and design philosophy , I cannot say that I am not leaned towards surf. Maybe I will use it for my day work. So this could be it. But I need to test it.

I cannot ask all firefox features in the alternatives. Seriously.. I am not even thinking “what if some day..” I really don’t. My current web browser is  too slow and experience is unbearable. What worse could happen if I use surf for a week or two.. Heh ?

I will be back if I have some results on the new web browser. Also surf is not the only one on the list. There is emacs’s eww (no javascript) , W3m and suckless has list of other web browser that rocks.



Cross compiling OTB – continued..

clone sources

git clone

build and install dependencies

make gdal itk ossim qt4 muparser muparserx

building  OTB

you need cmake 3.4.0 or higher. This is needed to have support for wine emulator.

git clone

mkdir build ; cd build

cmake ../OTB -DTOOLCHAIN_FILE=/path/to/mxe.cmake

(wait for configure to finish)

By default, OTB does not activate a lot of modules that depend on external libraries such as muparser, opencv, qt.

Below command will enable extra options. YOU MUST have those libraries installed in your system.

 -DOTB_USE_CURL=ON . (note the trailing dot)

start building by running make


optionally change the install location. I use $HOME/install/otb/

for that I run cmake as follows

cmake -DCMAKE_INSTALL_PREFIX=$HOME/install/otb . 
(trailing dot again)

Finally install OTB.

make install

Cross compiling OTB

Recently, I compiled OTB for Windows 7 from a Fedora system using cross compiling tools. There are good support for the Microsoft compilers already in OTB project. But I used MinGW tool-chain via MXE packages. MXE is a cross compile environment supported on any Linux machine.

Already OTB gives packages for windows via OSGeo4W distribution, There is also an NSIS installer generated daily.

So Why do you need to go for GCC tool-chain on Windows.? Why should I cross-compile instead of compiling it on windows ? What is wrong in using visual studio?

Okay. I am not a fan of visual studio and MSVC++ compilers. It maybe very good but I am not a fan. That doesn’t mean there is fundamentally something wrong with that compiler. So I prefer GCC. Well, you can say loud: “news flash fella.. GCC a’int that great either”. But for me it was less painful experience.

MXE is great for generating windows binaries from a Linux box. It is not hard to setup up. It does not use any complex external dependencies. Best of all the build system of mxe is simple and elegant.

cloning the source and running just “make” command will start building packages. You can run “make boost” to build the cross compile tool-chain and use it to download and build boost. It is not a super build system but ‘the’ superbuild.

Next I will try to explain some steps on building OTB.