Blogger Upgrade

Blogger (from Google) is redesigned and with it goes static publishing. Like Matt says, whatever happened to the static publishing pros. I think with this change, it should probably read Blogger is reborn.

For starters, static publishing is a way of exporting the post to HTML. A post when published, is processed, the HTML is composed and is saved as a page to be ready to be served. This was considered better as serving ready and composed pages did not go through the web server processing and increased performance. The lopside to this was that it was, for lack of a better word, static, which does not fit very well with today’s dynamic web. If there was a change, the post had to re-exported to HTML. Think of a change, like change in the sidebar or layout or design, that will affect all the posts and think of the trouble of republishing all of the posts. For all the ease that Blogger said it had, the user had to know when to republish all the posts, which actually can eat up lot of your time. This was a fundamental difference between WordPress and Blogger. Well, now its gone.

Another concept Blogger has embraced is the tags, or labels as they call it! It is very close to categories in WordPress. This will definitely bring in better navigation and better tagging for the users. However, the dilemma for lot of users would be whether to tag the existing posts done using the old blogger. If not, the tags will miss a lot of posts and not serve as good navigation.

Along with this, the hosted service, Blogspot.com will gradually get all these features.

Movable Type still supports static publishing. It does support a dynamic workaround, but it is strongly discouraged as a host of third party plugins don’t work in the dynamic mode.

Now that Blogger has got the new face it will be interesting to see if the demographics change. The existing loyalists would probably not leave, but new bloggers will have to compare a little more between the different blogging tools as the gaps between them is reducing.

More on this:

Technorati tags: , ,

Copyright Abhijit Nadgouda.

KUBUNTUed

KDE Desktop Screenshot

Finally, I am Kubuntued! I have been an avid user of Linux, mostly Red Hat distributions and mostly for work. However this is the first time I tried the Kubuntu distribution for my everyday things, both for home and work. It is nicely sitting here on my Dell Inspiron 700m after toppling Windows XP from its long-held position.

It has been a good journey since then. I have found some good and some better applications for my needs. As it is, most of the tools I used even on my Windows versions were open source and cross platform. So it was not a huge shift for me.

Why (K)Ubuntu?

I was not very happy with Red Hat or Mandrake distributions and had read a lot about developments in Ubuntu.

The Ubuntu community is built on the ideas enshrined in the Ubuntu Philosophy: that software should be available free of charge, that software tools should be usable by people in their local language and despite any disabilities, and that people should have the freedom to customise and alter their software in whatever way they see fit.

This is in accordance with my philosophy of software development and using it for better productivity. I am also an active user and advocate of the open source model and applications, so this is a happy moment for me.

The choice of Kubuntu was an instant choice because of my prior pleasant experience with KDE. I had also worked for some time on KDE for Windows using Cygwin. KDE is now fully GPL compliant as Qt, the underlying library for KDE, has been released under GPL.

I went with the latest stable release of Kubuntu – 6.06 LTS (Dapper Drake).

Ubuntu and Kubuntu are not different operating systems, they are just packaged with different desktop managers – Gnome and KDE respectively. You can install KDE on Ubuntu and Gnome on Kubuntu without any loss of functionality.

Why KDE?

It was my earlier experience of high productivity with KDE that prompted me to order Kubuntu rather than Ubuntu. Nothing against Gnome, in fact I have installed the Gnome libraries for using applications like Mozilla Firefox, gvim, dia and OpenOffice.

Otherwise it is all KDE, I use

  • Konsole: X terminal emulator for KDE or the command window
  • Konqueror: KDE file manager and browser
  • Kontact: which includes KMail for emails, Akregator for reading feeds and Korganizer for scheduling and organizing.
  • Kate: intelligent KDE text editor
  • K3b: CD and DVD burner
  • Amarok: audio player
  • KMPlayer: multimedia player
  • Kopete: messenger to chat with buddies over 8 different protocols including Yahoo!, MSN, GTalk and IRC.
  • KDevelop: C/C++ integrated development environment that supports KParts
  • KXML Editor: XML editor for KDE
  • KPlato: project management tool

