A fusion of technology, music, and geekyness.

Possible Migration from Ubuntu to Gentoo Linux (Nope, Arch!)

I have been giving it a lot of thought recently. I have been using Ubuntu for a couple years now and I think I am ready to move on. I haven’t tried Gentoo since college and I thought that tonight was a good night to check in on it. I was worried that it may be somewhat dead and that no one used it anymore so I decided to see if they had a chat room on irc.freenode.net – boy was I suprised! The channel was booming! I am currently installing a test drive VM right now. The installation process is so refreshing. Tonight made me realize that I have really let myself go since college. I am sick of Ubuntu and how it constantly wipes my ass for me, but fails sometimes anyway. I currently am running Ubuntu 9.10 with Gnome and the plan is to migrate to Gentoo and Xfce. The following information illustrates my reasons for wanting to switch. Ones that weigh more for me are in bold.

Ubuntu 9.10 Pros:
Just works
Apt package management is speedy
Well supported
Attractive
I know it

Ubuntu 9.10 Cons:
Does too much
Gnome is bloated
Deb package dependencies are crazy sometimes
Can be slow at times

Gentoo Pros:
Very trim and lightweight
Forces you to learn and maintain general linux knowledge
Very flexible

Gentoo Cons:
Takes FOREVER to compile packages and dependencies
Emerge can have issues
Not for lazy people (and im pretty lazy)

As I write this post I am on step 9/10 of the install. I will provide updates as time goes on.


Update 1:
I encountered three problems and got them all resolved. I am currently installing Xfce and xdm right now. The problems I faced:
1. Changed password for root user for install, not chrooted gentoo environment.
2. The install CD loads out of date drivers so hard drives show up as hda during install but sda during initial boot. This screwed up both GRUB and /etc/fstab.
3. I forgot to compile my network card drivers into the kernel so my eth0 device didn’t exist.

I also found this quite interesting and hilarious (click on it to read):
gentoo_lol


Update 2:
Gentoo compiles are taking WAY too long and the installation takes 4+ hours to complete. This is just not an option these days, especially for my work laptop. I decided to give Arch + Xfce a shot and it was a breeze. I still feel like I get way more control than I did in Ubuntu without all of the bloat. I am going to try this out for a while and see how I like it. If for whatever reason I dislike it, I will be switching to Xubuntu and call it a day.

Selling points on Arch:
The Arch Build System – Amazing!
The Arch User Repositories, for must haves like my beloved google-chrome!
Minimalistic approach

Kris I hope you are happy…


Startup Script for Rails with WEBrick

I finally started playing with rails again. I decided to play around and start the basics of a billing application. I was initially debating web app versus a desktop app (rails vs ruby-gtk). I wanted a reason to finally start using rails so I decided to make it a web app. I then realized I may be able to simulate a desktop app with rails. I pulled in the base ruby packages, manually compiled RubyGems and installed necessary gems, and decided to script a startup routine so I could create a launcher on my desktop. This solution is far from perfect but it manages to fulfill my needs. My “desktop rails app” uses the built in standalone webserver WEBrick and sqlite3 for its backend.

#!/bin/bash
cd /home/jesse/rails/billing

if [ ! -f tmp/pids/server.pid ]; then
	script/server -d
fi

while [ `netstat -tan | grep 0.0.0.0:3000 | wc -l` != 1 ]; do
	echo "Server not started yet..."
	sleep 1
done

google-chrome http://localhost:3000/customers &
tail -f log/development.log

# Server can be killed with:
# kill -INT `cat tmp/pids/server.pid`

I then created a launcher simliar to this:

launcher

When I double click on the icon the first time it pauses for about 5-6 seconds while WEBrick initializes and binds to port 3000. As soon as it detects the webserver listening, I launch google-chrome to the default view. Each time I click the icon there after, the webserver is already running so the google-chrome tab kicks off instantly.


World of Warcraft in Ubuntu 9.10

wow-ubuntu2
wow-ubuntu2

