A Device I'd Sworn to Never Own: The Ad-Supported Kindle 3

With a hundred dollar Amazon gift card laying around, I decided to purchase one of the new ad-supported Kindles for $114. With a total net cost to me of $14 which included free shipping. For the longest time I've been saying, I'll get a Kindle when it comes free with a NYTimes subscription. That hasn't happened - yet - but I see a future where it will. Surely, a one-time $100 purchase (probably even less with bulk purchases and business partnerships) of a Kindle by the NYTimes for a customer cost a lot less than physically printing and delivering a newspaper for a year.

The Ads
The ads are a lot less annoying than they sound, and never appear while reading. Currently there aren't many advertisers on the platform and I'm not a target audience for either Buick or Oil of Olay. The ads are displayed as the screen saver (though you can fully power down the Kindle to a white screen), and little banner ads at the bottom of the table of contents. Hardly detrimental to the reading experience. There are even some enticing Amazon promotions basically giving you 50% off purchases.

The Human Factor
Not since I purchased a 3rd generation iPod has a piece of technology made me so happy (I've had several iPods since, including the latest Touch, new laptops, Roku - a  close third, etc.).  The Kindle has really re-energized my love for reading mostly because it fits in my pocket easier than a paperback, and almost almost never needs charging. As I walk out the door, I slip the Kindle into my pocket, even on short trips...something I'd never do with a larger, paperback book. I have no problem taking the Kindle on a train ride to a Red Sox game.

Example, I was reading Game of Thrones (now an HBO Show), paper back version, before purchasing the Kindle. It's 850 pages and 1.5 inches thick, something I wouldn't causally carry around with me, mostly because I couldn't just slide it easily in my jacket and the heft always made itself known. With the Kindle, I can carry it with me and hardly notice it's there. And I'm not even comparing it to a hard-bound newly released book. Who wants to carry that weight around, or even hold it while reading?  I hate to make the obvious comparison to an iPod and you music library...so I won't, but size does matter.
Kindle_7017
The Ergonomics
The ergonomics of holding a Kindle is far superior to keeping a mass-market paperback book open. You know how those pages want to constanty shut themselves and you battle to put creases in the spine? Not to mention the perks of adjusting font sizes and automatic book marking.

The e-Ink screen is a joy to look at. Don't discount this, I can stare at this thing without my eyes straining for long periods of time. I can't say the same for LCD sceens. Someday, we'll have color e-Ink, but it's not ready yet, according to Consumer Reports interview with Jeff Bezos:
Color E Ink “is not ready for prime time…the colors are very pale.” But he added that “it continues to be improved
Finally, not having to worry about charging the device is a great touch. I look forward to the days when our cell phones only need a monthly charging.

Instapaper Integration for Reading all the Important Internet Content
One of the things I never thought I'd be using the Kindle for was reading content of blogs. There is a couple types of content I read on the web: stuff you only skim (news headlines, friend's non-sense on Twitter), and then the stuff you really need to sink your mind into, like a long article at The Economist, or a 33 page guide to MongoDB.  I've been using Instapaper.com to save web content that requires my full focus and have it sent for free (using WIFI), daily, to my Kindle.  To setup wiresless delivery of articles that you've added to Instapaper, see this page (it wasn't obvious for me to find originally).  You'll enter your Kindle-specific email address (@free.kindle.com)  and how frequently you want Instapaper to update your device. One nice touch is that if you read an article on Instapaper and mark it as ready, your Kindle won't receive it at the next update.

Why This Wins vs the iPad for Reading Consumption
I don't mind being disconnected from the live web once in awhile for distraction free absorption of content. While all of this content can all be read on the iPad, but given the alternative opportunity for distracting uses of my time (Twitter, Facebook, a mindless-game, etc), I'll loose focus on what I'm reading and waste time on my couch. Though the Kindle is technology, it feels like reading a book. Sure, part of this is just personal behavior, but the Kindle sure provides a distraction free reading experience for me to absorb all sorts of great content. The smaller size of the Kindle does make me wonder if a 7" iPad would be an enticing carry-around device (I'd probably consider toting a 7" iPad-type device with me, though I might also suffer through reading for these short trips on my cell phone).  If you looking for a lightweight device to faciliate only reading content, the Kindle fits the bill nicely.

Take my review with a grain of salt since I only paid $14 for my Kindle. However, I think the device is well worth the full $114 price tag, and can bring back those moments of low-tech reading enjoyment before the Internet noise infected our attention spans.  I'm sure in the future these type of devices will be only $50 and even subsidized by content providers.

Let's read.

Why the Flex Coders Yahoo! Group Should Be Replaced by StackoverFlow.com

The Yahoo! Flex Coders mailing list group is really good at connecting developers with important people in the know at Adobe to get help with the strange bugs they’re having while developing applications with Adobe Flex.

However, Yahoo! Groups is such an unfortunate and antiquated technology to use for developers asking and answering questions.  Sure, it’s great if you like communication in a 1995-email-list-serv sort of way.

However, it doesn’t have to be this painful.  By using StackOverflow.Com, all your developer Q&A pains are solved.

Stackoverflow offers:

1)  Better long term archivability of question and answers, all nicely rated and richly formatted.  On the Yahoo! groups, you get a string of old emails, including usually the original question again, all in a nasty string-formatted email archive that you have to dig through.  Don’t believe me, this is usually what a thread message looks like.

