Monthly Archives: October 2011

Desktop Web Application

Are you frowning reading the title of this post? I recently finalized on developing my next commercial application. These days everyone is jumping to SAAS but my application has to be a desktop app running on the users machine. It is going to have a lot of reporting and charting. So, the best option is to make it as a web application and get all the power of HTML and JavaScript for presentation.

In the past, when I wanted to develop such an app, I used Java, Tomcat and Derby for Programming Language, Web Server and Database respectively. Both the web server and database were used in embedded mode.

Fast forward a few years, now I am moving to a different tech stack. I wanted to use sqlite3 which is more flexible and that rules out Java (I didn’t wanted to rely on any non-native jdbc drivers). So, I had to decide between Perl which I am quite familiar with and Python which is all new to me. Given the raising (and may be lowering) popularity of Python and decline of Perl, I decided to go with Python.

So, my current tech stack looks like this:

Programming Language : Python
Database: Sqlite3
Web Server : CherryPy
Templating Engine: Mako (I evaluated a few, this is one of the 3 recommended by CherryPy and found the syntax to be less verbose)
Javascript Libraries: JQuery

While researching on some of the Python Libraries realized that Python 3 is not backward compatible with prior 2.x releases but I decided to go with Python 3 (how can you not have nonlocal when you need to exchange info between a callback function and the code that invokes a function that triggers the callback?)

Still need to research on JavaScript libraries for Graphs (using Canvas of HTML5 that do client side rendering). I also need to decide on the type of data presentation for large tables. I want to be able to load the data on-demand as the user scrolls down and not all at the beginning. As I learn from all this, I will update any additional components I might decide to use.

My end goal is to make the app usage as well as app installation as smooth as possible. At this time I don’t know how to make the installation smooth since there are some python libraries that are not part of the standard libraries that I am using. While these 3rd party libraries have licenses that permit including them into my software, I need to figure out if it’s best to get the end users install them from the respective websites or I should provide a way to do it via my software.

I am excited about this new project and more so doing it by learning a new programming language and tech components.

Update 1: For client side charting, I looked at multiple alternatives and finally decided to go with Google Chart Tools.

3 Comments

Filed under Desktop Application, Python

How I Miss Google’s Login To Multiple App Domains Simultaneously

Over the last few years, I ended up with multiple domains all registered with Google Apps. One of the things that I was amused with Google Apps was their ability to allow me to sign-in simultaneously to more than one account. I could sign in to the regular gmail account and one or more of my domain related mail accounts hosted by Google Apps. But something happened a few months back and now I can only sign-in to one account at a time. I don’t know what prompted them to take away this feature. Around the time this started, they also used to show some intermediate page about business account vs personal account and I don’t really understand what they are trying to say, sort of. It probably could have been presented much better.

If you are a web developer, you would know that typically cookies are used to support session and typically one flow is supported per session. There are very few RIA frameworks that can support multiple flows in the same session. They do this by using different flowids and then tracking the backend model at the flow level rather than session level. Infact, J2EE specification only has 4 scopes : request, page, session and application. Flow scope is not something easy to implement and only a few frameworks support them.

So, obviously I was quite excited by the fact that Google supported the ability to login to multiple Google Apps accounts at the same time all accessed via their domain. But that’s gone now and don’t know if it would ever come back.

1 Comment

Filed under Google Apps

In Online Realestate Websites We Trust

Last few months I have been very closely following the listings of each home put up within our zipcode. There are some things I like about Redfin and there are some I like about Zillow. It’s always like that, isn’t it? I mean, you never get what you want from just one thing. I have not only been following the listings for sale but also when they are sold, supposedly.

Why am I saying supposedly? Here is the thing. For some of these listings, Redfin shows as “Sale Pending (MLS-Listed)” while Zillow shows “Listing removed”. So, what really happened? Did it get sold or the seller decided to pull out the listing? One would think that such a simple yes/no question would have just one answer everywhere. But that doesn’t seem to be the case.

Similarly, in another case, Redfin indicated that the home is not for sale any longer (initially it did show that it’s for sale) but on Zillow, it still shows that the home is for sale. So, why is it that Redfin knows about the removal of the listing but not Zillow? Or is it the other way, where Redfin thinks that the home is off the market? I can understand a delay of a day or two since they have to get their data feeds from some where and one could have more recent info than the other. But when you see this type of high level data discrepancies for weeks, it makes it hard to decide on whom to trust.

2 Comments

Filed under Realestate

Smart Phone Without (Unlimited) Data Plan

This is based on a recent conversation I had with someone from India. On an Indian festival day this person bought an Android based Samsung Galaxy 3 phone. She wasn’t exactly sure how the smart phone works, just wanted it because others have it :). I don’t know the various data plan options in India but in the US, it’s possible to pay a flat $30 or so (in addition to the voice plan) and get unlimited data plan. While it started off as unlimited, with the explosion of mobile devices the telecom companies are introducing caps, but still the limits are reasonably large for casual users.

Anyway, so it seems this Andriod phone came with an app to access Gmail and this person set up the Gmail account. It seems the Gmail app didn’t have a logout option and her concern was that it might be using the internet 24/7 which would cost a lot. Seems even after searching the Internet found that many people had the same problem without any solution. So, she reset the device and now doesn’t use the Gmail app. So much for the smart phone :).

Then I asked a simple question. Have you tried accessing your Gmail from the browser? Oops … was the answer. So, for those who don’t have a data plan and pay for each usage of the internet, the best way is to access some of the services via the browser if possible and close the browser when not needed.

With iPhone 4S released with the hope of getting even more users, hopefully the non-tech-savvy users who switch to Smart Phones understand what they are getting into and it’s something that is within their monthly budget. It’s not just a one time cost.

Leave a comment

Filed under Smart Phones