Dieter Rams “Less and More”

Dieter Rams “Less and More” Exhibition @ Design Museum

 

Dieter Rams’ ten principles to “good design”

  • Good design is innovative
  • Good design makes a product useful
  • Good design is aesthetic
  • Good design helps us to understand a product
  • Good design is unobtrusive
  • Good design is honest
  • Good design is long-lasting
  • Good design is consequent to the last detail
  • Good design is concerned with the environment
  • Good design is as little design as possible

I deem myself mostly a developer and hardly a designer, but I find myself constantly getting hints and inspirations from design communities which more or less influenced my technical design and implementation. And I believe most of Dieter’s principles can be applied to software domains without problem.

There’ve been lots debates around “less is more”, or “more is more”. My take is that, take such ideas seriously, not literally. Just like what Einstein said, “Everything should be made as simple as possible, but NOT SIMPLER”.

OpenVoice Interview

Actually this one is a bit late, since the interview took place almost a week ago. Anyway you can get a lot more background info regarding JPolite.

http://openvoice.ossreleasefeed.com/2009/11/wayne-lee-on-jpolite-lightweight-jquery-based-portal-framework/

Thanks a lot to Schalk Neethling!

Recovering from a bad cold — luckily not H1N1 Flu :)

Weeks of headache, cough, sneeze finallycoming to an end, luckily no signs of fever at all.

Will resume normal working next week.

Poup and Dropdown menu

Now a popup menu module and dropdown navigation menu support has been added with simple markup syntax and style settings.

Popup Menu Dropdown Menbu

Try out the updated online demo as well as the code :)

JPolite2 – Close to Launch :)

beta

Check it out!

Features Done:

  • Integration of BlueTrip CSS framework, with Grid System applied on column layout
  • Intregration of Gritter as an utility function to notify users
  • Integration with jQuery UI controls plus themes, as well as module drag-n-drop
  • Complete rewritten of code structure, a smaller core with a strong customization system
  • Module Types – various types of modules can be included and applied on modules easily
  • Theme Support – three sample themes with a switcher,  ”Modern”, “Sliver” and “Classic
  • Comprehensive Customization guides
  • Layout Persistencecookie based layout persistence sample, can be customized to save remote store
  • XDO – A RESTful resource presentation layer powered by Chain.js, with messaging and event handling
  • Documentation online

On-going:

  • A generic Theme Builder based on LESS CSS is being developed

JPolite 2 Beta is out!

 beta

Check it out!

Features Done:

  • Integration of BlueTrip CSS framework, with Grid System applied on column layout
  • Intregration of Gritter as an utility function to notify users
  • Integration with jQuery UI controls plus themes, as well as module drag-n-drop
  • Complete rewritten of code structure, a smaller core with a strong customization system
  • Module Types – various types of modules can be included and applied on modules easily
  • Theme Support – two sample themes are given, “Sliver” and “Classical” 
  • Comprehensive Customization guides
  • Online documentation

On-going:

  • A generic Theme Builder based on LESS CSS is being developed
  • XDO – A RESTful resource presentation layer with message processing and event handling, powered by Chain.js
  • Layout Persistence - sample code will be provided on how to save and retrieve module layout data

JPolite2 alpha preview release

JPolite II Logo

A preview finally!

Features Done:

  • Integration of BlueTrip CSS framework, with Grid System applied on column layout
  • Intregration of Gritter as an utility function to notify users
  • Integration with jQuery UI controls plus themes
  • Complete rewritten of code structure, a smaller core with a strong customization system

Ongoing:

  • XDO – A restful resource presentation layer with message processing and event handling, powered by Chain.js
  • Layout Persistence - sample code will be provided on how to save and retrieve module layout data
  • Theme Support – two sample themes are given, “Grayscale” and “Classical” which can be switched from Firefox View menu
  • Module Types – various types of modules can be included and applied on different modules easily
  • Comprehensive Customization samples
  • Documentation …

Notable feature: when you first open the page, you will be prompted to pick a navigation tab style, Kwicks, LavaLamp or “Traditional”. That is, you can pick your favorite look and feel for the main navigation tabs. Which also means you can easily include jQuery UI plugins and customize JPolite2 without touching the core!

The content of the modules are now just for testing purpose, please note not to be misled :)

Gritter, jqModal, Chain, BlueTrip to be integrated into JPolite 2

After some investigation and tryout, I’ve decided to include cool iQuery plugins like Gritter, jqModal as well as Chain into JPolite 2, and some initial integration work have gone smoothly. And these libraries are actually jQuery plugins, that I think it good to build a mechanism for smooth integration of various plugins in a manageable manner.

BlueTrip CSS framework has been chosen as the foundation of CSS where I’ll leave the original framework code untouched and provide only JPolite native customizations. Although JPolite was originally designed without a grid system in mind, I’ll try to align with the grid system to provide better control over the layout.

InvalidAuthenticityToken error in cooked Ajax request with Rails 2.3.2

When moving an old Rails 2.2.2 based application to Rails 2.3.2 environment, I came across the InvalidAuthenticityToken error constantly in all Ajax form requests on all browser platforms. The settings were nothing special at all, a session_key with secret and a mere protect_from_forgery statement …

After numerous attempts it occurs to me that a few requests were successful at times. So after some look and search I realized that the algorithm of form_authenticity_token seems to have changed from Rails 2.2.2 that lots special characters like ‘/’, ‘+’, ‘=’ are included, e.g., “vfbzRs6tLb0xZ/cxaML85y+JODOE+P4klbzue0CIef8=” which I didn’t encode at all in the old code. Reverting back to Rails 2.2.2, I got my hypothesis confirmed, all authenticity_tokens use alphabetic and numeric letters, e.g., “757942043a3b2509365263ef66ff4589e61c2eaa”, no encoding necessary.

So after introducing the JavaScript encodeURIComponent function to encode the authenticity_token before sending out via Ajax, all InvalidAuthenticityToken errors fade away :)

A two-hours lesson!

JPolite now provide SEO support

Initially, JPolite was designed as a starting point for web application building that all modules are supposed to be loaded via Ajax, which make most content invisible to search engines. Now that limitation has been broken with just a few lines of JS code. Just put an module into any of the existing containers, c1, c2 or c3, with an id in the following format {module_id#tab_id}, where the module id must be defined in “modules.js”, so as to enable reloading of the content.

Check out the demo here at: http://www.trilancer.com/jpolite/index1.html as well as the updated code at http://code.google.com/p/jpolite/source/checkout

BTW: a preliminary solution to integrate external Netvibes UWA widgets with iframes has been demonstrated as well.

From now on, my focus will be JPolite 2 that no major updates will be thrown into JPolite 1 except for bugs-fixes.