2)  StackOverflow allows formatting source code so it is readable by both the questioners, the answerers, and those in the future trying to decipher both.  Try maintaining your source code formatting when sending through an email, or worse, using Yahoo!’s poor website UI for posting to the Group.  And if you’re generous enough to answer someone’s questions, why complicate by having to deciphering the poor formatting?  Or, if you’re fortunate enough to view the archive through one of the many spiders that you find via Google, it might look like this.  Ick.

3)  Adding images and screen shots that are managed in the flow of your question.  This allows for captioning of images, etc..  Take a look at my latest question's nice formatting (or, look at the answer to this question, with nice source code, inline, with ability to leave well formatted comments around it).  Try doing that in the Yahoo! interface.

4)  Searching by keywords and tags.  Want just see what’s happening for “Flex”, just search on the Flex tag, which BTW, gets a nice “Adobe” icon next to it, letting you know that’s the Flex tag isn’t related to something else.

5)  Sometimes your question isn’t exactly a Flex question.  Maybe it falls more into the realm of “Flash”, or “Actionscript” or “AIR”.  So the answer might be more pertinent to a larger audience than initially thought.  It’s important to think of the larger audience for your questions, as someone down the road might have a similar issue as you and there’s no reason why they shouldn’t easily find the answer to your question, as it might keep them from asking the same question again.

I could keep listing more, but I don’t think I need to.  I wish the Adobe gurus like Alex Harui (@aharui) would let the Flex Coders depreciate, and have everyone move on.  (Sorry to only name Alex, as there’s lots of good people there answering questions)  And btw, I fully visit Flex Coders because I know that some of the Adobe people actually take a lot of time to answer questions there.  (I’m also sure they have a valid reason for maintaining the Flex Coders list.)

StackOverflow.com has a perfectly viable Adobe user base answering all sorts of questions, today, right now.  However, this suggestion is still based on the fact that I have to go use the Flex Coders group at Yahoo for the really tricky things that no one else can fix.

So get started today by viewing the Stackoverflow.com’s Flex questions (and answers).

Flash Builder 4 Released to Cheers and Beers

Well, everyone is blogging about it. On Friday night, I attended Flash Camp in Boston. It was a classy event put on by Adobe at the Charles Hotel in Cambridge, MA. Nice venue, and lots on enthusiasm from everyone around about FB4.  I really appreciated the ice-cold Smuttynose Shoals Pale Ale.  

Anyway, all the talks from Friday night are up at Adobe.TV. The mostly discussed the new features, the new Effects, the new Spark components, etc. Must watch viewing, and most of them are short (20 minuets), for someone wanting to get a quick overview of what's new in Flash Builder 4 and Flex 4r.  For you, download the demo of Flash Builder 4 over at Adobe. There's so many great things with the new in Flash Builder 4, but, I'll let you read about them here.

My only regret is that I'm going to be stuck supporting a very large SaaS Flex 3 application for some time. And it might be difficult to trickle in new stuff in the mean time.

Working with Grails and Adobe Flex – Download Free Chapter from Professional Flex 3

In Professional Flex 3, I wrote a chapter on integrating Flex with Java-based Web Services  (see below to download actual chapter).  More specifically I used Grails (similar to Ruby on Rails, except for the Java world), which is based on Groovy (a dynamic language that compiles to the Java platform) to expose SOAP-based Web Services to the client built with Adobe Flex.  The application isn’t anything sexy, but does show CRUD-based data operations for a Flex client using a SOAP-based Web Service implemented on the Java stack.

