Main

September 30, 2006

With 'Dapper', you can treat the web like a database

What is Dapper? Well, according to the creators, dapper is...

... a service that allows you to extract and use information from any website on the Internet. For those familiar with web services, you can think of Dapper as an API maker. For the rest of you, Dapper allows you to build web applications and mashups using data from any website without any programming.

This means that you can treat the web like a database - well, almost. You can also call it a glorified screen-scrapper' with an Ajax frontend and a service to back it up.

A long time ago, I was inspired by an article with a similar theme. The title of the article was '.NET Web Data ToolKit'. You can find it here.

If you compare the two, with Dapper, we get the data published in standard, easily consumable formats like XML, RSS, JSON etc. With 'web data toolkit' (WDT), it is more programmatic and the results are returned as ADO.Net data sets. The author Tony Loton describes WDT as...

...a toolkit that allows you to SELECT nuggets of information FROM live web pages as though selecting from tables in a relational databas, using industry-standard SQL. Imagine if you could capture the results into an ADO.NET DataTable, allowing you to treat web data like any other data source.

Though this is a powerful idea, it has some drawbacks. To start with, we are dealing with some-one-else's data - it is after all screen scrapping! If you are OK with it and wants to take it to the next level - say, take any set of web site(s) and then mash them up to create totally new web services, then you stumble upon the next drawback. Which is the lack of a workflow.

In most non-trivial usecases the website exposes the data by taking the user through a sequence of steps. An example step could include a login, followed by a click on a link (say my account name) which than takes me to to my data (say my account details). So to get to the 'real' data, the user have to follow multiple steps and certain steps could be involve HTTP 'POST' and not get just simple "GET's. So the service should have support for executing a workflow of steps. On each step, we should be able to control the actual HTTP data being send to the server and also be able to specify alternate control path if things go wrong. So the support for a WorkFlow engine is critical.

The next problem with Dapper would be privacy. I cannot create a web service with Dapper to get to my personal data (say my bank details) as I would have to share my login credentials with the site. So what we really need is a toolkit that I can embed in my application - similar to Web Data ToolKit.

August 26, 2006

Windows Live Writer (Beta)

I am writing this post using Windows Live Writer (Beta). Currently the beta is available for download here.

I am pleasantly surprised with its capabilities. To start with, it can connect to blog services other than Windows Live Spaces. And once it is configured, it downloads even the visual theme from the blog site. So while you are editing the blog, the visual theme is presented.

Windows-Live-Writer

the tool also exposes a plugin API (currently available here).

Quite a few plugins are already available. One of which (flickr4Writer) allows you to insert images from Flicker (and this is the plugin I used to insert the above picture).

August 25, 2006

Consequence of the end of 'The Free Performance Lunch'!

In the article titled 'The Free Lunch Is Over: A Fundamental Turn Toward Concurrency in Software', Herb Sutter explains the importance of improving our skills on writing concurrent programs - ie if we need to gain performance gains form all the multi-core CPUs that are coming out lately.

In this light, I have collected a series of articles that discuss this matter in detail.

Hope this helps.


technorati tags:, ,

July 20, 2006

Web 2.0 tools to help plan and track my vacation

This is to list the set of web 2.0 tools that I am using to plan and track my vacation.

Google spreadsheets:

We are using Google Spreadsheets to consolidate all the data that we are getting from the web.

This is really useful when multiple people are simultaneously gathering data (my brother and sister-in-law who are currently in Belgium are also actively involved). With this tool, I can share my spreadsheet with multiple people and all of us can simultaneously edit the contents. This also helps in keeping the data always in sync.

Great tool!

Yahoo Trip planner:

Yahoo trip planner helps in trashing out the next level of details in the trip schedule.

The process starts by specifying the start and end date of the trip. Once this is doe, we can start to add meat to the schedule.

Yahoo also facilitates this process:

  • It lets you check what others have done on similar vacations
  • Helps you decide on what to do at different locations, by giving a list of things to choose from (with user reviews/ratings).
  • Also integrates with Flickr. So if you have uploaded some photos, this tool helps you associate different photo with different locations.
  • Helps in creating a trip journal.

I have just started my planning here. Again, this tool helps in keeping the plans made by all of us in sync.

Google calendar:

Though Yahoo trip will help you create an agenda for the vacation, if we need more fine grained detail, we need a real calender. That is where Google calendar comes in.

Google also lets you publish this calendar where ever you want. And of course, multiple people can simultaneously add to the calender.

I have published our calender at my site here.

technorati tags:, , , ,

July 13, 2006

Google Desktop 2.0 seems to crash Lotus Notes

After installing Google Desktop 2.0, I have observed that my Lotus Notes tends to crash whenever I browse web pages from within Notes.

An easy workaround that I found is to configure Notes to use an external browser.

technorati tags:,

Intuitive error messages in Windows Vista

I guess this is self explanatory...

technorati tags:

Vista System Performance Rating

I managed to install 'Windows Vista Ultimate' Beta 2 (Build 5384) on a Dell Precision work station 360. The machine was running a 3.2 G Hz Pentium 4 and had 1GB main memory and 80GB SCSI disk. It also had a NVIDIA Quadro Fx 500 display card with 128 MB graphics memory.

Pre Windows Vista, the above configuration can be considered 'good-enough' for normal usage. But I was surprised to find that the Vista gave it an overall System Performance Rating of just 2!

With this rating, Vista will not enable the 3D desktop features. I guess, 128 MB graphics memory is too little for Vista!