I will like to start using KOffice at somet time, it feels great to be able to try and experiment different office suites thanks to the OpenDocument format. The amazing configuration for shortcuts recognizes the Windows key as one of the modifier keys and lets me retain some of the used-to Windows shortcuts like Win+E for file manager, Win+M for showing desktop. I haven’t tried the KDE eye-candy like Baghira theme and KXDocker but will do it after some time.

Kopete, the messenger, can integrate with the address book in Kontact and import data from there. It also has a concept of metacontacts that can handle multiple messenger accounts for the same person with a single entry in the chat window. That makes it a lot convenient.

K3b lets me burn DVD videos, for which I would have had to buy an extension for Nero on Microsoft Windows. It is surprising that when you categorically buy a DVD writer, the software for burning DVD videos is excluded. K3b has been great, I have churned out a good number of CDs.

Head over at KDE applications repository.

I have also installed Mono. I don’t need any .Net application today, but just the possibility makes it so much interesting. Wine will be the next thing in this league.

The Look’n’Feel department of KDE is also abuzz. The desktop configuration provides lots of options, which are required to be looked at only if you are interested in changing them. Otherwise you can choose to ignore them completely. More resources can be found at KDE-Look.org.

Compatibility

The good thing about K/X/Ed/Ubuntu disks is that they also work as live CDs. I could boot using them and verify whether the necessary hardware worked. Most of the hardware worked out of the box, including the 802.11g wireless. The 1280 screen resolution did not, but it required a minimal effort of downloading the 915resolution package from the Ubuntu repositories. It is worth verifying if all the repositories are enabled (which can be done in Adept by using right click menu on repositories in View->Manage Repositories window) before you start downloading packages. This was good performance considering that I was installing this on a device with a tag Designed for Microsoft Windows XP!

Two things that I have not tested are the dialup modem and the SVideo port. They are not being used, and hence not being tested. Rest of the things are working without a problem.

Additional efforts and help

I had to do some additional fiddling to get things like MP3 working. But most of these things have well documented answers, either in the KDE repository or in the community. Here are some additional resources for working with the Ubuntu distributions:

The installation was a breeze, no problems at all. The good thing was it threw a lot of options at me, but I did not have to configure them, they already had their default values. I have read about some tough experiences, but it took me all of 6 hrs to install and set up my environment. However, it took some incremental time to import some things, like my mail and contacts, from my older environment. Using it is easy, even non-technical people will find it easy.

The one thing that hurts Linux, the pioneer in open source, is ironically the mesh(s) of open source licenses. The user has to usually delve in to the technical details to understand the debates and different positions. This, in my opinion, is the biggest deterrent today. It is not the complexity, it is not the number of options. The licenses and the debates have created so much data that the layman is left in the dark without any knowledge. Open source will become easier and more approachable for the layman only if the licenses themselves get leaner. I digress, but this is the only reason why I would hesitate to recommend this to someone. The biggest advantage of Linux to the common man is neither the licenses or GPLs or costs – it is the increase in productivity at affordable cost.

Otherwise, I would recommend this to each and everyone. For the ones looking for support, Canonical offers commercial support. Let this not be considered to be anything against Microsoft Windows, but for me the overall score for Kubuntu is higher.

Technorati tags: , , ,

Copyright Abhijit Nadgouda.

Posted in tools. 1 Comment »

Generate Regular Expressions

This post has already been published on code::gallery blog which now has been merged into this blog.

Roy Osherov has created Regulator – a regular expression generator. And it has a nice visual interface to specify the data and the parsing rules that creates the regular expression. If you want to know more about regular expressions head over here. Developers can use this to be more productive in creating regular expressions and use them in their own programming environment.

The Regulator is an advanced, free regular expressions testing and learning tool written by Roy Osherove.
It allows you to build and verify a regular expression against any text input, file or web, and displays matching, splitting or replacement results within an easy to understand, hierarchical tree.

