Category Archives: Linux

Setting up a VirtualBox development instance with NAT port forwarding

I just spent another couple of hours figuring out how to effectively re-install my development instance (Ubuntu Server running in VirtualBox on my Windows host) and thought I’d write it down for personal reference and in case someone needs it :).

  1. Install VirtualBox (of course)
  2. Install Ubuntu Server
  3. Enable port forwarding from 127.0.0.1 to 10.0.2.15 on port 80
  4. Install guest additions
    1. sudo apt-get install dkms build-essentials
    2. mount guest additions
    3. sudo mount /dev/cdrom /media/cdrom
    4. cd media cdrom
    5. sudo ./VBoxLinuxAdditions.run
  5. Reboot
  6. You’re done ! You should now be able to access your linux guest by going to localhost on your host 🙂

Now you might want to set up folder sharing and map your local www folder to /var/www, but that is easy from here I guess :).

Note: do not forget to sudo adduser “youruser” vboxsf to enabled permissions on your shared folder!

Installing Player / Stage and development tools on Fedora 15 through Virtualbox

After quite some struggles, I finally managed to get the Player / Stage stack installed exactly the way I wanted it. It gave me quite a headache, so I thought it would be a good thing to share (so other people don’t have to go through the same thing).

First of all, my perfect setting was to set my environement up through VirtualBox. This is because Player / Stage is still quite rough and requires packets and tinkering I did not want to occur on my stable work machine. However, I wanted to develop through my normal Eclipse (in my host operating system) as that was already all set-up and I didn’t want to get into performance issues through the Virtual Machine. Knowing all of that, I made the following choices :

  • Virtualbox
    Easy to install, widespread and I knew it already
  • Fedora 15
    This was an easy choice, as it was recommended on the player / stage download page – Fedora already has the player / stage packets in it’s official repositories, making things a lot easier.
  • OpenJDK
    I wasn’t 100% sure it would all work on OpenJDK, but I wanted to try and… it all worked out for the best 🙂 (so no need to install the Oracle Java dependencies)
  • Shared folder of my Eclipse workspace that could be accessed directly through the virtual machine

That was my perfect setting and it turned out not too hard to set up.

Further along this article, I explain what problems I had. This can be helpful if you have specific questions, but here is the full set of instructions to get everything working :

  1. Download the Fedora 15 CD image from their website and install a clean virtual machine
    Be sure to allocate enough space to the root partition for installation of different packages (I allocated 3.5 GB)
  2. Prepare fedora to install VirtualBox Guest Additions
    yum install kernel-headers kernel-devel
  3. Reboot
  4. Install gcc : yum install gcc
  5. Install VirtualBox Guest Additions
  6. Install player / stage
    yum install player player-devel player-doc player-examples player-python player-ruby
    yum install stage stage-devel stage-playerplugin
    For more information on this step, see here : http://playerstage.sourceforge.net/wiki/Download
  7. Install OpenJDK and all Java utils you will need (through “Add software GUI)
  8. Shut down machine
  9. Go to “settings” in your Fedora VirtualBox and add your workspace as a shared folder. Select “auto-mount”
  10. Start your Fedora VirtualBox
    (You can now find your folder under /media)
  11. Run “system-config-users” and add your local user to the “vboxsf” group
  12. Done !

The problems I encountered

  1. Player wouldn’t show my robot
    It was really weird when everything seemed to work, but for some reason Player wouldn’t show my robot (a little red thing driving around). This was very easily fixed by installing the VirtualBox Guest Additions
  2. Guest Additions wouldn’t install properly
    I needed to install kernel-headers and kernel-devel first, for Guest Additions to install correctly (‘yum install kernel-headers kernel-devel’ -> reboot)
  3. I couldn’t access my shared folder
    I needed to add my personal user (under the fedora virtualbox) to the vboxsf user group

Ubuntu Broadcom Wireless problem (specifically with Samsung 900x3a)

I have had quite some problems with my Samsung 900x3a and it’s wireless adapter. For some reason, it showed up the wireless connections fine, but it wouldn’t connect to encrypted networks. Sometimes, if I tried a couple of times, it would suddenly manage to go through. However, I now have a solution which seems better (not perfect, but  better) which was mentioned on the Ubuntu help pages : switch off and back on your wireless card !

I had tried everything from uninstalling, re-installing the proprietary driver, downloading a new version, etc. but this simple solution did it in the end…

This helps me get around the problems and everything is working now. Hope this helps someone else out that is having the same problem I was :).

Edit : I just found out another thing that was a problem for me : IPv6 ! For some reason I couldn’t figure out, my laptop would now connect to every network, except for my home wifi (BT Home Hub). By going to Network Manager -> IPv6 Settings and selecting “Ignore”, I have NO MORE WIRELESS PROBLEMS :).