Note, in the actual book, there’s also similar demos (that I wrote), on http’s RESTFul web services with the ZEND framework (see Chapter 49 in Professional Flex 3), and Soap-based Web Services with Microsoft’s .NET WebService stack and the ADO.NET Entity framework (see Chapter 51 in Professional Flex 3).

Here’s just a few reason why I think Grails/Groovy for the Java world are great:

1)  All your syntactical sugar of the dynamic languages for the Java platform.  If you program in Python or Ruby you’ll know what I’m talking about.

2)  Reliable, proven runtime with Java.  Enterprises have been running a variety of highly supported Java runtimes supported by companies like Apache, IBM, Oracle, ATG, etc…

3)  Most likely, your operational teams and data centers already support Java VMs and have operational procedures in effect around maintaining such infrastructure.  While, they won’t be switching to a LAMP-based open source stack anytime soon, there is probably a path you can go down to use Groovy and Grails for application development that can be released to existing infrastructure, hardware, VM’s, etc…

Anyone stuck in a large corporate, enterprise environment at least has an option to get some syntactical sugar and agile speed in their development environment.

Now, add a sexy Flex interface and you’re cooking.

My publisher Wiley is allowing me to offer up the chapter.  You can download it here  (335KB PDF file).  Don’t forget about the source code for Chapter 50, which is available here at Assembla (Subversion repository).

I hope you enjoy.

New Book: Professional Flex 3 Available Today.

Media_httpwwwsimplifi_bdgrq

It’s Here!  For about a year I worked with a team of smart guys (Andrew Trice, Joseph Balderson, Peter Ent, Jun Heider, Tom Sugden, David Hassoun, Joe Berkovitz) to create what we think is one of the best books out there on Adobe Flex.  It’s around 1400 pages, nearly 5 pounds, of comprehensive knowledge.  It’s available at Barnes and Noble and Amazon.Com, and probably your local bookstore or wherever Wrox books are sold.

I’m proud of this book.  It was hard to write and took way more time than I thought it would.  But the end product is outstanding.  It’s one killer book that covers a lot of the internals of Flex, including the extras like Cairngorm, unit testing, AIR, Flash Media services, FXG, Flex Builder, Subclipse, custom components and the component lifecycle, skiing, Flash integration, etc…  It’s all covered.

I was responsible for writing about Adobe AIR and a lot of the server side data stuff, especially in regards to open source, Java, and .NET.  I did a lot of work to show the flexibility (no pun intended) of working with Flex and a variety of back-end technologies.  Specifically I have demos in there working with server-side data using:

  • PHP and the Zend framework over a RESTful-based framework
  • Java WebServies created using Grails and Groovy.
  • .NET with WebServices

I have some follow ups that I want to write about.  Specifically, I want to port the Zend framework samples to use the new AMF support.  And while I’m at it, I’d like to port the Grails example to use AMF, too.  BTW, I believe GRAILS is the Holy Grail (dang, another bad pun) for Java Developers wanting some syntactical-love in their lives, yet at the same time harnessing all those enterprise APIs and existing operational infrastructure that seem to chain them down.

To get you started, Andrew Trice, one of the co-authors, has posted a nice excerpt from the book: Chapter 67: Application Performance Strategies.

While Flex 4 and Flash Builder 4 are on the horizon for being released, they both still rely on the fundamental technology presented in this book.  This book will be a great addition to your team library, especially for getting your new developers up to speed, or your existing developers to learn some advanced techniques.

Go forth, read, and build great applications.

Heartland Security Breach and Bank of America's mishandling of my personal information.

Like many, all of a sudden fraudulent credit card charges started appearing on my account.  Bank of America caught it quickly.  I don't know for certain, but I'm fairly confident it has to do with the Heartland Security breach. However, there's no real way for me as a consumer to know what of my information was stolen. The Heartland security breach isn't just some website with your credit card being hacked, but is a credit card transaction clearing house used by Bank of America.  No matter how careful you were with you card numbers, they got it. While the credit card has been canceled and the fraud associated with the credit card has ceased, there's a new issue cropping up.  I've been all of a sudden getting a lot of solicitation phone calls to my cell phone, as if someone took my credit card information (and my address and phone number), and started registering it on a bunch of mailing lists and sites.  A new type of scam for ad revenue?  I don't know, but it's very annoying. I know for a fact that they got my address and phone number because on the day that the credit card fraud started, one Internet retailer called me on my phone trying to confirm an order to my address.  What's irritating about it, is that after I told them it was fraud, they processed the charge to my credit card anyway. What really worries me is the lack of press and the lack of communication from Bank of America about this.  They're hiding something, I'm sure of it.
Media_httpimgzemantac_foweb