However in such applications the real challenge is to create a rich UI that will enable expressing all the possible formats of data and all the possible ways of specifying the parsing rules. More fiddling with it will tell us whether it is really upto the challenge, but a brief introduction has resulted in a pleasing experience.

You will also find a link to a more ambitious project – Regulazy.

Regulazy is an attempt to build a small “Expert System” for creating .NET Regular Expressions.
It lets the user create an expression based on a real life example of text they would like to parse.
As the user interacts with Regulazy using the mouse, Regulazy offers the user possible expressions that would fit the currently selected text. As the user selects “rules” to apply on various parts of the text,
a regular expression is built automatically in the lower application pane.

Regulazy goes a step further from Regulator to suggest the best matches for a real life data. Users can use sample text to specify the kind of data and see real time preview of the results. It is still in alpha stage.

Regular Expressions themselves are technology agnostic, I really wish that both these tools are not OS or platform specific. I will try and see if they work on other OSs by using Mono.

Technorati tags: , , ,

Copyright Abhijit Nadgouda.

C/C++ Cross Platform Libraries

This post has already been published on code::gallery blog which now has been merged into this blog.

Developing cross-platform C/C++ code is not difficult, but definitely challenging and has to be disciplined. Usually, a separate interface is designed so that the platform-specific code is encapsulated. The challenges are presented on multiple fronts – every platform (OS and/or CPU architecture) has its own API for system operations, its own Endianness, implementation of pointers and more.

Today, developers have access to a plethora of cross-platform abstraction libraries. What this means is that the developers don’t have to worry about differences in the platforms and focus on their applications. The differences are abstracted into the libraries/toolkits/frameworks. Shlomi Fish has a nice extensive list including the popular Standard Template Library (STL).

Out of these, I have worked with Posix Threads for Win32, Boost and Mozilla XUL.

In addition to this Mozilla has a Cross Platform Component Object Model (XPCOM), which is the underlying base for every Mozilla application. I have also used Xerces C++ Parser. In addition to this, Ch language environment, an embeddable interpreter for cross-platform C/C++ scripting, is available for developing XML-based applications using C/C++..

Andrei Alexandrescu has developed a cross-platform library, called Loki (through his book Modern C++ Design), for illustrating benefits of policy-based programming. It employs template metaprogramming to the fullest.

Then there are Blitz++ and Matrix Template Library (MTL) (via O’Reilly Network).

As mentioned earlier, the code development should be disciplined to ensure portability. Mozilla has a C++ portability guide for making code portable.

I am sure all the libraries are not included here, if you know any that are not mentioned here, feel free to add them in the comments. I will update the post accordingly.

Technorati tags: , , , , ,

Copyright Abhijit Nadgouda.

A Look At Movable Type v/s WordPress

Matt Craven expresses his opinion about Movable Type and WordPress comparison in response to Mike Rundel’s Movable Type vs. WordPress. Even if this has been looked at earlier, this discussion is about the more recent versions of both the blogging tools.

For the uninformed, Movable Type and WordPress are two of the top and popular blogging tools today. Along with the basic functionality both of them provide so many extensions through plugins and customization that they can be used easily for developing solutions. Lot of personal blogs have opted out of Movable Type after Six Apart started a paid edition. This has fueled the WordPress community with more users and more development.

In my opinion, WordPress and Movable Type are neck to neck when they are compared on the features and plugins front. One of the biggest differences between them was the multi-blog/multi-user support. Since WordPressMU, the scenario has changed and WordPress can now bagged one of the most critical factors. While there are some differences like, Movable Type using Perl and WordPress using PHP at its base, I will try to omit them as they might not affect the end user directly. Here is a look at the distinguishers other than pricing:

Philosophy

Movable Type has since long supported the static publishing model. This means that a page is created once and then saved on the disk. It is not generated again unless come core design element changes which ripples through all the pages. This definitely can improve performance as communication with the database is not required for serving the pages. However, if there are thousands of pages (which is the norm), change in the design has be followed up with long and slow regenerating of the static pages. However, the newer versions of Movable Type now support dynamic publishing using PHP, but it does not support a wide array of commonly used plugins.