technorati tags:,

November 21, 2005

You can speak freely, but they will hear you only if you pay!

Strange! But that is how the Internet works. There is practically very little entry barrier for publishing content (one's opinion) on the Internet. But unless you have the right currency or asset, the rest of the world will not be able to see/hear your what you have to say.

Let me explain this in a better way. For most people, search engines have become the primary entry point into the web. The result of a search is sorted based on relevance that the search engine associates with that particular content. Though most search engines have different ways of finding relevance, the most popular way of inferring this is by looking at what other Internet users have to say about the specific topic.

For newly published content, this will result in a catch-22 situation. Because the relevance is low, others users will not be able to find this. And unless they are able to find this data, they will not be able to vouch for it. The easiest way out of this situation is for someone (or site) with higher relevance (or 'page rank') to exercise their right to vouch for this content. This is exactly the currency that I mentioned before.

It is because of this need that sites like digg have become so popular. But even with Digg, the problem is not fully solved. I will explain this in greater detain in a subsequent blog....

November 10, 2004

Firefox 1.0 Released

Firefox 1.0 was released today. They have added some nifty features like 'smart keyword search' and search box in the Navigation toolbar, integrated with I'm Feeling LuckyTM Google search in the Location bar.

I have downloaded and installed the same and enjoying it...

October 23, 2004

Interesting Site...

Contains a long list of what they term as 'standards'.

Whenever you're doing something more than once there should be a standard. SSW standards manage our coding, project management, email and phone communication. However, we don't follow them blindly. If someone suggests a better way of doing something, then we change the standard.

July 25, 2004

Interesting project that I would like to monitor..

RAIL - Runtime Assembly Instrumentation Library
This project plans to implement an API that allows CLR assemblies to be manipulated and instrumented before they are loaded and executed.

Visual IL
Visual Studio editor and project for IL files. Works only with Visual Studio 2005 :-(

IlReader
Subclasses System.Reflection, and provides read-only access to raw IL instructions. From the same person who wrote Reflector for .NET

AbstractIL
Abstract IL is a toolkit for manipulating .NET Common IL binaries. This is from Microsoft research.

July 20, 2004

Finished creating the Lotus plugin for Timex Datalink

Timex PIM Software As mentioned in my previous blog I was working on a Lotus Notes plugin for the Timex PIM software. I am happy to say that the basic code is now functional and I will be able to upload a version very soon.

Pending Issues:
  • Memory Leak - The PIM software expects the plugin writes to allocate memory using the operator 'new'. According to documentation, the software will internally free this memory. I think this is causing a strange bug (I am not sure about this). The Timex PIM software is compiled using and older version of MFC than what I use (for creating the plugin). So when the PIM software tries to delete memory that I allocate, it throws an exception and will result in a leak. I guess they should have used a library independent way of memory allocation like the CoTaskMemAlloc().  
  • DSN configuration - The code that I wrote uses the ODBC driver for Lotus Notes to get the data. If I have to distribute the plugin, I will have to provide some utility to set up the DSN.

July 7, 2004

Direct Download Links to VS8 Beta

These are the direct download links as provided by Microsoft:
I got this information from here. I am just reproducing it here so that you dont have to search.

MSDN : http://download.microsoft.com/download/d/5/f/d5fbf037-59b9-4906-b20b-de5dd544de12/msdnixp.exe

C++: http://download.microsoft.com/download/1/f/9/1f9c364a-7835-426f-a12e-238bdf8e3ebf/vcsetup.exe

C#: http://download.microsoft.com/download/8/c/7/8c784f26-8e95-43b9-90b9-56b511220dfb/vcssetup.exe

dotnetfx2.0: http://download.microsoft.com/download/9/6/6/9666067a-660f-48e0-a755-a83a81036b67/dotnetfx.exe

SQL Server 2005 Express : http://download.microsoft.com/download/c/f/8/cf872b5a-509b-44ce-b5ac-e693f7aec971/SQLEXPR.EXE

WebDev : http://download.microsoft.com/download/6/e/1/6e1e9b98-928c-45f0-b44b-39f205090446/vwdsetup.exe

VB: http://download.microsoft.com/download/3/f/5/3f52b37c-92a4-4ce0-9de0-0376165e5461/vbsetup.exe

J#: http://download.microsoft.com/download/b/3/4/b34f6e5a-5ae8-4aec-b3dd-d1d0e0af8fac/vjredist.exe


Please let me know if these links do not work.

July 6, 2004

XMLSPY 2004 Home Edition

Altova has released a free version of XML Spy for home use. You can refer to the feature matrix here.

July 5, 2004

Paint.NET: MS Paint replacement

I was browsing through and I found a good replacement for MSPaint called Paint.Net.
A free download is available. Have fun....

Paint.NET is a senior design project aided by a mentor at Microsoft. It is a paint program designed entirely by students and written using Microsoft's .NET Framework. The program makes it easier to create and edit photos. It maintains some of the best features of the original MS-Paint application and includes new, powerful tools. Such new tools include a history storage for undos and redos, and powerful multi-layering which is often seen only in high-quality, expensive photo-applications. This product was engineered with the latest in graphics and coding technology such as the new C# language from Microsoft, and the GDI+ graphics libraries. These programming frameworks allowed for the creation of a speedy, responsive application with an amazing array of graphic capabilities.

Archives

Subscribe by e-mail

Creative Commons License
This weblog is licensed under a Creative Commons License.