Android , IPhone , WP7

Offlate i have been hearing lot of criticism about Android from Apple fan boys, I  just wanted to put my thoughts about the same , So this post is all about :-

1. Why *NOT* android be compared with Iphone Or WP7

2. Why iOS or WP7 compete with Android and Why cant iOS or WP7 cant penetrate as that of Android.

3. Android and Plain Linux kernel or Meego for custom device.

4. Android is not open , According to Google open means closed ;P

1.  Why *NOT* android be compared with Iphone Or WP7 :-  Well, I have had  enough of hearing about this comparison of Android being cheap, clone of iphone no applications which can match to iphone standards, or no money for android application developers or no innovation happening in Android compared to Iphone  etc.

According to me this is all  just a FUD.  Android has been successful because its able to reach a common man.  Any body can download the android SDK and start developing  Android Apps.  Moreover android has been successful because it is offering what Nokia failed to offer.  Today every one is able to purchase Smart phones for just 7k and thats the reason android has been successful.

On the other hand IPhone fans are bothered because they might be feeling the heat already, I agree IPhone has fantastic h/w , s/w and some interesting apps. But It cant be compared to android for a simple reason that, it is not meant to be running on the custom built h/w  like that of IPhone or WP7.

Android is linux (almost), you cant compare linux with MAC! will you???  can some one dare to call Linux a poor mans MAC??? According to me Android enables many things due to its flexibility, It opens up wide market where in, it can be run on any custom device.

2. Why iOS or WP7 compete with Android and Why cant iOS or WP7 cant penetrate as that of Android. :-  This can be explained wrt  application development and OS . From OS point of view Android has been flexible any one with th kernel background can rip apart the android kernel or port it to any standard h/w in no time, and i am not even talking about the OEMS like samsung, HTC. Now people will raise the flag and say ,hey it leads to fragmentation. I completely agree but its not as bad as people portray it.  more explanation on Android fragmentation in another post.

Android has a very simple , decent ecosystem  to build applications unlike iOS(which needs MAC to develop iphone apps 😉  ).   Anybody with the experience of Java can start building applications .  I have tried to build an app on WP7 to simply invoke REST Service, could see the limitations and constraints.

And for people who talk about the innovation, Android can be run to drive a car! Now ca iOS do it ?

According to me Android cant be compared to either iOS or WP7.   iOS and WP7  are in race and they cant compete with Android…

3. Android Or Meego Or Plain Linux kernel for custom device  :-  If you are thinking plain linux kernel with contour (of KDE Project), or meego with proper app development environment and API to build beautiful applications , I am sure it will beat Android hands down in tablet market. But Nokia failed to do so,  as of now just counting on intel.

4. Android is not open , According to Google open means closed ;P :- Now this has been the complaint all the Android critics are pointing fingers at google .  Why do they forget that google has open sourced all the other versions till now and honey comb is just delayed thats all.. And i dont want to say too much about the legalities as i am not a legal guy.   Android is an excellent , flexible platform and it is flexible for every one, be it a mobile, tablet or any other gadget.  fyi

I was asked by some one like , how much money does your android app makes ? Well the question back to them is like on how many non apple devices does  iOS  run on ??  Yes,  i know the question looks *ridiculous* that its not meant for it ,  But that is how ridiculous if you compare Android with either iOS or WP7 in spite of  all these OS being run on similar devices and in cut throat competition, because all the three are different and has its own advantages and disadvantages.BTW i didnt mean that android is not meant for building apps as such, The platform is good and it has captured the market in a very small span of time and i am sure that its just about time for all android app devs to start earning. Just because you are a fan boy of one technology, you shouldn’t be bashing the other one.


Food for thought ,strategies, Nokia…

I see in every other advertisement  showcasing Nokia N8. This just says how hard nokia is trying to sell its so called best smart phone. Anyways i am not here to review the N8. The idea is to just analyze.  Nokia has always been an symbian advocate,  strong supporter , adopter of Symbian, it holds big stake than any one as of today, But the question is ,  Is symbian ready to take on Android , iOS ?? if nokia really wants to make some thing big , I guess they are banking on wrong OS (atleast for time being).