WordPress is a firm believer of being completely dynamic. All the content is stored in the database, and a page is created on the fly before it is served. A high-traffice website can cause high load on the database and can slow down things as WordPress hasto depend on the database for every serving of the page. However, there are certain plugins available that can cache the system and offer better performance.

Another impact of this is that the pages from Movable Type are available as individual HTML pages and can be downloaded individually as a backup. As against this, WordPress users have to backup the database to backup their posts.

As a user, I will go with WordPress, because I feel the dynamic publishing is more intuitive and requires lesser maintenance than static publishing. As a developer, I believe that solutions should be found in optimizations and better designs for better performance.

Templage Tags

Movable Type supports Smarty like template tags while WordPress uses PHP function calls as tags. The main purpose of tags is that theme developers, who might not be familiar with programming languages, can still develop the templates. The tags can be considered to be a API to access the blogging engine.

I like the Smarty tags and how they can enable reduce the programming knowledge required for theme developers. Note that I am saying minimize, not eliminate. Even if they are just tags, there is still logic required to access data in a particular fashion and display it. Matt Read does quite well in convincing that the PHP functions can be considered and treated as tags.

WordPress not having Smarty like tags is not a show-stopper, but the easily accessible global functions and variables do encourage quick and dirty hacking instead of doing the same thing through plugins. But maybe, this is considered as an advantage by some.

Licensing

WordPress is completely open source, and is licensed under GNU General Public License(GPL), in the sense that it allows developers to modify it and even redistribute it. Movable Type does not. This has led to some resentment, but each of them might be valid in their own place. However, for the end user (and the developer) completely open source is definitely beneficial. Personally, as an open source advocate, I voice my support in favor of WordPress.

Customized Syndication

As far as I know, WordPress has the most customizable syndication available. Movable Type does support full and category based syndication, but still not as flexible as in WordPress.

Pages

This, I think, is an underestimated feature in WordPress. With pages, you can create content that is not part of the posts and archives. As simple as it is, this enables developers to use WordPress like a Content Management System to create even non-blog sites. By support of the page templates, it is easy to create forms for search, feedback or contact us.

Movable Type claims that it does not share the target audience with WordPress. However, WordPress might soon be able to share Movable Type’s audience with its strong and fast development

More reading

Technorati tags: , , , ,

Copyright Abhijit Nadgouda.

Portable Apps

Do you move around a lot? Use multiple computers? How many times have you wished that you had your favourite applications to work with on all computers? Then portable apps are for you.

What is a Portable App?

A portable app is a computer program that you can carry around with you on a portable device and use on any Windows computer.

A portable app does not have to be installed on a Windows computer to be used. It can be used directly from the portable media (like USB flash drive) you are using. Without the hassle of installing on every machine, you can carry your favourite applications with you and start using them with a single click.

Don’t assume that the portable app suite has simple and trivial applications, it has open source applications that make everyday working easier. Wait till you see the portable apps list. It includes applications from multimedia players to office suites to anti virus applications. It does not stop here, applications to come include operating systems.

It is all about Convenience

Carrying my office suite, along with my templates and settings, provides lot of convenience and comfort of working. The office suite offers word processors, spreadsheets and presentations (Open Office and AbiWord). There are portable internet applications like browsers (Firefox), email clients (Thunderbird), ftp clients (FileZilla), instant messaging (Gaim) and more.

If you are still not blown away, checkout the Wikipedia’s extensive list of portable applications. The portable applications are not convenient only because the applications are accessible. The value is in ability to carry data along with preconfigured applications. Calendar without the appointments and tasklist is like starting from scratch. People who use vim as their editor know the hassle of not having their personalized settings and plugins accessible. When a whole suite of applications are made portable, it is like carrying your desktop with you.

Portable Apps v/s Web

