Yahoo! à la Carte

March 6th, 2009

Woke up the other day with a thought about Yahoo!’s slow death (yes, straight from the bed).

What if pieces of Yahoo! get acquired one after the other? Just like pirates waiting to salvage on a burning wreck. It’ll be a mad race to get Flickr, Delicious, Mail, Messenger, Ask and Pipes! That would be fun to watch.

Somebody please publish a list of Yahoo! products and services sorted by its value. It looks like a better way out than slowly killing the whole thing and laying off people.

On another thought, Yahoo! should really open source their Messenger. We have another wave of worms that sends weight loss spam from infected users. The next best thing that they could do is publish the protocol so file transfers on libpurple works as it should. I am that selfish.

Handling Bouncing Email with VERP and PHP

February 18th, 2009

If you’re planning to make your own mailing list software from scratch, bouncing messages will be one of the cases that you’ll have to handle. Fortunately, the magnificent D.J. Bernstein came up with VERP.

VERP stands for Variable Envelope Return Path. Bernstein, original author of qmail, djbdns and daemontools among others, has the technique published on his site.

In summary, this is what you need to do for VERP:

  • Create a catch-all or variable mailbox
  • Set the return path in a format that the recepient address is still readable
  • Fetch all email with formatted to your return path
  • Process your bounced message

The following is an example return path for a mailing list called foo:
foo-admin-john.smith=example.com@yourdomain.com

To set the return path with PHP’s mail function, pass the return path in the additional_parameters like the following:
mail('john.smith@example.com', 'Hello, world!', 'How are you doing today?', '', '-ffoo-admin-john.smith=example.com@yourdomain.com');

Below is an example for fetching bounced messages with VERP from a POP mailbox with PHP’s IMAP extension.


<?php
$mailbox = imap_open('{mail.yourdomain.com/pop3}', 'foo-admin', 'password');
$mailbox_info = imap_check($mailbox);
for($i = 1; $i <= $mailbox_info->Nmsgs; $i++)
{
  $msg_overview = imap_fetch_overview($mailbox, $i);
  $rcpt = $msg[0]->to;
  if(substr($rcpt, 0, 9) == 'foo-admin')
  {
    $target = substr($rcpt, 10); // exclude 'foo-admin='
    $target = substr($target, 0, -15); // exclude '@yourdomain.com'
    $target = str_replace('=', '@', $target); // revert '=' to '@'
    processBouncedEmail($target); // do whatever you want from here
    imap_delete($mailbox, $i); // you can delete the bounce message too
  }
}
imap_expunge($mailbox); // deletes messages marked with imap_delete()
imap_close($mailbox); // close the mailbox :)
?>

That’s how simple it is. I thought it was complicated too.

Another KDE Convert Here

January 18th, 2009

Although I use Fedora on my laptop, Ubuntu has always been my recommendation for those who want to try Linux. A friend told me that he switched from KDE and shared tales of how it greatly improved. This led me to randomly blurt out to another friend to try out Kubuntu.

To cut the story short, I made the switch from XFCE to KDE too. It’s quite responsive on my aging laptop and their compositing is surprisingly easy on resources.

Free Image Hosting at www.ImageShack.us

Installation is easy (for Red Hat, Fedora and other derivatives):

# yum -y groupinstall KDE

Always Wear Protection

January 14th, 2009

I scored on an 80GB iPod Classic at the Microwarehouse Sale. It replaced my retired 60GB iPod Photo. I happened to be at Fully Booked during the Christmas rush and got this fancy, cheesy skin for that MP3 player with a hard disk.

The Enamored Whale by Alberto Cerriteno

It comes with a screen protector and the sticker will not stain if you remove it (3M). That should reduce the scratches that it’ll get, unlike what happened to the previous iPod that was badly battered. If only the skin can save it from dents as well.

Damage was around P600. They also have skins for the iPod Touch, iPod Nano, iPod Video and laptop lids. I wanted to get one for my dear old laptop but the Google Code sticker and scary battle scar are sentimental to me (at P1,300, I didn’t have extra cash to burn that time too).

I like the brown and mossy tone. Makes it look like a Zune. After putting it on, I suddenly got this tiny fascination with whales.

Tumblr Awards 2008 - Please vote for Domo Nom Nom

January 5th, 2009

Tumblr Awards 2008

Have you seen Domo Nom Nom? You should. You can vote for it as the most creative use of Tumblr over here. I bet you’ll agree with me that it’s obviously a given fact and the truth beyond explanation of the most honest human being that *it is* the most creative use of Tumblr.

Congratulations Migs!! Pa-burger ka pagkatapos ha?

Twittipy 0.2

September 19th, 2008

I’m on a very brief break and hacked on my Twitter notifier for a couple of minutes. To tell you the truth, a couple of bugs have been ironed out a week after I posted the first version. It has been working so well, I didn’t bother playing around with the code.

Twittipy now prompts for your username and password. If you want it to save to the config file, just uncomment some of the lines. I’m not comfortable with the password saved in a file and I haven’t thought of a way to encrypt them. By the way, Pidgin saves passwords in plain text too. The login prompt is old code from a wxPython experiment some time ago (and it ain’t pretty).

After you get authenticated, an icon will appear in your system tray. To exit Twittipy, right-click on the icon.

Download it here.

Install Wine 1.1.4 on Fedora 9 + Google Chrome Comments

September 14th, 2008