The company like Nokia has a huge goodwill in the mobile phone market, But i am quite sure that it has lost the market share offlate , it really doesnt take much for nokia to bounce back but it needs to be magnanimous , pragmatic in its strategies, when i say magnanimous i mean , like adopt the OS like android build the product which really blows away the existing smart phone market,  i guess the N8 was the right candidate to have had android on top of the good h/w offcourse N8 was underpowered for 24k, never the less if N8 would have ran Android i think the dynamics of nokia market would have changed significantly.

Now i am on telling nokia to abandon Symbian or for that matter even meego.  All i am trying to say is that , If nokia wants to compete the smart phone market, it needs to reach the level where in it can compete,  as they say ” spend significant amount of time in sharpening your axe rather than cutting the tree with the blunt one”,  am sure it really makes sense.    So Nokia should have just been pragmatic to have Android on N8 or  even meego would have been a right candidate,  may be in the mean time Nokia could have just spent enough time working on symbian 3 for to fill the gap to make it an better OS, But nokia miserably failed by giving N8 with half cooked Symbian 3 .   Now nokia finds itself  in a very clumsy position to look back and think what they could have done but better late than never.


August BOJUG meet

We had a monthly BOJUG meet yesterday @ google. It was quite an eventful meet for the fact that we had at google and There were some fantabulous sessions on different topics such as , nosql from lifeblob co-founder Rakesh Ranjan, Eclipse lead boris, JVM Performance tuning by Vivekanand Jha, Open SAML by  Rashmi and Scala session by Siddarth kuruvilla.

It was quite a lot to fill in 2 hours. But some how we got lots of speakers this time and bit of confusion about the time. Anyways my favorite session among these were that of the JVM performance tuning, It not only interested me but i also motivated me to dig more about JVM and other VMs.

The session from Boris , Eclipse Lead was more about the eclipse 4.0, unfortunately we couldnt allocate enough time for all the speakers ,So that didnt really do much justice to the topics which they chose.  when i asked  Boris about the performance issue which we usually have with eclipse like freezing of the UI and taking ages to build when auto build is set on, I really didnt get a proper straight answer because they didnt had any fix to handle this issue in eclipse4.0, Anyways the eclipse UI looked pretty good.

Rashmi’s session on Open SAML as well was very crisp and just got heads up. The Rakesh’s session was about the Architecture and challenges they faced in there project, He was speaking about shard databases and mem cache and how it helped us.

All in all it was quite a eventful meet. While i was returning back home, got completely drenched in rain, fortunately i got some cover from security guy so that i could protect my laptop else it would have been in big mess, It was downpouring yesterday at Bangalore.

Apache ETCH

Recently there was a situation in one of the  project where in the existing legacy CORBA had to be replaced with some other technology .  One of the technologies which was considered was webservices though i thought like it might not be a right replacement , i always thought like th EJB would a perfect replacement. But again due to some unfortunate reasons , I understood that the requirements (not technical though it was of the management constraints…) even EJB or  any thing would fit the bill.

Web services is not a right replacement for corba because for the reasons such as webservices are not as fast as the CORBA which is understood due to the under neath parser which need to do the parsing. secondly the webservices are value based where as CORBA is of reference based. Thirdly the asynchronous messaging is not  some thing like what we get in CORBA(even though AXIS 2 has this asynchronous messaging ..).  I was pretty clear that WebServices is not a solution. So under this circumstances, we were kind of more than happy to explore the new technology called as the Apache ETCH , basically its developed by CISCO and has been submited to Apache . I was really excited to explore this new technology which says like its light weight and  its a perfect replacement to the bloated CORBA. Secondly Its very easy to use , Thirdly it really suits our requirement as its having an apache license.

Anyways i am in the process of  going through the ETCH code and i have decided to be an apache contributer to ETCH project. I am sure i will have loads to learn and  at the same time lots to share in this blog.

wondering about this………

My blog in different language

