The iPhone is one of those rare products that actually does live up to the hype. I've had mine since the weekend they were introduced and I'm still loving it. My previous phone was a Treo and there is simply no comparison. The keyboard was frustrating at first. The learning curve is anywhere from 3 days to a week. But, once you get it, it's great. I was willing to compromise on that to get the additional screen real estate, but I no longer consider it any sort of compromise. I estimate that I type roughly twice as fast on my iPhone than I ever did on my Treo. The keyboard is going to frustrate any first time user, but don't let that initial impression scare you away. It gets better with time (much better).
Of the non phone apps, probably the #1 most often used app is Safari (the web browser). I find it quite handy even in my own home. I read the news in the morning on it with my coffee. I read articles in the evening while lying on the couch. And this despite having several computers in the house that are always on and ready to use. I never got that kind of utility out of the crippled browser on my Treo.
Email is similarly crucial. It took some tweaking to get GMail to only forward a subset of the email I receive on a daily basis (the subset that is non spam and non mailing list). Now that I've got it setup the way I like, it's terrific. Again, far better than my Treo (which I eventually stopped using for email). But, I suspect Blackberry might still have an edge here (but only a very slim one).
Google maps is indispensible when out and about. I find myself using it more and more every day. It's great if you happen to know the name of some store or restaurant and you know approximately where it is. Just pop into maps, search, click the push pin and instantly get directions or place a call. It's one of the things that amazes everyone I show it to. It's not that there aren't other phones out there that could do similar things, it's that the iPhone can do it with such efficiency and grace.
I use the iPod and photo apps heavily too (it's fantastic for sharing photos with friends). The iPod is also fantastic. I frequently use the world clock for setting alarms and timers. I sync my calendar and make appointements. I check stocks, the weather, and use the calculator from time to time. I snap photos with it when I don't have my usual camera handy. YouTube is a fun distraction every now and again. The Notes app is my least used app (though I do use it on occassion to jot down a reminder or list of some kind).
And, the great thing is that Apple appears eager to continue rolling out improvements in the software. That's something that Palm could have done with the Treo, but never really did. Other phones also just seem to push out the bare minimum in bug fixes and what not.
My one desire is for Apple to open up the iPhone to some form of third party application development. Right now, there is a lot of incredible stuff being done via Safari, but there are limits to that form of application delivery. I believe Apple will do that, I just believe they will work very hard to get it right and make a viable marketplace for those third party application developers.
Well, there just isn't much negative to say. Oh, the range on the Apple bluetooth headset isn't very good. Be prepared to return it if that's an issue for you. Otherwise, it's a nicely designed headset that's nicely integrated with the iPhone.
Wednesday, September 5, 2007
Friday, August 10, 2007
Copy and Paste on the iPhone
This is a hilarious demo of how copy and paste could work on an iPhone: http://vimeo.com/266383. It's actually a pretty good approach. Watch it all the way to the end to fully appreciate the humor.
The Apple Phone Show
The Apple Phone Show (http://applephoneshow.com) is a great blog and podcast for all you iPhone owners (and those considering an iPhone). It's a great resource for all things iPhone related, including tips, tricks, news and wild speculation!
Wednesday, July 11, 2007
iPhone email for GMail users
By now, you've no doubt heard all about the iPhone's push email capabilities via the Yahoo! email service. You may even have given it a spin by now if you're an iPhone owner. However, if you're like me, you were probably somewhat underwhelmed. You also probably noticed that this "push email" didn't seem all that pushy. I'm not certain whether it may have been early hiccups in the system, but email only seemed to get pushed if I was currently in the email app. If I returned to the home screen, emails didn't seem to flow into the phone in a push fashion.
In addition, the iPhone seems to lack any effective means of dealing with large volumes of email and spam. It basically has no ability to manage emails in bulk. And forget about more recent email management innovations such as keyword tagging. So, we're left with having to find a solution to this dilemma by external means.
I also prefer to use an email address on my own domain so that I can freely switch email providers without having to notify all of my contacts of a change in my email address. I forward my emails from this address to my GMail account. I also have GMail configured to use this address on my outbound emails.
My first attempt at a solution was to forward my emails to a Yahoo! account in addition a to my GMail account. However, I quickly realized that any emails I sent from my iPhone using the Yahoo! account not only had my Yahoo! address on them, but they also had Yahoo! advertising at the bottom. Unforgivable. I could find no way around these issues. So, I gave up on using Yahoo! mail altogether.
Fortunately, these issues can be overcome to make the iPhone a truly pleasurable email experience. First, I decided that I would use the POP account that I get with my home ISP (Comcast). This gives me the ability to use my own email address for both inbound and outbound email. I configured a POP account on the iPhone and set it to check for email every 15 minutes (since the so called push email didn't really seem to work anyway, and given the good battery life I seem to be getting, this didn't seem to be a huge loss).
Next, I needed to get email into this account. Rather than forward emails directly from my domain hosting provider, I created a GMail filter that forwards only emails that contain my email address. GMail is now filtering out spam for me and delivering only emails that explicityly reference my email address. I don't get emails from my mailing list subscriptions (unless they happen to cc me), but I find that to be a good thing. Only the emails that are likely to need to be acted upon in a timely manner reach my iPhone, which is exactly what I want.
The only downside to this approach is that emails aren't marked as having been read in GMail when viewed on the iPhone, but I find that to be a relatively minor annoyance. On the balance, this is a very workable solution. Happy emailing on your iPhone!
In addition, the iPhone seems to lack any effective means of dealing with large volumes of email and spam. It basically has no ability to manage emails in bulk. And forget about more recent email management innovations such as keyword tagging. So, we're left with having to find a solution to this dilemma by external means.
I also prefer to use an email address on my own domain so that I can freely switch email providers without having to notify all of my contacts of a change in my email address. I forward my emails from this address to my GMail account. I also have GMail configured to use this address on my outbound emails.
My first attempt at a solution was to forward my emails to a Yahoo! account in addition a to my GMail account. However, I quickly realized that any emails I sent from my iPhone using the Yahoo! account not only had my Yahoo! address on them, but they also had Yahoo! advertising at the bottom. Unforgivable. I could find no way around these issues. So, I gave up on using Yahoo! mail altogether.
Fortunately, these issues can be overcome to make the iPhone a truly pleasurable email experience. First, I decided that I would use the POP account that I get with my home ISP (Comcast). This gives me the ability to use my own email address for both inbound and outbound email. I configured a POP account on the iPhone and set it to check for email every 15 minutes (since the so called push email didn't really seem to work anyway, and given the good battery life I seem to be getting, this didn't seem to be a huge loss).
Next, I needed to get email into this account. Rather than forward emails directly from my domain hosting provider, I created a GMail filter that forwards only emails that contain my email address. GMail is now filtering out spam for me and delivering only emails that explicityly reference my email address. I don't get emails from my mailing list subscriptions (unless they happen to cc me), but I find that to be a good thing. Only the emails that are likely to need to be acted upon in a timely manner reach my iPhone, which is exactly what I want.
The only downside to this approach is that emails aren't marked as having been read in GMail when viewed on the iPhone, but I find that to be a relatively minor annoyance. On the balance, this is a very workable solution. Happy emailing on your iPhone!
Friday, June 15, 2007
Safari on Windows? Here's why.
First, it encourages broader support for Safari among websites. That alone is reason enough, but I think there's more to it; much more. The other reason for Safari on Windows is that it brings with it many of the OSX APIs to Windows.
Why bring OSX APIs to Windows? It's simple. More and more of the most useful applications today are collaborative and social in nature. Think about iChat. Here is one application on OSX that is a nice spin on the idea of instant messaging and will be vastly improved on Leopard. However, to benefit from many of the features in iChat, the other party needs to be running iChat. That's a deal breaker since the majority of users are running Windows. With the OSX APIs available on Windows (perhaps even a full Cocoa environment), porting iChat will be trivial for Apple. Porting any app that has a heavy social or collaborative aspect to it will be trivial (and essential) for Apple.
And then what? Well, Apple could expose that portability layer to third party developers. They could even make it possible for independent software developers to leverage an iTunes like platform for software distribution in much the same way that iTunes is a music distribution platform today. That would be huge for the small software developer that must overcome many barriers to get people to visit their websites and trust them with their credit cards.
Wednesday, May 30, 2007
RIP Palm (and other UMPC devices)
Well, everyone is bashing Palm today over the Foleo and with good reason. The problem with a device like the Foleo is that it doesn't have the utility of a general purpose laptop, nor does it have the portability of a smart phone. In a nutshell, it's the worst of both worlds. For the large majority of people, a laptop serves quite well as your primary computing device with decent portability, while a smart phone can make a good auxiliary computing device with ultra-portability. For the same reasons, I believe so called "UMPC" (ultra mobile personal computer) devices will never enjoy broad appeal. The best a UMPC could hope for is to serve as a laptop replacement for people that don't have a need to use a computer very often or very long and have some need for the portability it offers where a smart phone would not suffice. That sounds like a very niche market to me.
Wednesday, February 21, 2007
What should Dell do?
I saw this article about Dell and ideas that people are posting about how to best revive it. The number one idea was to offer Linux pre-installed. I think the market for pre-installed Linux will be minuscule for some time to come. Instead, I think Dell should consider following Apple's lead and develop their own operating system, custom tailored to their hardware. It should be highly polished and easy for users. A DellOS could be built on Linux, BSD or even on Darwin. It would be a tough row to hoe, but once there, Dell could innovate in much the same way Apple is free to do today.
In fact, I think the Apple model may well be the future of computer manufacturers with Microsoft ultimately being forced into building its own hardware to remain competitive with the likes of Apple (and Microsoft will ultimately also have to wrestle with the enormous propriety code base that is Windows...that model simply doesn't scale in the long run). Of all the computer manufacturer's out there, I think Dell is probably the best positioned to pull off something like that. They already have the direct sales channel, good brand recognition, and they have been putting their toe in the water with Linux for a while now. They just need to assemble the right software team and someone with a fanatic attention to detail to make it happen. Or, maybe they should buy a Linux vendor.
In fact, I think the Apple model may well be the future of computer manufacturers with Microsoft ultimately being forced into building its own hardware to remain competitive with the likes of Apple (and Microsoft will ultimately also have to wrestle with the enormous propriety code base that is Windows...that model simply doesn't scale in the long run). Of all the computer manufacturer's out there, I think Dell is probably the best positioned to pull off something like that. They already have the direct sales channel, good brand recognition, and they have been putting their toe in the water with Linux for a while now. They just need to assemble the right software team and someone with a fanatic attention to detail to make it happen. Or, maybe they should buy a Linux vendor.
Saturday, February 10, 2007
Object initialization
In Smalltalk, it is a common pattern to create new objects in a class method called "new" as follows:
The typical initialization pattern does not accommodate initialization for a variety of needs. For example, I might want to instantiate MyClass where foo is set to 'bar', or I might want to initialize my new instance with foo set to 'baz'. The bar/baz decision is entirely dependent on the context in which my new instance is to be used. The simple and typical "super new intialize" pattern is not accommodates and results in unnecessary post initialization initialization.
I think I would prefer a solution where any class can have one or more pre-initialized "prototypes" that you simply copy. In this simple example, we would have one prototype that has foo set to "bar" and another with foo set to "baz" and we would simply copy the appropriate one.
Then, the "initialize" method on the instance side of the class performs some measure of instance variable initialization as follows:
MyClass class>>new
^super new initialize
This pattern is so common that some have argued (audio link) in favor of making it the default behavior for for the instantiation of all objects in the system. I find this a bit distasteful. One of the things I like about the Self language is its concept of creating new objects by cloning existing ones. I find that approach to have a certain Zen like quality. In that environment, one would find some object that most closely matches the desired behavior and clone it. Then you would mutate it as necessary to fit your purpose. Such objects are often called "prototypes" (not to be confused with the use of the term "prototype" in Javascript where the prototype of an object specifies inherited behavior).
MyClass>>initialize
foo := 'bar'.
The typical initialization pattern does not accommodate initialization for a variety of needs. For example, I might want to instantiate MyClass where foo is set to 'bar', or I might want to initialize my new instance with foo set to 'baz'. The bar/baz decision is entirely dependent on the context in which my new instance is to be used. The simple and typical "super new intialize" pattern is not accommodates and results in unnecessary post initialization initialization.
I think I would prefer a solution where any class can have one or more pre-initialized "prototypes" that you simply copy. In this simple example, we would have one prototype that has foo set to "bar" and another with foo set to "baz" and we would simply copy the appropriate one.
Tuesday, January 23, 2007
Introducing Software Technic
First things first, let's talk about the title. "Technic" is an uncommon spelling of the word "Technique." There were a number of blogs on blogger.com with variations of the conventional spelling, so I went with the unconventional. I have a fond memory as a kid arguing over the spelling of the word with my dad. He had used the unconventional spelling, "technic", and I argued that is was incorrect. Well, dad was correct. It seems only fitting that I should use that spelling.
As you might guess, this blog will be about software, but more specifically, it will be about software development (from my perspective of course, and with some personal interest stuff sprinkled in). I like a lot of the general technology blogs and podcasts (like TWiT and MacBreak Weekly for example), but they are a bit more consumer oriented than I would prefer...I'd love to find a really good podcast (even a video podcast) done more from a software engineering perspective. Alas, us software engineers tend not to make good entertainers (plus, who has the time).
Anyway, I've often desired to have a place to publish random thoughts and software design approaches, so this will be it. I will have lots of technical stuff here...hence the title. ;)
As you might guess, this blog will be about software, but more specifically, it will be about software development (from my perspective of course, and with some personal interest stuff sprinkled in). I like a lot of the general technology blogs and podcasts (like TWiT and MacBreak Weekly for example), but they are a bit more consumer oriented than I would prefer...I'd love to find a really good podcast (even a video podcast) done more from a software engineering perspective. Alas, us software engineers tend not to make good entertainers (plus, who has the time).
Anyway, I've often desired to have a place to publish random thoughts and software design approaches, so this will be it. I will have lots of technical stuff here...hence the title. ;)
Subscribe to:
Comments (Atom)