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.
Subscribe to:
Posts (Atom)