Welcome to blog.chinoy.com Sign in | Join

This is a test of a very simple Wolfram|Alpha beta widget about Arizona Crime Rates:

0 Comments

Your Genome Is Coming, June 3, 2010, Forbes
Illumina, maker of sequencing machines, announced a MD-requested full genome sequence price of $19,500.

A great chart from Gregory Lucifer of Life Technologies showing the cost of sequencing a human genome vs. Moore's Law, below.

0 Comments

The H+ Summit was this weekend at Harvard and was live broadcast on the web. In a while, H+'ll have sessions on line. Until then, a few links:

Of random interest:

0 Comments

The Lenovo S10-2, with it's oversmall keyboard and smallish screen, has taken a permanent back seat to the iPad for livingroom and wandering around computing. The S10-2 has Windows 7 on it, a process which took a while, so I figured that I'd experiment and put the latest Ubuntu 10.4 Netbook Edition on it to see if it was snappy and responsive. UNE is supposed to have a new layout / launcher that's geared towards netbooks.

The download site has a link that describes how to create a bootable USB, which is great. Great because 1) the Lenovo S10-2 has no CD drive, 2) there weren't any good clear instructions on how to do this for the Windows 7 upgrade I'd performed and 3) the instructions were provided right there, on the download page, not some "go to this shady site" reference.

Creating a USB stick went fairly smoothly and I was able to get a stick that'd boot, granted I had to hit F12 in the startup process to choose the USB stick, and perusing the UNE interface in livecd mode gave me confidence. The wacky "application as tabs" sort of thing and the left tab-section for applications as "apps" seemed to work for the small screen.

There were multiple issues, though, when I wanted to pull the trigger and install the OS on to this machine.

First, Avira antivirus had to be disabled to use usb-creator. Pretty minor, really. The usb-creator.exe is provided on the iso of ubuntu, so mounting the iso, grabbing the exe, and then running it was no problem. Avira chirped at an unknown autorun.inf, which is a good thing for antiviruses to do.

Second, my USB stick was NTFS formatted and usb-creator likes FAT32, so I reformatted it.

Third, there's an option in usb-creator to store documents and settings on the USB when starting up from the USB. Don't choose it, choose instead the "discarded on shutdown, unless you save them elsewhere" option. Ubuntu won't boot in livecd mode or install mode with that option chosen. It'll drop to a command prompt with the error "can not mount /dev/loop1 on /cow". Really frustrating. I googled around until I found a few helpful hints and was able to get past that.

Fourth, and most importantly, the Lenovo partition scheme seems to be the blocker when installing. Ubuntu can't figure it out and "parted_server" crashes after the "choose your keyboard setup" screen in the wizard. I found a few references to that on the internets, but nothing was terribly helpful, so I ended up booting in livecd mode and using Ubuntu's disk management Disk Utility to wipe all the partitions. I wasn't going to be using Win7 and the Lenovo restore partition was only good for XP, so bye-bye Windows 7, helo Ubuntu.

Until ChromeOS comes around.

0 Comments

My brother's a graduate student at University of Chicago who gets opportunities to speak at various events, including this one, "Sundays at Rockefeller." Being a graduate student, the news isn't always as prominent in his noise stream as for us civilians (lucky him), so when he asked me:

Abbas: have any policians or media figures said anything really nutso about islam lately? :)
I practically jumped out of my seat.

So, for you, dear readers, I present Islam in the News Roundup.

Belgium bans the Veil, France trying to follow, Christian Science Monitor 04/30/2010

"The burqa has no place in France" - French President Nicholas Sarkozy. Previously, Swiss voters barred Muslims from building minarets in a referrendum held in December.
"Once we solve the burqa problem, we'll still have the problem of polygamy, of praying in the streets of big cities, of banning pork from cafeterias, in short all the sectarian demands the French are confronted with daily" - French far right leader, Marine Le Pen
Belgian lawmakers vote to ban full-face veils in public, Washington Post, 04/30/2010

Franklin Graham, Billy Graham's son, booted from 05/06/2010 Pentagon prayer service for calling Islam a "very violent religion," and Sarah Palin defending him

Great contrast between the military, who's supposed to be apolitical and the Congress, who's nothing but pandering political simps. Apart from the WashPo story on how the military's move could be psyops, it's a good example as to how "political Islam" is more of a term applicable to how non-muslims handle Islam in America. Oh, and earlier in Apirl a federal court ruled that the National Day of Prayer, established by Congress in 1952, was unconstitutional on separation of church and state grounds.
Other super smooth comments by Franklin include:
  • "I don't believe this is a wonderful, peaceful religion."
  • "wicked, violent and not of the same God."
