A Personal Development Environment Fit For An Enterprise

DevelopmentEnvironment

The hardware and software used in the setup.

I’ve started doing development work for about a week now. My focus is in the mobile space. The first thing I wanted to do is to create a solid development process and infrastructure. I wanted a source control system and I wanted an automated build for each application — actually some enterprises don’t use automated build system.

I don’t have a lot of money to splash out on hardware and software so I make do of what I have (Open Source and cheap hardware). For example, I use my old Samsung Galaxy Y as a SMS Gateway server by IceColdApps for free. My Mac Book Pro is my development machine. I use Eclipse as my primary development tool.

The Asus netbook has SVN server and Git Server for source control — right now I’m  experimenting with Git. It also host Hudson automated build server — every time a code is committed into the source control, Hudson pulls down the source, builds the application and it’s ready for deployment. In addition, I can add features like code analysis, test coverage reporting and etc that can give various perspectives on the soundness of each application design. With this, I have a continuous integration process working.

I chose ProstgreSQL database as my database for storing data. It’s easy to use, robust and free. I’ve also installed Openfire (Jabber) XMPP server for instant messaging service. Since the netbook keyboard is really bad to type and the screen is tiny, I installed VNC server on it so that I can remotely control the screen on my Mac Book. Much easier.

Screen shot 2013-02-15 at 11.29.21 AM

Controlling Windows desktop on my Mac Book.

Power flow in Laos is not as smooth as I would like it to be. I use uninterrupted power supply to protect the computers against power surges and dips.

What binds these devices together? A network hub of course. I use my Note 2 as the network hub so that I can send code from the development machine to the source control system on another machine. As well, it’s also allow other devices to access the internet.

At the end of the day, I commit all codes to the source control system then run Time Machine on the development machine (Mac Book). This way, the freshest code is on the Mac Book, on the source control system (Asus Netbook) and on the Time Machine.

There you have it. A personal development environment that can grow and expand to fit an enterprise.

Smoothing out the power flow to the computers.

Smoothing out the power flow to the computers.

Share

Linux: A Surprisingly Popular Operating System

android-linux.pngBack in the late 1990s and early 2000s, I tinkered around with Linux open source operating system (OS) because I wanted an UNIX based system and I had an extra desktop computer. Getting the darn thing to install was a labour of love. There’s always something missing (like a driver for a sound card) to prevent me from making a perfect installation. It definitely requires geek skills and it’s not intuitive to use.

Reliability

There’s a perception that Linux is not industrial strength when it is compared to the likes of Sun UNIX, IBM UNIX, Windows NT and etc. Few people outside of the Linux community know how good it is until the creation of Apache web server. During the dot-com craze, everyone wanted a website and many web hosting companies turned to Linux and Apache combination because they are free and they can run on a common Intel’s x86 based machine. In addition, Apache web server allows multiple websites to host on a single server. This ability lowers the number of machines a web hosting company has to buy and manage. During this period, it showed that it’s up to the task. Another big vote of confidence for Linux was when major database vendors started porting their enterprise database systems to it.

User Experience

The next break for Linux was when Google decided to build Android OS (the OS was initially developed by Android Inc. that was supported and then bought by Google) on the Linux kernel. Android gave Linux a wonderful user interface. Android OS was released in 2007 and the first computing device HTC Dream smartphone was released in the Fall of 2008. Since then, there are numerous versions of Android OS using various Linux versions. With each new version, the user experience kept on improving.

Where Is Linux Now?

Since 2008, 7 out of 10 largest smartphone makers use Android OS in their mobile computing devices. As of 2012, Q4, 50 million new Android devices are sold per month. It’s projected that Android OS install base will surpass Windows’ 1.25 billion install devices by Q3 of 2013. This is lightning fast given that it took about 30 years of Windows to established their install base. Above source : TomiAhonen Consulting

The desktop market is flat or shrinking because among other reasons, not everyone need all the power and features. It’s unlikely Windows’ install base will grow at the same pace as Android. A personal experience, I got a tablet for my mom instead of a laptop because it’s easier to use, more robust and does what she wanted – do Facebook, take photos and read emails.

Mobile computing continues to growing rapidly in every corner of the world and Linux is playing a big part in it. The introduction of Tizen (another open source OS using Linux) will further strengthen its role in shaping the landscape of computing. There are many other Linux based mobile OSes popping up as well. It’s an exciting time for Linux and open source.

Back in the late 1990s and early 2000s, who would have thought that Linux would play a big role in our computing lives now (and beyond). Think about it, there will be over a billion Linux base computing devices by the end of 2013. It’s amazing.

 

 

Share