Showing posts with label development. Show all posts
Showing posts with label development. Show all posts

Monday, August 20, 2012

First Impressions of a budding functional programmer

I have just started learning functional programming. Having spent almost all my time as developer on the JVM (and mostly java), it would have been easier or may be natural to pick up Clojure. I did start on it but somehow could not keep with it. Also I had a burning desire to venture outside the JVM. So I picked up Haskell.
For a brief time now I have been trying to learn Haskell. And boy isn't the language amazing. It's pure functional nature makes you appreciate how the functional paradigm is refreshing different from the imperative world I have been on. Wanted to write down a few impressions, I have had on learning functional programming through the language:

  • The simplicity of the Head and the Tail and how many ways it helps to solve problems
  • The amazing power of recursion and how it can used to solve problems which you never thought could be solved.
  • Higher order functions which allow passing them around and currying which makes problem solving so elegant
  • Type which really govern behavior - Honestly this is something which I am still not sure whether I have wrapped my head around.
  • The thrust in the language to write simple and clean looking code all the time.
These are just a few impressions.
I missed one obvious one obviously. Functional programming reinvigorates your love for math (or for others it might be the first time). I am currently looking at picking up math courses and buying math books.
The journey has just begun and I have a long way to go. If I do something original during this time, you will surely hear from me. Bye for now.

Saturday, June 30, 2012

Why do Android developers do not make money?

Okay now. Don't expect me to bring some new reasoning here. This is probably known to a lot of us (if not all). Even I have heard about it before many times. But only a few days back, I sort of got it (Eureka! Eureka!).


A friend of mine had bought an iPad 2 just few weeks back. He intended to buy an Android tablet (Asus Transformer) but somehow things worked out differently (that is another story and does not have a place here) and an iPad 2 landed on his lap. He has been using it for sometime now. A point to keep in mind is that he owns a Android Motorola Defy for quite some time and uses it a lot and likes it a lot (already rooted and flashed).


We were talking about apps on iPad (since I have been using one for sometime, I am considered a locally available subject matter expert - I suppose in the country of blind, the one eyed man is the king) for reading PDFs. Good Reader came up as a possible choice and we talked about the fact that its costs a few dollars and is not free. Then it happened...


My friend said: "I need a good app for reading PDFs and since I have already put in the credit card information into the iPad 2, I might as well buy a good app".


I heard that but it did not register first. And then it hit me! My friend has owned an Android phone for a very long time and has never bought an app in the Google Play store. He has never entered his credit card information in his Android phone till date. And he probably will never do it.


When an iPad 2 is registered with an Apple id for using the app store, one is mandated to enter credit card information. Google Android phones on the other hand allow the user to skip that part. That means that as a user, my friend never entered his credit card data in the Android phone but he entered it first thing in the iPad 2. I am sure he must have felt forced and wronged when he had to put the CC information in the iPad 2 and would have liked not to do it. But over a period of time, this just became a matter of fact for him. 


Eventually what matters is that Apple has his credit card information within just a couple of days of him having a Apple product and that has opened the door for his spending in the App Store within weeks. Where as Google still does not have his credit card information and he has not spent a dime in the Google Play store for close to a year.


Like I said, what I am saying is nothing new. I have heard it many times. But when you experience things first hand, it has a way of making things very clear in one's head. That is what happened with me and I had tell it everybody.


What should Google do? Should it force the consumer to enter her/his credit card information upfront? Will that push the consumers to spend on the Play store? Will that make Android a better platform for developers to develop apps? What do you think?.


  

Wednesday, November 11, 2009

Wicket - IDE Support

Last week I restarted checking out the Wicket framework. I specifically looked for IDE support. I started off by checking out
-  Eclipse support: And I found WicketBench. I set it up and initially hit upon some problems. Wicket Bench is supposed to use jetty as the web container automatically but somehow it does not come with a internal jetty jar when installed. This seemed strange to me but I never the less went ahead and provided a jetty jar (took the latest) of my own. Again ran into problems. I figured out later that WicketBench works with Jetty 5.x version and later versions are not supported. Again something which I felt was not right. After sorting that out, I was able to start with doing some development. I used there unit testing model and was initially impressed with the ability to run pages independently. This is still a good feature. But then again when I wanted to run the entire application in one go, I could not find any simple way of doing it. I did not want to write selenium tests to just do some wicket research, hence don't know whether that can solve the problem. Even if it does, I still feel there is merit in providing a simple way to launch the entire app in one go and somehow I could not find any. That sort of sealed the deal with my wicketbench expedition. I decided that it is not good enough
- Netbeans support: The next obvious IDE to look at was Netbeans (I don't yet intend to pay any money for the IDE). Netbeans seemed to have a decent support for Wicket. It does not provide the capability to test single pages (like WicketBench) but testing out the application using tomcat is pretty simple. It provides you linking between html based wicket ids and java components in the java page. Also there seems to some effort to improve support on html palette for wicket components. These sound promising. I found myself pretty much happy for now.
As of today at least, I feel the support for Wicket is far better in Netbeans than in Eclipse.