Using Feedcreator to generate ATOM 1.0 feeds

I’m going give out a tip on using feedcreator class library to ease up generating syndication feeds for your web project. As you might know, there are different kind of syndication format out there such as RSS 2.0, RSS 1.0, RSS0.91, ATOM0.3 and ATOM1.0. Each of the syndication format has its own markup (though RSS 0.91 and 2.0 are closely related), making generating feeds from scratch can be quite a chore for your project.

Feedcreator provides an easy way to create RSS and ATOM feeds from within PHP using ease to use classes. However, feedcreator has a couple of drawback :

  1. It does not support ATOM 1.0
  2. Doesn’t support Enclosure
  3. Can’t generate feeds on the fly

Though these drawbacks might not be as serious as I put in here, it is nice to have this features implemented on feedcreator. ATOM 1.0 is a new syndication format issued by IETF as a standard way to produce feeds, ATOM 1.0 has a nice features and more structured layout than the ever-inconsistent RSS feeds.

Though Enclosure tag is optional in RSS 2.0, the tag is significant for those who are into podcasting or photoblogging. Enclosure feature allows for the syndicated feed to not just serve text content, but also to package an enclosure (call it an attachment of some sort), as well. IIn the podcasting model, the RSS enclosure contains an audio file, which subscribers can listen to on their devices.

Generating feeds on the fly is one of the most requested feature of feedcreator. This allows feeds to be generated dynamically upon request as opposed to generating feed on certain event (such as posting new articles). Mambo and PhpGedView project uses modified Feedcreator to generate feeds on-the-fly.

I’ve published a modified version of Feedcreator (namely Feedcreator 1.7.2-ppt) that contains all of these enhancements (or hacks). Here’s a snippets on how to use the additional features :


/*

This demo is to illustrate how to use feedcreator
using outputFeed function, ATOM1.0 and enclosure
support.

Enclosure support is useful if you are into
podcasting or publishing photoblog.

the required parameter for enclosure is url, length
and type (as in MIME-type)

*/

< ? php include ("include/feedcreator.class.php"); //define channel $rss = new UniversalFeedCreator(); $rss->useCached();
$rss->title="Personal News Site";
$rss->description="daily news from me";
$rss->link="http://mydomain.net/";
$rss->syndicationURL="http://mydomain.net/$PHP_SELF";

//channel items/entries
$item = new FeedItem();
$item->title = "test berita pertama";
$item->link = "http://mydomain.net/news/somelinks.html";
$item->description = "hahaha aku berjaya!";
$item->source = "http://mydomain.net";
$item->author = "my_email@mydomain.net";

//optional enclosure support
$item->enclosure = new EnclosureItem();
$item->enclosure->url='http://mydomain.net/news/picture.jpg';
$item->enclosure->length="65905";
$item->enclosure->type='image/jpeg';

$rss->addItem($item);

//Valid parameters are RSS0.91, RSS1.0, RSS2.0, PIE0.1 (deprecated),
// MBOX, OPML, ATOM, ATOM1.0, ATOM0.3, HTML, JS

$rss->outputFeed("ATOM1.0");
//$rss->saveFeed("ATOM1.0", "news/feed.xml");

?>

You can download the modified version of Feedcreator 1.7.2 from my server, the zip package contains the modified class library, GNU/LGPL license, some demo php file and a diff file against the plain vanilla Feedcreator 1.7.2 for curious people.

p/s : all of the modifications are written by me except outputFeed function which is written by Fabian Wolf.

Download :
Feedcreator 1.7.2-ppt (zip)

Feedcreator website : http://www.bitfolge.de/rsscreator-en.html

How to customize Ubuntu and Knoppix GNU/Linux Live CD

Ubuntu LiveCD

If you are looking a way to produce your own demo cd, or your own cool GNU/Linux live CD, then your might find the guides listed below are useful for you

Ubuntu

How To Customize the New Ubuntu Live CD

Customizing Knoppix

Remastering Knoppix

You might find that a lot of customised Linux Live CD are based on these two distro. Notably, the GNOME 2.12 Live CD, UNDP/IOSN LiveCD and MyKnoppix

Happy customizing!

Import Blogger.com post & comments to WordPress

Moving from Blogger.com post to WordPress is rather painless for me, thanks to the import-blogger script that comes with WordPress package. However, the default script does not import the previous Blogger comments, which is rather dissapointing for some who will miss the valueable comments.

However, i found out that this script will help you to export all blogger posts and comments to WordPress with relative ease. You just need to select “Save As” to save the file import_blogger.txt to import_blogger.php and overwrite the original import-blogger.php script. What you need to do next is point your browser to http://yourwordpress.com/wp-admin/import-blogger.php, and follow the rest of the instructions there, you’ll be having your old posts and comments on your WordPress account in no time!

I’ve tried the scripts and i’m very satisfied with the results! Good luck in migrating!

Microsoft teaches parent to be l33t!

I found this article while surfing Microsoft website about child safety when using the internet. This particular article is trying to educate parents with the slang involved in the internet.

words like l33t, h4x0r, j00,pr0n are explained in the articles as well as guidelines to understand such words when parents came accross them. This articles also may serve as a reference to people who wants to learn l33t5p33k.

Link to the article : A parent’s primer to computer slang

<M$> w00t, j00 4r3 0wn3d !!

Connecting TMNet Streamyx Broadband while using Ubuntu

I write this because people have been sending me questions regarding how to connect streamyx broadband service on Ubuntu Linux. IMHO, this thing happened for two reasons

  1. Ubuntu has been shipping GNU/Linux for free
  2. Ubuntu doesn’t provide obvious way to connect to broadband

OK now, just cross your finger, open a gnome-terminal, and type :
$ sudo pppoeconf

and follow the step-by-step screenshot! Heh, i’m not being lazy to type the rest of the guide, I just don’t know how to write a proper one!