Here is the screen shot of my blog in different language(rather alien language):)

I was just going through the my blog url referrers and found this url which points to my own blog but in different language. I  certainly dont understand or know what language is this and i am certainly sure that its my blog because it show case my  writeup on blueclove which happens to be a bluetooth stack on windows xp, by the way this also happens to be one of the most read writeup.

Art of software dovelopment and practices

Well,its been some time since i penned for my blog. But better late than never… I came across a issue  which was quite interesting. It had atleast 5k loc, which i was wondering like wat made the previous developer to code so much for a functionality,after all 5k is some amout of code right?   Initially when i went through the code i was kind of felt that  previous developer has compromisd with the OOP concepts ,and after understanding the code completely i felt like both the design and OOPs principle is compromised.

Now the problem is quite simple which involves checking for some elements if its same and offcourse the data is quite a lot, again the way the data objects were designed is some thing which i wanna forget as soon as possible. I think this code is the perfect example for “code smell” (any thought work guy will agree with it once he goes through that code :p)

So the problem is as simple as this , it has N number of  data objects of set x and N number of objects of set y. it needs to be just verify if these data is same and there is certain constraints like say if some option is checked (ie in checkbox) or if some option is selected in the combobox , only that attribute needs to be verified.

So, when  i am given to code , first and foremost thing i  think is about the data structure of the data object. secondly  the algorithm to use which results in maximum performance and least cost of both memory and CPU time , which is directly proportional to the number of passes you take to verify.

As the basic task is to just verify i would have used some generic algorithm which verifies any kind of data, (I would like to keep the explanation simple as i will be writing an algorithm in my next post).

secondly when there is a constraints, one thinks of using series of  “If else ” conditionals , but offcourse your code clutters and i personally feel the “if else” conditionals is just too much for say N number of conditonals, and its bound to change later , so its important to use an “if else ” breaker design pattern 🙂

The design  abstract is some thing which is a combination of  a proper use of data structure + verifying algorithm + “if else ” break design pattern thats it and  if required we shall refactor the code once its done.

In my next post i will device both the algorithm and code in either java or groovy or python.

The main purpose of this title is because i had lots of questions which needs to be answered. they are as follows:-

  1. why developers wont follow the proved practice and why the management wont encourage to go with the proper design and allocate enough time for the same?
  2. why the OOP concept is compromised?
  3. why people just give excuses when asked about the good design and coding standards?
  4. Is management just worried about the productivity and is  the good design and proved software development practices a cost we pay for it ?
  5. Do the  management think about the maintenance problems with such a haphazard design?
  6. Is the concepts of “software engineering” and “system analysis and Design” which we studied is just meant for exams ?
  7. should Project managers(technical managers who review it ) be blamed for it or is it the software engineer responsible for it.
  8. In spite of knowing the repercussions of the bad design and horrible coding standards why many well known product based / service based companies dont bother to give importance to it?

Still i cant think of any answers for these…..

(setq me lispy)

Its been early days for me with LISP. A great deal of time went in searching the tools like tutorial , IDE , LISP compiler etc (its indeed a confusion to choose). finally everything is settled down , guess which editor is chosen for LISP? its Eclipse, the CUSP plugin is great though the lisp purists argue that emacs or slime is the ideal one. I feel eclipse + cusp = great LISP environment.

As for as tutorials for LISP is concerned SICP is the best but i feel the Apress publications Practical Common LISP is some thing which i can digest. I have been using the LISPBOX which is tailor made for the newbie like me. Its just simple download , decompress and launch the SLIME else install the CUSP (be sure to choose the CLISP of LISPBOX instead of SBCL which is a default LISP for CUSP plugin). And there you are up and running your LISP environment.

LISP is extremely interesting. I initially had an idea like its only meant for stuff like AI, or some mathematical computing, but i was thrilled to learn that its not the case. You can use LISP to develop some webapplication as well. it has a persistance called Elephant and the web server called Hachentoot.

LISP is really cool and i am sure i shall get use to it in some time. do check this section for more updates.