Archives for category: Technology

As developers we fight with the desire to build useful new services and applications which can attract many users while at the same time reducing the friction that makes it difficult for our average user to try and keep using our creations.

I started observing how people usually hate learning and using too many different tools (except possibly for us geeks), this happens because we have limited resources and look for the maximum utility (this happens most at the cross of the business and consumer markets).

Uncertainty also plays a role in forming our decisions as users, where the perceived value of a new application is decreased by the lack of knowledge about how well it can fit the problems that we need to solve.

This has a few consequences: resistance in adopting new tools since it takes a too big effort to learn and preference for generic tools since they are perceived as more flexible and adaptable to our needs.

To overcome this we may reduce the visible part of the application to a level where the user stops noticing while making sure the user can easily reach the value we add. In the end it will all be about finding a way to give increasing returns for the same effort.

One way to follow this path is leveraging the tools that people are already using, integrating into or with them thus giving new ways to use those “old” and generic applications to do new things. Our invisible application will integrate within the flow of information that the user is receiving, it will remove modality from the interactions and augment the context around the documents and data that the users already handle to enrich the interaction with the same old services. Also, an important role will be played by allowing deep adaptation of the interface, whether automatically or via manual customization by the user (for the italian readers, look also at this presentation by Luca Mascaro).

Just when I was losing to the idea of configuring my macbook for dual boot (or even getting a new machine) to be able to use Windows XP with more ease.

I am using Parallels to be able to do testing of the apps I’m writing on IE (one site I’m working on has more than 1/3rd of users still IE6…) and to be able to recompile and package an old J2EE application using a proprietary framework and builder that works only on Windows :-(

Until upgrading to Parallels 4.0 (which I did yesterday), generating the EAR for said application was taking more than 25 minutes, now it’s just down to less than 5 minutes! The big improvement seem to be in the (shared) filesystem access but also everything else seems snappier and the VM feels lighter on the system.

Overall a highly recommended upgrade to anyone using the product.

One of the selling points of EC2 is that it enables elastic provisioning of computing infrastructure; this allows following novel usage patterns where a server is used only for the time required to do some work.

The key to reach this flexibility is the API that gives developers the ability to startup a server, configure it, use it and shut it down. There are libraries for many programming languages but I like the way the boto python library makes it really simple do these things (and a lot more).

Here I’ll show how to use boto to start a server instance then how to send a file to the instance and execute a command on the remote server, and finally I’ll show how to terminate the instance.
(more…)

Yesterday’s OpenID User Experience Summit (hosted by Facebook) has got together a lot of people interested in building a better user experience for OpenID.

If the process succeeds we’ll be able to have a

world where it won’t matter if you’re on Facebook, MySpace or Microsoft Live – where Yahoo’s content is read by Friendfeed, and your MySpace music preferences are matched with friends in Facebook so that you all can coordinate events on Eventful that you heard about on someone’s TypePad blog and was Twittered about on Seesmic and later indexed and searched by Google.

I’ve been able to follow just a bit of the initial presentations on the UStream but Plaxo’s John McCrea has a detailed live blogging post, moreover all the presentations are online at slideshare (plus here are the UStream recorded sessions)

The first thing I find interesting are the results of the Plaxo/Google hybrid OpenID/OAuth experiment. The stunning 92% rate of click through success shows that the open protocols can be made more effective by implementing a better user experience. Moreover it shows that the users, if given a good enough experience, will not fear to follow a path that’s different from the antipattern they have been (mis)educated to use.

The Plaxo/Google process is awesome if you think about the amount of interaction that is taking place within those two clicks

  • the user is signs up for a new service
  • the service is veryfies his email address
  • the user is grants (scoped) access to the service to a set of his own data
  • the service accesses that data thus importing it and pre-populating the new account

It’s a win-win as this shows how something may be made at the same time

  • safer and more useful for the user (who should not give away his password or let absolute access to his account) and
  • more effective for the service providers (more reliable user data collection, possibly more user signups)

On the downside of this approach is that it will not be easy to scale this beyond the single provider. I hope it doesn’t ends up in a proliferation of single-provider buttons (for somthing that may be implemented with the same undelying technology).

This is a treat without cooperation among the interested parties but looking at the meeting and how the big-cos and many of the smaller players are talking to each other there is hope that it will happen for real.

Cloudification of IT services will be a growing trend in the coming months, one (big) step forward in this process is the announce today that Microfocus has released a virtualized mainframe environment which will let enterprises run CICS and IMS code in the cloud

The real breakthrough is that this will enable a whole sector within our industry to transition to a modern architecture. There are a lot of ISVs which have invested heavily and have a great knowhow in mainframe technologies and those were facing tough times with clients lending towards web services and cloud systems to renew their IT (this is specially true for many small italian software houses working on ERP systems).

With this offering those ISVs will be able to transition current clients to cloud systems and perhaps they will be able to re-engineer and modernize their software one piece at a time as hopefully the Microfocus service will enable new ways to integrate mainframe software and internet services.

I always looked at “Inbox Zero” approach with a mixed feeling: I find it extremely useful to think about action-based email handling but was never sold on the importance of getting your inbox to zero.

Or perhaps I’ve never been able to apply that strategy completely. With the years, and more so after starting to use gmail in late 2004, I’ve been using my inbox as a flow-based interface to the river of conversations coming to me.

My inbox today

I regularly check for new emails, looking at just the first page of the inbox (sometimes just the first 10 emails), if something needs my immediate attention I read it and act on it (replying or applying the TODO label). Colored labels applyed by  filters help me focus my attention on any serious item (e.g. the exceptions raised from my rails apps are marked in dark red ).

I have also the habit of subscribing to many mailing lists (at least one for each of the tools I use regularly), and usually make sure those emails are properly labeled and go also on the inbox (unless the ML is really heavy or if it’s something I don’t care currently).

For the rest I just had to stop worrying about losing some important message and the river-of-emails kind of managed itself, if there’s some important topic I miss (to act upon) it will just re-pop itself on the top: the people will resend the email, the mailing list thread will receive more messages, … (If it doesn’t re-gain the top spot it was probably not that important).

I specially like default format for the message list which got rid of the three pane layout and automatically organized email threads by reverse chronological order while showing not only the subject but also the first few words of the body (moreover it doesn’t sweat if you throw 10’s of thousands of emails). This is just one example of the reasons making gmail just about perfect for doing email my way (or perhaps it’s just a case of a tool that shapes the habit of its user :-) )

