Thursday, November 24, 2005

I Tech, therefore I am

Gadgets- can they get better, soon?

I recently read an article about how gadgets (read technology) have changed our lives and

made everything easy. But the cynic in me doesn't completely agree. The dreamer in me dreams of the following to name a few:

I want to throw away my cell phone - can't my watch, a small sized watch do the same functions?

Wait, I know of bulky watches which also function as a PDA, mobile...etc but thats not what
I want. I want a completely voice-interfaced phone. So, if I have to make a phone call, I
just whisper to my watch 'Call John'. Ofcourse John's number was earlier stored in my phone
using voice again with a command whispered to it such as 'Store John Mathew five five
six.....two two'. How do I listen and speak to a person using the watch - I will lift my
wrist close to my ears and mouth. Don't I do this with my mobile in any case. I don't need a
blue tooth attachment to my watch, remember I'm talking about making life easier with
gadgets not chaining my whole body with gadgets. Every other PDA function can be
voice-commanded. The watch can have a small adapter, almost invisible, which I can plug in
to a computer once in a while to get reports, lists, schedules etc printed. I'm ofcourse
thinking of only the able persons and not about American Disabilities Act section 508.

Finger printing has been talked about as a pretty big thing in industry but the scale is
really small yet and if that does take off, I can just have my finger and get away with ID
card to my work place, the keys to my house, keys to my office. If I extend this fantasy,
some day maybe next century, there would be no passports, no logins, no bank account numbers to remember or jot down. The possibilities are stupendous. And I do know that someone can
cut my finger off and have everything that's mine but everything really has a risk. I can
book air tickets, draw a bank draft, sign an online cheque, pay bills ...all at the drop of
a hat,rather drop of a finger.

The laptop - the industry has toggled on and off the network enabled slim PC (rather dumb
terminal that just acts as an interface to all-knowing all-powerful remote server). The
laptop is a pain to carry, a pain to recharge and a pain to to be connected to Wi-Fi terminals esp. if a VPN network has to work through it and a whole big bunch of collaborative tools depending on it. For example while I'm on a meeting, sitting in an airport (aha- isn't this the ideal usecase for a collaborative tool), drawing my plan on a net meeting like white board, I suddenly find that my wi-fi connection got disconnected for 0.5 seconds. A tier-1 user who uses the internet network will not observe this since the network immediately reconnects in a transparent fashion. But see, I'm a heavy tier-2 or tier-3 user. My VPN firewall, very secutiy conscious goes off with the smallest change in network, and my whole lot of Workplace tools (my drawing on the white board, my messages, my control of another's desktop is all gone with the wind! I have to negotiate my VPN again, reconnect to the meeting and do everything again. Now tell me, this is not a remote possibility, or is it?

Most ads for networks, tools, grid or utility computing, storage management, journaling of lost work,backup, disaster recovery etc make it look very simple on TV and magazines. They really are not.

The list can go on...I will stop here. Thanks for reading.

Friday, November 18, 2005

What should a SOA enterprise server do for me

Friday, November 18, 2005

What should a SOA enterprise server do for me

While SOA as a technology may not be mature enough, and primitive still at adoption levels, the concept behind it is promising. As I understand SOA better and better, I begin to have more and more expectations.

Let us talk about 'pulling'/'pushing' data . Data or information on a case by case basis may exist in various forms in heteregenous applications. I can get my data stream via messaging queues such as railways ticket bookings, online lottery engagements, the most often used example being stock and forex quotes.

Or I could have my information coming through SMTP systems (our dear email in Simple Message Transfer Protocol) which according to me is really a content managed workflow system that has been time tested and working very reliably.

Or from the traditional RDBMS APIs or database webservices which follow open standards of SOAP and WSDL.

Or via real time feeds such as a patient's heart beat, pulse, BP, lung saturation etc from the monitors in an Intensive Care Unit in a hospital on to the doctor's real time monitoring system

Or via Applications and information from enterprise systems such as SAP or Siebel based applications where data is got just from SAP(abstracted to the app level and not about APIs or depper layers of data storage and persistence).

Or from the hugely invested silos of information available in mainframes such as CISC where data sometimes need to be just got from screens and not from data layers.

