I have been deploying containers and creating applications on Kubernetes for the better part of the last couple of years. I should have written a lot more about the journey because there is so much to learn (by doing quite a few mistakes).

I should have learned by now that any of these great new ways of doing things that will simplify the delivery of applications is a journey where you are going to re-learn how to do what you have always been doing. The same “problems” exist in creating an application no matter the framework or language.

The new tool is going to address pain points from the last best framework ever and it will be very attractive to use the new one. The fun is in solving all the other problems that still exist and have not necessarily been addressed as well as the pain points that attracted you to it.

I had to re-learn so much about networking with Kubernetes because your micro-services all need to communicate with each other.

I had to learn a lot about Kafka because it is our messaging queue. Please don’t tell them that is what it is. It is so much more.

I had to learn about service mesh and got to the points of many memes about this one.

We had to learn so much about so many different applications and infrastructure pieces that the promise of delivering faster is not as true as we would have liked. Don’t get me wrong, I love learning but I hate over-promising and finding myself in a bad position.

The journey is far from done and I have an awesome team that is helping me and I hope that I am helping them along the way as well.

May the learning continue…

Taking Advantage

I was listening to the Animoto CEO on a building 43 interview and Brad Jefferson struck me when he was explaining that they are excited about everything that is happening. For him, HD TVs are good for his business because people will want to watch their photos in a cool video on them. The new cheap digital boxes that you can attach to your TV is good for his business. Even photo books are good for him because he wants to offer his product to those people selling photo books so they can offer 2 products instead of 1. Everything that was thrown at him was basically good for his business in one way or an other.

I have to think like that and get moving on all these positive challenges that are available to me and will allow me to do good business.

We have complicated systems, great! There is a need for more automation so I have more code to do.

We have complicated rules on how and when we can do changes, great! More automation or systems that can simplify the user interaction with all these rules and help them navigate in all of it.

There are many possibilities and we can’t look at them as an other layer of problems. These challenges allows us to better serve our users/customers and have more business. It is a lot more fun to look at it this way and go for it.

Java Decompiler

This is not the first time I do this and it is on the edge of embarrassing except this time I knew I had tools to get me out: lose the source code to a java application.

I have this application that was done a year ago and I guess that in the rush to get it to production I forgot to import the code in SVN.

A year later we have changed a few things and now I have to change a few lines in the code and add a method to it.

I remembered using a command line tool under Linux to decompile but since I could not remember the name of it I had to search for it. In the first few results of my google search for “java decompiler” came this site:


I tried to install the JD-Eclipse but I don’t see how to use it so I simply downloaded and used the JD-Gui for Linux and it works beautifully. I can see my source code in the .class file in 2 seconds and now I can easily change it. This is so convenient.

Rebuilding the DVD ISO for CentOS 5 or RHEL 5

I found a few documents on the Internet about what I needed to do to rebuild the DVD to integrate my kickstart file. Unfortunately none of the solution had all the needed command in one place for my setup to work so here is my cookbook from the different sources.

First I mounted the dvdrom with the CentOS DVD to /mnt/cdrom:

mount /dev/cdrom /mnt/cdrom

Then I copied a few files:

  • cd /tmp
  • cp -R /mnt/cdrom/isolinux ./
  • cp -R /mnt/cdrom/CentOS ./isolinux/
  • cp -R /mnt/cdrom/* ./isolinux/ [say yes to overwrite the TRANS.TBL]
  • cp -R /mnt/cdrom/.discinfo ./isolinux/
  • cp ks.cfg /tmp/isolinux/

For my RHEL5.1 rebuild I did similar commands but the paths are a bit different:

  • cd /tmp
  • cp -R /mnt/cdrom/isolinux ./
  • cp -R /mnt/cdrom/Server ./isolinux/
  • cp -R /mnt/cdrom/VT ./isolinux/
  • cp -R /mnt/cdrom/images ./isolinux/
  • cp -R /mnt/cdrom/Cluster ./isolinux/
  • cp -R /mnt/cdrom/ClusterStorage ./isolinux/
  • cp /mnt/cdrom/* ./isolinux/ [say yes to overwrite the TRANS.TBL]
  • cp -R /mnt/cdrom/.discinfo ./isolinux/
  • cp ks.cfg /tmp/isolinux/

I had to change permissions on 2 files:

  • chmod 664 ./isolinux/isolinux.bin
  • chmod 664 ./isolinux/isolinux.cfg

I had to edit the isolinux.cfg (in the isolinux directory) to change a couple of lines:

  • the “default linux” line became “default ks
  • The 2 line after “label ks” went from “append ks initrd=initrd.img” to “append ks=cdrom:/ks.cfg initrd=initrd.img

The isolinux.cfg file now looks like:

default ks
prompt 1
timeout 600
display boot.msg
F1 boot.msg
F2 options.msg
F3 general.msg
F4 param.msg
F5 rescue.msg
label linux
kernel vmlinuz
append initrd=initrd.img
label text
kernel vmlinuz
append initrd=initrd.img text
label ks
kernel vmlinuz
append ks=cdrom:/ks.cfg initrd=initrd.img
label local
localboot 1
label memtest86
kernel memtest
append -

To build the ISO (all this on one line):

mkisofs -o centos5-dvd1.iso -b isolinux.bin -c boot.cat -no-emul-boot -boot-load-size 4 -boot-info-table -r -R -J -V “CentOS 5.1 (CentOS) Disk1” -A “CentOS 5.1 (CentOS) Disk1” -p “Cinq” -T isolinux/

For Red Hat Entreprise Linux 5.1 I had to change the label for the DVD from “CentOS 5.1 (CentOS) Disk1” to “RHEL_5.1 x86_64 DVD” (obviously I am using the x64 version for RHEL5) so the command became:

mkisofs -o centos5-dvd1.iso -b isolinux.bin -c boot.cat -no-emul-boot -boot-load-size 4 -boot-info-table -r -R -J -V “RHEL_5.1 x86_64 DVD” -A “RHEL_5.1 x86_64 DVD” -p “Cinq” -T isolinux/

Reference sites:


This piece of software seems quite promising to solve some of the issues that I have on my desk. I would like different computer to integrate a bit better and the main 2 features promise just that: software kvm and shared clipboard. I will have to test Synergy on my main Linux desktop with either my Mac and the Windows laptop or maybe a second Linux desktop. I need more screen space on my desk.

Vixta and Zombu

Read a few articles today and taught that these 2 things were interesting: Vixta and Zonbu. I wish Vixta had some Tablet PC features because I would be reformating my tablet PC in no time. Vista is just a pain. It amazes me that you can go backward with an upgrade. Zonbu is a nice PC but I am not looking for hosted storage. I want a small quiet PC with Linux.