Thursday, August 30, 2012

Post#7 Drop Down Menu

I've been thinking about what to take on next. Of the various options available I took on creating a Drop Down Menu. It took me a while. One of the things I'm really bad at is UI design. Not for the tags etc. but the colors. I truly appreciate the challenge of a great UI. has a great. UI. It takes a lot of creativity to design a great Drop Down Menu. It might look deceptively simple, but it's not. And it's not the JavaScript. It's the interface.

I did not want a Hover drop down menu which a lot of sites sport. In fact many a sites have completely done away with it. They show simple Tabbed menu. You click and get to where you wish to go. But lately, in the last 3 years I've seen a lot of sites create monster menu. In fact I love it in some sites. Hence I decided to go with it.

It's tough to use that much real estate effectively. I soon realised. I tried to create a help on the features but it too small for effective help and too big for showing just a couple of links.

Also the color scheme is tough to nail. I spent 2 days just playing with the palate. Finally I came up with some hideous colors.

Another challenge is usability. The main hover menu may be on the right but the sub menu options are on the left. When I moved the cursor across the menu itself changed as soon as the mouse moved over the adjoining tab.

One of the options I tried is to leave some blank space at the top do that when you move the mouse you do not go over the neighbouring tab. It made the menu look so empty, it sucked.

I finally created a small timer function to circumvent the issue. Now the menu would change only if your mouse stays over the link for more than 500ms.

I liked the idea that implemented something that does not ruin the experience. No empty spaces needed.

I'm done with Drop Down stuff. So from tomorrow it's back to the transaction processing. I'll start with Label Creation and then move to user registration

Sunday, August 26, 2012

Post#6 Completing Rules and Split

Finally I finished the first cut implementation of the Rules, Split Section. Its basic development. Lots of alternate scenarios and validations are missing. But its largely done. Now you could
- Create a new rule based on a given transaction. Currently its based on "contains".
- You could classify individual transactions(single or multiple). Ignore them from calculation, Assign Labels and or apply Categories.
- You could Split a Transaction into multiple ones.
- You Could create new Labels
All of this using JQgrid. It was fun and a lot of learning.

At times I was surprised at how I was able to diagnose a problem. This is veteran me. For example, realizing that the reason the function is not called is because I create these tags dynamically and these are not registered with jQuery. There were a few others, I'm forgetting now. But essentially, these were things that were not obvious. Good job me!

This probably brings me to completing about 10% of the overall functionality. I'm not sure what I should take up next. Probably, reporting. Thats an important piece. Let me look around for any charting tools I could use. Learn a new thing again :)

I tried accessing the site from one of my other home. It worked fine. I tried viewing it on my iPhone, Ah it sucks :(. Its slow. I think I'll need to remodel it so that it can be viewed properly on a smartphone.
That of-course will take till end of 2013.

One more thing I wish to do. I wish to do a Function Point Analysis of the app to size it. I have my company standards to estimate. Lets see what its worth.

Wednesday, August 22, 2012

There Goes My Back Again

Is it age or is it some kind of weakness in my back. This is the second time this year my back has given up on me. It happened in April and now again. It's the exact same location as before.

The first time it happened in 2007 My doctor told me to reduce weight and exercise. I did both and yet. Still planning to go to office. Hope it does not worsen. Last time I was laid up for 2 days.

Thursday, August 16, 2012

IPhone revival

So after living with a paralysed iPhone for about a month I finally got it fixed. What a relief!
Essentially it's the sweat from my weekends running that brought about the disaster.
First the home button went. Then came the silent killer. The speakerphone died. No ringing and no speaker.

Then came the eerie voice control app. The phone automatically went into the voice control mode randomly arbitrarily anytime of the day or night. It would pick up ambient sounds and decide who to call. A couple of times, once at around 10:00pm it decided to call one of my women office colleague. It was embarrassing.

I read up the net and found out that putting the phone in a rice sack can help. It would dry up the moisture. I did that and it helped. The home button started working but only for sometime. In a few hours it went bad to bad old habits.

Finally I decided it was time to visit the doctors. I took the phone to Maple the authorised apple store. They said they don't open the phone. They simply replace a faulty one with a new one. Essentially for Rs13,500 they would swap my phone for a brand new iPhone 4. The offer was tempting but then I decided to visit a local repair shop. The guy immediately caught on and confirmed it was water damage. In fact he said it looks more like sweat than water. The charging plate had corroded. He changed the home button, speakerphone circuit and the charging plate all for Rs 1500. Ain't that something!
So finally after a wait of about 1 hr I for my phone back. All like new.
I'm writing this post on my all rejuvenated iPhone. Yooohooo!

Tuesday, August 14, 2012

Post#5 Managing Transactions through JQGrid etc

The JQGrid integration was tough, but I could get most of it. There are still some niggles but largely the data is coming up fine.
The big challenge is around usability. Once the user lands on the transactions page and views the transactions / some classified based on prior rules, some not, it becomes cumbersome.
There are so many things he can do with this data. For example,
- He could filter on Unclassified Transactions
- He could then multiple actions
  • Ignore Txn
  • Assign one or multiple labels to the transactions
  • Classify Txns
  • Create new rules and Labels and then apply them on transactions.
  • Split any transaction
The transaction page is the gateway. How do I get all of these on a single page or weave them into navigation without confusing the user or pissing him off.
I'm working on the actions bar at the top, but its not coming out nicely.

I've learned about mouseover menus, buttons with images. All great stuff. Now, how to make it stick together....

I plan to finish this usecase by the end of this week. I'm taking couple of days off and that should certainly help.

After that its reports. That will be interesting too, I'm sure...

In terms of consistency of design and implementation, I think I need to make 2-3 passes before I can make this production ready. Hope I'm good with year end tgt.

Thursday, August 02, 2012

Post#4 Completing Transactions Upload

Just about done. Great Experience. Learnt about jquery, uploadify and a few finer points in spring. I still need to establish spring observation i.e. if in the middle of a navigation, you switch urls from restricted access to open and back, you may lose some variables you put in session. Not sure, but I think that's happening. I'll check that out. Also, could not post to restricted access url from uploadify. Will have to check on that too.

The trouble is when I'm are up against a timetable, I do not have time to validate learnings. Thats bad. This is as much a product as a learning opportunity. I've to learn to balance the two.

So now I move into the terrain of jqgrid. From what I've seen, its a great product. I'll have to learn to use it effectively. Another month or so...

On a side note, my iPhone miseries continue. Its constantly going to voice control and dialing out to various people. Its embarrassing. I've put in a passcode. That's taking care of dialing out part for now. But its also coming in the way of working. Yesterday, I was on a skype call and it kept dropping due to voice activation. Bad iPhone...