search




subscribe

Email new articles to:





context

Search my entire digital life. Lijit Search

shared links

My recommended reading list.


community

The line between native and Web apps is beginning to disappear.

iPhoneThis is part of a series of posts about the Apple iPhone and the future of the mobile Web.

With regard to the upcoming release of an iPhone SDK for native, third-party apps: keep in mind that Web apps are growing in popularity and functionality.  Many predict web apps will one day render the desktop tower more or less obsolete.  As apps like Google Mail/Reader/Docs/Calendar, Basecamp, Todoist and the rest become more ubiquitous, online file storage like .Mac and box.net become cheaper/easier/faster, and bandwidth pipes become less of an issue, the day will come when files and applications are all run online, and users log in through a thin client OR EVEN A MOBILE DEVICE to establish their identity and to operate the data and applications.  Google is banking on this.  You can bet that Microsoft is working to create Web-app versions of their software.  Apple seemed to be on the same page with the original, abandoned Safari SDK, and with the Google Maps and Search integration on the iPhone. What happened?  Some have suggested that the problems involved got too complicated just to fix them instead of working around them. I don't know if that's true, but  Apple has certainly been mum about it.  In any case there is no denying that Web apps will certainly play a large part in the next generation of computing.

There will clearly need to be further integration of the two platforms (web and native).  Many of Apple's most useful apps are already integrating into a blend of desktop app that uses online services...and what's really beautiful about them is the way that they run transparently in the background without making a big deal of their online tasks.

iPhone/mobile apps should really attempt to emulate this. Internet-dependent processes should happen quietly, when the iPhone has bandwidth and battery power to use for these tasks. The user shouldn't have to monitor or adjust or push too many buttons to make these things happen. Most apps are used for repetitive tasks.  As such they should be streamlined as much as possible.  Mobile apps should have ten times the amount of streamlining, both due to slower bandwidth and processor speeds, and to the fact that they are mobile "on-the-go" pieces of software that should allow you to enjoy you life and take part in the world around you instead of standing around pushing buttons.

In our world, reliable and ubiquitous wi-fi is not a reality yet.  Even cell/EDGE service is not available constantly.  (Think airplane.)  The iPhone should be a tool that is adapted to that fact - when internet or EDGE connections are unavailable, data that might be needed later should be stored natively. Services that require real-time information from the web should use the web.  The difference is simple, yet the tools have not been created for the development community yet.  As bandwidth and connectivity cease to be an issue, more of the iPhone's computing can rely on services "from the cloud".  In this kind of environment, the line between Web app and native app will begin to disappear.

So although there are some who say that Apple is missing the boat by not sticking with a Web-only platform, I say, for the good of the iPhone and mobile computing, use whatever it takes to get the job done...but use your platforms to the fullest of their capabilities instead of allowing them to be crippled by technical restraints that, ultimately, can be overcome.  Not by third-rate hacks or Band-Aid workarounds, but by matured, full-fledged development environments that can be programmed to do the repetitive tasks for you while you get on with participating in real life.  Bottom line: Don't forget to consider the technology available to the world you're in right now while you plan for the possibilities of the future.

This is part of a series of posts about the Apple iPhone and the future of the mobile Web. Stay tuned.
Next up: my iPhone wish list...

Tags: , , , , ,

Saturday, January 05, 2008
• (0) Comments • (0) TrackbacksPermalink
Was the failure of the Safari SDK anticipated by Apple?

In my last post I wrote about mobile application design and how form should disappear in the face of function.  The implementation of MobileSafari on the iPhone comes so very close to giving developers a toolkit to accomplish this with pizazz, but there are a couple issues holding it back from its full potential:

The "dev kit" that Apple offers doesn't allow access to the phone's features.
This was covered in my last post. Lack of access to the camera, microphone, speaker, alerts etc. hinder iPhone apps from being fully effective.

MobileSafari's support for Web standards is subpar.  The implementation of the Web standards that Apple touted as an application development platform are disappointing.  Javascript behavior is slow and unreliable, and even some CSS properties do not behave according to the Web standards that Apple touted as the future of the iPhone.