Joomla permissions fix script

As I’m doing quite some Joomla development, I wrote this small script that could be used for multiple purposes. It takes 1 parameter which is the directory of your joomla installation (I restrained it within the “/var/www/” directory, as a precaution, but you can get rid of this) and  then goes through folders and files to change their permissions. Hope it’s useful to someone :


#! /bin/bash
# This script simply fixes the permissions on a Joomla install to be perfectly $
# Need at least 1 parameter, which is the joomla root directory
MINPARAMS=1
DIRECTORYPARAM=$1

if [ ${DIRECTORYPARAM:0:9} == "/var/www/" ];
then
if [ $DIRECTORYPARAM == "/var/www/" ];
then
echo "The directory CANNOT be /var/www/ itself"
else
find $DIRECTORYPARAM -type d -exec chmod 755 {} ;
find $DIRECTORYPARAM -type f -exec chmod 644 {} ;
fi
else
echo "The directory can ONLY be in /var/www/"
fi

First impressions on Ubuntu 11.10

Two days ago, I decided I would give Ubuntu 11.10 a try as my full-time desktop. As I was already running 11.04, I started the update process hoping it would go without a problem. Of course, I was wrong…

Luckily, I made a backup of my files and proceeded to a clean install of Ubuntu 11.10. However, to my big surprise, WIFI wasn’t working at all suddenly… It took some figuring-out, but I now have a working instance of the new OS and am pretty happy with it. Here are some of the features I like most :

  1. Thunderbird over Evolution. This is a major step in the right direction. Evolution was starting to become very slow and searching wasn’t very effective. This is the kind of change that makes my day a lot easier 🙂
  2. Gnome 3. I have been a major fan of the new Gnome 3 and have tried to install it multiple times under Ubuntu 11.04, without real success (there was always something wrong). Now it comes out-of-the-box, it works and all I have to do is install the “gnome-shell” for my lovely new interface to appear !
  3. Login-screen. I know this is not necessary, but it’s simply nice. For once, the Ubuntu design team have done a really good job here.
  4. The Ubuntu Software Center. It has had a major overhaul and is a lot clearer to navigate, rate, install, remove and everything else you would want to do with it.
  5. New PhpMyAdmin in official repositories. I konw this is not a direct feature of the Ubuntu team, but as a web developer, this surprised me in a good way. A new and clean user-interface to deal with, finally making the old one obsolete.

The things I don’t like :

  1. The Ubuntu Software center. I know, I also put this in “the things I like”, but that is because it does come with one MAJOR drawback : speed. For some reason the Ubuntu Software Center is starting to become very slow for me and they should pay real good attention to that (I mean, I am running on a fairly new computer that should have no problem running this at all, and it still takes a couple of seconds to load -> more then ANY other application on my computer).

I will continue to add to this list over time and hope it helps you decide if Ubuntu 11.10 might be your cup of tea 🙂

Web development tools for Linux

linux-mascotteI have been developing websites and applications since quite a while now (since I was 12) and have used various applications from NotePad to DreamWeaver through PHPEdit, etc.

When I made the switch to « the better operating system », I needed quite a while to adapt properly. I wasn’t having a really hard time, but I couldn’t find the same quality web development tools I was used to with Windows. Today, however, I am really happy with the development tools that I use (which, for most of them, can also be found on Windows by the way) and thought I’d share them with anyone that would maybe want to use them but doesn’t know they exist.

IDE

For anyone who’s seriously into developing, an IDE can make you save a lot of time (and money). I have been a long-time fan of Notepad++, but it’s no match for a full-blown IDE if you know how to use it.

Linux had a very small choice of IDEs, especially in web-development. For me, there actually wasn’t any that managed to have all the functions I required and was used to coming from Windows. After quite some research, I found Eclipse PDT and it’s professionnal counterpart Zend Studio.

Eclipse PDT is a framework on top of the Eclipse IDE (which is known especially for JAVA development) that supports many web development features. Some of the key features include :

On top of that, it has a healthy repository of plug-ins written by the community which enable you to build some other features on-top.

zend-studioZend Studio is Eclipse PDT with a layer on top. It has very nice code-completion features, nice FTP integration and tends to be a little faster. On top of that, it comes with pre-configured installers for different Linux flavors, which is very straight-forward.

With Zend Studio, you’re basically paying for peace-of-mind. If you do not want to go through the hassle of looking for different plug-ins and need your development environment to just that extra bit faster and stable, you should definitely go for Zend Studio, it’s the best PHP IDE I have been able to find, lucky for me it is cross-platform.

MySQL Workbench

Mysql workbenchThis is magnificent tool to get your database analysis work done in a visual way. You can set it all up with a nice UI, connect to your local DB and the application automatically replicates your model into an existing database. On top of that, if you need to change anything later on, it has the possibility to “ synchronize” both your model and your development database.

