Welcome to blog.chinoy.com Sign in | Join

January 2010 - Posts


Kindle Development Kit for Active Content beta

Business Wire - Amazon Announces Kindle Development Kit - Software Developers Can Now Build Active Content for Kindle - January 21, 2010 12:00 AM Eastern Time

It's about time. First app I'd love to see: folders.

It seems like Amazon will be creating that one first. The revenue incentive and model for Kindle Apps is interesting - free, one time and subscription. The 100mb over the air limit as well as the "no voip" restrictions make for an interesting upcoming interaction between developer, reader and Amazon. A little bit of pruning by Amazon should ensure some standards a la Apple's App Store and be very different from the open Android Market.

Social apps for readers will be really interesting - recommendations, what your friends are reading now, with monetized buy now links? Nice.

"User revenue will be split 70% to the developer and 30% to Amazon net of delivery fees of $0.15 / MB." means that developers will have to eat the $0.15/MB transfer of the app, but can set pricing for the app however they want, including free (see below).

Revenue Share
User revenue will be split 70% to the developer and 30% to Amazon net of delivery fees of $0.15 / MB. Remember that unlike smart phones, the Kindle user does not pay a monthly wireless fee or enter into an annual wireless contract. Kindle active content must be priced to cover the costs of downloads and on-going usage.

Pricing Options
Active content will be available to customers in the Kindle Store later this year. Your active content can be priced three ways:

  • Free - Active content applications that are smaller than 1MB and use less than 100KB/user/month of wireless data may be offered at no charge to customers. Amazon will pay the wireless costs associated with delivery and maintenance.
  • One-time Purchase - Customers will be charged once when purchasing active content. Content must have nominal (less than 100KB/user/month) ongoing wireless usage.
  • Monthly Subscription - Customers will be charged once per month for active content.
Active content applications have an upper size limit of 100MB. Applications larger than 10MB will not be delivered wirelessly but can be downloaded from the Kindle Store to a computer and transferred to the user's Kindle via USB.

Developer Guidelines
Voice over IP functionality, advertising, offensive materials, collection of customer information without express customer knowledge and consent, or usage of the Amazon or Kindle brand in any way are not allowed. In addition, active content must meet all Amazon technical requirements, not be a generic reader, and not contain malicious code.

We will work to refine the above guidelines throughout the beta.

0 Comments
Here's the situation: I've a stateless web app that uses jQuery to hit another application that's just a set of services.  I chose this model because I wanted to separate out the user interaction code from the information interface - the services simply give out data upon request and the UI allows the user to interact with it enough to make calls to the service interface.  Seems rational, simple and clean.

I chose WCF for the service layer and began playing around.  I'm a rather late adopter in learning WCF, primarily because it seemed so heavyweight.  Wrapping all sorts of communications methodologies into one sounded fairly ambitious.  To do a simple thing like return XML or JSON, there're a lot of pieces that need to be put in place: interfaces, somewhat arcane attributes - good practices, mind you with encapsulation of the attributes and the use of interfaces - but this could all be done and simpler with good old asmx's.  Once ASP.NET MVC came along, most of the web-facing usage for WCF is pretty much trumped and made obsolete.  Regardless, I persisted and made a nice front end UI with jQuery that posted json info to the WCF services and received json back.  All's well and good.

The problem comes in putting WCF on IIS7 in what I call development and production modes or, as other people have envisoned using it, in internal and external modes.  Another example scenario is URI aggregation and forwarding for a SOA scenario.  I have external responses on 80, but I want internal service traffic to occur on a different port.

My IIS was configured to respond to dev:80 and dev:8080.  Seems to respond ok when I hit localhost:80 or localhost:8080, but I receive a "This collection already contains an address with scheme http.  There can be at most one address per scheme in this collection.Parameter name: item" error when trying to go to dev:8080.

Looking around, the post "Can't host WCF service in a website with multiple identities" at Microsoft Connect sums it up nicely: Microsoft's aware of this issue posted by a user and closes the issue without a fix, calling the behavior "by design." To be fair, they changed the bug's status to "Closed as Fixed" without providing a fix.  (Like "hotfix" - neither hot nor a fix.)  Eventually in the comments on this bug they state that this issue is fixed in .NET 4.0 beta 2.  Great, that's what, WCF 3.0?  (or 3.0, if .NET 3.5 was 2.0).

Internally, I can run my application quite well, but users outside my network can't access it.  Either I put up two copies of the service (ugh) or I consolidate my service on one port.

I've come away thinking that I want that part of my brain back that is stuffed with knowing anything about WCF.

Here's my cynical opinion about it (aka hating). WCF comes out of Microsoft's "enlightenment, wave 2" attitude, after they'd finally adopted an OO methodology with .NET, where they appeared to be in such a tizzy that they slapped on some skis, got in a pool and proceeded to jump the shark, converting all their grand unification ideas into monolithic pieces (see their much delayed ORM, Entity Framework, and the poorly executed Workflow Foundation) and half-reworks (see SharePoint 2007, CRM 4.0, BizTalk 2006 - only the pieces that were easy to veneer with .NET were done, the rest was done incompletely, leaving them looking like Matt Dillon in There's Something About Mary trying to impress).  Honestly, it works great, you just gotta know where to step.  This is sort of a typical experience I've had with Microsoft products - early adopters evangelize and late ("late 1.0") adopters get bitten - except usually it's their packaged products that suffer this malaise, not libraries so close to the core framework.  "Knowing where to step" is not expert-level services from a software framework, it's rote memorization without logic behind it