This may have come as a surprise to Apple.  As far as I know they have never said outright that the Safari browser and its Mobile counterpart can behave like two different animals, but as someone who spends a lot of time with both, I know it to be true.  This is something that I had considered worth overlooking for a while as the platform was improved on; but rather than fixing the current problems and bringing MobileSafari up to speed with JavaScript handling, iframe display, and the rest, Apple seems to be applying Band-Aid fixes instead, by using custom CSS and Javascript events that work around existing limitations.

At the VON conference this fall, I heard the claim that Apple never second-guesses themselves, that every move is planned well in advance.  While I don't doubt that this is true, this claim was accompanied by the assertion that Apple never makes a mistake.  That the 3rd-party SDK later release was intentional. That the sucky Safari SDK was never intended to be the "real" platform for the iPhone.  Even that the $100 early-adopter rebate was all planned from the beginning.

I don't really agree with this stance; I obsessively read everything iPhone-related that I could get my hands on for MONTHS, and I follow Apple pretty closely.  While it's true that they haven't taken many false steps since Jobs came back on board with the launch of the original iMac and the iPod, there have been a few recent products that weren't exactly flops, but I'm sure they didn't go the way Apple planned them to.

Part of the reason I would hate to think that Apple made no mistakes is this: if the whole Safari SDK - price drop/refund - 3rd-party app saga was all part of some grand scheme on Apple's part, that would qualify in my book as majorly planned obsolescence.  More than I'm comfortable with, in fact.  Especially as a Web developer - so what, was Apple just messing with my mind?  I don't my (imaginary) type of relationship with Steve Jobs is Walt Disney exactly, but I don't think it's Ike Turner either.

The idea that everything Mac is orchestrated perfectly from on high might work somehow...except for the fact that some things with the iPhone haven't gone as initially (publicly) planned.  And the planned obsolescence angle just doesn't fit the company's profile.  Sure, tech stuff (and especially gadgets) improves in leaps and bounds.  I spend thousands of dollars every year chasing the newest carrot that technology dangles in front of me; I'm a total sucker for that.  But I think this is just a little too off-track to be intentional.  Apple has been plenty cool about people hacking their iPhones, and I don't doubt that they are working as hard as possible to achieve maximum development AND maximum profit at the same time.  So I disagree that the whole thing was planned from the start; I'm chalking it up to "bumps in the road" that will one day lead us to the modern mobile Internet that I envision.

I am, of course, interested in your opinion.  Do YOU think the whole iPhone timeline has been completely engineered?  Let's talk about it in the comments of this post.

This is the second part of a series of posts, starting with the present and leading us into the future of the mobile Web. Stay tuned.
Next up: Integration of mobile app platforms...

Tags: , , , , , , , , ,

Saturday, December 15, 2007
• (0) Comments • (0) TrackbacksPermalink
Lack of Web app integration prevents digital transparency.

When I imagine a "digital lifestyle", it is long on "lifestyle" and short on "digital". I picture a level of integration between tech (iPhone, home computer, web applications and services), life (home, family, travel, friends) and the digital tracings of my life (photos, video, music, design, blog/microblog/ tumblelog) that allows me to enjoy what I'm doing without thinking about transferring from real life to digital.  It just happens, at least it does in my mind's eye.

The advent of the iPhone had made it seem like the "digital lifestyle" was ready to integrate in this way.  Unfortunately, the actual product and process has fallen short of this mark.

Apple's announcement that they are releasing a "real" iPhone SDK for native third-party applications is good news for the iPhone.  Applications so far, whether they were Safari Web apps or hacked native apps, have been restricted to a fairly primitive set of features. The main reason for this: no integration with the features that should make the iPhone a mobile wonder: camera, microphone, speaker, accelerometer on the hardware side, and Address Book, Calculator and Clock on the software side.

A good mobile app should be as transparent as possible while allowing you to complete the intended function.  They should take little energy and attention to operate. Save that for desktop apps - when I'm using my mobile the last thing I want is to be "that guy" who spends the entire time at a social event tapping away at his phone.

Here's an example: since I'm always Twittering from my iPhone, I often get people wanting to see pictures of something I'm doing, while it's happening.  So I will post to my tumblelog, or to my flickr account, and then direct them to that location via my iPhone's Twitter client.

It takes 15 button presses to shoot and email one of my photos. FIFTEEN!  I won't be tiresome and list each one, but that's what I came up with.  This could easily be streamlined by an app with access to the iPhone's camera AND the Web.