Last on this topic, I'm aware that most of the links are to "lefty" blogs/newspapers. Clearly, like tons of armed white men tea partying on Washington, anti-Islam rhetoric is ignorable by most white America and a given in the media.

The Pope, trying to get out from under pedophiles and his 2006 comments regarding Islam, states you have to work with Islam
Pope: African church must work with Islam, UPI, 04/30/2010

In an audience Thursday at the Vatican with bishops from Gambia, Sierra Leone and Liberia, the pope urged them to "continue to promote dialogue with other religions and above all with Islam," the Italian news agency ANSA reported.
Here, I'm not so clear whether he means the full Church or just those in Africa.

Tariq Ramadan, banned from taking a tenured position at Notre Dame during the Bush administration has his travel restrictions removed by the Obama administration.

Formerly Banned Muslim Scholar Tours U.S., 04/29/2010
Although he's touring in the US, he says he wouldn't now teach in the US (New York Mag, 04/08/2010) - exactly what he was going to do in 2004. He's now at Oxford. That's a step up, I'd say. Some decent commentary by Ramadan about the past administration and how Islam is viewed in America or Europe from someone on the outside, literally.

Last, but not least, Ayatollah Sedighi who said that indecent fashion causes earthquakes.

  • Do immodestly dressed women really cause earthquakes?, Fitsnews, 04/27/2010. This link has cleavage!
  • Iranian cleric: Promiscuous women cause quakes, AP, 04/19/2010
    "Many women who do not dress modestly ... lead young men astray, corrupt their chastity and spread adultery in society, which (consequently) increases earthquakes," Hojatoleslam Kazem Sedighi was quoted as saying by Iranian media.
  • A minor footnote is the media getting all excited about some girl who created a Fasebook page and called it Boobquake. Yawn.
If American politicians and talking heads can condescend and pander to special interest groups, what's wrong with a little red meat from an Ayatollah (or, I guess that'd be, a little less red meat)? This is a non-story, except that it's a hilarious cultural / rhetorical difference fault point that lots of people can stuff their personal peccadillos into (that's what she said!), such as feminism, supposed oppression of women, ignorance, blah blah, boring.

I guess anything that gets women to highlight their boobies can't be bad. Rock on Hujjat al-Islam Sedighi.

0 Comments

Stanford bioengineer explores own genome, 04/30/2010, Silicon Valley Mercury News

Lucky bastard.

A decade ago, sequencing of the first-ever whole genome by the federal government took many years and cost $400 million to $500 million. Quake's machine, the size of a freezer, sequenced his human genome in only four weeks, for $50,000. The procedure is expected to cost $10,000 by the end of this year.

U. scientist links one gene to intelligence, 04/22/2010, Salt Lake Tribune

Interesting. STX1A has a variant on SNPedia, Rs3793243.

The gene in question plays a central role in neuro-transmission, particularly in the areas of the brain associated with learning, memory and fear.
"We're talking about a basic utility when we look at STX1A," [Julie] Korenberg said. "This study shows in part how nature's hand shapes intelligence at the synapse."
... She and colleagues at California institutions performed genetic testing on 65 patients with Williams Syndrome, an uncommon congenital developmental disorder that appears in only one in 20,000 births. People with the syndrome are genetically similar to other individuals except they are missing 27 genes.

SNPwatch: Genetic Variant May Impact Rate of Cognitive Decline in the Elderly, 04/26/2010, The Spittoon, 23andme's blog

Variants of Rs4680 have different effects over time.

New research, published recently in the journal Neurology, has found the surprising result that a genetic variant previously associated with better cognitive function in young people appears to have the opposite effect as people get older.
I'll be interested to see what my snps reveal, and also what sort of mitigation environmental effects might have.

0 Comments

DNA Day chat room transcribes humor:

  • Q: James Woods Elementary in MA (5th grade student): My mom says she can never fit her genes. Can you fix her DNA so she can fit them?
  • A: Sarah Harding, M.P.H: Unfortunately, no...your genes pretty much stay the same from the day you are born. It's your environment that can change...Tell her to buy bigger pants.

2010 National DNA Day Online Chatroom Transcript, genome.gov
0 Comments

... and it's free!

From iPad Apps

0 Comments
Watching a video on the iPad is really nice - great clear, colorful HD screen - with one exception: the glare.  I watched a handbraked episode of Stargate Universe, as well as Jamie Oliver's Food Revolution and an episode of Modern Family via the ABC Player iPad application.

Overall, the apps for the iPad - ones designed to take advantage of the larger screen - are wonderfully useful.

Specific iPad applications

