Firefox HTML Validator plugin fix (Ubuntu Feisty or Gutsy)

If you have Ubuntu Feisty or Gutsy with the default Firefox installed (meaning you didn't manually downloaded/installed your Firefox), you might have some problems making the HTML Validator plugin work even after you followed the fix for Linux. I've already encountered this problem when I was still using Ubuntu Feisty and then again this morning after upgrading to Gutsy.

The fix is actually for another Firefox plugin: Colorzilla. I was having some problems making the HTML Validator work back then and decided to install Colorzilla first. It also had some problems but after some Googling, I found a fix that worked. The latest Firefox binaries needed to be downloaded and its libxpcom shared objects (libxpcom*.so) overwrite the current ones found in /usr/lib/firefox.

Feeling that I couldn't do much without the HTML Validator plugin, I gave it one more try. The thing worked!

After upgrading to Ubuntu Gutsy Gibbon, some of my Firefox plugins went crazy (HTML Validator, Colorzilla and NoScript). Then I remembered having the same problems and fixed it again.

Just wanted to post that- might be able to help someone.


Input Elements: disabled vs. readOnly

Disabled and readOnly input elements both prevent its data from being changed (at least via the user).
But a disabled input element's data is not sent with other data when the form is submitted. Could've saved me that extra 30-minute debugging time.


Hooray! On Linux at last

It's almost a week since I installed Ubuntu Feisty Fawn on my home PC. My original plan was to install it in a separate hard drive. But since I bought a DVD burner, I might as well burn make some back-ups and free some space where I can install Ubuntu.

Ubuntu installation was easy, but the preparations I did before that were not. I thought I bought a defective DVD burner. I searched installation infos (Google is our friend) and followed troubleshooting guides for my DVD player but had to return to the computer shop to have them check the device. It worked fine on their machine. Good thing I bought a new IDE cable when I returned to the store. Replacing the IDE cable worked (I also read that one) and I was able to backup-burn my files.

Next part was preparing a disk partition. I was quite new at disk partitioning and was afraid to screw up my drive so I read more about disk partitioning. I have an 80Gb hard drive where I gave Windows a 15Gb partition and the remaining were for storage. Repartitioning the drive, I reduced the storage partition to 40Gb, kept the Windows partition and the freed up space (25Gb) was for Ubuntu. I knew that there was something wrong with my partitioning when I had trouble rebooting after installing Ubuntu. I checked the partitions (Using GParted) and saw the Windows partition inside an extend partition together with the Linux partitions. Tried to fix the master boot record using fixmbr (from the Windows Installation CD- Repair Console), but didn't work. Since I didn't care about my Windows installation and I already had my files backed up, I decided to repartition the drive, flushing away the old Windows installation.

I reinstalled Windows and then Ubuntu. I used the default "50%" for the Ubuntu partition since I didn't want to mess around manually setting Linux partitions. After installation, Ubuntu created some partition for itself but left around 12G of the 25Gb space I reserved for it. Oh well... I'll free it up after I buy a new hard drive.

My PC now dual boots to Windows or Ubuntu. I don't use Windows that often anymore.

By the way, here's a preview of what my desktop looks like:

I'm using Beryl + Avant Window Navigator for the dock. Recorded using gtk-recordMyDesktop. It's looks a bit choppy at the end since things became slower when I rotated the desktop cube while recording. My PC runs smoothly on 512mb of RAM even with these effects turned on.



Ok. Playtime's over. Some people need to fix something.

I've been playing with an XSS vulnerability in a social-networking site I'm using. The site had already had XSS holes in the past that got patched. But then the addition of new features always opened up new problems.

One boring weekend, I got really curious with what I can do with XSS. Usually, whenever I see a site that is prone to script injection, I pop-up an alert box (a warning to fix the hole) and redirect them to somewhere else (usually Google). This time, I tried something neat. I've already read articles about stealing cookies via XSS but didn't get to see how the stolen cookies were put into use. So I thought of doing an actual experiment if those things really work.

Long story short: it worked. I was able log into other user accounts without knowing their password. I asked some people for help to test this and gave them a demo. Really, I'm tempted to peek at other people's account. But I don't want guilt to keep me awake all night after a hard day's job.

I already informed the folks at that site about the XSS hole. Maybe I'll post how I did it after the vulnerability gets fixed. It was quite simple like the articles I've read before.


Application Programming Interface

I was just thinking how nice it would be if more open-source PHP applications offer some sort of API for their application. It would really be useful specially when the application is likely to be integrated with another.

For example, I have phpBB2 and Coppermine Gallery. Yes, there's already a Coppermine-phpBB bridge to tie the forum users to the gallery. But other than that, I have no other means of communication between the two. What if I want to display a link to a user's gallery in each of his post, along with the usual buttons (profile, ims, etc)? What if I wanted to display randomly picked images from a user's gallery and display it in his/her profile?

Ways of accessing an application's functionalities from outside might range from a simple, block copy-paste solution and/or directly talking at another's DB tables... to hellish insert-here-to-there hacks and conflicting variable hunts that span several files. Some people would find themselves reading and studying in detail how both applications to come up with a way to make them work together. In-depth knowledge is good. But sometimes you don't have for that and might be an overkill in some cases. I don't want to see how that cow got in there, I just want my hamburger.

If both had an available API, I don't have to go through all that trouble. I would already know what it could do and know how to make it do things without dealing with unrelated stuff. And if I ever have to make it do something out of the ordinary, I will know where to look at.

Plugins just crossed my mind (it should... I'm using WordPress). Some apps come with their own plugin system, so you can extend the application and often times import some functionalities from outside the application... kinda like what an API does. But I don't think they can replace APIs. In fact, they need APIs to exist. The application provides a some sort of a Plugin API for building plugins. Hmmm... using Plugin APIs to build a plugin that communicates to another application via the API the other app provides. Sweet. I don't have to deal with how the inside works. I just need something to connect them from the outside.

By the way, if anyone reading this knows some open-source projects (in PHP) that have an API available, please do comment. Already found one, SMF, a forum software. The API is just in its pre-release though, but sure looks promising.

I'm sleepy and could no longer think clearly. I hope I made some sense in this post.


WordPress Upgrade plus new look

Nothing new. Just upgraded to the latest version of WordPress . Fished around some styles... still unskilled and not inspired to come up with my own.

Whooopss!! Just noticed something wrong with the layout when viewing a single article. The layout author forgot to clear the floats for the previous and next article links. Fixed.


EXTRACT() not working on phpMyAdmin

I was looking at the MySQL manual for Date and Time functions and stumbled upon a function that I might need for an "experiment" I'm doing. I used the function EXTRACT in my query, having my test run on phpMyAdmin, but it was giving me a syntax error warning. I thought that I might have the wrong syntax for EXTRACT so I tried running a sample query, right straight from the manual.

[mysql]SELECT EXTRACT;[/mysql]

But it still gave me the same error warning. It should be working since its, after all, it was in the manual... otherwise it would be corrected or removed. I ran the same query, but this time the mysql command line. It worked. I executed the query in PHP, it also worked. Well, I think phpMyAdmin is having some problems with this. I'm using phpMyAdmin - 2.8.1, on MySQL 5.0.21 that comes with XAMPP . Maybe I'll try to ask somebody to test it in other versions.



It's almost 4 months after I last blogged here. I've been quite busy lately. Aside from work and the anime series I've been watching lately :D, I've been planning to make a CakePHP-powered blog to replace my current blogging software (WordPress). I want to documenting my progress, problems that I encountered and how I went around them, etc. I already experienced some problems and gotcha's using CakePHP, but I keep on forgetting how I dealt with them. It would really help me if I can keep remember them and somebody might also find it useful... as a resource, perhaps. I'm also planning to influence some people to use CakePHP and I think some thoroughly explained examples can attract potential users.

Awwww... I also need find some cool site design if I can't make one for myself. The effects of avoiding art classes are starting to kick in :P.


A little break

It's saturday. But I'm still working. Nope, not that I'm forced to work or something, I'm just in the mood to work. Besides, I (kind of) set a deadline for the project I'm working on. I want to get it fully-functioning as early as possible because I'm planning to spice things up a bit and add a taste of Web 2.0 to it. After all, it's my first official work project so I want it to be something that I can be proud of.

I'm also bored at home and too lazy to go out. It's just one of those days that you don't want to move your muscles too much. I'd rather sit here infront of my PC staring at the monitor all-day long. I wanted to know more about and learn how to use mootools. I'm planning to use it in my project for cool and usable effects but I won't be able to until I finish some tasks. Hmmm... I'm kinda like off-setting my work for monday. Since grade school, monday is my laziest day, when I am at my most unproductive state. I'm working now just in case I catch the monday-sickness.

Whoops.. I can't think what to add... maybe I should get back to work.


It’s nice to be back

After being offline for more than a week, I'm here again. I had to go on work leave in preparation for the Geodetic Engineering Licensure exam that was held last September 26 and 27. I was supposed to get back to work on the 28th, but a typhoon hit Manila directly . Power, communication and transpo went down (while billboards and roofs went flying around) . The power supply was restored (in our city, but major parts of Metro Manila are still down) the day after, but not the phonelines. I went to office, thinking that everything was put back to normal. Errrr... not. The situation at the office builduing was worse. No electric supply, except for the elevators and office lights. Alenaire was down so we were all sweaty at the office. Hoping that the power will be restored and we'd be back to work, we waited for several hours. What a waste of time. Office hours were over but still no light, so we just went home. Trains were shutdown due to power failure, so I had to take the bus for a two-hour trip. After another hour, I finally arrived home, and found out that the phoneline is back. Hooray! I worked at home the next day (even though it was a saturday). I almost forgot what I was doing before I went on leave, so I needed to catch up. By the way, the results of the exam was released on that day. I was quite relieved to see my name on the list of successful examinees. The cramming paid off. I need to fill-up some papers and attend the oath taking ceremony. After that, I'll be a Geodetic engineer. Sweet.