Techmania

July 9, 2008

Facebook chat on Pidgin

Filed under: Uncategorized — mifan @ 11:33 am

My friend Gunith mentioned that there was a plugin to integrate Facebook chat into the Pidgin instance messenger - and obviously, I tried it the very next day, and am glad to mention that it rocks :)
Pidgin is an all-in-one instance messenger client, formally known as GAIM. Facebook-chat is one of the latest additions to its ever-growing list of supported protocols. To install the Facebook plugin for Pidgin (assuming you have Pidgin in the first place), select the appropriate package from Google Code and install it. If you use Debian/Ubuntu, then grab the .deb package, and install it via
sudo dpkg -i [name of package]
Next, go into Accounts->Manage in Pidgin, and add a new IM account. You should see Facebook-chat as an option in the protocol section. Select it, enter your account details, and accept it, and hey presto, your Pidgin should be Facebook-chat enabled.

qGIS on Ubuntu Hardy

Filed under: Uncategorized — mifan @ 8:19 am

I’m a big fan of qGIS, my favorite GIS desktop client. I recently upgraded to Ubuntu Linux 8.04 LTS, a.k.a Hardy Heron, and was amazed to find that qGIS was no longer part of the standard Ubuntu repositories, which is absolutely dissapointing - anyways, here is a workaround to getting qGIS installed on Ubuntu. Of course, compiling from source is always an option, but I’m going with the ‘Ubuntu way’ here.
The latest version of QGIS for Ubuntu is available at http://ppa.launchpad.net/qgis/ubuntu/. Add this entry:
deb http://ppa.launchpad.net/qgis/ubuntu/ hardy main
to your Sources list, usually available at
/etc/apt/sources.list
And Update your Ubuntu sources:
sudo apt-get update
Now install qgis:
sudo apt-get install qgis

However, when I tried starting qGIS from the command line, I got the following 2 errors/warnings:

Couldn’t load SIP module. Python support will be disabled

And

Couldn’t load PyQt bindings. Python support will be disabled.

The above 2 can be corrected by installing the following packages in Ubuntu:
sudo apt-get install python-sip4
sudo apt-get install python-qt4
And with the above steps completed, I now can run QGIS again. Viva GIS :)

July 2, 2008

Debugging PHP in Eclipse using XDebug

Filed under: Development, FOSS, Linux — mifan @ 12:44 pm

My previous post touched upon the basics of getting Eclipse PDT (PHP Development Tools) up and running for PHP development. In this post, we’ll be looking at getting PHP debugging capabilities into our PHP dev environment. Again, I’ll be focusing on Ubuntu Linux - 8.04 LTS to be specific: however, with minor changes, this can be used on any platform.

Of course, there are simpler methods of debugging PHP scripts: a var_dump is quite handy in terms of simple debugging - however, having the right tools at hand for development means that we can spend more time in actual development than writing debug statements every once in a while - anyways, that’s my take.

XDebug is a remote debugger. Here we’ll take a look at getting XDebug working with Eclipse PDT providing a full debugging client. The first step would of course be to get Eclipse PDT up and running (refer previous post if needed). Once done, the next step would be to get Xdebug for our PHP environment set up - in my case, PHP5. On Ubuntu, this can be achieved by:
apt-get install php5-xdebug
This should install Xdebug for PHP5. Next, we’d configure Xdebug by editing the PHP configuration file. Most systems require the configuration items be added to the main php.ini, or the appropriate conf file. In Ubuntu 8.04 LTS, a separate configuration file,xdebug.ini, is created for Xdebug. Open this file using your favorite text editor (vim in my case):
sudo vim /etc/php5/conf.d/xdebug.ini
Add the following lines after the zend_extension= or zend_extension_ts= conf value.

xdebug.remote_enable=On
xdebug.remote_host=”localhost”
xdebug.remote_port=9000
xdebug.remote_handler=”dbgp”

