Date Arithmetic With MySQL

MySQL offers pretty useful functions when you want to manipulate days:

  • You can add a time interval to a date value with ADDDATE() or DATE_ADD()
  • You can subtract a time interval from a date value witf DATE_SUB()
  • You can find the interval between two dates with  DATEDIFF()

It's often easier to compute this stuff directly in MySQL rather than in PHP.

For all date functions see the MySQL Manual.

IE, CSS & TEXTAREA hell !

We used to have an article here about styling textareas with CSS in IE. It was one more post on the web about one more bug in Internet Explorer 6. It has been fixed in between.

In case you still need this, we had a workaround which consisted of applying width:100% on a div around the form, like this:

<div style="width:100%">
  <form>
    <label for="t1">Try to type in here:</label>
    <textarea id="t1" style="width:100%">Try to type here!</textarea>
  </form>
</div>

Web application caching

Blogs, as most current web applications, need to address the server-side caching issue in order to reduce webserver load.

It looks like most people are quite happy with caching static versions of their pages for some defined amount of time. This method has often been called something like "half-baked/half-fried" in reference to the long running baked (static) versus fried (dynamic) discussion.

I'd actually call it "baked on demand"... but regardless of what name we use, I would not be satisfied with this.

I have actually done some experiments caching my blog homepages which is enough to significantly reduce load, but this really makes them too static for me. I do want to log some stuff in realtime, I do want new user comments to show up instantly, and most of all: I do want the page to be customized for each user: display new posts since last visit, display his personal choice of categories, etc... Caching a whole page for every possible combination seems plain stupid. (And it is! :>> )

Actually, the only smart caching mechanism one can be satisfied with in high-end web-applications is block-caching. As a matter of fact, a web page can actually almost always be considered as an assembly of different blocks. Some are static, some are dynamically updated several times a day, some are related to the user himself and some are so dynamic they change everytime the page is displayed, no matter what! By caching each of these blocks individually when it makes sense and rebuilding only those necessary at a given time, you can then reconstruct your whole page dynamically significantly faster than if you had to reconstruct all blocks from scratch every time.

And there you have it: performance and functionality. Yeah, Okay, I know... it's also much more complex to implement than any other caching mechanism... ;D

Introducing evoSkins

b2evolution 0.8 will come with blog skins (evoSkins).

What are blog skins?

Well basically if you've used any skin-enabled software (like WinAMP) you probably have an idea. ;)

Bloggers using b2evo will be able to select a complete look & feel for their blog by just clicking on the "skin" they like the most.

b2evo will come with a few selected blog skins from cool people who already allowed their design to be included in the release package. B) Hopefully, new skins will be made available in the community so bloggers not knowing or willing to design their own will have a great choice available... :D

The other benefit of evoSkins is that your readers can also choose, from a selection of skins you provide, which one they like the most! :D

(Of course, this is optional... in case you don't like the idea! ;) )

What about my current blog template? :?:

If you already have a b2 blog template and just want to upgrade, you can just reuse it without worrying about skins.

Alternatively, you can turn your existing template into an evoSkin (instructions provided) and take full advantage of the evoSkins skinning system.

What's the difference between evoSkins and a CSS style switcher? :?:

Good question! Why do we need evoSkins when we already have CSS? :)

As a matter of fact, a blog skin can be as simple as a custom CSS design. But evoSkins can also provide more variations than what you can do with CSS. Here are a few examples:

  • Some evoSkins may have popups for comments while others display them inline
  • Some evoSkins may have a very light HTML footprint for use on Palm and mobile devices and others may have a full-featured output
  • Somes evoSkins may use plain standard HTML/XHTML, others XML, others WML, others cHTML, and others even FLASH! (=> BTW, if you are a Flash designer and want to work on accessibility compliant Flash Blogging, please contact me! :) )

I'll put up a demo as soon as I have a minute. I'm a little overloaded by the upcomming week-end right now... :roll:

God I love sundays!

Woops I first spelled it sundaes! :. And that was correct too! :))

Actually, the cool thing about sundays is that the day before is Saturday... and that gives beta testers a lot of time to test b2evolution!

I sure wasn't expecting that much positive response from all over the world today!

This is really nice! Thank you all for your support. I'm working on rolling out a release ASAP! ;)