Google Android Photo Sharing Application Idea

I'm quite excited by the idea of the new Android TMobile G1.  Mostly, because I'm an existing TMobile customer, so there's no great pain for me to switch to try this device (if I'm willing to give up my Blackberry, which has treated me quite well).  But, I'm a big believer in the future of this Google platform, and the promised openness.  The SDK integrates into my exciting development platform, Eclipse.  I already a believe in Amazon's DRM-Free MP3 store.  (Anyone who purchases music online, and cares about the future compatibility of their purchased music should be using Amazon's MP3 store.).  I'm a fan of Gmail.  Basically, I'm probably the target market for this first generation device.

Anyway, here's my first idea for an Android application.  Who, knows, maybe this exists on the phone already.  Anyone out there, feel free to implement this idea, as I have no time until after November.

I use Picasa and Flickr for storing my photos online. But what I'm about to propose should be built with plug-in extensibility in mind, so that people can create the ability for it to work with ANY online photo sharing site that supports 3rd party access.

I'd like my phone to connect to the Internet (at set times, or set ranges), and synchronize the latest albums/galleries for offline use (because we know the 3G network is going to be limited).  These images would then be available on the device anytime I wanted, instead of relying on 3G network.

So, this software would:

1) Manage an offline cache:  the physical size allocated for local storage, or based number of offline galleries the user would like to keep available.

2) It would then connect to Internet, while not being used, and fetch appropriately sized images for local viewing

3) Optionally, apply some sort of photo frame for visual for eye-candy, whether this is a simple drop shadow, or something more complex and configurable like a fancy sloppy border photo frame.

4) Support lightweight plug-ins that can work with any online-photo sharing site.
5) Open source, available at code.google.com so developers could quickly build plug-ins for all available photo sharing sites.

Anyway, just thinking out load, and thinking of the possibility of an open platform that smart people want to develop for.

Technorati Tags: ,,

Ultimate Home Office for Less that $100

Warning Graphical Content Ahead.  Parents be warned.  Topless male operating a computer.

In Boston, it can get quite humid in the summer time, not Washington or Florida humid, but nonetheless....  Coupled with the fact that I live in the top floor of a brick building that heats up to incredible temperatures (its 90 in here right now).

I had to move my office up to the roof deck:

Media_httpwwwsimplifi_fghpo

In case you don't see the specific details and want it priced out:

1)   $19.95 for kiddie swimming pool at local hardware store.

2)   Smuttynose Summer Ale, $8 for 6.

3)  Blackberry, no cost counted since it's in my pocket regardless of office location.

4)  A green laptop table, $49, courtesy of Target.

5)  Sunglasses that someone left here at the last BBQ: Free.  (Sorry Frank, had to borrow them.)

Total cost, $78 + roof deck.

Media_httpwwwsimplifi_gvrcf

Media_httpwwwsimplifi_jfqan

Ok, back to some real work.

The excitement of Adobe AIR continues with Balsamiq Mockups

Yesterday I came across a post over at Inside RIA (probably the best place to keep up on RIA ) about a handy new mockup Tool called Balsamiq Mockups.  In the past, I've used a lot of Viso and PowerPoint with various templates for doing mockups, so I'm always interested in tools that help me with quick and dirty screen design to communicate concepts.  I'm even more interested in tools that are built in cross-platform tool kits that can perform this.

This post isn't only about about screen mockup software (though a brief review with follow), it's about the power of Adobe AIR and the Flex platform.  Its been awhile since I've seen some exciting AIR work (I know it probably exists), so I thought I'd write some of my thoughts out...

Since AIR hasn't been around very long, there's not a very long list of applications that really shine and show it off (Twhirl, FCG, DestroyFlickr are really good ones, though).  Most, though, that I've looked at are semi-finished, with minimal polish.  But thats OK, it takes time to build a properly polished desktop application, and I'm sure a lot of the applications were built to play around with the new toolkit.  But none have really held merits on their own as just being must-have applications.  99% of every AIR application I've tried has been uninstalled because either they weren't very polished, only performed a subset of what they'll do (early betas), or there's nothing extra that they do that the versions running as Flex applications inside a browser can do, or that even a regular web application can perform.  And I always say, if it can run in the browser, don't make me install an application to my machine.

