Bernie's Blog A confusing concoction of Java, mobile devices, technology and photography

19Dec/093

Wordpress 2.9 Released, This Blog Updated

News of a new Wordpress release - v2.9 - hit Twitter last night, with these new features (along with 500 bug fixes and misc enhancements!):

The coolest new stuff from a user point of view is:

  1. Global undo/”trash” feature, which means that if you accidentally delete a post or comment you can bring it back from the grave (i.e., the Trash). This also eliminates those annoying “are you sure” messages we used to have on every delete.
  2. Built-in image editor allows you to crop, edit, rotate, flip, and scale your images to show them who’s boss. This is the first wave of our many planned media-handling improvements.
  3. Batch plugin update and compatibility checking, which means you can update 10 plugins at once, versus having to do multiple clicks for each one, and we’re using the new compatibility data from the plugins directory to give you a better idea of whether your plugins are compatible with new releases of WordPress. This should take the fear and hassle out of upgrading.
  4. Easier video embeds that allow you to just paste a URL on its own line and have it magically turn it into the proper embed code, with Oembed support for YouTube, Daily Motion, Blip.tv, Flickr, Hulu, Viddler, Qik, Revision3, Scribd, Google Video, Photobucket, PollDaddy, and WordPress.tv (and more in the next release).

And there's more! Under the hood Wordpress developers did some magic too:

  • We now have rel=canonical support for better SEO.
  • There is automatic database optimization support, which you can enable in your wp-config.php file by adding define('WP_ALLOW_REPAIR', true);.
  • Themes can register “post thumbnails” which allow them to attach an image to the post, especially useful for magazine-style themes.
  • A new commentmeta table that allows arbitrary key/value pairs to be attached to comments, just like posts, so you can now expand greatly what you can do in the comment framework.
  • Custom post types have been upgraded with better API support so you can juggle more types than just post, page, and attachment. (More of this planned for 3.0.)
  • You can set custom theme directories, so a plugin can register a theme to be bundled with it or you can have multiple shared theme directories on your server.
  • We’ve upgraded TinyMCE WYSIWYG editing and Simplepie.
  • Sidebars can now have descriptions so it’s more obvious what and where they do what they do.
  • Specify category templates not just by ID, like before, but by slug, which will make it easier for theme developers to do custom things with categories — like post types!
  • Registration and profiles are now extensible to allow you to collect things more easily, like a user’s Twitter account or any other fields you can imagine.
  • The XML-RPC API has been extended to allow changing the user registration option. We fixed some Atom API attachment issues.
  • Create custom galleries with the new include and exclude attributes that allow you to pull attachments from any post, not just the current one.
  • When you’re editing files in the theme and plugin editors it remembers your location and takes you back to that line after you save. (Thank goodness!!!)
  • The Press This bookmarklet has been improved and is faster than ever; give it a try for on-the-fly blogging from wherever you are on the internet.
  • Custom taxonomies are now included in the WXR export file and imported correctly.
  • Better hooks and filters for excerpts, smilies, HTTP requests, user profiles, author links, taxonomies, SSL support, tag clouds, query_posts and WP_Query

Wordpress 2.8.x users should be able to just hit the update button in their admin interface, wait a few minutes and upgrade to 2.9. Those seeking to do a fresh or manual install can grab a copy here.

Tagged as: 3 Comments
16Dec/090

Beautiful Widgets Dev Gets Cease and Desist

beau1
HTC apparently sent a C&D to LevelUp Studio, makers of 'Beautiful Widgets' (reviews here and here). This message was posted along with the latest update of the application in Android Market:

HTC sent me a C&D, I have to remove the widgets from the market soon, so please back it up if you want to keep it, using appmanager or ASTRO file manager - LevelUp Studio

I bought the application some time ago, and definitely feel disappointed that HTC decided to deal a low-blow to the developer. Is LevelUp Studio doing any damage at all to HTC? Probably not. Do they have a right to issue a C&D? Probably yes. Doesn't change the fact that this stinks. Reminds me of another C&D issued to a certain well-known ROM developer not too long ago.

I urge LevelUp Studio to modify the widget (use other images perhaps?) and do a new release. I wonder if this kinda of tactics means that widgets that emulates a certain look-and-feel of other widgets might get into trouble. Definitely an ugly precedence.

Update: Looks like the developer has decided to go forward with development - with a twist. The widget now doesn't look like those from HTC. And they are still look as good!

Tagged as: No Comments
15Dec/090

Eclipse Hudson Plugin

Context - Continuous Integration (CI) is a must. And Hudson is a free, decent, and quick to setup CI server.

To get Hudson into Eclipse - there's a plugin. The recommended way of installing is of course, via the plugin's update URL - http://hudson-eclipse.googlecode.com/svn/trunk/hudson-update/.

After installing it, you'll need to configure it:

Screenshot-Preferences

Once that is out of the way, you'll get this:

Screenshot-Java - Hudson browser - Eclipse

13Dec/090

No Updates To Archlinux?

arch_update

How can it be? I've been without a single update for 2 weeks. Did all the developers go for vacation? And at the same time? Nay, it was a problem with the repo mirror that I was using (http://archlinux.unixheads.org/$repo/os/i686). I've switched to another mirror (http://distro.ibiblio.org/pub/linux/distributions/archlinux/$repo/os/i686) and everything is good again. Updated 200MB worth of packages yesterday.

12Dec/091

Photo – Woodware

Taken during a visit to a handy-craft shop in Bali. These are quite expensive, made from high quality wood (unfortunately, yours truly cannot recall which type of wood) - a few hundred $US if I'm not mistaken.

Tagged as: , , 1 Comment
12Dec/090

Guice or Spring?

Just today, someone mentioned that because Spring already does what Guice does (and more, I might add) that I should stick to the latter. I beg to differ. Each has its own purpose, I wouldn't put these 2 in the same league.

Spring is almost a complete container. From security, a web MVC model, batch framework, persistence, JMX, scheduling, web services and many more, Spring offers (or is able to piece together) an almost complete stack to build enterprise applications. In other words, it's a JEE competitor. Its selling point has always been as a lightweight enterprise stack anyway.

Guice on the other hand is a lightweight DI enabler, so to speak. It offers to take away DI code that a developer could otherwise write themselves. This is probably a gross over-simplication but that's how I see it. When I want DI or AOP but I don't want the whole she-bang (and I don't want to do DI manually), Guice is the solution. On the other hand, if I'm looking to develop enterprise software, I could use Guice, but Spring offers so many bundled services that it's hard to ignore.

I like how Guice encourages constructor injection (which, along with final fields, encourages immutability) and that it returns new instances by default - both of which should allow better performing apps when paired with powerful hardware (read: multi-core friendly). I also like how Guice encourages thinking of applications in Modules, its promotion of testability and its potential reusability. I'm a seasoned Spring developer but it was Guice that really made me step back and think about DI, testability and modularity.

After a few weeks of implementing a small library in Guice, it seems there's no turning back. For non-trivial stuff, there's Spring but for everything else, Guice may be the better choice for me. At the end of the day, Guice is yet another tool under my belt. To dismiss it entirely because I already know Spring is just foolish (even if I've been using Spring for 2 years). Of course, I'll also keep my eye on the recently announced JSR that will bring DI to standard Java.

Guice and Spring are but tools. It's DI, AOP and testability that I need.