Bad XHTML..

I was working on SpoonFeed’s “auto-detect feed” feature last week, and thought that it’ll be a piece of cake, thanks to PHP5’s SimpleXML libraries. It is of course easy, if the page is valid XHTML. I tried it locally with my blog and it worked fine. Unfortunately, problems arise when the page is not valid XHTML. I came across this problem when I tried “auto-detecting” Neowin.net. Though it sports a new design and has a XHTML 1.1 Strict doctype, the tags aren’t structured properly.

In strict XHTML, tags that don’t have closing tags (like img and meta), should be in the form:

The backslash is very impotant. If left out, it’ll be treated as an opening tag. Neowin.net (and probably many other sites) do just that. All their meta tags are “opening tags”. PHP5’s SimpleXML parser would parse all HTML (it ain’t small), waiting for the closing tag that never came.

I’m all bogged down with my studies, and doubt I’ll find enough time to work on SpoonFeed. Even if I do, I think I’ll be skipping the “auto-detect” feature for a while..

Tags: ,

SpoonFeed

Months ago, after discovering that FeedLounge was a subscription based service, I decided to spend my semester holidays cloning one. Hence, SpoonFeed was conceived. It even has the tagline: “Spoon-feeding you with newsfeeds”. I had great plans for it, since I found FeedLounge still have room for improvements. What’s more, I personally find that FeedLounge is the only worthy web-based feed reader and hence, the only one that’s subscription based.

Unfortunately, the semester holidays flew by and I hardly finished much of SpoonFeed. My new semester’s already started and I wonder how much time do I have to work on SpoonFeed. Sigh.. Nevertheless, I still plan to tackle tiny parts of it on a weekly basis, probably tapering off in 2 months time where assignments for most modules are due. I’ll be posting updates about it weekly, and schedule milestones every Sunday. Ladies and gentlemen, I present you: SpoonFeed milestone 3.

SponFeed login

A sketch of the future SpoonFeed homepage cum login screen.

Simply put, SpoonFeed is a web-based, RSS newsfeed reader. It uses a PHP5/MySQL backend (though I wonder how much of PHP5’s true potential am I leveraging on), supports ATOM, RDF, RSS and RSS2 formats (details on that later) and sports 5 different layouts. I’m working on the “Add a New Feed” part now, hopefully I can get it completed by the next milestone.

When user want to add a new feed, a dialog prompts them for a URL. Simlpe enough? SpoonFeed will try to fetch that URL, and see if it’s XML, and try to parse it. (Note to self: what if it’s an invalid format?) If it’s a feed, confirm with the user. If it’s a HTML page, try getting the feeds from the link tags. I think it’s a very simple, subtle way of implementing a feed auto-detect function.

After that, I’d be working on feed read/unread functions, and more importantly, polling the server for fresh feeds. That would make it like milestone 5, which I plan to upload to a online server for beta testing. Until then, go here for all SpoonFeed related screenshots. As usual, any feedback arre much appreciated.

Tags:

Back with Plans

Throughout the Chinese New Year break (which was smack right in between my exams), I was constantly thinking bout Jnls.Net and other web development stuff, when I should be studying instead. As the semester break draws closer, I’m already finalizing plans “projects” to be done.

I’ve realized from pass experience that I would not be able to get much done in 2 weeks time. Thus, I’ve decided to stick with some simple, yet cool stuff. Read the rest of this entry »

Tags: , ,

Explore Box - Target Roadmap

UPDATED: support for other blog engines? See end of post…

I’ve been working on the “Explore Box” these couple of days (when I should have been studying), and have done some updates to the explore box. Most notably, the color of the tabs have changed to better fit into the site’s color scheme. A litle spinner or loading indicator in the form of an animated gif was also added. There’s also a number of other little twitches here and there that I don’t really remember.

Here’s a screenshot of it in a variety of browsers, except for IE7 (click to enlarge).

Explore Box screenshot in different browsers

Target roadmap (or rather, todo list): Read the rest of this entry »

Tags: ,

Flexi Sides: Degrading Gracefully

NOTE: this is a follow up to my previous post that explains the concept of Flexi Sides.

It was really stupid of me to not think of what happens when the user has JavaScript disabled. The first comment I had was exactly on that.

The simplest method to ensure graceful degrading, is to add some default styles to your box so that when JavaScript is disabled, the user would still get a simple looking box. However, there’s a slight problem with Flexi Sides. You see, Flexi Sides adds containers to your box. Let’s look at how the DOM might look like after adding some containers to #rounded-box: Read the rest of this entry »

Tags: , ,