Android fans are all excited about the new Android phone announced by HTC at a press event in London yesterday.
This is a great news for the mobile user, Android platform, and Google the company. The user gets the UI which is superior to the vanilla Android experience. The platform gets a neat twist and a marketing boost, Google gets another chunk of mobile market to throw advertisement against.
What does it mean for an average Android developer?
Trouble.
While I typically don't talk about the widespread Apple mobile product, there's one thing that's great about it. An iPhone developer can be sure their application reaches 100% of the devices and looks exactly the same on every one of them. Not so for Android. With three flavors soon to be found in the wild and potentially different screen resolutions, as showcased by Kogan Agora, a developer faces tough choices. Do I want to support the phones with no Google experience? What my application looks like on a QVGA screen?
Very soon development for Android platform will get more expensive. More expensive than it currently is and possibly more expensive than it is for iPhone. No doubt the top Android development shops will go the extra mile and provide built-in UI optimizations to address the variety. For individual developers the story will likely unfold differently.
Developers who choose to drop some market share and support, say, only Google experience phones will still have to deal with the issue of potentially different screen resolution as, to the best of my knowledge, there is no way of restricting the application from being downloaded to odd or undesirable screen size phones. That means a number of disgruntled users giving bad reviews on something they are not supposed to be using in the first turn.
According to some reports Android will see 900% increase in sales this year. While great for the platform, the figure has a different meaning for an individual developer. Reaching the whole market might be prohibitively expensive. Reaching a fraction of it might not be enough for a sensible business model.
Third party applications is a boon for a mobile platform, fragmentation is a curse. Which one will prevail for Android?
Thursday, June 25, 2009
Saturday, June 20, 2009
I'm not Buying a Mac Again... At Least for a While
Driven by the Apple craziness that's been on the rise for the past few years, I bought a Mac Mini about a year ago to see it for myself if it's worth it.
It's a nice little box. Very quiet. I enjoyed it for the first 30 minutes.
In the middle of the first hour I realized that there's no way I can expand a window, under Leopard, to fill the whole screen, which I've been doing for the past 15 years or so.
The next thing I discovered the little guy doesn't like about half of my external devices (printers, scanners, etc) and I have to say bye-bye to a bunch of Windows-only software that I came to love over the years.
This was not an option but hey - you can run Windows on a Mac!
I threw Win XP on it and was happy again. Nice little box. Very quiet.
The weather had been sunny for what feels like 9 months.
Then one day a DVD refused to unload. I mean really. As you might know, there is no hardware eject button on a Mini. There are quite a few ways to soft-eject the disk. And quite a few more to soft-eject it if you really need it. None of them worked.
Pried the thing open... Ta-da! After a few hours I have my disk back - life is good again.
Fast forward another month. The weather gets cloudy again. This time the little guy fell asleep and refused to wake up.
Having tried all kinds of hacks, I ended up in an Apple Store. That was the best customer service experience I ever had. Hands down. Walked in the store, handed the dead thing over to a technician, got it back - with logic board replaced - a few days later. Had to sign two papers - one on my way in, the other on my way out. The only thing I had to tell them was my name. Plain fantastic.
Another month passes by... All of a sudden the little white box started dropping Ethernet network connection. Disconnect - reconnect - and you are in the game again - for 5 more minutes.
To my great astonishment I figured out it seemed to be a systemic problem with Mac Mini design or manufacturing process. The suggested workaround is to upgrade the networking hardware and/or downgrade network speed to 10 mbps.
While 10 mbps technically "worked" - I had a very stable connection - I couldn't do anything useful with it.
Today I'm going to visit the Apple Store again. Not to get the new iPhone 3G S.
Maybe I'm lucky but I have never had a hardware problem with any of a dozen of off-the-shelf and custom-built machines I owned. I'm not talking about hard drives. Motherboards, networking, etc all worked like a Swiss clock.
This is going to be my last Mac... At least for a while.
It's a nice little box. Very quiet. I enjoyed it for the first 30 minutes.
In the middle of the first hour I realized that there's no way I can expand a window, under Leopard, to fill the whole screen, which I've been doing for the past 15 years or so.
The next thing I discovered the little guy doesn't like about half of my external devices (printers, scanners, etc) and I have to say bye-bye to a bunch of Windows-only software that I came to love over the years.
This was not an option but hey - you can run Windows on a Mac!
I threw Win XP on it and was happy again. Nice little box. Very quiet.
The weather had been sunny for what feels like 9 months.
Then one day a DVD refused to unload. I mean really. As you might know, there is no hardware eject button on a Mini. There are quite a few ways to soft-eject the disk. And quite a few more to soft-eject it if you really need it. None of them worked.
Pried the thing open... Ta-da! After a few hours I have my disk back - life is good again.
Fast forward another month. The weather gets cloudy again. This time the little guy fell asleep and refused to wake up.
Having tried all kinds of hacks, I ended up in an Apple Store. That was the best customer service experience I ever had. Hands down. Walked in the store, handed the dead thing over to a technician, got it back - with logic board replaced - a few days later. Had to sign two papers - one on my way in, the other on my way out. The only thing I had to tell them was my name. Plain fantastic.
Another month passes by... All of a sudden the little white box started dropping Ethernet network connection. Disconnect - reconnect - and you are in the game again - for 5 more minutes.
To my great astonishment I figured out it seemed to be a systemic problem with Mac Mini design or manufacturing process. The suggested workaround is to upgrade the networking hardware and/or downgrade network speed to 10 mbps.
While 10 mbps technically "worked" - I had a very stable connection - I couldn't do anything useful with it.
Today I'm going to visit the Apple Store again. Not to get the new iPhone 3G S.
Maybe I'm lucky but I have never had a hardware problem with any of a dozen of off-the-shelf and custom-built machines I owned. I'm not talking about hard drives. Motherboards, networking, etc all worked like a Swiss clock.
This is going to be my last Mac... At least for a while.
Tuesday, June 16, 2009
New Evite.com Uses GWT and Grails
Matt Raible has recently posted on Raible Designs about enhancing evite.com with GWT and Grails.
The technologies seem to be a very natural combination for modern web application development.
The only thing I'm not happy about with the new evite.com is that it hogs 50% of my CPU power right on the spot. Looks like the next gig for Matt and Co ;-)
The technologies seem to be a very natural combination for modern web application development.
The only thing I'm not happy about with the new evite.com is that it hogs 50% of my CPU power right on the spot. Looks like the next gig for Matt and Co ;-)
Labels:
java
Tuesday, June 9, 2009
Google Apps Sync for Microsoft Outlook
Google has just announced an addition to Google Apps family - Google Apps Sync for Microsoft Outlook.
The new product will allow replacing Microsoft Exchange with Google Apps suite with minimal impact on the business users relying on Outlook in their day-to-day chores.
The new product will allow replacing Microsoft Exchange with Google Apps suite with minimal impact on the business users relying on Outlook in their day-to-day chores.
Labels:
enterprise,
google
Friday, June 5, 2009
JBoss Open Choice Strategy
RedHat has recently gotten a lot of good press by announcing a new enterprise Java strategy - JBoss Open Choice.
A choice is great and an open choice is better yet. The phrase as a whole feels somewhat like an oxymoron. My reading is "Open Choice on Top of our Great JBoss Product".
I do realize that JBoss comes in various flavors and can be further customized. The thing is I'm perfectly fine with vanilla Tomcat or Jetty and would like to build my open choice strategy from there.
My personal opinion aside, RedHat definitely moves in the right direction as evidenced by Rod Johnson's overreacted response on SpringSource team blog. If the Spring leader is worried about the new strategy, which he seems to be, RedHat is on the right track.
While I realize Rod's fiduciary duty, as SpringSource CEO, to promote lower-case-named servers, I do believe that RedHat's embrace of Spring as a part of the new initiative will do more good than harm to SpringSource as a company and Spring as a brand. With the exploding demand for Spring-based solutions in the enterprise, SpringSource will not likely to be able to scale fast to satisfy the demand in support without sacrificing the quality. RedHat's experience and proven track record, albeit in a different field, should fill in the void nicely.
A choice is great and an open choice is better yet. The phrase as a whole feels somewhat like an oxymoron. My reading is "Open Choice on Top of our Great JBoss Product".
I do realize that JBoss comes in various flavors and can be further customized. The thing is I'm perfectly fine with vanilla Tomcat or Jetty and would like to build my open choice strategy from there.
My personal opinion aside, RedHat definitely moves in the right direction as evidenced by Rod Johnson's overreacted response on SpringSource team blog. If the Spring leader is worried about the new strategy, which he seems to be, RedHat is on the right track.
While I realize Rod's fiduciary duty, as SpringSource CEO, to promote lower-case-named servers, I do believe that RedHat's embrace of Spring as a part of the new initiative will do more good than harm to SpringSource as a company and Spring as a brand. With the exploding demand for Spring-based solutions in the enterprise, SpringSource will not likely to be able to scale fast to satisfy the demand in support without sacrificing the quality. RedHat's experience and proven track record, albeit in a different field, should fill in the void nicely.
Labels:
java
Thursday, June 4, 2009
Spring Security 3.0.0 M1 is Available
Yesterday Luke Taylor announced availability of Spring Security 3.0.0.M1. Go get it and kick the tires.
There are a number of new features such as expression-based access control, enhanced method-level security, and permission-based filtering. All of that relies on Java 5 annotations heavily.
The codebase has been restructured and there are many spring-security-something jars where it used to be a single spring-security-core jar, which is a good thing. A number of classes have been renamed to better describe the concepts they represent.
Spring Security 3 requires Spring 3 so the migration path for applications using Spring Security 2 will involve at least two steps.
There are a number of new features such as expression-based access control, enhanced method-level security, and permission-based filtering. All of that relies on Java 5 annotations heavily.
The codebase has been restructured and there are many spring-security-something
Spring Security 3 requires Spring 3 so the migration path for applications using Spring Security 2 will involve at least two steps.
Labels:
java
Monday, June 1, 2009
TwitHive: Awsome Twitter Web Client
Positive thinking in action... A few weeks ago I scoured the web in search for a good web client for Twitter. Today enter, or rather navigate to, TwitHive.
The overall TwitHive experience is similar to TweetDeck, only better in a few respects.
It's a web application. Whatever you setup on one machine is readily available when you log in from another.
It supports multiple accounts. This is very important for anyone who's running a business and tweets from both personal and business account. Very neat.
I was very happy to find that the application properly displays the people I follow. That's in contrast to TweetDeck and native Twitter web client, both of which annoyingly show tweets from people that I no longer follow.
Groups can be created as needed. However, due to the clean "followee" list, I found that I didn't need to resort to groups and can enjoy the full stream.
Search functionality is on par with TweetDeck for my usage.
I liked the idea of channels as a way of organizing your Twitter usage. A channel can represent a tweet stream, a group, direct messages for a particular account, or live search results.
TwitHive currently doesn't seem to have notifications. I'm still contemplating whether it's good or bad.
The only feature that I miss is the ability to somehow hide read tweets. Hopefully it will be added in due time.
Somehow the post grew into a little review of a very nice service. I wish someone would do that for my application ;-)
Have a look at it and see for yourself.
The overall TwitHive experience is similar to TweetDeck, only better in a few respects.
It's a web application. Whatever you setup on one machine is readily available when you log in from another.
It supports multiple accounts. This is very important for anyone who's running a business and tweets from both personal and business account. Very neat.
I was very happy to find that the application properly displays the people I follow. That's in contrast to TweetDeck and native Twitter web client, both of which annoyingly show tweets from people that I no longer follow.
Groups can be created as needed. However, due to the clean "followee" list, I found that I didn't need to resort to groups and can enjoy the full stream.
Search functionality is on par with TweetDeck for my usage.
I liked the idea of channels as a way of organizing your Twitter usage. A channel can represent a tweet stream, a group, direct messages for a particular account, or live search results.
TwitHive currently doesn't seem to have notifications. I'm still contemplating whether it's good or bad.
The only feature that I miss is the ability to somehow hide read tweets. Hopefully it will be added in due time.
Somehow the post grew into a little review of a very nice service. I wish someone would do that for my application ;-)
Have a look at it and see for yourself.
Labels:
social
Subscribe to:
Posts (Atom)