Better Software

Dan Hon contemplates:

Consider what would happen if we kept a rolling record of everything that had been done with files in a CVS-alike manner: now we can undo past save points.

n one mode of editing our mammoth every-version-ever Letter to Aunt May, there’s a scrolling timeline at the top of the document window. At the extreme right hand side is “now”, and at the extreme left hand side is when your letter was first created. We can scrub through this timeline and watch every single change that was made to the document. We can even scan through its history to find changes that were made at a specific time.

The timeline-scrubbing is but one way we can represent the temporal aspect of a file’s life. What we’ve been concerned with so far has been WYSIWYG with no regard to the actual history behind What You Saw: another way of visualising this mass of historical data is as a tree, with large edits becoming branches that may or may not be merged back with the trunk at a later date. A further way is as a composite: documents constructed from blocks that change over time.

Good point: I lost some stuff I wrote yesterday because I forgot that OpenOffice does not do an auto-save of files not in its native file formats. When these kind of things happen in today’s era where processing power and storage are no constraint, one has to wonder why we haven’t been smarter on the software side.

Email Templates with XML

This is for our software team:

One feature that seems to eventually creep into every web application is the ability to send email. Generally, it’s a very specific kind of email, like a password reminder, welcome message, order confirmation, or receipt. Despite the fact that the content of these emails differs from application to application, the process of sending email rarely changes. You construct a message, give it to the mail server, and it gets delivered.

One alternative approach is to use XML for the email templates, and that’s the approach I’m going to discuss in this article. XML provides great flexibility in how you structure your templates and does not have the same strict formatting rules as property files do, so it’s easier to maintain large strings. The main downside is that XML files can be trickier to deal with than property files. With a property file, it’s easy to load the files and it’s easy to access the properties once they’ve been loaded. On the other hand, it takes more work to load the XML file and process it using one of the many XML processing libraries provided for use with Java.

RSS’ Missing Bits

David Galbraith writes:

On the detailed level: RSS content is so unnormalized as to be almost useless for commercial applications. To build a searchable index of RSS content you need access to the full text of stories – and commercial publications are not going to syndicate the full text of stories – but you don’t need to syndicate the full text of stories to index them. Encouraging the use of tokenized full text (i.e. remove stop words such as and, or, the etc.) allows for machines to index full articles but leaves humans to visit original publishers sites for the full article. This should be the default content of a ‘content’ tag and needs to be built into the default output from weblog publishing tools.

On the medium scale: because of arguments over the RSS core, not enough focus has been made on tools to create modules and allow extensibility. Forms need to be built into applications such as Userland’s, Blogger and Moveable Type’s to allow end user creation of RSS modules within a users namespace and without having to have users have any need to know about the underlying XML. Rapid adoption of modules will take syndicated content beyond the headline/link pair that is the only metadata currently being syndicated in any volume.

On the larger scale: content and the weblog API are two parts of the whole – most important of all perhaps is the ping server and related specs. In order to build personalized aggregators of real-time information, all of a weblog post needs to go to a neutral third party ping server and the ping server needs top have an API that allows clients to be alerted of changes in real time without having to scrape the ping server. Do this and you don’t have 15 minute old Google aggregated news but real time news – the stuff that people like Reuters know the value of.

Continue reading

IT and Sustainable Workshop

On June 26-27, 2003 a number of experts from many countries and organizations gathered at a workshop at the World Bank in Washington, DC to discuss impact of information and communications technologies on sustainable development. The workshop was organized by Carnegie Mellon University with the support from NSF, World Bank and UN. Presentations from a recently workshop . (via Reuben)

TECH TALK: Reflections on Ideas and Entrepreneurship (Part 4)

Accept failures and move on. We launched Emergic Freedom as a thin client-thick server solution a year ago. If someone had told me then that we will only sell a few in the course of the next year, I would not have believed that person. (Optimism, you see!) But that is the reality today. We have to accept that we have not done well. But it is only from our failures that we learn. We now have a much better understanding of the marketplace and of the needs. For example, we ignored the need for running Windows applications and placed too much of an emphasis on the software value. We were wrong on both counts. SMEs in India not only use pirated Windows and Office software, but they place very little value on the software. So, we have not positioned our solution as one which reduces desktop hardware costs, besides making it a bundle with server hardware and support. We have to accept the reality that the initial approach was a failure. Will it work this time around? Watch this space!

Imagine the worst-case scenario. Too often, we only think of the brighter side of things. Nothing wrong with that. But when trouble comes, we are usually taken by surprise. It helps to think through possible things that can go wrong, and what the worst-case scenarios (broken partnership / friendship, financial losses, loss of time, legal troubles are some examples), and have at least a mental preparedness to face the situation if it so happens. Imagine the worst, work to avoid it and build the best.

Leverage the geography of where one is. For a long time, I would feel that I was at a big disadvantage being in India when all the action was in the US. I kept wishing that I was there. Because I kept wishing for a change of geography, I failed to see the opportunities around. And when I did, I was amazed. India has 3 million SMEs and 600 million people in villages. And guess what I am close to them! Can I use that to my advantage? In fact, over the past year, Indias position as part of the global technology supply chain is becoming all the more entrenched with the outsourcing and the offshoring that is taking place. Suddenly, India is the place to be. Who knows India better than us? And if we can make things work in India, there are markets 4-5 times larger than ours in the other emerging markets of the world.

Every Idea has a time and place. I had thought of the SME Tech Utility more than 2 years ago. But then, I did not know how to build it out. As I thought about creating a low-cost eBusiness software, I realised that in SMEs in countries like India, the hardware to run the software was missing. So, I had to look at creating an affordable computing solution. That started off another chain of ideas. Now, I am back a full circle, with a whole solution to target SMEs hardware, software, training, support, channel and financing. Another example is about RSS. I had thought about it more than a year ago the idea that RSS could be the base for a new publish-subscribe web. Again, then, I did not know how it would get executed. Now, the building blocks are seemingly in place to give it a try. So, ideas dont go away they rest till they are needed.

Tomorrow: Part 5

Continue reading