And when I do successfully get the continous data out of these sources, I should have the facility for me to define how different types of data are to be validated (for e.g. the doctor should be able to say, 'Attend to the patient, don't validate,if it is an emergency without bothering to register him/her to the hospital repository), to be computed (for e.g. no taxation for income levels lesser than a certain amount), to be transformed ('Get all those long binary strings and convert them to giga object types).

I should also be able to inherit validation, transformation or security rules because they have all been already defined and running in all my heterogenous systems for years!

I understand that 80% of SOA effort is towards Exception Handling. That's logical because SOA itself requires an integration layer inbetween the model and presentation layer and due to the variety of different interfaces and due to their complexities the exceptions can be plenty. But they all need to be handled as beautifully they were handled in their original stand alone systems earlier if not better.

The whole thing looks very promising but as I sit down with the requirements, I'm bogged down because it looks complex. User experiences will dictate a lot of design in this area and the end-user is the King!

Ideal Browser world and rich applications

Wednesday, November 02, 2005

Ideal Browser world and rich applications

Today I experienced a very current and relevant problem. I was looking for a software with which I could design virtual homes. Basically I needed an app that would draw a house plan, take my inputs for furnishing, structures etc and give me a 3D view of the whole thing. I needed it to be simple to use yet have complex (not complicated) functions. For e.g. I need a moon roof which should not slope down but be flat!

I searched the internet and found two options. One, there were tools that provided this functionality over the browser. That is, I subscribe a hosting fee and I can draw, paint and dar and drop through an applet on a browser. The second option, was to buy a software on a CD that would install as a desktop client. I used both and my pain points were all relevant to what problems we have in the industry today.

The issues in the browser based tool were these: The internet with great broadband is still not that fast esp. with latency and variable speed. So, if I drag and drop a refrigerator object in my bed room plan, it got dropped after a good 30 seconds. So, request and response with HTML and HTTP was good but it did not match my creative abilities.

The quality of the GUI - well, how much rich can you make an object that is brought (or dragged) all the way from the server thousands of miles away? So, the app designer does have to make a trade off. Can't the object just look 'like' a fridge-comeon, after all this is just the plan..not your house! So, the component called refrigerator is rectangular in shape and has a grid across it and user is expected to decode that as a refridgerator. Colors? Well, just keep a default color for now, okay.
Can I have many GUI components - may be different carpets, diff tiles, diff tap fittings, diff draperies......whew..no way. They are really fat components and do you want to hog bandwidth dragging them all the way? They will hog memory too.

So, my GUI components are BLAFed (Basic look and Feel) and are not really comprehensive in variety.

Third, what about storage, reuse and reliability? If my internet disconnects, does it journal it? Can I start from the same point that I left off? Can I reopen my plan, copy it, version it, have some security and authentication on it......................hey hey comeon, you are talking all things that you want in an enterprise software!
No, the browser based 'host' did not provide any of these.

But yes, I had advantages such as I could manage with lesser memory. I just needed a terminal with internet connection and a printer.

Okay, I shifted to the CD based client software. Boom, it installs so beautifully! But, wait how many files does it need to install? oops, so many picture files,whooooooo- so many .jar files.....oh man, why is it downloading another JDK version- I have a compatible one here, can't it detect? So, I finally run the executable and there si it. I gape at the client- wow! So beautiful. Such easy to use wizards, so many options that I can use. I just drag and drop a fully furnished bathroom and lo, I can see it on 3D. It looks beautiful.

But it suddenly vanishes-what happened? I go to task manager and open processes. It's hogged about 512MB RAM and there are about five or six processes running. I start again after killing the processes myself. I do this many times, struggling with rebuilding it every time it does the vanishing act. Then I look up internet and buy a even better, more reliable software. Now I try to open my old house plan with my new software (what a dumb thing to do, whoever said that apps work from one software to another) and it core dumps.

My requirements for this browser BLAF-Rich Client software developers is just the same set. I need a standard way of rich components on a browser, rendered via request and response, with all the functionality that the rich client provided plus the convenience of using it over any-PC have-internet technology. I will not do any installation, configuration on my PC. I need to move over and drag over components like a glider. The components have to look life like - if I say I want a teal sofa then it should look like the teal one. If I want veneer finish, well it better look like what I saw at the store. I need to get a REAL feel of it. I definitely want failure restoration (cold failover and hot failover), versioning, team development (I might be developing one room, my friend could be developing another room from his PC) and be able to save certain features as my 'styles' or profiles.

And last but not the least, I need to be able to see same kind of file type, component types, XML tags.....(standards :-)) so that I can open this, save this using any vendor's software as long as I pay the subscription fee.

SO, how does this look? Am I demanding? Not really, make it all simple!

Let me know what you think by sending me an email.

SOA and ecommunity

Saturday, September 03, 2005

SOA and ecommunity

Today I'm wondering what drives an e-community! The need to socialize in a structured manner hasn't gone away. Well, most of us want friends or acquaintances who have something in common with us. May be interests or hobbies, maybe similar age groups and similar challenges in life, or similar life or behavioural patterns. Is an e-community service just for the hippie and funky? Definitely not - no service can really take off if it is not for the overall benefit of the larger society.

Most of our activities are centered around discovering services which are available in a directory. This is essentially what an UDDI registry based service does. For example, find those trains that travel via a particular route, are tickets available, what kind of food will be availabe at the train stations and can I get that information based on my eating profile, and during my transit stays can I get some movie tickets - again please look at my profile to see what movies I like and I would like to meet some of my friends from my alumni located at my destination city. Can i meet them? They aer all buddies in different e-communites some in AOL, some in Yahoo, some of google - can I see them all in one place and can I establish a meeting between us and book a restaurant table too?