With the new Web 2.0 hype, focus seems to have been shifted away from desktop applications. Portable apps and Web are not in the same league but they offer some common advantages, especially of being portable across computers. Perhaps a comparison with the web based desktop managers is more justifiable. The biggest advantage of the Web is that it is independent of even the operating system of the computer you are using. The portable apps offer the advantage of being able to work on multiple computers without an Internet/network connection. Both have their places, and are probably not directly against each other. In my opinion, portable applications can satisfy lot of cases and offer better value where the Web adds a dependency of an Internet connection.

Just like in the Web, the disadvantages of networking and using multiple computers still apply. Safe Portable Apping is a good guide to stay away from viruses and malwares. Give them a try and give your opinion.

Technorati tags: , , ,

Copyright Abhijit Nadgouda.

Tools For Compliance With Web Standards

My previous article was to cover the elements of web standards and usability. This one lists free and open source tools available for helping in compliance with these standards.

Wev Developer Extension

Web Developer Extension is an extension for open source Mozilla Firefox and Flock browsers. It provides two categories of utilities – one which will dissect the HTML page that has been visited – analyse each and every component, and a set of tools to test compliance to standards. Because of this combination, it provides critical value in the convenient form of a toolbar.

Disable

It allows to disable individual components like Java, JavaScript, page colors, cache. This can used to test behavior of your web site when Java, Javascript are not supported by the browser or the environment. It also lets you disable, add or view cookies.

CSS

Once a web site is visited, it lets you view and modify the CSS locally. This can enable you to view details of a style sheet (sometimes to identify tricks used) or build up on an existing style sheet.

The biggest advantage of this feature is that you can immediately see the effect of your changes in the CSS.

Information

The Information tab displays details like CSS class IDs and classes, size of blocks, response headers, tab index, link paths and JavaScript. This is typically useful to analyze an existing web site.

Images

You can display image size, paths, file size, hide background images, hide all images and find broken images. It also lets you mark images without alt or title attributes. Images should always have alt attribute – one for accessibility and secondly for better Search Engine Optimisation (SEO)

Outline

This is an impressive feature that explicitly outlines block level elements (div, p, ul, …), deprecated elements, frames, table and table cells. Just like with imgages it can also mark links without alt attributes. This can be used in investigating problems with nested block level elements or making sure that your web page does not contain any deprecated elements. It goes a step ahead to let you define a custom elemen.

More

In addition to this it lets you experiment with forms, display tab index, resize the viewport to a resolution using Resize tab and one of the most useful features – tools for testing compliance with standards. It provides you:

In addition, it lets you assess the accessibility of your web site for Section 508 and Web Accessibility Initiative (WAI)

Optimising your web page is always a challenge. The number of images, the load time, the total number of HTTP requests, size and even recommendations. You can see this in the View Speed Report.

Web Colors

Selecting colors for a web site involves not only aesthetics but also that it must be displayed by all browsers, and the color combinations should be readable by users.

Color Contrast Analyzer

Color Contrast Analyzer is a tool for checking foreground and background color combinations to determine if they provide good color visibility. Determining “color visibility” is based on algorithms suggested by World Wide Web Consortium(W3C)

It uses color difference and color brightness to analyze combination of colours. For example, pure white (#FFFFFF) on pure black (#000000) is not advisable even for normal visibility. You can download and install this application on your desktop and use it offline. It assessment for color combinations are for four different stages of color blindness – Normal, Protanopia, Deuteranopia and Tritanopia. Depending on the profile of visitors of your website, you can consider the mimimal compliance.

Color Converter

Color Converter converts colors between different color systems (RGB, CMYK and HSV) and also provides a web safe equivalent for the color.

Somre more resources are available:

There might be many more such tools available that aid web design and development. I will try to keep this list updated whenever I come across them.

Technorati tags: , , , , , , , , , mozilla firefox, , , , , , , , , wai, , , , , , , , , , , , , , , ,

Copyright Abhijit Nadgouda