Things to think about if you want an Android phone

In a week Verizon is launching 2 android phones, the droid and the eris.  Sprint will have the moment by then, which adds to their existing Hero.  T-Mobile has the G1 and the MyTouch.  For each carrier this gives you 2 phones to choose from:

  • A hard keyboard phone (G1, Droid, Moment)
  • An HTC phone with the Sense UI (MyTouch, Hero, Eris)

While droid has gotten all the attention this past week for being the first Android 2.0 device, I'm cringing a bit with what the reaction to that phone is going to be on the mass market.  It's being placed head to head against the iPhone, which currently defines usability on the market.  From my experience on the 1.5 front, the difference between stock android (which the G1 has) and Sense on a 1.5 phone is night and day.

HTC really went to town to provide a very smooth experience to the user.  This is an interface that had a lot of user testing and human factors put into it.  This polish is what has gotten the Hero praise as being the best gadget of 2009.

It does not, however, provide a hard keyboard (and I'm not sure if there will ever be a cross over there).  A lot of people are going to go to the droid because of that hard keyboard, and large screen, which is totally understood.  But for friends that have been looking at the device I've tried to convince them to look at the Eris at the same time.  I really think the Sense UI makes the phone more compelling.  It adds this slickness to android that isn't there, yet, in the base.  If user experience is your top concern, it's worth looking at one of the HTC Sense phones when you contemplate your android purchase.

Programming with Constraints and my adventures with Drupal

I've finally wrapped my head around the blocks, views, and content construction kit model for Drupal, which we're going to be using for the upcoming relaunch of the Poughkeepsie Farm Project website (you can see the work in progress here).  It took a number of days to make a mental breakthrough that let me understand what it was that Drupal wanted me to do to get results.  The big break through was getting that custom content types is really what I wanted and then how to use views to display them correctly.

The exercise was one of programming with constraints.  As a veteran software developer, I'm used to getting a blank page where I can happily build up features from scratch. That has the advantage of the end product doing exactly what I want, but has the disadvantage of having to do everything from scratch.  While from scratch is often satisfying, it's also often really tedious.  By the time you've written your 3rd password reset system for a web application, you'll feel that way as well.  Life is too short to keep repeating yourself.

The alternative is something like the drupal approach.  Start with a lot of the application done, and just complete the pieces you need for the project.  As a veteran software developer, I've been there too.  I've come into many a project late in the development cycle, and had to work inside the constraints that are already there because of decisions made in the past.  These decisions might have been based on money, expertise, timing, politics, or any number of other reasons.  At the end of the day it doesn't really matter, you just have to accept what is, and figure out how to work with it.

Building on top of a framework like Drupal is like being brought in late on a project, where the rest of your team is the drupal community.  They made decisions on how things will work, and you just need to figure out what those were, and if you can work constructively inside those contraints.  It's a different skill than the "from scratch" skill, but is just a valuable.  The real world has a lot more half finished projects out there than blank slates.

People love to complain about frameworks, especially tech folks, because they feel the constraints are hampering their productivity.  As any tech person knows, when you switch up what you are working on substantially, you go through the "wow I'm stupid" phase again.  Your output suffers, and you feel like you are never making any forward progress.  It takes weeks to months to get familiar enough with the new skill set, and actually start creating anything of value.  No one likes to feel stupid, so a very standard reaction is to lash out at the tools, say they are the issue, and go back to your comfort zone.  You get a lot of hating in tech on exactly that.  But not all frameworks or tools are bad, and writing things off as evil because you never invested the time to understand how they work are as silly in web frameworks as they are with compound miter saws and belt sanders.

At some point in the next couple of months I'm going to write up my own "getting your head around drupal" blog post, because I have to admit I did it by brute force.  Eventually I got enough insites to start getting productive.  It took a while.  I've been actively working on the farm site since september, and did a whole drupal layout back in the sprint just to kick the tires.  But overall, this was definitely worth it, and I'm quite happy with the output levels I'm getting now.

Midhudson IEEE Cloud Computing Workshop - Friday November 6th

Our local IEEE chapter does an annual fall workshop each year.  Last year was robots (which I apparently forgot to blog about...).  It was quite good, and showed off robots for largely military and educational purposes.  Some live demos (not for the military types) and videos were shown over the course of the day.  Good times.

This year the IEEE is doing their workshop on Cloud Computing.  While the website and pdf still say Nov 3rd... it's not, it's Friday the 6th (this event is always on a Friday).  I'm going to repost the details embedded in the PDF here, because while google deals with PDFs, it's a lot easier to refer people to a website.

Sponsored by: The Mid-Hudson Section of the IEEE and The School of Science and Engineering, State University of New York, New Paltz Co-sponsored by the Mid-Hudson IEEE Computer Society

When:  Friday, November 6, 2009

Where:  The Terrace Restaurant, SUNY New Paltz campus (all campus facilities are fully accessible and comply with the Americans with Disabilities Act).

Registration Fee: $20 per person - free to Mid-Hudson IEEE members or students with valid ID (includes coffee breaks and buffet lunch, plus CD ROM with presentation materials and invited papers). Please contact the organizers for information on registration fee waivers due to economic hardship. Advance registration payments (checks drawn on a U.S. bank only) may be made out to the CAS 8600. Send check to: School of Science and Engineering, 1 Hawk Drive, State University of New York, New Paltz, NY 12561. Attendees may also register at the door on the day of the workshop.

Scope and Purpose: There has been a great deal of recent interest in new ways to deliver information technology (IT) resources to large organizations. This has been driven by significant reductions in the cost of computing cycles, mass storage, and network bandwidth, as well as a desire to pursue more federated data center designs, reduce operating expenses, and conserve energy. One significant emerging trend involves outsourcing selected business to IT service providers; the enabling technology and business model are both referred to as Cloud Computing. There has been a great deal of discussion around what cloud computing actually means to the IT industry, maturity of the enabling technologies, and training a new generation of IT staff. In this workshop, we’ve invited a number of distinguished speakers with first-hand experience in cloud computing to describe their work and share their vision for the future. The emphasis will be on development of cloud computing architectures, software, and networking for a range of practical applications, and on the viability of this approach for emerging data center designs. A panel discussion on current trends and directions in this field will also be included.

Attendees will have the opportunity to interact with the guest speakers through informal discussion breaks throughout the day, and a question/answer session will be held at the end of the panel discussion to assess those attendees wishing to apply for continuing education units under the New York State Professional Engineers program (there are no prerequisites for this workshop). Attendees will also have the opportunity to provide written feedback on the various sessions during the day. Invited papers and other presentation materials will be made available on CD as part of the registration package.

Agenda (as of Oct 23):

8:00 – 9:00 On-site registration and coffee
9:00 - 9:30 Welcome (Dr. Daniel Jelski, Dean, School of Science and Engineering, SUNY New Paltz; Dr. Baback Izadi, (2009 Chair, Mid-Hudson Section of the IEEE) Prior and future SUNY workshop topics (Dr. Casimer DeCusatis, IBM)
9:30 – 10:00 Dr. Casimer DeCusatis, IBM, and Todd Bundy, Adva Optical Networking, “Cloud Computing Fundamentals & Applications”
10:00 – 10:30 Michael Haley, IBM, “Emerging Cloud Data Centers”
10:30 – 11:30 Brian Goodman, IBM, “Building the compute cloud: firsthand experience”
11:30 – 12:30 Buffet Lunch, The Terrace Restaurant
12:30 – 1:00 Carolyn DeCusatis, Pace University, “Converged Networking for Cloud Data Centers”
1:00 – 1:30 Dr. Robert Cannistra, Marist College, “A new curriculum for cloud data centers”
1:30 – 2:00 Dr. Aparicio Carranza, City College of New York, and Jorge Martinez, EMC, “Migration of legacy storage area networks”
2:00 – 2:30 coffee break
2:30 – 3:00 Aneel Lakhani, IBM Global Services, “Cloud Computing showcase data center”
3:00 – 4:00 Panel Discussion, “The future of enterprise data centers: what will be the role of cloud computing ?” (all invited speakers)
4:00 – 4:15 Concluding Remarks (Dean, SUNY New Paltz)

The Omnivore's Dilemma

I just finished listening to the audio book of the Omnivore's Dilemma, which was great, but I'll get to that after a brief digression. 

I've been listening to a decent number of audio books over the past few years, but until now I'd never heard the same reader in 2 books of different genres.  In addition to being an excellent reader for this book, Scott Brick also read the most recent Dune books.  So I was mildly distracted through the first couple of discs waiting for the words "kwisatch haderack" to come out of his mouth.  I guess given the epic nature of this book, it was appropriate, but a little jarring at first. 🙂

The Omnivore's Dilemma is Michael Pollan's big food treatise, which starts with a simple premise: trace the path of 4 meals produced in different ways from grown raw ingredients to the final meal to be eaten.  As he states in the intro, it was originally going to be 3 meals: industrial, organic, and self supplied (for lack of a better term), but as he started investigating the organic industry, he realized there were really 2 camps there, the industrial organic and local organic.  While the local food movement was still young in 2002, it was there, and presumably his book helped further it dramatically over the years.

There is so much in this book that is fascinating.  The entire first section of the book, the industrial meal, dives into the absolute reliance of our modern food supply on cheap corn.    How we got to having all this cheap corn, and the effect it has on the rest of the food chain is pretty amazing.  The average american gets > 50% of his/her callories from corn.  Either directly processed, or through meet that was fed cheap corn.  Because industrial grown corn requires artificial fertilizer (which is petroleum based) you can calculate the gallons of oil required for a pound of corn, and even a pound of beef.

The industrial organic and local organic sections show a rich history of where the organic movement started, and where it's ended up after scaling up to global levels.  The juxtiposition of the two is amazing, and the exploration of ways to produce meat outside of the industrial system is quite compelling.  You'll learn more about the biology of many farm animals and grasses than you ever thought you would, and will be better for it.

Lastly Pollan addresses his final meal, where he is determined to grow, hunt, or gather every element of it.  He makes an incredibly elaborate meal, including bread with air captured yeast, so he's really pushing the limits as to what you can do in full hunter gatherer mode, and the results are impressive.

I would highly recommend this book to everyone.  The writing style is great, and what you'll learn along the way is invaluable to understanding many things.  Why high fructose corn syrup is in everything?  Why America is continuously going through food fads while the rest of the world is not?  And why we spend so much of our energy on figuring out what to eat?  Which is, of course, the Omnivore's Dilemma.

Sometimes it pays to read the changelog

From this morning's updates on ubuntu.

Version 2009n-0ubuntu0.9.04.1:

  * Add argentinas-dst-2009.diff: Disable DST switch for Argentina tomorrow,
    as the Argentina government decided yesterday. Careful planning is boring.
    Thanks to Margarita Manterola for the patch! (LP: #453165)

I find timezones fascinating, especially how much they get messed with for no particularly justifiable reason.

The pale blue disk of the Earth

The last time I looked through my telescope at Jupiter I saw something very close to this (size and color are about what I could see from my deck):

But that's not a picture taken from earth.  It was taken from mars.  But that's not even the coolest part.  In the same picture they were able to capture both Jupiter and Earth!

There is our planet.  The bright spot is solar reflection off the atmosphere, but there is continental structure in there that you can make out.  The full story goes through it in detail, including how the image capture was made.

Cable news needs to go back to science class

I missed the whole balloon boy thing, it was a busy day, and happily none of the people I follow on twitter seemed to get wrapped up in it.  So it wasn't until later that night, once local news rolled on after network tv, that I saw the balloon soaring through the air.  After 2 seconds of footage I was really baffled that anyone thought there was a kid in there.

Balloon's rise because they are lighter than air.  Effectively that creates a force that pulls the thing up (that's a big simplification, but good enough).  If there had been a child amount of weight in the balloon the thing would have a pretty substantial force pulling down.  The balloon would be vertically stretched.  It was not.  This is pretty basic stuff, and not very hard to figure out.  The folks at Wired just posted something that goes through this in even more detail.

The whole story cycle represented the 2 things that I hate most about cable news at this point.  Giving far too much coverage to totally inane events (creating a self fulfilling prophecy and creating more of them), and spending so little time fact checking anything that goes on the air.  I guess I shouldn't be surprised given that the science team was deemed expendable, but I'm still disappointed.

A fire fighter's job is not to fight fires

I was fortunate enough to attend a local IBM Academy event yesterday, which included a number of great talks.  Right out of the gate there was a talk by one of the people leading the Smarter Planet initiative, which was quite inspiring.  There are certain problems that can only be solved by an organization as big as IBM, and the fact that we, as a corporation, are diving into many of these: energy conservation, electronic health care records, water management, was something that made me proud to be working here.

Something stuck with me very much when the speaker was discussing the Fire Department of New York City.  The bulk of their job (time, energy, expertise) has nothing to do with putting out fires.  Putting out fires is the exception case.  The bulk of their time is spent preventing the fires from ever happening in the first place.  This includes creating sensible fire codes, inspecting buildings, education, and I'm sure dozens of other measures to make sure the fire never got started.

The image we have in our mind of firefighters is what they have to do when the preventative measures fail.  The next time you find yourself putting out a lot of fires, at home, work, wherever, it's worth taking a lesson from the professional fire fighters, and working on shifting your time and energy to preventing the situation from ever happening in the first place.

I've got an Android in my pocket

On Friday morning, I picked up my shiney new HTC Hero from Best Buy.  It had been nearly 4 years since my last new cell phone, and the tech at Best Buy was really confused about that.  It was the longest between upgrades for anyone he'd ever seen.  But in 2007, when I became eligible for a phone upgrade, the Open Handset Alliance was formed, with Sprint as a founding member, and I made a decision that I wasn't going to buy another phone until it had Android on it.

Android is a Linux based operating system that can be used for smart phones (though many folks are looking to put it into all manner of small form factor devices).  Beyond the base operating system it also provides a Java SDK for creating applications, which is one of the cleanest development models I've seen to date.

In the past 2 days I've been putting my phone through it's paces, and have to say I'm just down right psyched about this phone.  I was always a touchscreen keyboard skeptic, but the wideform + predictive correction in this phone pretty much washed away that skepticism.  The Sense UI (which is this 7 virtual desktops thing) is just awesome.  Each is configurable with widgets and icons seperately, and you get to have as many saved configurations of those as you like.  My brain is already thinking about widgets I could build to pull in some of the information I want into this UI.  The NFL widget that Sprint wrote and added showed this off quite nicely, as it gives you a heads up on your favorite team, including live play by play updates during the game.

The phone strongly integrates with google services (go figure!).  You feed it your google account info during setup, then your calendar is live synced, as is your contact list, email's connected, and off you go.  You can break any of these links if you want, but having it all just work is great.  There is also strong integrate with facebook, myspace (which I don't use), and twitter.  Enter you account details into the phone for facebook and the first thing it does is cross reference your contact list with your facebook friends and say "I think these folks are the same, want me to link them?".  From there on out you get people pictures from facebook for those contacts, as well as their birthdays in your contact list.

While the app store is still a little light at this point compared to the Apple one, I suspect getting Sprint online this month, and Verizon next, is going to change that.  Application development is one of the reasons I was most excited about the phone.  While the iPhone looks cool, the combination of Objective C, having to own a Macbook Pro, and the random whims of Apple application approval, was just a no win situation for me.  With Android there is an eclipse environment + simulator that works on Windows, Mac, and Linux.  The code is Java... or python, javascript, jruby, lua, etc via the Android Scripting Environment.  A checkbox in the phone preferences lets you download and install applications from anywhere.  Typically people are using QR Codes to encode their app installation urls, and there is an app on the phone that just scans those to install.

The phone just feels great.  With all the android phones that are about to come out, I was hesitating earlier this week about whether I should wait until the end of the month for the Samsung Moment with the hard keyboard.  I'm glad I didn't.  This phone just feels awesome, and I can't wait to start hacking on mobile apps later this week.

Anyone that thinks they are good at Multitasking, are bad at getting anything done

I recently came across this study recently that really drove home how totally bogus multitasking in people is.  It turns out that people that tell you they are good at multitasking, are actually worse at it then people that tell you they aren't.  Also, people that think they are good at multitasking, are worse at accomplishing anything, multitask, single task, anything, then people that don't think they are good at it.

It turns out the one skill people that "are good at multitasking" have, is to delude themselves that they are productive. 🙂

Puzzled but not yet stumped on why the heavy multitaskers weren't
performing well, the researchers conducted a third test. If the heavy
multitaskers couldn't filter out irrelevant information or organize
their memories, perhaps they excelled at switching from one thing to
another faster and better than anyone else.

Wrong again, the study found.

The test subjects were shown images of letters and numbers at the
same time and instructed what to focus on. When they were told to pay
attention to numbers, they had to determine if the digits were even or
odd. When told to concentrate on letters, they had to say whether they
were vowels or consonants.

Again, the heavy multitaskers underperformed the light multitaskers.

"They couldn't help thinking about the task they weren't doing,"
Ophir said. "The high multitaskers are always drawing from all the
information in front of them. They can't keep things separate in their
minds."

The researchers are still studying whether chronic media
multitaskers are born with an inability to concentrate or are damaging
their cognitive control by willingly taking in so much at once. But
they're convinced the minds of multitaskers are not working as well as
they could.

"When they're in situations where there are multiple sources of
information coming from the external world or emerging out of memory,
they're not able to filter out what's not relevant to their current
goal," said Wagner, an associate professor of psychology. "That failure to filter means they're slowed down by that irrelevant information."

The entire article can be read here.