Wine and Ubuntu have really come a long way. These days it is very easy to get World of Warcraft to smoothly run in Linux. I felt the need to write this guide for two reasons: one as a mark of my triumphant achievement, and two as a helpful guide for those looking to do the same. This walk through assumes the following.

  • You do not have wine currently installed. If you do and it is not the wine1.2 package then World of Warcraft probably won’t run very well, if at all.
  • You currently have the restricted drivers installed for your video card
  • Your system is up to date.
  • You are running Ubuntu 9.10
  • The WoW current patch is not too far past 3.3.3
  • You have basic knowledge of Linux and understand how to use a terminal

Warning: This configuration worked great for my hardware. Other hardware configurations may need additional tweaking.

1. Before you start you must verify that your graphics card had DRI enabled.

glxinfo | grep rendering

If it returns “Yes” then you are all set. If it returns no I am not sure if you should continue with this guide.

2. Install Wine via apt

sudo apt-get install wine1.2

3. Download the Visual C++ Patch From Microsoft at www.microsoft.com/downloads/en/confirmation.aspx?familyId=200b2fd9-ae1a-4a14-984d-389c36f85647&displayLang=en.

wine /home/username/Downloads/vcredist_x86.exe

Follow the prompts to install it and it will close when it has finished. This patch is needed to successfully download patches at a certain point for WoW to run.

4. Install World of Warcraft. There are several means available to do this. You can install from the CDs/DVDs you bought or if you are like me you will need to download the entire installation from Blizzard. I had to download the downloader at https://www.worldofwarcraft.com/account/download_wow.html. For other methods of installation see the sources at the end of this article.

wine /home/username/Downloads/InstallWoW.exe

Choose Wrath of The Lich King when it prompts and keep going through the wizards. The downloader will eventually begin and you will have several hours (depending on your connection) to wait while it finishes.

5. Once the installation is complete, you will most likely want to edit the configuration to start WoW in OpenGL mode.

vim /home/username/.wine/Program\ Files/World\ of\ Warcraft/WTF/Config.wtf

Press the i key on your keyboard to go into insert mode. Add the following line to the bottom of the file.

SET gxAPI “OpenGL”

Press escape, type :wq, and press enter to save and exit the file.

6. Wine currently has permission issues with the World of Warcraft folder. If you ever notice WoW not starting after the launcher loads it is probably because the permissions somehow got screwed up on the folder. I have chosen to completely bypass the loader and I have also written a launcher script to make sure that WoW loads every time. Execute the following commands to start WoW for the first time.

chmod 755 /home/username/.wine/drive_c/Program\ Files/World\ of\ Warcraft/
wine "C:\Program Files\World of Warcraft\WoW.exe"

After some patience World of Warcraft will successfully load up. Get your initial video / audio configuration out of the way before the next step.

7. The endless loop: Login and it will force you to download a patch. You will have to complete this step approximately 5 or 6 times until all the patches have downloaded.

8. After all the of the patches have downloaded you should be good to go! Install all mods to /home/username/.wine/drive_c/Program\ Files/World\ of\ Warcraft/Interface/AddOns/. Keep in mind that by default in Gnome that your keyboard is configured to automatically repeat keys when held down by default. This will make your mounts and characters running seem strange. You can disable this temporarily by going to System -> Preferences -> Keyboard and unchecking “Key presses repeat…”

I hope this quick guide has helped you get World of Warcraft installed and running beautifully in Ubuntu. If you have additional issues with your installation and need help please see the following sources for additional assistance.

Sources


Integrating Ruby On Rails with Apache2 in Ubuntu 9.10

This is a quick and dirty walkthrough on how to integrate Rails with Apache2 in Ubuntu via Phusion Passenger. This guide provides setup instructions for a solution that includes:

  • Apache2
  • MySQL 5
  • Phusion Passenger
  • Ruby 1.8.7
  • RubyGems + gems

Install All Required Packages from Apt

sudo apt-get install apache2 ruby irb ruby1.8-dev rdoc build-essential libopenssl-ruby apache2-prefork-dev libapr1-dev libaprutil1-dev mysql-server libmysql-ruby libmysqlclient-dev

Install RubyGems

wget http://production.cf.rubygems.org/rubygems/rubygems-1.3.6.tgz
tar xvzf rubygems-1.3.6.tgz
cd rubygems-1.3.6.tgz
sudo ruby setup.rb
sudo ln -s /usr/bin/gem1.8 /usr/bin/gem

Install Required Gems