I think this is where Balsamiq Mockups really shines.  Its a tool that no matter what it was written in (it happens to be Adobe AIR) that I feel I could finally keep on my desktop, and not just to tinker with because I work with AIR and Flex.  It shows off a rich UI that is well thought-out and very user intuitive.  Flex is being shown off here, too.  The Flex graphics apis are one of my favorite parts of the toolset, and Balsamiq really shows off how nice of a layout engine can be designed (theres other Flex apps, too, that do mind mapping, etc. that I've seen, I just don't have the links handy).  When dragging components onto the canvas, the hinting for aligning with other objects is superb and so simple.   One of my favorite things about Flex and AIR is ability to build modern UIs as Balsamiq Mockups demonstrates. 

Nevermind that they already have an upgrade path to Linux for when the AIR runtime is released.   AIR has the potential to huge for Linux desktop application development.

Things that make Balsamiq Mockups a great little application:

1)  The layout engine and ability to aline things simply

2)  The little iconwidget that lets you explore their library for little icons

3)  Super simple to use

Here's a little mockup I made of Eclipse with Flex Builder in debug mode:

Media_httpwwwsimplifi_dmfgz

Its nothing fancy, but it did only take me about 15 minutes to put together, and that's including the time needed to explore all the available mockup compoents, different properties they support, etc....Notice how easy things more the most part align.  It was really quite easy.

Some features I'd like to see implemented:

1)  A library of other screen elements that you can browse online and import into the application.  Maybe even have an API so third-party devs could build these UI components and publish them to this browsable repository.  After all, Adobe AIR is about connected applications.

2)  Ability to adjust the font size of screen elements.  Some of the elements, like the Link Bar allow changing the font sizes), but I'd like to see this extended to some of the other elements, like the Tabs Bar.

3)  A tree mockup component.  UPDATE: Found it in the component finder called "Tree Pane"

4)  A vertical Button Bar.  In fact, just make a Button bar that's either horizontal or vertical, and make it really easy to add either icon buttons, text, or both!

5)  A mockup Grid component.   UPDATE: Found the DataGrid, had to type it in the component finder in the top (I didn't see it in the component bar)

6) an online Flex version with saving PNG files locally via proxying through the server.  (Hey, what can I say, I'm a bit adverse to installing software, when a simple software link could do the trick.)  I understand though, the perceptions of paying money for software and having a nice desktop download, and not having to wait for all the graphical assets to load, though...just thinking outloud.

That's about it as far as what I have to say about this usefully simply screen mockup tool.  Though the tool costs money, it's actually useful and pretty polished, so its probably worth the $80 or so.

About cross-platform development in general:

In the past I've looked at a lot of cross-platform toolkits, like QT, wxWindows (and wxPython bindings for wxWindows), and java toolkits such as Swing and QT's Jambi.  I think AIR has the potential to really help in cross-platform application development, because I have some issues with all the prior one's mentioned (I'll write about that later).  My only hope is that Adobe releases other security settings so that you can run AIR applications as full local applications with full access to the operating system and other applications (this is AIR's biggest downfall at the moment).  This is needed to get the hardcore desktop developers interested in building software that integrates with other services (Yeah, I know about the Merapi project, but if I'm going to have to maintain and ship the java JRE with my AIR application, I'd seriously have to consider not using AIR and instead settle for QT's Jambi...actually I'd probably still prefer the AIR and Flex toolkit and deal with shipping the java runtimes...).

Anyway, keep up the good work building these tools and these applications.  Get enough kickin' applications written in AIR, then it wont matter what operating system the user wants to use they'll be able to use your application.

Sunset,North Carolina Style.

Since I'm busy, busy with client work and writing a book, thought I'd at least post a colorful photo I took a few weeks ago while on a road trip to North Carolina.  Any interest of viewing more of these types of photos, visit my Picasa gallery of Saturated North Carolina.

Media_httplh3ggphtcom_eprme

If you care about how the photo was made: I use a Canon 20D, a Sigma 24-70 2.8 lens, tripod, a neutral density filter (3 grad, soft), and some fun with color saturation in Photoshop CS3.