I love Wine! No offense to the GIMP folks but I still use Photoshop 7 and when I found out that it now works out of the box with Wine, it gained my trust. Here’s how to install Wine 1.1.4 on Fedora 9.

  1. Check if you have wine installed.
    $ rpm -qa | grep wine
  2. Uninstall the old version.
    $ sudo yum -y remove wine
  3. Download the latest build from Koji. The following is the i386 build.
    $ wget http://koji.fedoraproject.org/packages/wine/1.1.4/1.fc9/i386/wine-twain-1.1.4-1.fc9.i386.rpm \
    http://koji.fedoraproject.org/packages/wine/1.1.4/1.fc9/i386/wine-capi-1.1.4-1.fc9.i386.rpm \
    http://koji.fedoraproject.org/packages/wine/1.1.4/1.fc9/src/wine-1.1.4-1.fc9.src.rpm \
    http://koji.fedoraproject.org/packages/wine/1.1.4/1.fc9/i386/wine-jack-1.1.4-1.fc9.i386.rpm \
    http://koji.fedoraproject.org/packages/wine/1.1.4/1.fc9/i386/wine-nas-1.1.4-1.fc9.i386.rpm \
    http://koji.fedoraproject.org/packages/wine/1.1.4/1.fc9/i386/wine-core-1.1.4-1.fc9.i386.rpm \
    http://koji.fedoraproject.org/packages/wine/1.1.4/1.fc9/i386/wine-ldap-1.1.4-1.fc9.i386.rpm \
    http://koji.fedoraproject.org/packages/wine/1.1.4/1.fc9/i386/wine-cms-1.1.4-1.fc9.i386.rpm \
    http://koji.fedoraproject.org/packages/wine/1.1.4/1.fc9/i386/wine-cms-1.1.4-1.fc9.i386.rpm \
    http://koji.fedoraproject.org/packages/wine/1.1.4/1.fc9/i386/wine-tools-1.1.4-1.fc9.i386.rpm \
    http://koji.fedoraproject.org/packages/wine/1.1.4/1.fc9/i386/wine-desktop-1.1.4-1.fc9.i386.rpm \
    http://koji.fedoraproject.org/packages/wine/1.1.4/1.fc9/i386/wine-esd-1.1.4-1.fc9.i386.rpm
  4. Install the RPMs.
    $ sudo rpm -Uvh wine-*
  5. Confirm installation.
    $ rpm -qa | grep wine

I upgraded to the lastest version of Wine just to get Google Chrome running on Linux even if I already read that it’s slow and SSL support is absent. I followed this guide.

I almost got it running but it was really slow (see screenshot below). I also have V8 compiled but when I tried to play around with it, I didn’t know what to do even with the interactive console.

Screenshot

My invaluable thoughts on Chrome:

  • I think it’s great that it uses Webkit. Not really sure if it’s faster than Gecko but at least testing with Webkit is more fun now.
  • You can drag a tab in and out of the window. That’s cool but I couldn’t pin the window to stay on top.
  • The developer tools are almost as great as those provided by Firefox extensions (i.e. Firebug).

Breaking The Silence

September 14th, 2008

Some people are starting to stalk (not follow) me on Twitter so I’m thinking of making my updates private. I’m not a selfish person so I’ll blog some of my tweets here.

SIPv4 - A commentary on the state of SIP

Philippine Web Design Conference (a WIP)

Sangoma U100 - A USB FXO for Asterisk. I’m getting one, thanks to Mark Q. [pic]

Koji - package builder for Fedora

Cairo-Dock - giving in to using this dock so my windows minimize to it only because I can’t configure my XFCE task list to expand. I want to configure it so that the icons highlight when hovering over the icons. Right now it zooms in.

His Art, Our Heart: The Amorsolo Retrospective - just a plug on what I worked on recently. I’ve fallen in love with mootools and this is coming from someone who always loathed frameworks.
Credits:
Art Director: David Guerrero, Dino Cabrera, Guadakomeda, Leah Mababangloob
Logo Design: Bixie Reyes, Gino Caoile
Copywriter: Racquel Narciso, Pia Roxas, Maan Agsalud
Accounts: Cels Esguerra, Mads De Guzman, Karen Go
Developers: Dennis Billano, JP Loh

Feed Domo!!

August 11th, 2008

Kitteh. Nom nom nom..

Kitteh - Domo nom nom by Migs Ambo. That’s my favorite. Followed by Siopao.

There’s something with Domo’s innocent eyes and sharp incisors that captivates me. This is like a sweet little mix of lolcats, comic strips and, err, candy? Brilliant work, Migs!

dancedroop

July 21st, 2008

I got tipped that rumors are spreading that I know who Mary Jane (the person behind the dancedroop Multiply account) is. Wow. I am flattered. People think that we, Pat and I, traced the real person behind all the scandalous blog entries.

Unfortunately, I am not like the computer hackers that you would see in the movies. During weekdays [and nights], I am nothing but a corporate slave where I am forced to randomly type gibberish on the keyboard.

Weekends are also spent in front of the computer but chatting with friends that I met on the Internet and waiting for content to be cached by Google. I have no real social life and no girlfriend.

I do not crack into servers during my free time. I can’t. I can’t because I do not know how. I am not even close to becoming a script kiddie. What more with tracing the person behind the content cached by Google?

I can’t see the world where Japanese characters stream down like Neo does in The Matrix but if the lights in your room start flickering while you read this, I may have found a way how to do it.