I have been late in discovering this tool, but it has become completely indispensable since I got used to it.

FileZilla

filezillaZend Studio has an integrated FTP; but I have found myself often wanting more anyways. FileZilla enables you to connect to different sources at the same time, synchronize without any problems and get your work uploaded without hassle. It is a cross-platform and very stable, mature program.

Litmus

litmusOne big disadvantage of coding on Linux is the absence of the most popular Internet browser “Internet Explorer”. I know, I don’t like it either, but as a professional web developer you have to make your site compatible with Microsoft’s Internet navigator.

For this reason, I use a web-based service named “Litmus”. It costs quite a lot (49$ / month), but if you develop a lot, it is surely worth it. What it will do is simply take a screenshot of your website in different Internet navigators and on different operating systems. It enables yo to win the extra 30 minutes on every CSS you have to deal with.

Forums

Very often, forums are too slow to be of actual help when you’re under time-pressure (which is usually the case when you’re working on professional projects).

Sometimes, however, you are able to finish your day with a problem that you cannot seem to deal with in an easy and quick manner. In that case, it is always a good idea to leave a quick message on a forum for someone who might be able to give provide a solution to your problem. That way, when you get back the following morning, you’re able to use the solution directly and not lose another 2 hours only to find out it could have been done in 2 minutes worth of work-time.

The forums I use are www.dreamincode.net . They are not the most active, but a very helpful community that know what they are talking about. You can check them out and use whatever forum you prefer, but this is a nice start-point.

Any suggestions ?

I am a professional web developer, knowing my way around the existing applications, but I am not perfect. If you have any suggestions and / or comments, please do not hesitate to contact me. I am always looking forward to find ways to cut development time (without cutting on quality) !

Why I am using Ubuntu (10.04)

I have been using Ubuntu Linux for about 3.5 years now. It has been quite a long process and I have had many difficulties on the way, but today I am sure it has been the right decision.

I have switched to Ubuntu « full time » for almost two years now, leaving behind Windows that I have been using since the first day I touched a computer (started with Windows 3.1). In this article I will try to explain what my reasons are for adopting this new operating system and why I think more people should follow.

The open source philosophy

I am a programmer and a general IT fanatic. I like to tweak my computer to make it do exactly what I want it to do and to make it look completely customized. The fact Ubuntu (and linux in general) is open source fits that aim exactly. Everything in the system is designed in a way that gives you full control and if you need to configure something that has not been done before, there are thousands of people ready to help you (the Ubuntu forums are the most active forums I have ever known). This is not a point “mainstream” consumers would notice, but it has made a world of difference to me.

Software at a grasp

I love the “Ubuntu software center”. It’s a program on your PC that helps you easily install any kind of software. You don’t have to browse the Internet to install application X or Y. You simply perform a search on your Ubuntu software center, it will tell you what application is most suited and you can then install it with 1 click. It doesn’t get any easier then that.

Example :

  • I am looking for a PDF editing tool, I search “pdf edit”
  • Ubuntu takes me to a list of applications able to edit PDFs
  • I select the one that I think is best
  • Ubuntu automatically installs the software

Controlling my own computer

I want to know that my computer does exactly what I tell it to do. Ubuntu really puts me in charge of my operating system and if I do not like the way something works, I can simply change it (either by using a patch someone else wrote or by tweaking the software myself).

Speed & hardware requirements

I currently own 3 computers : 1 at home, 1 at the office and 1 laptop I carry around with me 24/7. The laptop and office computer are pretty recent, but the home computer is not (1.8 Ghz single core… the old days :P). The fact that I can run Ubuntu on it without any problem is a big advantage to me. It has kept me from not having to buy another computer in the last 4 years. It still runs fast enough for me to comfortably do whatever I want to do on my Desktop.

System stability

My windows machine used to crash quite a lot. I am not saying it left me standing out cold every day, but it was enough to get annoying. With Ubuntu Linux, I do not have this problem anymore. I cannot say that it never gets stuck, but in 3.5 years time it has happened 3 or 4 times. The system is a lot more stable and does not crash if one of the running programs get stuck.

Learning more about your computer

This only applies to IT lovers, but using linux has shown me a lot more about how a computer works. By having the possibility (not the necessity) to use the command line tools available and trying them little-by-little, I got closer to my actual system and started to understand a lot about what makes my computer run. As an IT lover and programmer, this is something that has played a big role in keeping me on Ubuntu Linux.

No cost

This doesn’t really matter a lot to me, but to some it does. Buying a computer is one thing, but buying the software that comes with it is another. Windows and Office cost a lot of money. Ubuntu is free and being able to save that money always comes in handy.