The options are mind boggling. It looks like an utopian dream. But when businesses and services structure their data representation abstracted for web services and if they can register their services in a standard fashion and publish them, it's going to be much easier to do many routine things we spend time on today.

Let us wish good luck for overselves!

Evolution of software developer

Wednesday, August 03, 2005

Evolution of software developer

Life is becoming easier with technology, rather for the Application developer! About a decade ago, a good developer was one who invariably came from computer engineering background. Usual interview questions would revolve around order of an algorithm, traveling salesman problem or graph and automata theory! I was a proud engineer who reveled in all of these. Not for long. I slowly became witness to the software world leaning on the 'next door boys (or gals)'. No, not all jobs really needed brilliant computer engineers. We needed 'average' guys for jobs that did include development, testing, technical writing, sample writing, porting...etc. And sooner than later it was proved that all these guys who came with an MCA degree or Electrical engineering or Mechanical Engineering degrees were really valuable since they picked up stuff pretty fast. Of course, the job did not require them to know discrete mathematics and regular expressions.

The software world looked towards developers who understood the domain, who could quickly draw up screen designs using tools like Visual basic or Oracle Forms, who could rapidly write business logic using standard functions and packages and who did not have to bother about writing tuned and performant database queries because there were tools already for that!

Now, the situation has become even easier! Yes, with declarative development, all that the developer has to do is...'DO'! He (she) does not have to know the intricacies of code, syntax. If the application needs a calendar date to be picked up by a calendar, well no code needed. Use the Rich UI component library, drag and drop the calendar component. Do you want an on demand audio player to be developed? Who really needs to store media files (those songs) in binary format, retrieve those as streams, parse... Come on, are you in Stone Age? DRAG and DROP, rather DnD! Hey, haven't you heard of life cycle components?

Leave alone silly things such as changing colors, report layouts, page breaks- they are all done declaratively.

No, again, don't worry about memory consumption, bandwidth consumption - after all how will storage management and performance companies survive? Or router companies innovate? Give them a chance, write n-tier architecture code, compile them in a 'Team development' environment, and deploy them on a heavy web server and hog memory and bandwidth. No problems.

Okay, what the heck is the developer supposed to know? Well, he should surely know how to pick those exact tools he needs given that he is spoilt for choice. He should know usability and aesthetics and customer behavior patterns. For example, if you want the customer to install your software, are you going to ask hundred questions to fill up before that? Or would you err on the side of courtesy? Or on the side of security? Ease of use versus effectiveness? Do you provide a heavy rich client and provide him everything on the thick client or do you have to develop servlets to send the logic back to server and keep the client thin?

So, the developer has at once developed into a super developer. He has to think so many things ahead of design, which his geek-predecessors did not bother about. Let us give the devil it's due.

Did you enjoy reading this?

How things change .....as technology changes

Saturday, July 16, 2005

How things change .....

Well, today I decided to get back to my good old desktop PC for a while. I usually use my hep laptop (courtesy,my employer). Today my kids wanted to install Harry Potter's latest movie trailer and that needed really sophisticated Quick Time installs and they demanded, persuaded, cajoled and pestered me using 'Saama Daana Beda Dhanda' principle fully and I lent my laptop to them just 'this time'. I returned to my dear old PC, seven years old, 256KB memory, slow CD writer and a flickering monitor.

I was about to do my daily routine of visiting the same web sites, tech blogs, reviews and same articles. I changed my mind then and went to Windows Explorer. I was amazed! I opened temp first - man, it had so many files which were lying in stateless session for half a decade. Friends' resumes,bank statements, school leave letters. letters written to odd credit card companies admonishing them for charging me the annual fee for a supposedly free card etc. I deleted some of the files and moved on to My Documents and My Music! There was a treasure waiting there. I found old .wav files recorded out of songs sung by family members and by my kids. I didn't have an MP3 codec then and they remained .wav files hogging disk space. I played some of them and felt extremely nostalgic. Songs and stories narrated by kids with really sweet tones, completely innocent and full of bliss that you would not get from a meditation music from a famous spiritual organization.

Then I went to the real junk yard which is My Bookmarks. Most bookmarks were irrelevant. I had changed bank accounts, so those links to bank sites did not matter!. There were lots of links to project and product related information related to my work. I smiled to myself about two things. One about how technology, information sourcing and information rendering had changed. All those bookmarks were invalid. All the data and information needed to decide something was being pulled now in a 'one stop' portal which had regions, rich UI, dancing bar charts (dynamic data :-) , alerts ...blah blah! The second was when I realised that today the kind of information I needed was way different from what I needed six years back.

How life changes! We rarely see how unconsciously we throw away old baggage and keep adapting to new ones. Well, we can change our operations, our life style, our profession, our interests. But there was one folder I just grabbed and transferred to my memory stick AND copied on to a CD using CD writer AND emailed to my gmail account as a backup. This was my 'friends' folder. It had a friends.txt file which contained addresses, email and phone numbers of friends and relatives. It also had my personal folder which contained scanned copies of my late mom's letters to me.

Technology changes but soul to soul equations don't change......