And restart your web-server. In my case, Apache:
/etc/init.d/apache2 restart
To try out the debugger, open a PHP project in Eclipse (if you are importing an existing project via CVS, remember to add it as a PHP project using the New Project Wizard). In Window->Preferences->General->Web Browser, select external web browser, and set it to point to your default web browser. Next go into the debug section, by Window->Preferences->PHP->Debug, and set the PHP Debugger option to XDebug (by default this is set to the Zend Debugger). Note the chekbox “Break at first line” in this page as well - you can change this later on, as required. After you’ve applied your changes, go into the Debug menu, by Run->Open Debug Dialog… Here, make sure the Server Debugger is set to XDebug, and that the PHP server points to http://localhost or an appropriate server location. The file section should point to the file to be debugged, relative to your workspace (Note: if your project is missing from the list, check whether you’re project is configured as a PHP project - I’ve noticed that non-PHP projects fail to appear on this list). Thus if your file is index.php, the relative path maybe something/www/index.php etc.
Next, check the URL section to see whether it points to the correct location - if not, make sure you uncheck the “Auto-Generate” check box, and enter in the correct location. Apply the changes and close the dialog box.
A view of the Debug dialog is here:
EclipsePDT Debug Dialog
You should now be ready to debug your application. Click on Run->Debug or F11 to enable debugging - Eclipse should switch to the Debug View, and the page should start loading in your external browser. If “Break at First Line” checkbox was checked previously, then the program would have “stopped” at the first line - you can step into or step over subsequent lines using the controls on your top left corner. Alternatively, you can place breakpoints at various locations and stop code execution there as well. The variables tab should give you the variables and their values at various times. I good guide from which I borrowed from is here. Get creative - start debugging.
A view of the debugger in operation is here:
EclipsePDT XDebug for PHP

PHP development with Eclipse PDT

Filed under: Development, Linux — mifan @ 9:48 am

In this post, I’ll be outlining the steps to get a fully functional PHP IDE setup. I’ll be using the Ubuntu Linux way of installing stuff, but you can replace it with any repository or online location as needed. First things first, the ingredients: Sun Java 6, Eclipse Europa 3.3, Eclipse PDT. I’m using the latest version of Ubuntu at the time of writing: Ubuntu 8.04 LTS Hardy Heron.

Get the JDK: in Ubuntu, the latest version can be obtained by
apt-get install sun-java6-jdk
which installs the Sun version from the Sun Java website. If you already have GCJ (the GNU JDK), better replace it with this. Installing Java from the Ubuntu repository instead of downloading it manually from Sun means that you don’t have to muck about creating symlinks to Java and the likes - everything’s done for you. Next, install Eclipse. Eclipse is available as a Ubuntu package, but since Hardy Heron contains version 3.2 (not 3.3, which is required for the latest version of PDT) of Eclipse, lets resort to a manual install. What’s more, Eclipse Europa 3.3 bundled with the PHP Development Tools (PDT) can be obtained from the PDT site, so this is what we’ll do. Visit the Eclipse PDT download page. Select the download version you need (1.0.3 in my case), which will take you to the next page. Select the PDT All-in-One package for your platform: Linux, Windows or Mac OS. Download the relevant package and unzip/untar it somewhere. In Linux, I’d do:
tar -xvzf pdt-all-in-one-R20080603-linux-gtk.tar.gz
Which would create the Eclipse directory in the specified location. Go into the Eclipse folder and assign the correct permissions to the executable eclipse file under the Eclipse folder:
chmod 777 eclipse
And then run Eclipse by:
./eclipse
Alternatively, you can add a launcher/shortcut to the panel pointing to this so that Eclipse can be executed with a click of the mouse. Eclipse should be up and running now, with full PDT support. PDT provides error-detection, project builds, and debugging support amongst others.

Eclipse PDT contains many features useful for PHP development, including the much needed PHP debugging support. I’ll touch upon this in my next post. Enjoy Eclipse :)

June 26, 2008

Enabling Apache User Directories

Filed under: Development, Linux — mifan @ 10:25 am

In Apache, you have the choice of allowing users to have their own web URIs from within their home folders. Say for instance that my username is nazgul, on a domain http://somewhereonmiddleearth.com, then I can have a web-enabled folder within my home directory, which is accessible by http://somewhereonmiddleearth/~nazgul. To do this on Linux, do the following:
Create a folder named public_html
mkdir public_html
Go to your Apache folder (/etc/apache2/ on my system), and copy over the userdir modules from the mods-available folder to the mods-enabled folder:
cd /etc/apache2/
sudo cp -r mods-available/userdir.* mods-enabled/

Restart Apache2
sudo /etc/init.d/apache2 restart
And hey presto, your files under public_html would be accessible via a browser: thus if you are on your local machine, then you can access them via http://localhost/~nazgul . This is quite useful if you create web applications using Eclipse - where having your workspace inside public_html means they areautomatically web-accessible.

June 9, 2008

Creating ER diagrams from SQL

Filed under: Uncategorized — mifan @ 10:34 am