I can only share the photo's address via a general URL.  Since there is no copy/paste on the iPhone, once I've uploaded my photo and I want to share it, I might Twitter/text/etc. a link to the general location: "Check out my photo on Flickr, I'm colbyworld" or "Photo on my tumblelog at fun.colbypalmer.com".  This doesn't provide a link that people can save or share, once I've uploaded a new set of photos the one I'm trying to share will be buried.  I know there is a remarkable Flickr-to-Twitter service available...but what if I want my photo to go to Facebook or Tumblr? How about all four? Not to mention other sites like Radar, MobyPicture and the rest. There are methods of emailing photos to upload to these services, but no standardized method of tagging/titling/commenting.  This could be handled by an app that stored prefs and login/API information for the different services.

At this point, I'm fussing with the iPhone when I should be doing something fun. If I wasn't doing anything exciting I wouldn't want to share a picture, right? About the time I get to step 8 and I'm fumbling with tags and deleting my signature from the email so it doesn't appear in the Flickr comments, my fiancee is frowning, my baby is squirming, and my Twitterpals still have no picture.

A fully integrated app could slim this down to only four steps:
  1. Open the app.
  2. Take picture.
  3. Select options: take more pics, review/tag/edit, upload to (flickr, tumblr, blog, select socnets you want), post to (twitter, jaiku, pownce, tumblr, facebook etc). Most of these will be pre-set as preferences, so no selection would be necessary.
  4. Press "Done".
The app would perform basic enhancements (this is something else conspicuously missing from the iPhone), tag, upload the picture, then post a link to it on your Twitter/Flickr/Tumblr/Facebook/etc. account.  Unfortunately this just isn't possible yet with the tools that Apple has given us.  Cookies aren't stored reliably, there is no place or method for storing local data, and there are NO ways to access the cool features of the iPhone that could transform it from an Internet-capable device to a true multimedia wonder.  This keeps us coming up with workarounds and hacks, and expending more effort than we should have to in order to maintain the "digital lifestyle" that Apple has been selling us.

A primary goal for mobile apps should be TRANSPARENCY.  Hopefully with the release of a proper SDK, iPhone apps can help us slim down the button-pushing and get on with the fun.

This is the first part of a series of posts, starting with the present and leading us into the future of the mobile Web. Stay tuned.
Next up: Was the failure of the Safari SDK anticipated by Apple?

Technorati Tags: , , , , , , , ,

Wednesday, November 28, 2007
• (2) Comments • (1) TrackbacksPermalink
Bringing the iTweet UI to your desktop.

Enough people have expressed interest in a desktop browser version of iTweet (examples: one, two, three) that I started putting one together tonight. Twitter's recent dropping of the hyperlinks in @replies is fixed by just a few lines of code in iTweet... so if you like using @replies, here you go. A lot of iTweet's functions are built around convenience for the iPhone, so expect this version to change a lot as I modify it for the desktop browser. Eliminating the constraints of bandwidth and Mobile Safari's funkiness, lots more is possible. On the other hand, without Safari's wonderful CSS3 support, this version doesn't have all the lovely rounded corners of the iPhone version.

Anyways, it's a work in progress, but seeing how everyone misses the linked @replies I thought I'd just publish this early so people can use it. Enjoy.

Click here to give it a try.

So far I have only clicked around this version a bit in Firefox and Safari on the Mac before I blew through the API limit on both my accounts. I will test and debug it for other browsers soon.

I welcome your opinions and feature requests for the desktop browser version; please leave notes for me in the comments.

Or maybe even better, follow my updates on Twitter and join the conversation there.
Friday, November 16, 2007
• (4) Comments • (0) TrackbacksPermalink
My first foray into Facebook's new advertising model.

I made my first Facebook product page today, for my project iTweet.net. The process was quite simple, and I can see some useful possibilities already in using the Discussion Boards as a place to handle feature requests and bug reports.

I'll be making another FB product page for The Illusion Factory soon as well, and perhaps I'll dig into the paid-push types of advertising they have available.

Stay tuned...and meanwhile, please add my iTweet Facebook page to your Products list!
Monday, November 12, 2007
• (0) Comments • (0) TrackbacksPermalink
Twitter's tracking feature is great. #Hashtags would complement it well.

Twitter just introduced a new method of "tracking" keywords - enter "track keyword" in SMS or IM and you will receive notifications whenever someone uses that keyword in a tweet. Right now it's only available via IM or SMS notifications, but they say it will eventually come to the API etc.