The Yahoo! Entertainment app is much more useful than the web version.  It's too bad neither TiVo or MSN have iPad formatted apps like this.  Customizing TV listings is very intuitive, poking at on/off choices with a finger is even more intuitive than pointing and clicking with a mouse.

The NPR app is fun, too, with streaming access to affiliates as well as a triple stacked stacked news story layout.

The Yahoo! Entertainment app crashed a few times, as did the NPR app, returning to the home screen.

The IMDB application was really fun.  The wife and I sat around looking up movies and reading trivia and being silly running lines from The Karate Kid and Office Space.  All on the couch, without a keyboard.  That part truly shows off how the same data, different interface and in a movie-watching setting (couch) really can make the power of the internets click.  I understand why Steve says it's a magical device.

ABC Player is fantastic, access to watch shows on demand is reminiscent of Hulu.  I have to say that I was right on the edge of buying an iPad and the Modern Family episode featuring it had a little bit to contribute to pushing me over.  ABC being owned by Disney with Steve Jobs as a 7% shareholder probably had a something to do with that.

Cool Hunting and Gilt's apps are also really great; easy browsing of the articles and items to buy are formatted to take advantage of the screen and input style.  Here, also, Gilt's application has crashed once or twice on me.

With the larger storage space (I got the 32gb model), I think what might be an issue soon is more organization for certain applications.  It sure is nice to have space for a lot of music, but music doesn't need screen size as the successful iPod line can attest - videos and pictures do.  And both videos and pictures need some level of organization and categorization.  On iTunes, on the desktop, I can only select a single level of folders for photos, whereas on the iPad, it has a more sophisticated level of organization: all thumbnails, or view by date or view by location.  This is clever and pleasing.  With videos, it's just by all thumbnails and once people gear up and buy tv shows and movies via iTunes, some better level of organization will be needed.

Some Technical Thoughts

