Posts Tagged ‘Web development’

Real-Time Economy Community wins at WSA Finland

Thursday, October 9th, 2008

I’m a the MindTrek conference in Tampere, Finland. Great news is that we won World Summit Award (WSA) Finland in e-Business & Commerce category with a project called the Real-Time Economy Community. It’s a service my company Dicole created together with a great team from Tietoenator and Helsinki School of Economics from concept planning to technical implementation in a Tekes supported project.

RTE community idea is to bring together private sector (companies & service providers), public sector (policy makers & related associations), researchers (Helsinki School of Economics has a competence center around Real-Time Economy issues) and the crowd of people, who struggle with digitalization in their daily working life.

Real-Time Economy points towards a world where transactions, interaction and processes happen simultaneously in real-time. The industrial era of linear cause-and-effect is behind us, organizations need to understand non-linearity, complexity and agility in increasingly changing conditions. The first step is perhaps wide adoption of electronic invoicing to save time and trees, but Real-Time Economy also includes the way collaboration is done in the future and how businesses work with their customers.

Real-time doesn’t mean things that happen literally in real-time, but depending of context things should happen without any unnecessary delay in an integrated, simultaneous and networked manner. We believe this kind of world for business and commerce is not yet very well understood and we want to bring together different players working on this arena.

Real-Time Economy Community will represent Finland in the World Summit Award (WSA) 2009 contest next year.

“We might already be beyond the age of speed, by moving into the age of real-time. The move towards real-time is one way out of the world of speed” – Ivan Illich (1996)

Greetings from the API jungle

Friday, September 1st, 2006

Recently I’ve been quite busy at work, doing lots of interesting social software related projects with various customers. In the middle developing non-technical methods, I have sticked my fingers back into tech side by implementing some nifty Web 2.0 blogging APIs into our Dicole Knowledge Work Environment software. Dicole now supports Blogger API, MetaWeblog API and MovableType API, which are all XML-RPC based. This opens up great possibilities in the organizations I work with, including mobile blogging and one-click publishing.

During that process I tested over 50 client software components (on platforms like Windows, Mac OS X, Linux, Pocket PC, Palm OS, Java, Web services etc.) that support the mentioned APIs. My review must have been the most extensive to date done by anyone. I took notes while I progressed so I might release a paper later on the various tools and my experiences with them.

Regarding the APIs, I have to say it’s a total mess. Blogger API was first, then it was extended by MetaWeblog API, which was further extended by MovableType API. The design of those later APIs is just to patch the previous API, rather than fixing the problems for good.

One serious problem is return error codes. If an API call fails, there is no consistent way for a client software to take action based on the error codes, as there is no standard set defined anywhere.

Another is appkeys (for tracking API usage) introduced by Blogger API. As other APIs build on top of Blogger API and ignore this feature, the way you call the API is highly inconsistent.

Uploading media through the API encodes the data with Base64. This makes the upload about 30% larger than with binary uploads would be.

The APIs are also lacking some fundamental features that would enable creation of much more powerful client tools.

Because of these and many other reasons, the client software products often interacted inconsistently with the APIs. Some supported UTF-8, some didn’t. In some tools you could select multiple categories, in some only one. Some had support for HTTPS connections, most didn’t. Rarest was support for server authentication methods.

There is also one fundamental problem that also plagues almost every other Web 2.0 API out there, and that is proper authorization. Often username and password go over the wire in plaintext, easy to interpret and steal by anyone. Often these access credentials also give full access to the software through a web interface. There are no temporary access keys. There is no limited API access. It’s all or nothing and the APIs implement no calls to check for available methods (expect MovableType API, but I believe the feature is not implemented by many client implementations). If I use third-party web services like Flickr to access my blog, I can’t authorize Flickr for access only once, it’s all or nothing. My password will be in their database. I can’t block or limit Flickr from the API side as there is no way authenticating the service provider accessing the API.

Despite their flaws and hackish nature, these APIs open up the gates to innovation, service provider interoperability, usability, productivity, even indepence as you can change the provider while your working interface remains the same. For me it means I can just hit F8 and start typing, even offline, and then choose where this post goes in the twenty blogs I contribute to. Right now I work over an unstable 3G connection through my mobile phone, so I wouldn’t trust any web interface for this text, but I can trust my client software.

Weblog usability

Monday, October 17th, 2005

Jakob Nielsen, the usability guru, writes about weblog usability. This is good reading for anyone who runs a weblog, as it highlights common mistakes both in writing & linking as in navigation.

I just moved my blog from blogspot and settled on WordPress as my personal publishing platform.

What I notice now with the usability critic hat on, is that a lot of weblogs include bad practices in their default installations.

For example, in this blog if you click on any entry (in the now default Kubrick design you can’t even see that the title is clickable), you get on a page that has no link back to where you came from, no clear links back to front page and no breadcrumbs or anything like that. Sheesh, what usability is that.

I need to fix this in my own blog when I have time. I also think I have too many categories to choose from. I need to focus the topic of this weblog more on social software.

Behaviour is the missing link of AJAX

Wednesday, August 24th, 2005

Behaviour is very cool. I’ve been looking at AJAX for quite some time to make Dicole more responsive, just like Flickr or Google Suggest. Preventing code pollution is a worthwhile goal at the same time, so Behaviour is quite handy.

As a side note, I’m starting to blog here once again after a long summer break. I’ve also been quiet at Flosse POSSE blog. I have a nice blog coming that focuses on social software, knowledge management, experiential learning and stuff like that. I’m also planning a tech-only blog which I will write on the developer site of Dicole. These and some more coming as we go forward. I wonder what happens to this one as I move more focused writings to other sites.. It’s likely this will remain as a personal space which is not that much connected to my professional life.

Google Suggest makes JavaScript acceptable

Saturday, December 18th, 2004

Some time ago I checked out Google Suggest, a search engine that does suggestions for you as you type.

Originally I have always thought that using Javascript or any other client-side scripting language is evil and the root of several problems (not just security, but compatibility as well).

Lately I have started to shift towards thinking that JavaScript is acceptable if it makes the experience richer or enables some shortcuts not otherwise possible. Especially I find Javascript useful for usability purposes. The key is that the application should work without JavaScript at the same time, so that client-side scripting is not required. Google Suggest takes things a step forward in usability and speed by involving server-side processing by using XMLHttp objects for transmission.. Awesome.

Google has restored my faith in client-side scripting, first with their great invite-only Gmail service and now this. Our usability guy Tony has also made some really nice tricks with JavaScript in our Dicole product and there is more to come..

For a technical description of how the Google Suggest works, check out this great analysis of the code.