a fine balance
thoughts and observations
thoughts and observations
Nov 18th
About six weeks ago, I became eligible for an device upgrade on my AT&T wireless account. I headed down to the AT&T Wireless store by Pac-Bell park and (eventually) walked out with a shiny new 16GB black 3G iPhone. Nearly 18 months ago, I paid the same amount for the HTC TyTyn aka 8525, a Windows Mobile 5.0 phone. My, how the mobile world has changed.
As someone who works in the mobile industry, I had been tracking the release of the original iPhone, along with a variety of other developments like Android, RIM’s new technologies, Symbian S60 devices and even Palm’s attempts to keep up. Apple was winning the press game and got a lot of attention for their device, and I can say after considerable usage, rightfully so. In terms of a combined personal and professional mobile device, it is clear to me that the iPhone is the most enjoyable device to use out there. Certainly, there are problems and it is by no means a perfect device, but Apple seems to have struck a good balance between control for good user experience for mainstream users and openness for 3rd party programs. (By openness, I’m just referring to the availability of an SDK, and a decent one at that. All the legalese surrounding it and the treatment of 3rd party apps as second class citizens on the device are up for debate.)
Outstanding battery life on EDGE
iTunes <-> iPhone end to end ecosystem for music management is great. No need for an iTouch or any separate music device.
Top notch 3rd party apps really have a good degree of polish and are very usable. I still haven’t paid for a single iPhone app but have found plenty of useful applications.
PIM (contacts/calendar) sync is very easy to do with iTunes (though it still doesn’t really make sense that you go through music software to do this…)
Call quality is superb. No dropped calls, very clear voice quality.
The form factor is great, I really appreciate the rounded edges when this phone is in my pocket. The HTC phone was a brick that constantly bulged from my pants pocket and not in a good way.
The glass screen has kept me from installing the protective plastic skin I bought for the phone since glass is so scratch resistant as compared to most plastic screens.
Special cable for charging the phone. I really liked being able to use any mini-USB cable to charge my old HTC phone, which were just laying around at work or at home. Firewire charging also isn’t compatible with the new iPhone, which means I need to modify my car stereo setup to bring that capability back.
Cut and Paste would be more handy than I had anticipated when I read gripes about this being missing.
No background processing and no push updates for 3rd party apps (yet) really limits what the iPhone can do when you’re not actively using it. Mobile devices should be constantly working for you, not just when it has your attention.
Battery life on 3G isn’t as bad as I expected based on what I had read, but it can be an issue. I’m probably exclusively on 3G once or twice a week when I have high data usage needs and waiting for that to come down over EDGE isn’t a judicious use of battery.
Speakerphone really isn’t loud enough as compared to other devices.
Since the iPhone treats phone capabilities as an “application” on the device, there are too many button pushes/screens to get through to place a call. Double clicking the home button to get to your Favorites is a nice touch though.
The cost of the data plan + 200 text messages is a bit outrageous. They know they can get away with it so they do. The rumored tethering plan at an additional $30/month is just insane.
I wonder how much of the transition eye candy really inhibits the performance of the phone. It’s nice, don’t get me wrong, but I frequently see very stuttered animation for the transitions. If this can be cleared up with future updates, then it’s just an optimization problem. If not, it’s clear that there is overburdening of the hardware platform and they should have scaled the transitions back accordingly.
Inability to treat the iPhone as a USB hard drive/memory stick out of the box. I know there are a variety of paid iPhone apps that help with this, but it should work like this out of the box. Apple should have implemented an appropriate file system separation to facilitate this given how much storage these devices ship with.
AT&T does little to make using this phone on their network special. I think this is a key shortcoming that caused them to take the bad tasting medicine of a very expensive exclusivity agreement. Just take a look at how much AT&T paid Apple last quarter.
SmartTags exists in Mail.app in Leopard, but not on the iPhone mail client. This would save me some hassle in saving people’s email addresses, phone numbers and physical addresses that I get in email or text. How many times have you received a txt/email saying “meet me at X address” and you just want to click on that address, load up Maps and calculate directions from your current location?
Clearly, there are many things to improve and fix on the iPhone. That said, I’m happy with my purchase, can swallow the extra expense for data over my previous $15/month all you can eat + 200 text messages package and look forward to what’s coming next for this device.
Oct 10th
I’ve really been digging my AT&T U-Verse service and I’m glad I signed up. The set-top box that comes with the service has a DVR capability supporting roughly 120 hours of recorded TV. I hope I never fill it up because slugging through that much content would be a real pain.
You can schedule your DVR online by logging into your AT&T U-Verse account. It’s not particularly easy to find and should be much more conveniently exposed. I have it setup as a secondary tab on my Yahoo account’s portal homepage (which I rarely ever use). This feature has proved to be extremely convenient and useful. Katie will ask me to set something up while I’m working in our office and I don’t have to head over to the TV, turn on all the entertainment system devices and add the recording. With just a few clicks on my computer, I’m done.
For anyone who has used Microsoft’s Media Center over the years, the color scheme, channel guide presentation and other widgets will immediately seem familiar. It’s a pretty decent UI that has clarity and makes good use of overlays. It could still use some work and my opinion is hindered by not having extensively used a TiVo. That said, I’ve rarely found myself at a loss for how to navigate to what I need to get to on the device.
Media in the home has been suffering from “YASTBS”, aka Yet Another Set-Top Box Syndrome, and TV service is no different. The box for AT&T U-verse is aesthetically pleasing, occupies a very small footprint compared to my old Comcast box, and performs pretty quietly inspite of having a hard drive inside it. The one thing I wish they added was a clock on the front that also doubled to show the channel you’re on.
One of the big knocks on IPTV used to be the time it took to change channels. I can say without a doubt that channel changing is significantly faster on my U-Verse service than it was on my “digital” Comcast service. I’d say it takes 20% of the time to change channels on U-Verse as compared to Comcast, so that’s a huge technical and user experience win for AT&T and Microsoft.
For some people, 120 hours will seem like not much and I’m sure it’s a small fraction of that for HD content. But for now, as I am stuck with a big old CRT SDTV, 120 hours of SD recording capability is more than ample and I find myself adding roughly one series per week to follow.
In spite of several things that are done well by U-Verse, there are still some nagging things that need to be improved.
AT&T is happy to stream content to other set-top boxes throughout your residence they provide you (at an additional cost). The kicker is that the set-top boxes need to be connected via cat5 (no wireless) and you can’t use any other device, including your laptops or desktops. This doesn’t really make a lot of sense. If they’re worried about people ripping content off the DVR, they could just as easily stream to some DRM-friendly media player that you install on your laptop/desktop.
I recently got an iPhone 3G and would love to be able to stream TV off my DVR a la Slingbox. This would be a very slick feature that addresses the need of “what I want, when I want it, how I want it” that many mobile video solutions are lacking now.
Comcast had a pretty solid On Demand library, with lots of network TV content. AT&T needs to beef up their library significantly to compete in this area.
So if you are an AT&T U-Verse customer and a AT&T Wireless customer, you can combine your bills so instead of dealing with two payment systems you can just pay one bill and be done with it. What they neglect to tell you clearly is that if you do this, it will take 2-3 billing cycles (read: 60-90 days) before your bills are synch’d up. This means you can go on your merry way, paying the AT&T U-Verse amount until BAM! 2-3 months of wireless bills are stacked up and billed to you at once.
That in and of itself kind of sucks, but it gets worse if during that period of time, you become eligible for a phone upgrade and decide to take advantage like I did earlier this week. You cannot qualify for discount pricing on your upgrade if your wireless bill is in a “past due” state. Guess what? With combined billing, it will happen inevitably as AT&T Wireless removes the option of directly paying your account from the online account manager. You need to directly call some AT&T office and have them post a payment to that account and even then, there are no guarantees it will be applied properly or show up in a timely fashion.
I spent a good 4-5 hours on Monday dealing with AT&T, either on the phone or in the store getting this situation resolved. Even then I was not able to get both my lines upgraded, just one. Any time I would have saved over the course of the year with combined billing was more than wiped out and in the process I ended up over paying my wireless account two or three times over to ensure it was not past due.
There are 3 similar but not obviously clear settings for recording a series. They are record “New Show Only”, “New Shows and Reruns”, and “New Shows and Reruns Once a Day”. It turns out the middle setting is the most optimal to guarantee you get new recordings of shows like The Daily Show and Colbert Report, which air multiple times per day, but in different descriptions of “new” and “re-run”. This should be cleared up and made much simpler for end-users so they don’t have to learn with a trial by error.
Oct 10th
Recently, I was asked to look into a company that was described to me as a “DVR company.” The first thing that comes to mind when I think of DVR is TiVo, but no, this wasn’t TiVo. In fact, this wasn’t really a DVR company at all.
The company was Replay Solutions and they have a product that claims to have a DVR-like capability for running software that makes it easier to detect, replay and fix bugs. Okay, I get it, they used an analogy to communicate what they do. But there’s a serious problem when someone with their interests in mind describes them as a DVR company. Seriously, that level of sophistication isn’t acceptable for Silicon Valley. I kindly replied to this individual, explaining that they have a misunderstanding of the company’s business and encouraged them to learn more about their product before acting in the company’s interest again. No response, go figure.
Oct 8th
A couple of weeks ago, I was looking for a short weekend project to get some experience building on a web platform. I looked at a few possible options and settled on building something for WordPress, the platform I use for this blog. A friend of mine had a need for a blog he was setting up for his son’s school and it turned out to be the perfect weekend project.
My friend told me that a problem they were experiencing with their blog was an inability to add users in bulk to the platform. Basically, they were using an existing plugin to generate newsletters that used posts on the blog as the core content, and they wanted to send those newsletters to an audience that was known in advance, but would not necessarily come to the blog to register themselves.
I did some poking around online and saw several mentions of frustration about not being able to add more than one user at a time to a blog so it appeared there was no existing solution available. I decided the problem was tractable for a weekend exploration project and set out to define a couple of basic scenarios for an alpha release.
First, there should be a “Settings” panel associated with the plugin that should allow an administrator to configure the default role applied to new users. For my friend’s situation, they only wanted to add subscribers, but I envisioned other scenarios were you would want to bulk add authors or editors as well and figured this should be pretty simple to build. In addition to the default role, the administrator may also want to set the delimiters used in the list of new user email addresses. This is a little technical for basic blog administrators, but a list of new user email addresses may be separated by commas, semicolons, etc and this seemed like a nice configurable option to have.
Second, there should be a plugin panel available in the “Users” section of the administrator’s site. The plugin panel should accept a delimited set of new user email addresses as well as allow the administrator to configure which role new users will have on the site.
I first set out to write the “Settings” panel, which proved to have the steepest learning curve. I had used PHP nearly a decade ago and coming back to the language was interesting because so much has changed. I did a project at work that was rooted in PHP, but that had more to do with platform porting issues and a light application port, so it was nice to be on the other side of the fence. PHP is a very forgiving language, so much so that conventions you expect to work in C/C++/Java have unexpected behaviors in PHP. In addition to getting familiar with the language quirks, I had to get up to speed on the platform and how to utilize the plugin API. Thankfully I found a couple of decent “Getting Started” type guides to help me understand the infrastructure and mechanisms. I would recommend this one for anyone looking to pick up a similar project. Finally, I had to brush up on a little CSS/HTML as well, two technologies I hardly ever touch professionally.
After some trial and error, I had a functional “Settings” panel that would accept various option configuration from an administrator, persist them in the database, report its success and retrieve it upon further visits to the panel. I did some incremental testing to ensure this was very robust.
Next up was the plugin panel itself that would accept input from the administrator, parse it for valid email addresses, attempt to create new accounts for each valid email address in a specified role and email new account information to each email address. This part required diving deep into the WordPress documentation and implementation. The documentation for WordPress is lacking a bit as there is a Plugin API and a Function Reference and its not really clear what the distinction is since both sets of APIs are available to developers. Also, the documentation of some functions is just not available to a general audience, you need to be a WordPress developer to see it, which surprised me a bit.
Regardless, I was able to work around some of these hiccups and figure out what was going on. The plugin is able to discern whether input is a valid email address, and if it is, whether it is already associated with an existing user account. The results are reported back to the administrator after they submit their input and emails are sent to new users with their login and password. The last part I was not able to verify until I deployed the plugin on this blog, as my testbed using XAMPP was not configured with backend mail support (not common for sandboxed dev/test environments).
Between writing the “Settings” panel and the plugin panel, I powowed with my “customer” again to clarify the requirements to ensure I was writing something that would be simple and useful for the school’s blog’s needs. This also gave me a good opportunity to clarify his expectations and explain how the plugin would be most useful if it was complementary to any subscription management plugin, rather than piggyback on its implementation.
I provided my friend with an alpha release, including known caveats like the specific environment I was using to build the plugin. We quickly discovered some issues in the configuration of the blog’s deployed environment that created some compatibility issues. I managed to resolve this by looking into WordPress functionality that mirrored what PHP offered without the same dependency on a PECL package.
I did think of a couple of minor revisions to make to improve the delimiter handling that I will add in over the next couple of days. After that is complete, I will submit the plugin to the WordPress plugin codex and create a Projects tab on my blog to host it with some basic documentation. I will include other projects I build there as well. This plugin is being called “Bulk User Add” for now and I’ll post again when it is available.
All told, I might have spent about 10 hours tops on this project. If I had to do something of similar complexity again, I could probably do it in a couple of hours as much of the learning curve was spent on PHP, HTML and WordPress API/documentation. It was an interesting endeavour, one that I was happy to see end successfully with the “customer”, my friend, more than satisfied with the capabilities and simplicity.
Moving on to other platforms and building more complex WordPress plugins should be good learning experiences as well. I’m looking forward to it.
Oct 7th
Some forewarning, this is a bit more of a technical/policy post, the first of many I plan to write that are in this vein. I hope some of my techie friends will get something out of it.
I was perusing The New York Times and ran across this article, “Digital Domain – Can’t Open Your E-mail Inbox? Good Luck“. It reminded me of a post I’ve been meaning to write for a while addressing why on earth I would have my own domains, run my server, host my own e-mail, etc.
First, some thoughts on the meaningful article from the NYT. When hotmail.com first launched and took off, I thought webmail, the first instance of really putting personal data in the “cloud”, was a genuinely innovative and exciting technology. Like many new innovations, understanding the implications of it only comes after some time has passed. Hotmail.com blew up, Microsoft paid a pretty penny for it and now all the major players have some sort of webmail component to their service offering.
What is interesting to see nowadays is how dependent people have become on these webmail services. If the service goes down or they are not allowed access for some reason, their productivity is lost. I recall meeting with an adviser of mine a few months ago and he was complaining to me about how his day was shot because he used GMail and all his information and calendering were contained within the service which had been down for 10 hours for him. I suggested he take advantage of their IMAP access so he could at least have a local client on his computer that cached everything in his webmail account.
There is a certain level of trust that users have with their service provider when relying solely on their service to meet what is now a vital communications need. Changing your email address nowadays and informing your contacts may be more of a hassle than changing your phone number. I’ve been using a lifetime bouncer provided to me by the Stanford Computer Science Department which has allowed me to swap around the underlying email service as I please. If this bouncer/aliasing approach were more common place, people would be able to get around some of the downtime issues that plague their productivity.
Getting back to the key issue in the NYT article, the issue of trust is really a two way street when it comes to these types of service offerings. Users do not want to provide too much identifying information (generally speaking) when it comes to online service registration, and yet service providers need a distinct way to authenticate an individual’s access to a particular account. The fallout from the hacking of Sarah Palin’s email account should not come as a surprise, as we saw the same thing a couple of years ago when Paris Hilton’s T-Mobile account was hacked by someone guessing her dog’s name as her password. Imagine now how this problem can become more much widespread as personal details about individuals become more prevalent with revealing social networking profiles, blogs, professional networks, etc. as users still provide relatively unsophisticated passwords.
Before I left on my vacation, I ran across some rumblings on Hacker News and other sites in response to comments made by rms, also known as Richard M. Stallman. An article at The Guardian summarizes his comments, so I would suggest skimming that before continuing on here. If you think about it for a minute, it’s clear how these two articles relate. Now, I appreciate much of what Stallman has done for the open source community with the Free Software Foundation. GNU and many of his other contributions have provided the bedrock for building systems and services that would otherwise have been very costly and impeded innovation. That said, I think Stallman’s take on “cloud computing,” as many things are being (incorrectly) lumped under this umbrella, is a bit extreme.
First, there is much discussion going on now about what exactly cloud computing is. I don’t want to get into defining it right now, other than to point out that, like others, I feel the term is being used too liberally to label many services which don’t fit. Webmail is closer to SaaS (Software as a Service) than anything else in my book. But that’s besides some of the key points that Stallman brings up against users utilizing services like GMail. I tend to agree with his points about why it is not prudent to entrust important personal data to a 3rd party. I never understood how most people would be okay with Google parsing their emails to target advertising. It seemed like the beginning of a very slippery slope. If a 3rd party can scan your email to target ads, what is the next thing they can/want to do with your personal data to deliver more advertising to you?
For some users, this trade off is acceptable as they are willing to forgo privacy for the cost savings or features of a particular service. For most users, however, I believe this pushes back the line on acceptable privacy practices. As this becomes has become the norm, will users balk at the next, more intrusive joust into the sphere of personal data? I won’t agree with Stallman that users are “stupid” for making such choices, but I will concede they are either ignorant of Google’s practices or less vigilant about their privacy. His notion of service providers “locking” users in is also not a fair assessment as more providers are supporting IMAP which, in effect, makes their email data extremely transferable. (See imapsync, which will effortlessly let you move email from one IMAP provider to another.) While this is true for email, Stallman’s assessment is accurate for some other cloud services. For example, if you built a service that utilized storage on Amazon’s S3 service and then decided that you wanted to move to Nirvanix, you would have to invest in porting/integrating some layer to work with Nirvanix API’s instead of S3′s. This may change as the cloud service industry matures, but it’s yet to be seen as this would create a race to the bottom on margin and would make the services commodities.
I believe there is some inherent value in cloud services, though I’m not sure they can be realized at the consumer level quite yet. For small businesses and startups, there is a lot of value that can be achieved with minimal cost by utilizing the infrastructure expertise and investment of others that have come before them. For consumers, the issues that should trump cost are privacy and access. Just as there is a very delicate balance in ceding civil rights for increased security as have seen with things like the Patriot Act and its sequel, I believe a similarly delicate balance exists in ceding access and control to personal data for “free” services. When the ends are hard to ascertain (are we safe enough? and am I getting the most value in exchange for my personal data?), it is easier to continue giving up what we once held dearly.
As with many things in life, I find that extremes are usually not the best way to go and finding some middle ground balances the pros and cons of a variety of approaches. One extreme is currently being pushed by significant online players like Google, Microsoft and Yahoo. They are all encouraging their users to push all their critical personal data like email, personal media, contacts, etc. into cloud services under their branded umbrella, be it Google Apps, Microsoft Live, etc. The other extreme is what Stallman is calling for, rejecting the use of services that seek to re-attribute ownership of data from you to the service provider.
I believe that there is a middle ground that can allow users to benefit from both. Users already unconsciously strike this middle ground and the best example is sharing personal media. Typically, an individual will take many more pictures than they put online through various services like Picasa, Flickr, Photobucket, etc. While they may avoid putting all the pictures online for convenience (who wants to wait around for hours for pictures to upload), they are also creating a dividing line between content they keep to themselves and content they want to utilize a 3rd party service for.
I believe this can be the archetype for the balance between private personal data and exposed personal data that ends up somewhere in the cloud. The user should be responsible for defining that access and control and service providers should take the ethical route of educating users about their practices up front instead of behind some stale “Privacy Policy” link that sounds so boring no one but EFF members will venture to.
I have zero expertise in professional IT administration. I do believe, however, that it is worth taking the time to take control over what resources and services you need if you can leverage building blocks that are widely used.
I’ll give an example of what I mean. When it comes to email, there are a handful of widely deployed open source solutions that are used by millions of people every day. The advantage in leveraging these building blocks is that you benefit from the high usage resulting in catching bugs that are then solved in further versions of software. There is little value in building your own stack of email services at this point as all of the key components have become commodities.
You could take this rationale to another level and believe that is then worthwhile to use services that have millions of users like GMail or Hotmail. I believe there is a valid distinction here which the NYT article hit on. While you will likely benefit in a similar way using a service with millions of users as you would using open source components with millions of users, the difference lies in the ownership of data. Own the data, control the privacy and be responsible for the access.
Running your own server is not trivial. There are lots of stumbling blocks to overcome, but in the end, it is extremely fulfilling. I believe I’ve learned enough to perform basic IT tasks to bring a small office up if needed. This is something that will hopefully prove to be useful sometime down the road. I’ve also picked up a lot more knowledge about how the Internet’s infrastructure works when it comes to routing mail, resolving domain names, etc. I could go on and on, but the key is looking at running your own server an an empowering opportunity that really has a lot of interesting solutions you can tailor tailor to your own needs. Best of all, there’s lots of useful information and guides out there to get you started.
Running your own server to serve your needs isn’t all roses. I understand now why putting up IT services for others is such difficult work that I was wrong to trivialize earlier. There is a certain quality required of a person to be so detailed, knowledgeable and instinctive when it comes to IT-related tasks that it shouldn’t be underappreciated. When I was at my last employer, we used to grumble about things that seem like a dream at my current employer, like software package version management. Employees will always be pushing the envelope on technology they want available in the IT infrastructure and IT administrators will always be balancing that with the risk of rolling that technology out to support more than just the interested user(s).
If you choose to go this route of running your own server, you’ll get to see both sides of this struggle. As a consumer, you’ll want all the bells and whistles and the latest shiny software drop. As the administrator, you’ll wonder how well the new package has been tested, whether it is compatible with other dependencies and so on. There is much to learn in balancing needs versus risk in this situation that can improve your instincts about evaluating software in general.
For many years, I was a customer of shared hosting companies that basically provided you with space for a web site, access to remote storage over FTP, email, domain hosting and domain management. Several times a year, I would encounter down time that prevented access to my web site, remote storage and email. These occurrences were extremely frustrating because they inhibited much of my online activity. A few months ago, I had all I could take and decided to ditch the shared hosting model and sign up with a VPS (Virtual Private Server) provider.
Basically a VPS is a dedicated slice of a server that is shared much more strictly, guaranteeing you resources that will prevent your services from getting bogged down. There are managed and unmanaged VPS providers, with managed accounts offering much less configurability and control and unmanaged offering just enough to shoot yourself in the foot. I opted for an unmanaged provider after scouring the web for reviews and settled on Linode. The purpose of this post wasn’t really to be an ad for VPS providers or Linode in particular, but I would highly recommend them to anyone interested in going down a similar road. Certainly, it’s not for the technically faint of heart, but it can be very worthwhile to learn a lot about what makes some Internet services tick by building your own stack.
Best of all, I get to control a lot of data that I care about. My sites, my email, and even personal data related to some services like bookmark management are managed on my VPS. Mozilla Weave is a project that is attempting to solve these latter issues by allowing users to self-host personal data used by in-browser services like bookmark managers. It’s been a worthwhile journey so far, and hopefully I’ll continue to learn more along the way.