sudo gem install rails passenger mysql

Compile Passenger Apache2 Module

sudo /usr/bin/passenger-install-apache2-module

Configure Apache2

sudo vim /etc/apache2/mods-enabled/phusion.load

Add the following:

LoadModule passenger_module /usr/lib/ruby/gems/1.8/gems/passenger-2.2.11/ext/apache2/mod_passenger.so
PassengerRoot /usr/lib/ruby/gems/1.8/gems/passenger-2.2.11
PassengerRuby /usr/bin/ruby1.8
RailsEnv development

Setup Test Virtual Host

sudo rm /etc/apache2/sites-enabled/000-default
sudo vim /etc/apache2/sites-enabled/railstest

Add the following:

<VirtualHost *:80>
    ServerName localhost
    DocumentRoot /var/www/testapp/public
</VirtualHost>

Restart Apache2

sudo /etc/init.d/apache2 restart

Setup Default MySQL Database

mysqladmin create testapp_development -u root -p

Setup Test Rails Application

cd /var/www
sudo rm index.html
rails testapp -d mysql
cd testapp
sudo vim config/database.yml

Put in your root MySQL username and password.

Test!

  1. Open browser: http://localhost
  2. Click link: About your application’s environment

If you see something like the following then you were successful!

rails_welcome


Syncing Tomboy Notes Over SSH

Over the past couple of months I have started to really get into the habit of quickly dumping useful information or code snippets into Tomboy notes to save it for future use. I now use Tomboy for the majority of my note taking needs. I am very happy to get away from the notepad / gedit crutch. One issue that I faced is that I had some notes at home on my PC and other notes at work on my laptop. Thankfully, Tomboy notes has a nifty syncing feature that enables us to sync notes over SSH.

1. Create a directory on a server with SSH to host the notes

ssh tgeek@myserver.example
mkdir tomboy

2. Create an SSH key on each machine that you want to sync with and do necessary prep

ssh-keygen -t rsa
ssh-copy-id -i /path/to/keys/mynewkey tgeek@myserver.example

3. Download sshfs on each machine that you want to sync with

sudo apt-get install sshfs

4. Setup Tomboy to sync

Important: If Tomboy is already running make sure to kill it before attempting these steps. If you had Tomboy running while you installed sshfs then it will not recognize sshfs until you kill all Tomboy processes and start it again.

4.1 In Tomboy, goto Preferences.
4.2 Click on the Add-ins tab and ensure that Synchronization -> SSH Sync Service Add-in is Enabled (if it is grayed out then it is disabled).
4.3 Click on the Syncronization tab.
4.4 For Service, choose SSH (sshfs FUSE)
4.5 Enter the credentials for your server that you setup in step 1.
ex. Server: myserver.example
Username: tgeek
Folder Path: /home/tgeek/tomboy
4.6 Click Save

I have this working in Ubuntu 9.10 and it is beautiful!


Goodbye CakePHP

It’s been a long journey and it has finally come to an end. Due to professional changes in my life, it is time that I stop using a PHP based MVC framework for web applications. Where will I go, you ask? Its simple – Ruby on Rails! While the aim of this post is to not convert people who use CakePHP to start using something else, I do plan on elaborating some of my reasonings for this switch.

1. My New Job
It cannot make much more sense than this. I recently got a new job (started Feb 1st). The place I work is a pure ruby shop and support several financial based web applications. I had 10 days to learn the syntax/basics of Ruby and loved every minute of it. I was ready for something new and fresh in my life.

2. Maturity
Rails was first! As a result, the project has matured more and seems to have a lot more support.

3. Package / Plugin management
Ruby has RubyGems, which is amazing. CakePHP just released something to handle plugins, but I have a feeling it is not a full package manager (think apt!).

4. Other Little Differences
Several small differences make it a better choice. I found a recent presentation that quickly explains a few of them.

That being said, PHP with CakePHP and Ruby with Rails both have their pros and cons. Each framework will always have its place in my heart. Hopefully I will have time soon to setup a rails environment and start pushing through some personal projects! Until then, I will continue gaining experience at work whilst I triage the problems that I was hired to fix :)


« Previous Entries Next Entries »

Powered by Wordpress | Designed by Elegant Themes