Archive for the ‘Design’ Category

Defining Web 2.0 - At 3 Levels

Wednesday, January 23rd, 2008

Web 2.0

Web 2.0 - almost everyone have heard the term - but few are sure about its meaning. Unfortunately, it cannot be defined easily. People in different fields have their own unique definitions for the term. In this article, I will attempt to define the term at three different level - the Philosophy, the Technology and the Design.

Disclaimer: Before anyone reacts violently to the term Web 2.0, let me make myself very clear…
Web 2.0 is an ambiguous buzz word. It has been used and abused so many times that it does not have a consistent meaning - so people are free to interpret it as they see fit. And this is how I interpret it.

Philosophy

The design philosophy of a web site can make it a Web 2.0 site. This is perhaps the key difference between a Web 1.0 site and a Web 2.0 site…

Web 1.0 is a web site where there is a one way communication between the web master to the visitor. A Web 2.0 site is a site where the visitors can communicate with each other.

For example, compare the Encyclopedia Britannica to Wikipedia. In Encyclopedia Britannica, the web master creates the content and gives it to the visitor - the visitor has no way of talking back. But in Wikipedia, the visitor create the content for other visitors.

Technology

The keyword here is “Internet as a platform”. In Web 2.0, the net became the platform rather than just a data transfer mechanism. For a simple example, when you visit a site, the videos in it come from YouTube, the images from Flickr, the search is done using Google API and you can bookmark pages using the API from del.icio.us.

Some technologies that are described as Web 2.0…

  • Ajax
  • Valid Markup
  • Microformats
  • Tagging, Tag Clouds
  • APIs
  • Feeds
  • Mashups

Some features that makes a technology Web 2.0…

Speed
For example, Ajax makes simple tasks much faster.
Ease of Use
A good example of this is Tagging. It is a much easier approach when compared to hierarchies.
Enabling Mashups
APIs, Feeds, etc. makes this possible.
Bringing Web Apps closer to the Desktop
Ajax, AIR, etc.

Design

This is perhaps the only area where the term Web 2.0 can be defined with a reasonable level of accuracy. A site with a Web 2.0 design is one that has at least some of these elements…

Simple Design

Stonewall

Lots of white space

Browse Happy

Nice Icons

37Signal Icons

Violators/Badges/Star Flashes

A List Apart Violator

Big Fonts

37Signal Font

Gradients

Stonewall

Reflections

Curve 2 Reflections

Shadows

Shadows

And More…

Web 2.0 Design Style Guide

For More Information

A Secret Source for Great Free Icons for your Desktop and Web Apps

Wednesday, December 5th, 2007

Desktop and Web application needs icons. Icons make the app more usable than an all-text application. If you are building a desktop application, your framework may provide some stock icons. But if you are making a web application, you will need external icons.

I have seen a lot of pages that lists many icon sets…

But when I want some icons I have a better place to look.

KDE and Gnome Icon themes.

I prefer using these icons because of the following reasons…

Multiple Size Icons

Most themes provide the same icon in various sizes. The available sizes are 128×128, 64×64, 48×48, 32×32, 24×24, 22×22, 16×16 and sometimes even a scalable SVG set. Not all themes have all the sizes - but most have. I don’t have to tell you how useful this is.

Multiple Size Icons

Lots of Choice

KDE Look Icons page have 86 pages with 15 icon themes per page. That makes a total of 1290 icon sets. And I am not counting the Gnome Look Icons.

That’s a lot of choice. Granted, not all will be good. Not all will have the icon I am searching for. Not all have the size I way want. There will be some duplication. But its still a lot.

Free - in both sense of the word

Most of these icons uses GPL and LGPL licenses. So you can use if for your application without paying for them. You can modify them. You can share it with others. You can… you get the idea. The point is there are no restrictions.

Even if you are building a proprietary application, I think you can use the icons because you are not compiling it into the application. But I am not sure about that - if anyone reading this knows, please leave a comment.

I have to warn you that not all icons sets use these licenses - so make sure you look at the license of an icon set before using it.

Great Icons

Most of the icons are created by professional designers. Sure there are some duds among the collection - but the majority of them are good.

Some Recommended Icon Sets

Crystal Project

Crystal Project

Nuvola

Nuvola

Crystal Diamond

Crystal Diamond

black + white icons

Black White

Crystal Clear

Crystal Clear

And there are hundreds more for you to find out…

Tk Verses Gtk(And Python verses Tcl)

Wednesday, October 31st, 2007

Back when I was using Windows, I searched for some language that would let me create GUI application. I knew C++ - but creating a GUI using C++ was very, very hard. After some searching I found Tcl/Tk - it was perfect. I liked Tk so much that I used it to create GUI in perl programs. And in Ruby. And in Python. I even wrote tutorials for Tcl/Tk and Perl/Tk. Then I discovered Linux. initially I was glad that I did not choose VB - that would mean that I have to throw away all my custom programs. But since I used open languages like Tcl, Perl, Ruby etc, they will run on Linux as well.

But when I actually ran the programs in Linux, I got the shock of a lifetime. The applications I created looked bad - really bad…

TK Screenshot - Ugly

I still use many Tk programs - but because of the looks issue, I decided to stop using Tk for my new programs. So I decided to try GTK. I even created a small application using PyGTK(my first) to view the harddisk space usage in Linux - Frees.

Frees Screenshot

It was a very simple application - all I had to do is run the ‘df’ command, parse its output, and display a small table using that data. I was expecting around 100, 150 lines of code at the most. But after I created the app, I have 500+ lines of code.

At first, I thought that it was a mistake on my part - I thought that I was not using the best method. But then I came across an article in Reddit - gnocl or PyGtk?.

PyGtk is still the most recommended binding for Gtk. A lot of programs in Linux is written using PyGtk. So naturally there are a few advantages for using it…

  • It will be the more ‘road-tested’ binding.
  • Many system will have it installed by default.
  • Bigger community - so…
    • more support
    • more examples
    • more tutorials
    • etc.

One the other hand, I have to write more code.

Conclusion

If it is a private script - only useful for myself, then I will use Tcl/Tk or Gnometcl. If the script could be distributed, like Frees, then I will use Python GTK.

What about the other options…

  • wxWidgets
  • PyQT
  • Ruby/GTK
  • Perl/GTK

Any recommendations for me on which library to use? Please leave it in the comments.

Subscribe to Feed