Monday, September 30, 2013

Post #27 Cash - A Label or a Category

Now that I've been using the Site for about 9 months, I understand things a little better. The one niggle I've had for some time now is how to treat cash. All the cash withdrawals are categorized under cash. The actual expense head, such as Paying Salaries, or Fuel etc. are folded under cash. The challenge around this comes when you want to know how much are you spending on lets say, Fuel. There is a Category called Fuel which covers all the Card payments. But when I pay for Fuel through Cash, it falls under Category Cash and sub category Fuel. To get all the Fuel expenses, I need to add expenses under Fuel Category and Cash->Fuel. There is a workaround which allows me to get the right picture. But then its a workaround.

The question is how to treat cash? The solution, treat Cash as a Label and not a Category. To implement this I had to make major changes to my application.

In a real world application this would be a big Change Request. As there are real users who would be impacted. Their data needs to be moved seamlessly. The challenge was to identify a migration strategy. I wrote down the impact areas. Made changes to Dev env and noted each step. And then executed it in prod.

Given I'm the SME, Business and Dev, this should have been an easy job. But no, after all the movements I still faced 2 errors.
- Filters on Cash Transactions. I should have caught it during regression, but did not
- Rules. I completely forgot about that there might be rules around Labeling and these need to be addressed before the movement.
I got both these errors in prod. I fixed them and rewrote a few Rules and Budgets to adjust.

Honestly, if it were a live site with thousands of customers, this change would have been next to impossible to implement.

Note: Along the way had a few run ins with Sencha again. The command line does not recognize the changes made. Its a big headache. The tool is not yet mature.  

Thursday, September 26, 2013

iOS7 Has Arrived

iOS7 came last Thursday. I got in the queue 10:30 pm and I kept getting kicked out for about 30 min before I finally got through. 
A couple of good features such as Control center. I can now conserve battery by switching off blue tooth or wifi when not needed. 
The second feature is the task bar. I could now toggle apps and close them in a much better way. 
The search from any of the home page is also good. But sometimes it turns up inadvertantly. 
As I'm still on iPhone 4 the performance of the phone has gone down. It's less responsive. 
The worst part is that it broke my app. And pretty badly too. Because of the private browsing or some other reason it does not send remember me cookie to the server and that breaks my app. Lousy. It worked perfectly with iOS 6. 
The interface itself is flat which does not really very cool. A matter of personal taste. Many a times I do not know which part is clickable.
Overall a mixed bag. If it was not for the performance issues and breaking of my app I'd called it mildly useful. But as it stands today, it's retrograde. 

Sunday, September 15, 2013

QE Tapering and how should respond

I'm having a debate with a friend about QE, money supply an it's impact on world economy. It's just an exchange of views between two amateurs. Nothing insightful here. 
Late at night around 3:00 am, I drafted a longish message for him describing QE and associated blah blah. But then it exceeded the SMS permissible length. I saved it in my notes and forgot all about it. 

Today as I opened the notes for something else there it was. I thought its worth posting it here as a record of my thoughts on the happenings of my times. 

"In a demand slump in a liquidity trap the central bank should be credibly irresponsible and create expectation of higher inflation to get out of the slump. Prime minister Abe of Japan made it the Central point of its election  campaign and savagely expanded the Japanese money supply   The yen depreciated from 77 to 100 from oct 12 to mar 13. QE is part of the plan to fight deflation.  Now that the threat is receding there I talk of tapering the QE. The central banker of London has explicitly said that he will think abt tapering only once the unemoyment drops below 7%. Currently it's 7.5. It was always known that easy money in the us can create asset bubbles elsewhere such as the EM and once the tapering starts those will burst.  It's inevitable. It has to go today or tomorrow. Can't help it. The best our RBI can do is to accept it and not choke the economy by raising interest rates just to defend the currency. That will throw us into a recession.  It's already knocking at our doors. The car sales have dropped for 9 months in a row. First time in the history of the nation. It's a tough choice for Raghuram Rajan. I hope he chooses growth despite inflation due to currency depreciation. "

Friday, September 13, 2013

iPhone 5C Why?

Whenever a Smartphone company launches a new flagship model, the previous years Flagship model goes for cheaper. They why did Apple launch its 5C model for $100 less? Its the same spec sheet as iPhone 5 and iPhone 5 would anyway have gone on sale after 5S comes in.

