b2 evolution: New features summary

Here is a quick list of improvements I made to the original b2 0.6.1 lately:

  • New key features:
    • "View last comments" feature
    • Each post can be assigned multiple categories
    • Posts can be spread across multiple blogs
    • Statistics based on logging of Referers, User Agents, etc... on blog pages and RSS feeds
    • Comments, trackback and pingback can now be displayed on same page
  • Backoffice improvements:
    • Improved standard markup buttons (support for strong, em, etc.)
    • All those little smileys can now be easily inserted by clicking them like a button
    • Possibility to send trackback and/or pingback as an afterthought (multiple trackbacks allowed)
    • Displaying progress while sending trackbacks, pingbacks and pinging various sites
    • b2 can now live in its own subfolder (does not have to be in blog root folder)
  • Other improvements:
    • Performance: Reduced # of SQL queries per page
    • Performance: Optional generation of static home pages for each blog
    • Various bug patches
    • Standards: Various XHTML markup patches

I kind of started tweaking my b2 out of impatience waiting for a new version, and also because I thought it was an interesting way to refresh my PHP/mySQL knowledge... But this is obviously starting to get out of control! The time spent on this is begining to add up to something quite significant! :roll:

Thus, I am considering releasing this as open source. Though, some parts of the code are far from release condition... and if you have looked into b2 before, you may know the ground wasn't super healthy anyway :-/

So... if you are interested in this b2 evolution and you want to heavy-beta-test it, wether you've been using b2 or not in the past, please drop me a line ;)

mySQL DISTINCT FUNCTION(...) bug

Looks like mySQL is not able to to perform the DISTINCT selection in cases like this:

SELECT DISTINCT YEAR(post_date), MONTH(post_date) 
  FROM whatever1 INNER JOIN whatever2 ON field1 = field2
 ORDER BY post_date

This can be worked around, but it seems ridiculous!...

SELECT DISTINCT YEAR(post_date), MONTH(post_date) 
  FROM whatever1 INNER JOIN whatever2 ON field1 = field2
 ORDER BY YEAR(post_date), MONTH(post_date)

PHP oddities :(

Actually I had not really looked into PHP since early version 3 betas... I knew it had gotten better, but sometimes I wonder if I didn't overestimate this... :-/

Looks like PHP 4.3 still requires that you name a collection of checkboxes or a select multiple with a name ending with "[]" such as <input type="checkbox" name="collect[]" value="3" />. That [] makes it impossible to DOM-handle the objects with javascript... but if you don't include the [], you just won't get all the checked values, neither as a table nor as a list... only the last one! :!:

What year is this? 1995? :'(

As far as I remember, ColdFusion and ASP have been handling this elegantly since version 1.0!

Google & BlogNoise: a semantic approach

As Russel points out (original article gone), the quality of searches is dwindling at Google as the result of BlogNoise.

It seems to me that Google could easily cut out a lot of blogcrap of their search results if they performed their searches on a post by post basis (all words would have to be found in the same post) instead of a page by page basis (a weblog page contains an average of 15 very loosely related posts).

How would their indexer find out about the boundaries of each post on a page? Well... just let it take advantage of the RSS linked to any decent weblog!

Oh wait... Blogger blogs don't have RSS! They have a huge market share (i-e a huge blogcrap share) and if they still haven't implemented such a straightforward feature yet, they're not very likely to do so soon... That's a problem...

Semantic Web, where are thou?

RSS filtering

Information overload!

The issue has been hitting weblogs quite a while ago, and that's why we have RSS. But stil, we need to narrow down the flow of information our aggregators feed us with daily!

One solution would be Bayesian Filtering in the aggregator.

As far as I am concerned, I will be providing category selection on my RSS feeds shortly (as weel as an aggregated feed for all my blogs). That should let you aggregate only the subjects you care about. ;)