SQLt/SQL::Translator/SQLFairy is a great tool to create ER diagrams from SQL:

SQL::Translator is a group of Perl modules that manipulate structured data definitions (mostly database schemas) in interesting ways, such as converting among different dialects of CREATE syntax (e.g., MySQL-to-Oracle), visualizations of schemas (pseudo-ER diagrams: GraphViz or GD), automatic code generation (using Class::DBI), converting non-RDBMS files to SQL schemas (xSV text files, Excel spreadsheets), serializing parsed schemas (via Storable, YAML and XML), creating documentation (HTML and POD), and more.

In Ubuntu Linux and Debian Linux, this can be obtained by installing SQLFairy:
apt-get install sqlfairy
This is quite useful if you follow a bottom-up approach: create the SQL first, and then create ER diagrams - although this might not be a common development method, it does have its uses, and some of us like it :)
So for instance, say you have a MySQL schema named sample.sql. To create a ER diagram with color, named sample_schema.png, run the following in the command line:
sqlt-diagram -d=MySQL -o=sample_schema.png sample.sql --color
where -d=MySQL specified the MySQL driver. Other available drivers can be obtained by:
sqlt -l
Additionally, sqlt can also be used to convert between various database schemas as well.

SQLFairy ER Diagram

May 26, 2008

Python for Series 60 Upgrade

Filed under: Development, FOSS, Mobile — mifan @ 10:41 am

The newer version of Python for Series 60, 1.4.3, is out, and I’ve upgraded my Nokia 7610 with it. This is an Open Source project to port the beautiful Python programming language to Symbian Series 60 phones, which goes under the name of pys60. The advantage is that you’ve now got a scripting solution to access the Symbian Series 60 C++ APIs. Python provides the power of accessing underlying layers compared to J2ME, whilst remaining easier in terms of learning curve than Symbian C++. The python interpreter cum shell allows code to be executed directly on the phone - and the shell can be accessed via bluetooth from a PC, which means code written on the PC can be executed on the Phone real-time ! - More on that later though…
Installing Python on Series 60 devices is as simple as sending the relevant .SIS file of the interpreter to the phone. The SIS files are available on the project site: be sure to check the category of your Phone OS, and download the specific version. For Nokia phones, the version can be obtained at Forum Nokia. For instance, my Nokia 7610 is a Series 60 Feature Pack2, so I’ll be downloading Python for Series 60 FP2.
Now to check whether my previous code snippets are backward-compatible…. And yes, they are :)
Python Series 60

February 18, 2008

Tuning the Guitar on Linux

Filed under: FOSS, Linux, Music — mifan @ 6:36 pm

Unfortunately, the manual tuner for my guitar ended up with one of my guitars, so I had to look for something to tune the other acoustic one. And hey presto, Linux to the rescue again :). GtkGUITune is an application to tune guitars: it obtains the note played via the mic interface and shows the frequency measurement: And unlike other methods, the measurement is shown in 1/10th of a second. So all you have to do is to tune your guitar to match your required notes/frequencies.
GTKGuiTune Home Page

GTKGuiTune

November 15, 2007

talkSahana

Filed under: Life — mifan @ 8:09 pm

I’ve been inspired to create a Sahana specific blog for a long time. And finally, its here:
talkSahana
Now, people might wonder why I’m creating a second blog? It’s not like i’m posting once a day to this blog either, yeah? Well, I think I’m crazy too, so your normal :)
Anyways, talkSahana is *supposed* to be multiauthored. Hopefully, I’ll get about to creating an aggregator, and modify wordpress to show some bobbing heads of the various authors. So, while you’re, you might as well peek over there :)

November 10, 2007

Drivel: Offline blogging client

Filed under: FOSS, Linux — mifan @ 12:59 pm

Finally, I’ve crash landed on a single offline blogging client, and I hope this would be the start of a long lasting friendship. Drivel, an apt-get away on Ubuntu, is a desktop blogging client which allows you to post/blog to multiple blogs, from the comfort of your dektop (literally). It supports various types of Journals: LiveJournal, Atom, Blogger, MovableType and Advogato, and thus any blog that supports one of these types, including WordPress and Drupal using MovableType. Users have the ability to store their username, password for various accounts, and work offline saving blog posts for delayed posting. And the simple, uncluttered, spartan-looking user interface gives that polished look to the client. All in all, lets hope I blog more (ok…at least I’m hoping I do :) )

Drivel Client

Next Page »

Blog at WordPress.com.