Using the various applications on the iPad makes me think of the early days of the World Wide Web when various different browsers were coming out and HTML implementations were fragmenting and CSS was implemented spottily.  The big angst and handwringing was about having to design a website multiple times just to cover all the browsers that were out there.  It's clear that there's a divide between web browsers made for desktop and laptop devices (15"+ lcds, but more likely 19"+) and handheld/phone devices (3.7" screens or so) - things that fit in your pocket.  The iPad is a new class of device - can't fit it in your pocket, but you don't want it to be a traditional computer - at about 9.5".  This is the size of the "netbook" which hasn't really caused any inspiration at all, except maybe in the NGO sector as cheap laptops for the developing world (see XO, etc.)

The varying interfaces are also of concern.  Right now, there're very few (free) iPad formatted apps.  That, of course, will change.  When Flash rose to prominence (and even now) the 

Another thought comes to mind with Windows 7 Phone Series - Microsoft's touting that you can write Silverlight (browser-based) or XNA (XBox 360) applications and have them run on WinMo7 devices.  This hearkens back to the horrible fail of Sun's tagline for Java "write once, deploy anywhere."  No one will want to run the same silverlight browser-based application (19"+ screen) or XBox game in the same format as a mobile device (3.7" screen).  They're two different types of media.

USB charging is an issue - it just doesn't work on (some) computers.  On all the ones I have, the iPad won't charge - I have to use a wall outlet.  There are apple support articles on this: http://support.apple.com/kb/HT4060 and http://support.apple.com/kb/HT4049.

I took a peek at some of the crash logs and most of them appear to be Y! Entertainment out of memory ones and one Mobile Safari one.

Accessories

Seems like there're more accessories to shake a stick at yet, never the right ones.  In particular, there needs to be an unobtrusive and heavy stand that can hold the 1.5 lb iPad in landscape and, most importantly, the angled, top heavy portrait mode.  An ideal stand height would be about the height of the iPad's bezel, and black in color.  I'm temporarily using the WD TV stand I have and it's too light (can't hold the iPad in portrait mode) and too high (about twice the height of the iPad bezel), but it's functional.

The Macally ViewStand looks quite clever, mimicing an iMac type appearance for a landscape view: http://www.macally.com/EN/Product/ArticleShow.asp?ArticleID=325

The M-Edge Trip Jacket appeals to the Molskine lover in me: http://www.medgestore.com/products/ipad-trip.psp

I'd also like to see more clamp-type accessories so I can have the iPad at various angles in various places.
0 Comments

The Collatz Conjecture is a mathematical problem which states that given any number, and following a simple formula, converges to 1.

Take any number and do this:

  • If odd, multiply by 3 and add 1
  • If even, divide by 2
Repeat. You'll get to 1. Every time.

A comment about the latest xkcd comic's reference to the Collatz Conjecture, which I had never heard of before, lead me to create Hailstone sequence; my first Google AppEngine web app.

1 Comments
Notes for Today: March 6, 2010

Back when I started my blog, I would have entries that were simply lists of links that I'd come across and thought worth sharing or brief events during the day.  Never mind "sharing with whom."  The impetus to share, presuming some sort of tenuous permanence seems like a decent rationale for blogging.

Today, one of the tabs open was a Wolfram|Alpha preview search for Academy Award nominations for the recent Star Trek movie (makeup, sound editing, sound mixing, and visual effects).  That lead me to the Star Trek wikipedia page where I read about some of the backstories on casting, etc.  I spent a few hours rewatching that awesome movie.

Saturday's my day to work myself into a little frenzy about savings etc, so I listened to Marketplace Money and called TiVo to follow up on cancelling my subscription from a long while back and that an acceptable refund was issued.  I still sort of want one of the new super cool HD TiVo Premiers because Comcast's DVR is just awful.

Later, I watch the latest episode of Caprica and lamented (privately) that the Facebook fan page for Caprica showed the closing climactic scene of Friday's episode as a preview last week, pretty much making episode 6 literally anticlimactic. I also looked up the word apotheosis that Sister Clarisse likes to say.

I read a recent first hand report of someone who attended Singularity U's executive conference and got to thinking about small-cap biotech ETFs as the next investment bubble.  A bit of Googling came to a decent seekingalpha article that mentioned XBI, BBH, and FBT.  Apparently, the Chinese government's bought $96m worth of Illumina genetic sequencing machines (@ $750k a pop) - the same machines used by personal genomics companies 23andme, decodeme, and counsyl. Will the new phrase be "cheap chinese genomes"?

Back to Singularity U, I watched Dr. Daniel Reda's talk on Biotechnology Fundamentals and wondered if I could memorize the RNA codes for all the amino acids. May be.  It's got to be like learning hex or anything else computational.

Optimization efficacy of evolutionary techniques

Natural selection
  • Slow!
  • Optimized for selecting the best replicators
  • Builds on previous adaptations (doesn't optimize best adaptations)
  • Optimization principle: Just good enough - ie selected for whatever's just good enough to pass on genes, not for any longer (healthy life, etc.)
Human Intelligence
  • Recombinant DNA technology - cut & paste via enzyme restriction endonuclease + ligase
  • DNA printer - writes DNA
  • http://www.bio-era.net/
Recursive AI


 If you haven't seen Harvard's BioVisions animation of the cell, you should.




Protein folding
    Game: http://fold.it/portal/

http://online.wsj.com/article/SB124207326903607931.html

"Killer Apps"
  • Drug metabolism
  • High-risk drugs

Edit, 04/25/2010 (DNA Day)

The new machine, the HiSeq2000, will begin shipping next month with a cost of $690,000 vs. $500,000 for Illumina's current model. It is being unveiled today at J.P. Morgan's investment conference in San Francisco. The Beijing Genomics Institute will be the first customer, purchasing 128 of the new machines.
Illumina's Cheap New Gene Machine Matthew Herper, 01.12.10, 03:00 PM EST
0 Comments


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
Background

Project dashboarding - viewing the progress of a software development project from different viewpoints - has been an interest of mine ever since I started developing software. After one particularly difficult project involving issues with requirements, development and operations deployment and environmental difficulties, with no shortage of fingerpointing going on, I thought it would be good to step back and see the project from a linear timeline perspective and gain some objectivity. Additionally and especially for long running projects, viewing time linearly helps us as humans see the scope of events.

Simile Timeline + Google Calendar

I'd already had a calendar that was a great repository of significant events, which meetings I'd scheduled, etc. in Google Calendar. The data originally came from the corporate Outlook, synced up to Google Calendar with the Google Calendar Sync application. Using the Simile Timeline Javascript widget, I wrote a quick export from Google Calendar using the Google Calendar Data API to format the calendar events into the Simile Timeline json format. Since the events were hand coded Client Requirements (grey), Impediment (red) and Success (green), viewing the events linearly helped clear up the discussion around where the issues were in deploying the application. This quick web application was very well received and project managers in both development and operations, as well as other non-project related developers and managers, were able to see the timeline of events that occurred for this particular project. I hadn't fully automated the import from Google Calendar to the Project Timeline page, and that's what led to the next step.

Dynamic Timeline Generation

The timeline view of the project was very useful and I thought it'd be a great perspective for other projects. Most of the projects at the organization use codeBeamer by Intland as an issue tracker and document repository. CodeBeamer has a much richer ability to code tasks / tracker items with statuses as well as start dates, end dates, and changed dates. Being able to dynamically pull project info via tracker lists and view them in a linear timeline looked to be a great start for a project dashboard.

The Timeline Builder was constructed with two picklists, one that displayed the lists of projects available and the second picklist that was contextual to the project's actual tracker lists. The codeBeamer repository is organized such that every project has multiple "tracker lists" such as Business Requirements, Change Requests, Production Releases, and Defects. Project administrators can also add tracker lists as needed. When a project is selected from the first picklist, an AJAX call is made to the codeBeamer services, returning the project-specific tracker lists. When a user selects a tracker list, the application issues an AJAX query and retrieves the list of tracker events and then displays them as a timeline. The timeline has three horizontally scrollable bands: a weekly view, a monthly view and a yearly view. Each of them can be dragged left or right and the display of events will be synchronized. The display is "coded" by status: tems with a status of "closed" are represented as a solid blue ribbon, individual events have a circle icon, "in progress" events are a slightly transparent blue ribbon, "open" items are represented by a slightly transparent red ribbon with a solid red circle icon. Selecting a timeline event yields a link to the original codeBeamer tracker item as well as a short description along with the open and closed/last updated information. Below the timeline is a tabular representation of all the event data.

Technology Decisions

The organization uses .NET predominantly so I decided on using WCF and the codeBeamer .NET SDK to serve up the Simile Timeline JSON and ASP.NET (without WebForms) and jQuery to make AJAX requests to the WCF codeBeamer services. Additionally, the organization is standardized on Windows 2003 and IIS6, so I passed on using ASP.NET MVC on IIS6. Each Codebeamer project can have multiple task trackers ("tracker lists"), so there were three total JSON services: GetAllProjects, GetTrackerListsForProject, and the last, GetTimelineForTrackerList, which retrieved all tracker items for a particular tracker list as Simile JSON events. Additionally, I used two jQuery plugins - jTemplates to populate portions of the page, and flexigrid to show the same events in a table below the timeline.

Findings and Stumblings

Looking at the variety of projects that we have in a linear format brought some interesting insights, the first of which is that almost no two projects use Tracker lists the same way. Not every project uses codeBeamer the same way, even though we have default tracker lists for Business Requirements, Change Requests, Production Releases, and Defects. Not every Task Lead uses the default statuses the same way - some close all tracker items only when a project has deployed, and create a separate status - "development complete" - for developers to use. Tracker items stay open throughout the iteration. For long-running, multi-year projects, cyclicality was shown quite well in a linear timeline - periods of project activity were clearly mapped to variety of business cycles.

With the differences in usage of codeBeamer trackers, the high level of ability to customize tracker item templates, and the variability in conforming to the SDLC in the organization, comparing project-to-project is difficult in general, not just with a linear timeline.

The decision to use .NET WCF and a jQuery-driven front-end separated the codeBeamer Tracker List JSON generation service from the UI application, creating two projects which may or may not have been a good idea - although service-oriented, it's two distinct codebases to maintain. Another interesting challenge was the codeBeamer API documentation for .NET - there isn't really any, for either Hessian C# or the codeBeamer Remote API. Using Reflector and referring to the codeBeamer Java SDK Javadocs did help, but a Sandcastle generated documentation set would've been useful. Thankfully, the Java and .NET API's are extremely similar, so it wasn't a problem interpreting what should've happened.

Project Next Steps / Directions

For the current iteration of this timeline builder I have a few minor technical issues I'd like to address. I'm planning on having better integration between the flexigrid table of events and the simile timeline so that when you select an item from the table, it scrolls the timeline to the relevant event. Another enhancement would be to allow stacking timelines of multiple projects for juxtaposition.

The organization also uses VersionOne's on-line agile project tracking application which has similar data to codeBeamer. A future rev to this application may include pulling from VersionOne project data dynamically in a similar manner (choose a project, see a timeline). Similar "coding" issues occur with VersionOne as with codeBeamer use, but since VersionOne is more focused on an agile project management lifecycle, I expect representing the variety of task types to be somewhat easier. A first version is pictured below (using jstree to visualize the project hierarchy, at the left). Coding (designating the display of open, closed, in progress, etc.) is a bigger issue, and relates more to the choice of software project management structure - agile, etc. - but is something that's greatly needed to get a consistent level of display. Other project tracking software, which I'm familiar with from a user standpoint, that may be usable include Redmine and Assembla/Trac.

From the technical framework, I may experiment with ASP.NET MVC next (which would remove the need for a separate WCF project) and then GWT (with the codeBeamer Java SDK) to see which one is more code-efficient.

0 Comments