Thursday, May 25, 2006

Everything social

I originally wrote this post on May 24 but it has been sitting as a draft ever since.

Ever since I returned from the MySQL users conference, things have taken a turn for me. I find myself so incredibly busy with projects that often it gets past 3:00 AM before I get to hit the bed. Of course that means I haven't been able to keep up to date with my emails.

I have a couple of projects under the hood going on. For one, I am busy launching the next version of Adoppt which will make things much easier to understand ;). Also, I am busy in simplifying the navigation and working on the email and invite system.

When I built Adoppt, I had just one thing in mind, to make it as user focused and friendly as possible (to keep the spirit of Web 2.0) and to this day that remains my goal. Many thanks to all those who provided me with valuable feedback on the project. I agree it is one of the most ambitious projects that I have undertaken to date.

In addition to Adoppt, I have three other projects in the pipeline. All use MySQL of course.

First, someone recommended sometime ago that I add PlanetMySQL to my RSS reader. The problem is that while I tested out many RSS readers, I don't have one that I particularly like. The reason being that I always wanted to code a RSS aggregator with my own hands.

Call me crazy but that's what I love to do. Code.

So about 10:30 pm yesterday night I sat down with my wife Michelle thinking of a domain name for my RSS reader and aggregator. After about thirty minutes of brain storming, we finally settled with

After securing the domain, I modified my hosts file (so I won't have to wait for the DNS propagation) and started making my RSS aggregator.

Around 3:00 AM I felt the aggregator was in decent enough position for me to start adding RSS and ATOM feeds.

Today, I ran into an issue of sorting feed entries when retrieving from MySQL. Since the latest items in a feed are shown first (and entered first in the db) I couldn't immediately come up with a way of retrieving them in the exact order in which they were received from the feeds. At that point I had two options

1. come up with a way of taking the publication date in various feeds (in a huge variety of formats) and try to make sense out of that, or
2. create a batch system where everytime I start parsing feeds for new content, I assign it a batch number which is then stored with each entry retrieved. That way I can query by specifying "ORDER BY batch_id DESC, id"

Now I know there must be a better way of doing this (and I would love to hear about it). But the good thing is that for now it works great.

The second project I am working on is a simplified version of Adoppt that allows for social bookmarking. If you guessed that the domain for my project is, then you are quite right. I have had the domain name for quite some time and so this weekend I finally decided to sit down and get it closer to completion as well. Thanks to Ruby on Rails, my wife and my work on Adoppt, I was able to extract and simplify the interface for in about two days of work.

In a nutshell, allows a user to

1. make friends
2. see what their friends are bookmarking
3. subscribe to any member's bookmarks (without becoming a friend)
4. make blog posts
5. edit their bookmarks easily using "in place editors" and AJAX.

Now, I need to work on finalizing the preliminary chapters of my Pro Rails book and send it to the editor. Hopefully he will like what he sees (and reads) and I will move one step closer to getting the book published. And oh yes, all the people who were kind enough to be my beta readers, I have not forgotten you and will be fulfilling my end of the promise soon.

And the third project? Oh, well let's just wait for now and see. Hint: I am working on it with another Planet'eer.

For now, you can check out my social bookmarking home page.


Wednesday, May 17, 2006

Planet marks

There have been some really cool postings at PlanetMySQL that I have been wanting to read and blog about. However, since I have been really busy (temporarily), I haven't had the chance to do so. Following is the list of posts I really liked, or would like to read at some later point.

Phew! that's a long list. Many more cool posts that I haven't had the chance to read closely. I will blog about them later. Hopefully they will remain at PlanetMySQL until I have read them ;)


Overview of MySQL Engine, Cluster, Performance Tuning

At the MySQL conference Timour Katchaounov presented one of my favorite sessions. I have my notes from the session speeding up queries posted on my blog.

Recently, Timour was kind enough to email me the links to his and some other talks at Google.

Overview of MySQL Engine and New Features

Cluster Talk by Stewart:

Performance tuning (Jay):

Thanks Timour!


How I work series.

I have been really enjoying the "How I work" series by Dave Rosenberg as it provides very good insight into how our peers work.

Here are some of my favorites (no particular order):
Brian Aker
Sheeri Kritzer
Jason Gilmore
Mike Olson

I have been really busy working on a few projects for clients and haven't been getting any free time. Hopefully this weekend I can reply to everyone who has been kind enough to email me.

Congratulations Markus!

Just wanted to take a moment to congratulate Markus on joining the MySQL web development team. As he says, it must feel great to work for MySQL. Man, I should have hung out with the "right guys" at the conference too ;)

Congratulations Markus, I am sure you will help MySQL conquer more heights.

- Frank

Saturday, May 13, 2006

MySQL DBA Job Leads

I have been receiving a lot of requests from all over the US regarding DBA jobs. If you are currently looking for some hot jobs, drop me an email by writing to softwareengineer99 at yahoo dot com. Some of the jobs are offering as much as 150K.

I would also be interested in hearing from you if you have a position open in your company.

Is there any site that helps connect MySQL DBAs with the open jobs worldwide?

Farhan / Frank

Open Source Software

Ronald recently asked to provide a list of Open Source software that I have used or recommend. Here's a list that I compiled in one sitting. Since I have been working with OSS for quite sometime now, this list is just a sample. As time permits, I will add more to this list.

1. Typo (RoR) [some issues with RoR 1.1]
2. phpMyAdmin
3. OSCommerce [Recommended if you're ready to make a lot of customizations]
4. Interchange (Perl) [Overkill for small projects but ideal for large scale ones. At one point, Google used to use Interchange to power their online store. Now they use OSCommerce.]
5. OWL [A fairly decent DMS (Document Management System]
6. Word Press
7. BugZilla
8. phpBugTracker: Ideal when a quick setup is needed.
9. phpBB: [Needs a lot of customizations]
10. Drupal [Ideal if you need a CMS (Content Management System) but have a small number of categories. Because Drupal loads the list of categories in memory, it's not recommended for sites with large number of categories]
11. Nucleus: A decent CMS that can be extended easily.
12. PHP Gallery
13. PHPDig: [A nice search engine to index and search small web sites. Indexing process is really slow]
14. Lucene (Java): [The king of search engines, IMO]
15. FCKeditor
17. Zope
18. Apache and MySQL (obviously)
19. mytop
20. AWStats
21. APF (Advanced Policy Firewall)
22. BFD (Brute Force Detection)
23. PHPNuke
24. phpAdsNew
25. PHPOpenChat

I am currently looking to evaluate/use the following very soon:

1. Lighty (Lighttpd)

I would also be interested in knowing what OSS other PlanetMySQL readers use.

Congratulations to Mike and Stewart for being the top on PlanetMySQL.

I still need to post photos from the conference and other notes from the sessions.

Also checkout Sheeri's post on "neat tricks". I agree with her that having additional details on PlanetMySQL such as "1 post a day" would be very nice.

Oh, and this post marks my 100th post on this blog. Yay!

- Frank/Farhan