P.S. This is something that I wanted to put down for a while, but just got around after reading this article, which worked as a ping popping up on top of my river-of-news reader :)

I just added a way to autmatically add url shortening to each post. It uses the bit.ly service and their nice widget which opens a small box into the page with the shortened url ready to be posted on twitter or other services, and shows a nice set of metadata for the post itself. Here is how it looks like:

Bit.ly metadata for a post

Bit.ly metadata for a post

To add it I modified the template adding this:

at the bottom of each post single-page template (single.php) and at the bottom of each post in the main index template (index.php)

Here is a small script I’m using to backup files to S3. Actually it implements all the basic operations you need for S3 (bucket creation, listing, file upload and download).

It’s rather trivial but I was able to keep it so simple, thanks to it’s use of the Boto python library to do all of the AWS heavywork. Anyhow I think it may be useful.

A few examples:

Here is the code:
(more…)

This is so amusing: buttons is a blind camera, or better a camera that doesn’t make photos but rather that shows you the photos that other people have taken in the very same moment.

It pushes to the limit the act of taking photos to remeber moments, it just records the time and day, and connects your memory of that moment with what someone else (somewhere else) were experiencing.

technorati tags:, ,

My article Tips for Optimizing Rails on Oracle has been published on the Oracle Technology Network site! I can’t say how much i liked working on this.

I tried to synthesize in one place all that needs to be known to make the best from the two technologies and explained all of the tips in oracle-specific terms.

Rails on Oracle comes out as a good performer, but my only regret is that i did not have time to investigate (and maybe contribute back to the community) on adding proper bind variables support to ActiveRecord, which would have been the definitive optimization, but I see that the subject is being actively discussed on the core developers ML, so we may get there soon ;)

On the side, for those interested, I made “a Rails “version” of the HR schema that has been modified to directly comply with the common Rail conventions

I hope that what i wrote there makes sense and I’d love to hear what you think!

technorati tags:, , , ,