Apple does take its customer bases to be suckers. And we all drool at the steps of the Apple God! Anything goes! They are discontinuing iPhone 5 which makes sense because not many would buy plastic given a choice between 5 and 5C. The only reason why I'd buy 5C is because I wanted a pink iPhone 5.

I believe there is limited mileage in coming out with 5C. Its just an eyewash!

Monday, September 09, 2013

Post #26 Sencha Again!

Sencha brings on some more agony. I completely agree that I'm a tech novice and will continue to have trouble delivering complex stuff. For people like me, Sencha is not the recommended tool.
The UI interactions are getting tough and complex with the mobile devices. Sencha tries to wrap HTML in JavaScript configurations. You don't see your familiar HTML tags. What you see are braces Curley , Square and Parentheses. 

This time or for about a couple of weeks now its been the charts. Sencha charts are deceptive. That's the least I can say. I could get the first chart up and running in no time. These were hardcoded data values, put together from Sencha documentation on charts. But since then, it's been a harrowing journey. 

The complexities include 
Updating the charts with dynamic data. Its a very tricky thing. Here is the use case.
List of Budgets (Tap)-> Load the expenses for the last 1 year for that budget and display on the screen.->There are 2 screens. First one for monthly expenses with averages and the second a pie chart of the various categories.
My solution was to define an xtype of panel that contains charts. These Charts were Items within Config.
The data for the chart was kept in a Ext.store and that store was refreshed on tap of the Budget. Now the problem was, when you defined the xtype, you assigned the store config a variable, which at the time of definition did not have any data. On tap of budget, I first got the data in the store and then created instance of the xtype. Despite me refreshing the data first the Chart would get not data at all.

After a lot of research I found a solution. I could create a basic xtype without the chart components. And on Tap after getting the data, I add the charts to the xtype. As the datastore was refreshed before adding chart to xtype, the datastore held the values.
Problem solved? No. Not yet. The ajax call to fetch the data is async. And so, the control moves on right after making the call to refresh the store and adds the charts even before the data is received. The result is the same. No data on charts.

The trick was to make the ajax call->Write a callback->In callback, process the data and populate the store->create xtype->add chart components to the xtype. Problem solved. Yes? No!

Now the Sencha Command tool started acting funny. In dev env, I could see the carousel with two charts. But when I built for production, I'd see only the first one.

The solution, do add twice. First for the bar chart and then for the pie chart.
Are we done now? Yes? No!

My title setting went for a toss. For reference check my previous posts on my struggles with changing the titles.

When you add chart components externally, the title setting gets screwed up. Wrote an unnecessary piece of code to check certain stuff and then change the logic for setting the titles. That too created its own problems such as, when you return back to the budget directly from the second slide of carousal, your charts would stop working. Finally fixed it up...

In between, I had major problems with sencha command. Whatevert I changed, the build production would continue to build old code. The updates did not reflect. It finally got solved. I don't know how. Spent a lot of cycles trying to fix that.

Then there was a another problem of my internet connection being slow. That took me a while to load the build to AWS. The AWS management console does not work will with Chrome. It keeps crashing the browser.

So finally, its done for the time being. Phew!

Tuesday, September 03, 2013

Month 117

In all my years of work, I've never processed so many emails in a day. I've read 200-250 mails a day and responded to. I've sent out dozens of emails a day (50, 60)but I'm scaling new heights here. Managing 350+ emails , sending 100+ mails a day is just crazy. I believe its counter productive. But that's where I stand at 40. Everyday its calls and more calls. From 7:00 am in the morning to midnight. I'm currently working 60-70 hours a week. I'm taking calls while driving. I've got a Bluetooth hands free attachment to car's wisor. 

On health front, No exercise since mid june. I've put on weight. More weight than I need to. My trousers are bursting at seams. Apart from calls, it was also due to heart scare(its not gone yet). I finally started a mild training schedule since monday. I'm running 5 kms. Its taking me 35 min. It used to be 30 :(. But its fine. I need to ramp up slowly. Its a beginning and I hope I can carry it forward. 

Personal front is bad. Things haven't changed. Don't know where it'll lead me. I know I love my daughter and want to be with her. Not sure of the trade offs.

I'm leaving for my native place this weekend. I'm carrying my reports. Plan to see a doc. I'm carrying the reports.