I've been using it for a couple days and I think it's a very cool addition. I've also been very interested in Chris Messina's suggestions for using #hashmark tag channels similar to what you can find in Jaiku (and IRC I think). The "tracking" feature provides a similar service but they are slightly different and I can see a great reason for both to exist. Here is my take on the difference between the two:

Twitter Tracking:



  • involuntary

  • results are broader and less contextual

  • great for customer service, marketing, vanity

  • automatically removes anonymity (can't opt out of tracking searches)

  • no "on-board" archiving

  • present tense only (cannot track past tweets)


#Hashtags:



  • voluntary

  • items are intentionally tagged so results are higher quality

  • great for networking, community, research

  • anonymity is removed by knowing participation

  • creates public archive

  • can search Twitterstream into the past



While Twitter's new tracking feature is very cool (and useful), being able to search into the past would be really nice. Having the info tagged and archived (by those who wished to participate, of course) would be great too. Also being able to narrow the searches by username (ie search colbyworld#iphone) would be nice.

I hoped even just "tracking" a #tagged word would have some good results - just to experiment I used "track #bacn" today. I received notifications for "#bacn", but also for "bacn" (without the hashmarks)...so it seems that Twitter doesn't even recognize the syntax. I thought that was odd.

I think it would be best (for all) if tagchannels were implemented natively in Twitter. It would make the archiving and tracking function portable across the Web instead of confining it to a particular client etc. I don't want to wait for that; the tools are there, and there is definitely a way to make #hashtags work in a third-party way...so I'm going to try to add it to my iPhone app. (It's on the list, anyway.)

As a maker of Twitter Web software, from a customer service standpoint tracking is way cool. I track "iTweet" and then I get notified whenever someone talks about it. Naturally people Twitter about it, right? So I've gotten lots of helpful feedback from that...

"Love it." "It sucks." "It's really fast." "It's too slow". "It works great but it's ugly." "It doesn't work well but at least it looks great."

OK, maybe it's been a little less than helpful. It has been interesting though! But I digress...

To me the most interesting question is: does anyone have a proposal for a way to pull TagChannel-like features out of Twitter's new tracking method? Maybe it doesn't actually track the #pound sign but perhaps another syntax could be used. It would ruin all the efforts to date by Chris Messina and Stowe Boyd in hashtagging all their tweets for quite a while now, but perhaps there's another tagging method we can use to leverage what Twitter has given us? Please leave your thoughts in the comments!

Also, please follow me on Twitter (I'm @colbypalmer) and we can carry on the conversation in real time!

Update: There is a great post about this topic at Stowe Boyd's website, with comments from Mr. Messina here.

Update 2: Hashtags.org has built an app that indexes all hashtagged tweets, AS LONG AS the user using the #hashtag is following the hashtags bot. Follow @hashtags on Twitter and start using #hashtags today!

Update 3: You can now use #hashtags and search all of Twitter using my web and iPhone app, iTweet.net. Now you can click on #hashtags (they appear in green) and see all posts using that tag!
Monday, October 01, 2007
• (3) Comments • (0) TrackbacksPermalink
This innovative idea is helping to digitize books...AND eliminate spam.

Have you seen reCAPTCHA? This great idea uses CAPTCHA to help digitize books from the Internet Archive. (CAPTCHA are those distorted words that Web forms make you fill out to help eliminate spamming.) Words that OCR (Optical Character Recognition) devices have trouble deciphering get sent through your CAPTCHA form and the data is used to determine what the questionable word is. This saves a lot of man-hours and helps the Internet Archive complete itself automatically. The digitized data has lots of great uses, including digital books for the disabled. And eliminating spam from your website, of course!

Find out more at reCAPTCHA's website.

I think this is a perfect example of using inventive geekery to do some good for all kinds of people. I think ideas like this are so exciting! I want to see more.

Is there a site that you think exhibits the same kind of ingenious thinking to create a positive effect in people's lives? Please leave a link in the comments!
Tuesday, September 25, 2007
• (0) Comments • (0) TrackbacksPermalink
Craigslist post about clients who devalue design/marketing pros for cheap graphic labor.

from Craiglist "re: Graphics person able to bring my logo to life ($100)"
I didn't write this, it's a reprint that someone emailed to me.

It is not my purpose to bash the OP, or call them cheap or whatever.
I realize that you might not have a large budget to get the type of work you need. Probably have no idea what the current rates are, and what goes into a logo package.
I'm sure there's someone out there who will "bring your logo to life" for $100.
That person is not me.
That person isn't most designers with any real talent and skill.
And this isn't just for you, Mr. do-my-logo-for-a-hundred-dollars, this is for everyone who devalues the work of good graphic designers.
If only "designing" was my job, life would be so much easier.

Here's why:

When a potential client comes to me, basically asking the same thing you are, I tell them my price. Never less than $400. Of course, I get scoffed at, and am told any number of things including:
My nephew/cousin/brother-in-law/friend, whoever, has Photoshop, and said they'd do it for $xx or free.
Why should I pay so much for you to design something that I can't even touch?
Well so-and-so over at logomilldotcom told me he can do it for much cheaper...

the list goes on and on, and I won't bore you with it.
Working designers know what I'm talking about.
We deal with it every day.

Now, I'm going to tell you why I would charge you $500 --at the least.

When you hire me to make your logo, I not only have to come up with numerous ideas based on what you think you want, I also have to take into account where you'll be using it, and what for.
I have to explain you out of many poor decisions based on your lack of understanding why your idea won't work. We LOVE it when you have a great idea, but it happens rarely.

What kind of business are you in?
Who are you marketing towards?
What do you hope to do with the logo in the future?
Is it a trendy look that will blend in and disappear?
Is it too ambitious and full of unnecessary elements that take away from the message?
Does it make any sense in any way?
Am I taking someone else's work and digitizing it so you have a proper .eps file?
Why didn't you have them do it in the first place?
Was it because you got it for $50?
I could spend hours rehashing the millions of questions I've come across, talking with potential clients.

The last logo I did, I charged 1k.
That 1k got my client almost 25 different ideas to choose from.(could've been more, ended up with the original idea -doesn't negate the hours I spent on other mock ups)
It got him the proper colors that best suit his business and work well in print and on the web.
It got him letterhead and business cards.
It got him branding and marketing strategy.
It got him the proper files so that he could send the logo out to be printed on everything he needed for his business.
Ultimately, it got him more business.

Now I design brochures for him and frequently update his website(that I also made)... because his business is growing, and the strategy worked.
I get emails from him all the time, thanking me for everything.
Why? because it was professional, and it was well thought out and it meant something. I didn't hand him a cd with a logo on it and say "good luck".
That's what 100 bucks gets you.

100 dollars also ensures that no matter how bad your idea is, or how ridiculous you logo looks, the "designer" will keep their mouth shut and give you the exact crap you're asking for.
Then you'll wonder why it isn't working, or why you have to keep getting it in different formats for different people.
You feel robbed, and now think that, what designers do is bullshit.

I can't tell you how much more than just designing, I do with my clients.
I'm regularly walking them through everything. I'm dealing with teaching them how and where to use the files to accomplish their business plans.
I'm always consulting them. I can be counted on for ideas and strategies to get their business seen, in a market that is flooded.

If you can get all of that for $100... then you're a lucky man, and should never tell anyone about your guy -Of course, you will also in a way be putting him out of work, but that's ok, because you got your cheap logo.

I will however apologize in advance if I misrepresented you in this post.
More so than anything, it's what I want to tell every person who looks for low priced work.
I know from years of experience and hand holding, everything that goes into designing your logo, and everything else I do in that process, is what the future of your business is hinging on.
Stop thinking of designers as people who make pictures, or who do work that has no real value, because you're wrong. A good designer with any marketing savvy can take your shitty idea for a logo, and turn it into the centerpiece of your prosperous business.
Great design is not stuffing 10 lbs of shit in a 5lb bag.
And it's definitely not happening with $100.

If you don't have the money, work out a deal, make payment, but please, stop undervaluing what we do. I swear, once you shop around and talk to some people, you'll see that if you care about the future of your business, it's money well spent.
Tuesday, September 04, 2007
• (4) Comments • (0) TrackbacksPermalink
Next time I will remind myself to think before I tweet.

I had to vent a bit on Twitter the other day; I am so fed up with hearing the Web 2.0 elite waste their time on petty arguments, that i abruptly jumped into a one-way conversation of Dave Winer's. IMHO Dave is a visionary (albeit sometimes a bit cranky) that I respect very much, and even though I tried to make that clear, I still should have separated the issue that was bothering me from the conversation that set me off.

The conversation, unfortunately, was picked up by some site called Eye on Winer and published. Apparently they are like Dave Winer's personal Valleywag. If I were Dave I would be flattered; they obviously put a lot of energy into this site. I attempted to comment on their post, even registered and tried to post my own comments, but for whatever reason the site refuses to approve my post. OMG really? If you're going to publish my tweets out of context, at least give me the opportunity to express my perspective...right? If not, I felt it needed to be said...so here we are.

So...this needs more than 140 characters so I decided it's time to start my own blog. Yes, I am THAT cantankerous that I will create my own sweet blog, just so my first post can tell the world what some other website doesn't want to publish. This is not rebuttal, not apology, not a withdrawal. It's just my side of things, and hopefully the beginning of a productive conversation. Dave Winer is NOT the point of this post; the point is that the narrow-minded cowards who waste their time on lame Twitter-fights and crap like EOW should really take stock of their priorities and try to do something more noble with their intellect.

If you're interested in the full story, read EOW's post, then continue on with my reply:

I actually had gone back and deleted the "hypocritical" tweet pretty quick as I thought it was off the mark myself. Dave's jeering comments didn't strike me as the kind of thing someone who was concerned with others trashing their "good name" would do...but "hypocritical" was the wrong word. Sorry, Dave.

I've been frustrated with the playground-tiff mentality of the Internet community at large, but I realize now (hindsight, so bittersweet) that jumping into the fray doesn't make things any better. I wish I had stayed out of that garbage. Even though I ordinarily enjoy Dave's writing on scripting.com and (sometimes) his Twitter updates it's my own choice to tune in or not when the shit-talking is going on. I should have just un-followed him as I do so many others, and moved on. Next time I will remind myself to think before I tweet. wink

I don't think there's any denying that Dave is a brilliant person and I have a ton of respect for him and his accomplishments. None of us would be using the Web in the same way if it wasn't for him. I am just sick to death of the infighting and pissy behavior from these smart, rich, connected people and I wish they would turn their amazing minds to alleviating some of the bigger problems in our world instead of focusing on these narrow-minded catfights.

Only those three tweets were directed to Dave, but they were part of a broader conversation I was trying to initiate. Here is the thread:

Colby Palmer: @davewiner -don't get me wrong Dave- <3 your brilliant work...but maybe piling more trash on the heap doesn't add gloss to a "good name"?

Colby Palmer: Potshots != value; Come on people, you have such amazing minds...sad to see so much petty shit talking. Move on and do some good. My $0.02

Colby Palmer: @davewiner No, and with respect, I don't want to flame. I'm just sick of the sniping/infighting. I'd rather see advances of real thought.

Colby Palmer: @davewiner This includes @spin and @jasoncalacanis. . . not to single you out, but your "good name/eric rice is a dork" rant was hypocritical.

Colby Palmer: I'm really not trying to start fights or be an a-hole, I'm tired of the narrow web culture POV (and [mad at] myself for getting involved) wink

Colby Palmer: I'm trying to start over with a new perspective...TODAY. Positive groups like Citizen Agency make me realize I've been misusing my talents.

Colby Palmer: My follow-through begins today. A difference will be made. Stay tuned... <3 to you all.

Now the next question I hope you're asking is: what am *I* doing to help the world? As I said, stay tuned...I have made a commitment to this, and I am putting some ideas into action.

This is the conversation I would like to engage the Internet community in: how can we use the collective intelligence of SO many ingenious people to make a bigger difference? I encourage you to take a look at http://citizenagency.com or http://recaptcha.net to see some great examples of people who are trying to do this. They have made me realize my own narrow point of view, and I've been inspired to put my talents to better use.

Here's what I think: if we can figure out how to tie SMS, IM, email and Internet together in a service like Twitter, and develop SO many methods of using this service...surely we can figure out how to do some good with it. Can't we figure out a way to use our incredible minds for something better than Pissing Contest 2.0?

Find me at twitter.com/colbyworld and let me know what you think.

(Note: some of the language has been changed slightly in this post due to a well-thought-out comment that you can read on the comments page.)
Monday, September 03, 2007
• (5) Comments • (0) TrackbacksPermalink