Wednesday, January 23, 2013

Coupling and Modularity

There's a very good reason why I think the guy who invented Java should be shot and buried where the sun don't shine.

Going through the jwebsocket package, it's a classic representation of (wrong)Java practices -- endless imports which themselves also contain other imports. The classes in the packages are so tightly coupled that changing one line, would literally bring the whole deck of cards stumbling down.

That said, It's high time that I started breaking apart the whole thing. Focus will be on modular, highly portable stand-alone classes. Coupling will be brought to a minimum in an effort to make functions more independent.

WhatsApp internals

Discalimer:This is is more of a 'propaganda' post that actual tested methodology.

Was looking thru my s60 powered Nokia and I stumbles across some logs. On deeper inspection, I found out that they are whatsapp logs and they betrayed something that finally came to make sense-pys60

Playing around with whatsapp these couple of weeks, it's been particularly evident that the thing is amazingly stable on the s60 platform. The threads handle perfectly whether sending out text of media files and switching between chats and hence screens. While the .sis installation file might instinctively lead one to think that it's a pure Symbian c++ construction, it's actually a daunting task to achieve that level of stability unless ofcourse, you have serious Nokia privileged development years on the language.

I have developed some quick apps for Nokia using pys60(python for s60) and it's simplicity, versatility and incredible stability has always awed me. So it was interesting to note that WhatsApp is essentially built using pys60 and simply packaged into a *.sis installer.

Tuesday, January 22, 2013

A closer look at WhatsApp

Just to get the insights into an internet based chat and messaging system, I downloaded WhatsApp and have been using it for the last week or so. While the app has a very simple and utilitarian feel to it(functionality over aesthetics), it's the social aspect of it's users that perplexed me.

What's interesting(at least in my case) was that females used it more that males. All the males on my WhatsApp list are usually on chat and prefer to chat on gtalk or Skype rather than WhatsApp. On the contrary, female acquitances almost all prefer WhatsApp over any other form of chat.

It's common knowledge that males are usually the early adopters and power users of technology and related tools, but in this instant(as per my experience), females seem to have a greater appreciation of the platform that males.

I wonder why that is.

Thursday, January 17, 2013

The start

Just finished chatting with Badu and we agreed I start this blog to document my progress because frankly, I hate writing documentation.

Saya is a cool app(idea) but plagued with stability problems especially on the j2me platform that I've personally tested. It doesn't work past new account confirmation on a Nokia e71(my test device of choice) where it hangs forever.

Testing on a lower Nokia device (5300) kept crashing with out.of.memory Exceptions. Network connections and stability also looked to be a major issue.

While embarking on this project, I intend to focus majorly on the underlying machinery and work my way upwards to the aesthetics(which is not my strong point). I believe functionality in this instance should take precedence so it's my responsibility to achieve spectacular functional and structural integrity. I'll also try to shape the design to fit with my personal paradigm that the user should never have to go more than 3 steps to achieve their goal.

On the technical architecture, I plan to split the app into some basic functional units, loosely based on the MVC model. These will include, but not limited to

  1. Network classes
  2. Messaging engine(personal and group will use this core engine)
  3. Rendering engine(think LWUIT)
  4. Miscellaneous(includes stuff like error handlers etc)