No wonder Microsoft has no native SOA offering, preferring to partner with other SOA vendors (HP/Systinet, webMethods/SAP, or SOA Software - all of whom use Java).  The multiple offerings of BizTalk / WF / WCF (in some combination / competition) are these huge elephants in the room of that space.

Phew.  Hating's hard work.

I've more or less resigned myself to consolidating services, but I intend to, immediately afterwards, rewrite the app into ASP.NET MVC which will allow me to consolidate the stateless UI project and the services project into one.
0 Comments

I ordered my Nexus One in the middle of the press conference, just as the http://google.com/phone site went live. It arrived quickly, as expected, overnight. From shipping information (01/05 4:11p) to arrival (01/06 1:12p), less than a day (FedEx 429951121750). The FedEx truck arrives around 1:30p at the local UPS store where I send my delicate goods and was leaving just as I arrived. I saw him put down two items, a flat and a box. That box was mine.




The included apps are great - first the fact that there're included and second because some have additional features from my G1 Android 1.6 versions.

Google Voice, Maps, and Mail are all solid. Google Mail has the ability to handle multiple Google accounts, which is fantastic. Previously, one had to use IMAP on the generic EMail application to connect to Google accounts other than the primary that's needed for the phone. The Google Maps application shows accuracy on the location ("accurate to 5000 meters"). Google Voice can be set up to replace your cell service's voicemail.

The Contacts app is integrated with social media - Facebook, in particular. If you so choose, Contacts will match up Facebook profiles with your Google contacts. You can jump right to a connected contact's Facebook profile and even see an excerpt of their last post. I haven't used the Cliq interface, but this level of integration between different apps is subtle, just useful enough, and not intrusive. Well done.

The Gallery app That's been demoed in the release press conference is also great, what with its connection to Picasaweb and it's ease-of-navigation. There's another app called "Car Home" which has big icons sort of in the style of what you see on car GPS's these days - Voice Search, Navigation, View Map, Contacts, and Search - all geared towards being used while in a vehicle (not driving, of course).


Additionally, there's some haptic feedback when you choose an app - a short buzz before/as the app launches, and that's a nice touch, if you pardon the pun.

The lack of the keyboard was a major concern for me - I've been a keyboard partisan since my Nokia E70 with it's flip out keyboard. Texting, e-mail composition, web browsing, pretty much everything was better with a keyboard. I've used the virtual keyboard on the G1 and found it to be sluggish and slightly inaccurate (not as inaccurate as my iPod Touch's, but still). The virtual keyboard on the Nexus One's still a virtual keyboard, but I've been able to message and compose e-mails on it without too much trouble. My main issue with the virtual keyboard is accuracy and the fact that I have to watch the keyboard to see what I'm typing (and to verify that I pushed the right letter). With a physical keyboard, the layout's familiarity is enhanced by the tactile feedback of the keys themselves. I hear the Droid's keyboard is flat as a Judy Blume character and that'd be pretty disappointing. Of course, new phone means I give it a wide berth. We'll see how it does during the day to day use.

The two touted benefits - speed and graphics - are great and need no mention, really. They're great and it's fantastic to have a first-class device (tech specs). The speed is a huge improvement from the G1 and allows the device to more or less melt into the background. There's no longer a lot of waiting for things to start up. Other reviews state there's a slight but noticeable delay when flipping between home screens, but it's not really that annoying at all. The graphics, with the dynamic wallpaper flare and the zooming, scroll-wrapping app list, are wonderful and really gives me the comfort that I'm using a device that's been built with the user's pleasure in mind. Neither the Cliq or the Droid, with add-on UI interfaces from Motorola, or the initial G1, really had a feel of continuity to them. Google stepping up and making a set of core apps that work well and are consistent is a major boon. This set of comments is what people focus on when they talk about comparing the Nexus One to the iPhone - the consistency and premium device featureset. From that aspect, it's definitely a really good asset to the device market. 

The G1, even with its keyboard, was underpowered and sometimes struggled to run Android and, a year and a half ago, there really weren't a core set of solid Android apps. The Android Market is a phenomenal cornucopia, without a doubt, but without a core set of apps out of the box, it's tough to navigate the wilds of free (and possibly poorly coded) apps when looking for common functions.

Google's added a bunch of videos on YouTube about the Nexus One features. Take a look.


A further nice touch was a set of mp3's that was included from a bunch of artists, all but one I'd never heard of: 17 Candle, Ali Spagnola, Amanda Blank, Brett Dennen, Jackie Tohn, Lissy Trullie, Marcus Miller, Miike Snow, Mos Def, Really Addictive Sound, White Denim, William Fitzsimmons, Zack Borer.
0 Comments