<?xml version="1.0" encoding="UTF-8"?>
<?xml-stylesheet type="text/xsl" media="screen" href="/~d/styles/atom10full.xsl"?><?xml-stylesheet type="text/css" media="screen" href="http://feeds.feedburner.com/~d/styles/itemcontent.css"?><feed xmlns="http://www.w3.org/2005/Atom" xmlns:openSearch="http://a9.com/-/spec/opensearchrss/1.0/" xmlns:feedburner="http://rssnamespace.org/feedburner/ext/1.0"><id>tag:blogger.com,1999:blog-8918248</id><updated>2008-05-06T01:36:15.301-07:00</updated><title type="text">Jim Roos</title><link rel="alternate" type="text/html" href="http://www.jimroos.com/" /><link rel="next" type="application/atom+xml" href="http://www.blogger.com/feeds/8918248/posts/default?start-index=26&amp;max-results=25" /><link rel="http://schemas.google.com/g/2005#feed" type="application/atom+xml" href="http://jimroos.blogspot.com/atom.xml" /><author><name>Jim Roos</name></author><generator version="7.00" uri="http://www.blogger.com">Blogger</generator><openSearch:totalResults>69</openSearch:totalResults><openSearch:startIndex>1</openSearch:startIndex><openSearch:itemsPerPage>25</openSearch:itemsPerPage><link rel="self" href="http://feeds.feedburner.com/JimRoos" type="application/atom+xml" /><entry><id>tag:blogger.com,1999:blog-8918248.post-3721841575134156579</id><published>2008-05-06T01:29:00.000-07:00</published><updated>2008-05-06T01:36:15.329-07:00</updated><title type="text">Come to Scrum</title><content type="html">Ok, I should seriously be asleep by now. Especially considering I have a two-day meeting starting tomorrow at 9:00 AM in Napa. But, I wanted to point to this &lt;a href="http://video.google.com/videoplay?docid=-7230144396191025011"&gt;interesting video&lt;/a&gt; featuring Ken Schwaber one of the co-creators of Scrum.&lt;br /&gt;&lt;br /&gt;I've used Scrum both at Microsoft and Symantec and I love it. Is it a cult? Sure it is. And the Scrum purist can drive you mad! But as Schwaber says repeatedly in this video, it's a fantastic tool for transparency. &lt;br /&gt;&lt;br /&gt;If you want to know where your project stands at all times, consider Scrum.  If you're happy living in the dark knowing that when the tough time come around you can just get yourself moved onto a different project, by all means try something else.&lt;img src="http://feeds.feedburner.com/~r/JimRoos/~4/6W-QXLc5a2g" height="1" width="1"/&gt;</content><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/JimRoos/~3/6W-QXLc5a2g/come-to-scrum.html" title="Come to Scrum" /><link rel="replies" type="application/atom+xml" href="http://jimroos.blogspot.com/atom.xml" title="Post Comments" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/8918248/posts/default/3721841575134156579" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/8918248/posts/default/3721841575134156579" /><author><name>Jim Roos</name></author><feedburner:origLink>http://www.jimroos.com/2008/05/come-to-scrum.html</feedburner:origLink></entry><entry><id>tag:blogger.com,1999:blog-8918248.post-1450809196295797753</id><published>2008-05-06T01:04:00.000-07:00</published><updated>2008-05-06T01:25:22.737-07:00</updated><title type="text">Bunch of Yahoos!</title><content type="html">As long as I'm talking about rescinded buyout offers, I guess I should mention Yahoo! No doubt the shareholder lawsuit is already being drafted. Despite the fact that Jerry Yang and company are  convinced the stock in undervalued, I don't expect them to use any of the company's $2 billion cash to buy back shares. Instead, expect them to cling to that money.&lt;br /&gt;&lt;br /&gt;Bringing back Jerry was probably a mistake. Let's face it Mr. Yang, you're no Steve Jobs.&lt;br /&gt;&lt;br /&gt;Let me also say what a brilliant move this could have been for Microsoft. There are two steps to being successful on the Internet:&lt;br /&gt;&lt;br /&gt;&lt;b&gt;Step 1.&lt;/b&gt; &lt;br /&gt;Build Web sites that people want to visit and use (Helps to start with search)&lt;br /&gt;&lt;br /&gt;&lt;b&gt;Step 2.&lt;/b&gt; &lt;br /&gt;Build an ad platform that serves up market, down market, and everything in between, and that offers real value to customers&lt;br /&gt;&lt;br /&gt;Microsoft has pretty much failed on both fronts. A Yahoo! acquisition would have represented some progress on Step 1.&lt;img src="http://feeds.feedburner.com/~r/JimRoos/~4/s-F9NB4wEK8" height="1" width="1"/&gt;</content><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/JimRoos/~3/s-F9NB4wEK8/bunch-of-yahoos.html" title="Bunch of Yahoos!" /><link rel="replies" type="application/atom+xml" href="http://jimroos.blogspot.com/atom.xml" title="Post Comments" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/8918248/posts/default/1450809196295797753" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/8918248/posts/default/1450809196295797753" /><author><name>Jim Roos</name></author><feedburner:origLink>http://www.jimroos.com/2008/05/bunch-of-yahoos.html</feedburner:origLink></entry><entry><id>tag:blogger.com,1999:blog-8918248.post-6480467075618606340</id><published>2008-05-06T00:45:00.000-07:00</published><updated>2008-05-06T01:02:34.080-07:00</updated><title type="text">Bank of America and Countrywide</title><content type="html">Months ago, Bank of America agreed to purchase Countrywide for what amount to $7.16 a share. Pretty much everyone knows that's never going to happen and Countrywide's stock hasn't traded anywhere near that level in months.&lt;br /&gt;&lt;br /&gt;Last week, Bank of America issued a curious statement that there was "no assurance that any of the mortgage lender's outstanding debt would be redeemed, assumed, or guaranteed."  The BofA offer exchanges each CFC share for some fraction of a BofA share.  Now how exactly do you cast off billions in bad debt and still leave shareholders with anything?&lt;br /&gt;&lt;br /&gt;Ask Bear Stearns.&lt;br /&gt;&lt;br /&gt;No one took the bait last week.  Expect BofA to start playing hardball soon.  It will start when they lower their bid.  That won't be enough, of course, because Countrywide is worth less than nothing. Seriously. LESS than zero. So they could lower their bid to $1/share and doubt Countrywide could refuse it.&lt;br /&gt;&lt;br /&gt;It won't be before BofA rescinds their bid entirely that you'll be asked to pony up, you know, for the sake of the economy. National interest, right? But that's never been used to justify a crime before, has it?&lt;img src="http://feeds.feedburner.com/~r/JimRoos/~4/i_04-NoXj2k" height="1" width="1"/&gt;</content><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/JimRoos/~3/i_04-NoXj2k/bank-of-america-and-countrywide.html" title="Bank of America and Countrywide" /><link rel="replies" type="application/atom+xml" href="http://jimroos.blogspot.com/atom.xml" title="Post Comments" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/8918248/posts/default/6480467075618606340" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/8918248/posts/default/6480467075618606340" /><author><name>Jim Roos</name></author><feedburner:origLink>http://www.jimroos.com/2008/05/bank-of-america-and-countrywide.html</feedburner:origLink></entry><entry><id>tag:blogger.com,1999:blog-8918248.post-7847198066053418867</id><published>2008-03-14T22:56:00.000-07:00</published><updated>2008-03-14T23:19:31.152-07:00</updated><title type="text">Bear Stearns</title><content type="html">A couple months ago I predicted that the word "subprime" would be dropped from the phrase "subprime mortgage crisis."  I was right, but I never predicted that the word "mortgage" would also be dropped. What we are now experiencing is just a "crisis."&lt;br /&gt;&lt;br /&gt;Two days ago, Bear Stearns CEO Alan Schwartz appeared on CNBC to say "&lt;span style="font-style:italic;"&gt;We don't see any pressure on our liquidity, let alone a liquidity crisis.&lt;/span&gt;"  Today, the 86-year-old institution came as close to failing as any investment bank since the Great Depression.&lt;br /&gt;&lt;br /&gt;I'll restrain myself from giving my full opinion of Mr. Schwartz. Suffice it to say, I'd be fairly embarrassed if I were him.&lt;img src="http://feeds.feedburner.com/~r/JimRoos/~4/u7XRDkP2tbU" height="1" width="1"/&gt;</content><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/JimRoos/~3/u7XRDkP2tbU/bear-stearns.html" title="Bear Stearns" /><link rel="replies" type="application/atom+xml" href="http://jimroos.blogspot.com/atom.xml" title="Post Comments" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/8918248/posts/default/7847198066053418867" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/8918248/posts/default/7847198066053418867" /><author><name>Jim Roos</name></author><feedburner:origLink>http://www.jimroos.com/2008/03/bear-stearns.html</feedburner:origLink></entry><entry><id>tag:blogger.com,1999:blog-8918248.post-618339483135304209</id><published>2008-01-01T22:00:00.000-08:00</published><updated>2008-01-01T22:22:08.998-08:00</updated><title type="text">2008 Predictions</title><content type="html">&lt;ul&gt;&lt;br /&gt;&lt;li&gt;"Option-ARM" will be the new "subprime" and the word "subprime" will be dropped from the phrase "subprime mortgage crisis." Everything I said that made me look crazy in 2005 will make me look like a genius in 2008.&lt;/li&gt;&lt;br /&gt;&lt;li&gt;Northern Californians will continue to insist they've got Southern California beat. Southern Californians will spend exactly zero time thinking about Northern California.&lt;/li&gt;&lt;br /&gt;&lt;li&gt;Somewhere, a software development team will begin a total rewrite of a failed project. The setback will have brought them none of the humility they'd need in order to do the job right. &lt;/li&gt;&lt;br /&gt;&lt;li&gt;After less than two hours of labor, my nephew will be born and he will be &lt;i&gt;awesome&lt;/i&gt;!&lt;/li&gt;&lt;br /&gt;&lt;li&gt;I will continue a lucky streak stretching back so far I can hardly remember when it began.&lt;/li&gt;&lt;br /&gt;&lt;/ul&gt;&lt;img src="http://feeds.feedburner.com/~r/JimRoos/~4/aMPnivCTbaw" height="1" width="1"/&gt;</content><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/JimRoos/~3/aMPnivCTbaw/2008-predictions.html" title="2008 Predictions" /><link rel="replies" type="application/atom+xml" href="http://jimroos.blogspot.com/atom.xml" title="Post Comments" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/8918248/posts/default/618339483135304209" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/8918248/posts/default/618339483135304209" /><author><name>Jim Roos</name></author><feedburner:origLink>http://www.jimroos.com/2008/01/2008-predictions.html</feedburner:origLink></entry><entry><id>tag:blogger.com,1999:blog-8918248.post-2841719367588932666</id><published>2007-11-05T19:48:00.000-08:00</published><updated>2007-11-09T18:04:33.755-08:00</updated><title type="text">Symantec Acquires Vontu</title><content type="html">&lt;img src="http://jimroos.com/symlogo.gif" style="float: left; padding-right:2em; padding-bottom:1em;"&gt;&lt;span style="font-style:italic;"&gt;"Symantec Corp today announced it has signed a definitive agreement to acquire Vontu, the leader in Data Loss Prevention (DLP) solutions, for $350 million, which will be paid in cash and assumed options. The acquisition is expected to close in the fourth calendar quarter of 2007, subject to receiving regulatory approvals and satisfaction of other customary closing conditions.&lt;br /&gt;&lt;br /&gt;Data loss prevention solutions help organizations prevent the loss of confidential or proprietary information wherever it is stored or being used. Vontu's products will complement Symantec's existing portfolio of endpoint and network security, storage and compliance solutions, to provide customers with the most comprehensive platform for data loss prevention on the market today. The acquisition builds on Symantec's strong partnership with Vontu and will provide an important component of Symantec's Security 2.0 vision, which shifts the focus of security from simply securing systems and devices to also protecting the information itself."&lt;/span&gt;&lt;img src="http://feeds.feedburner.com/~r/JimRoos/~4/sVtNBWzjnWk" height="1" width="1"/&gt;</content><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/JimRoos/~3/sVtNBWzjnWk/symantec-acquires-vontu.html" title="Symantec Acquires Vontu" /><link rel="replies" type="application/atom+xml" href="http://jimroos.blogspot.com/atom.xml" title="Post Comments" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/8918248/posts/default/2841719367588932666" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/8918248/posts/default/2841719367588932666" /><author><name>Jim Roos</name></author><feedburner:origLink>http://www.jimroos.com/2007/11/symantec-acquires-vontu.html</feedburner:origLink></entry><entry><id>tag:blogger.com,1999:blog-8918248.post-1525958384541677538</id><published>2007-10-26T20:03:00.000-07:00</published><updated>2007-10-27T06:07:36.753-07:00</updated><title type="text">Facebook</title><content type="html">The biggest news in Technology this week was Microsoft's $240 million investment in Facebook. Microsoft's 1.6% stake in the company marked Facebook at a valuation of $15,000,000,000. &lt;br /&gt;&lt;br /&gt;The wire was filled with storied about Facebook's apparent $15 billion valuation, but none that saw this transaction for what it was. For Microsoft, this is not any kind of investment in Facebook. This is an advertising partnership. The $240 million is simply a one-time payment to Facebook that has been structured to be tax free. &lt;br /&gt;&lt;br /&gt;My advice for anyone considering a job at Facebook is to run. This deal just destroyed the value of any new stock options at least until they do another round of financing at a substantially lower valuation. Considering the checking account is flush with $240 million, I wouldn't expect that to happen anytime soon. In other words, no one has any incentive to accept a job at Facebook for the foreseeable future.&lt;br /&gt;&lt;br /&gt;Anyone who thinks Facebook is worth $15 billion, please contact me; I have a blog for sale. (Not to mention a few San Francisco landmarks)&lt;img src="http://feeds.feedburner.com/~r/JimRoos/~4/IOxRUzZa228" height="1" width="1"/&gt;</content><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/JimRoos/~3/IOxRUzZa228/facebook.html" title="Facebook" /><link rel="replies" type="application/atom+xml" href="http://jimroos.blogspot.com/atom.xml" title="Post Comments" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/8918248/posts/default/1525958384541677538" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/8918248/posts/default/1525958384541677538" /><author><name>Jim Roos</name></author><feedburner:origLink>http://www.jimroos.com/2007/10/facebook.html</feedburner:origLink></entry><entry><id>tag:blogger.com,1999:blog-8918248.post-7827410604592515511</id><published>2007-10-23T23:21:00.000-07:00</published><updated>2007-10-23T23:26:40.106-07:00</updated><title type="text">Sadness</title><content type="html">Today, the Xbox is coming up with the dreaded red ring of death. I guess it's off to the service center. This probably means a few weeks without GOW. Perhaps I'll try the outdoors.&lt;br /&gt;&lt;br /&gt;&lt;center&gt;&lt;img src="http://jimroos.com/rrod.jpg"&gt;&lt;/center&gt;&lt;img src="http://feeds.feedburner.com/~r/JimRoos/~4/fZbdToIfyAg" height="1" width="1"/&gt;</content><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/JimRoos/~3/fZbdToIfyAg/sadness.html" title="Sadness" /><link rel="replies" type="application/atom+xml" href="http://jimroos.blogspot.com/atom.xml" title="Post Comments" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/8918248/posts/default/7827410604592515511" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/8918248/posts/default/7827410604592515511" /><author><name>Jim Roos</name></author><feedburner:origLink>http://www.jimroos.com/2007/10/sadness.html</feedburner:origLink></entry><entry><id>tag:blogger.com,1999:blog-8918248.post-2588786193921368846</id><published>2007-09-01T21:45:00.000-07:00</published><updated>2007-09-01T21:56:11.714-07:00</updated><title type="text">Ray-Ban Wayfarer</title><content type="html">Earlier this year, Ray-Ban re-released the Wayfarer, the iconic sunglasses made famous by the Blues Brothers and Risky Business. Yesterday, I bought my own pair of these distinctive trapezoidal frames that scream unstable dangerousness. This officially makes me cooler than you.&lt;br /&gt;&lt;center&gt;&lt;img src="http://jimroos.com/wayfarer.jpg"&gt;&lt;/center&gt;&lt;img src="http://feeds.feedburner.com/~r/JimRoos/~4/1BpYCJXNVyw" height="1" width="1"/&gt;</content><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/JimRoos/~3/1BpYCJXNVyw/ray-ban-wayfarer.html" title="Ray-Ban Wayfarer" /><link rel="replies" type="application/atom+xml" href="http://jimroos.blogspot.com/atom.xml" title="Post Comments" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/8918248/posts/default/2588786193921368846" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/8918248/posts/default/2588786193921368846" /><author><name>Jim Roos</name></author><feedburner:origLink>http://www.jimroos.com/2007/09/ray-ban-wayfarer.html</feedburner:origLink></entry><entry><id>tag:blogger.com,1999:blog-8918248.post-4686555691653947222</id><published>2007-08-15T20:14:00.000-07:00</published><updated>2007-08-18T17:45:02.677-07:00</updated><title type="text">Instant Messaging and AT&amp;T Wireless</title><content type="html">It's been nearly four weeks since I picked up the Samsung Blackjack and switched to AT&amp;T wireless. I have to say, I am every bit as enamored with this device as I was the day I brought it home. I am, however, somewhat less impressed with AT&amp;T Wireless. earlier this week, I received my first bill, complete with some 5 pages documenting each and every instant message I sent from the device, each apparently charged against my account as a "message" equivalent to an SMS or MMS message. Thankfully, my account comes replete with 1500 such messages, but you'd be surprised how many of those you can use up using the built in IM client.&lt;br /&gt;&lt;br /&gt;Thankfully, there are alternatives. The Web-based messenger beta, available at &lt;a href="http://mobile.live.com/GoLive/"&gt;mobile.live.com&lt;/a&gt; provides a reasonable facsimile of the instant messaging experience. You wind up having to manually refresh the page to check for updates, but if all you're trying to do is login and have a quick exchange with a buddy, this solution works pretty well. And it comes with the added bonus of actually supporting emoticons, something the client application that ships with the Blackjack does not. I have to warn you, it's not clear to me whether you can actually escape AT&amp;T's watchful eye using this app. When you login using the Web-based messenger, you will still be reported to other users as being logged in from a mobile device along with the warning that you may be charged for usage. &lt;br /&gt;&lt;br /&gt;My new best friend is &lt;a href="http://fring.com"&gt;Fring&lt;/a&gt;, which is really billed as a mobile VoIP solution. It does a reasonably good job of allowing you to make VoIP calls over Skype or to VoIP equipped instant messenger clients. Unfortunately, your caller's voice will be playing out of the external speakers. You'll have no trouble hearing it, unfortunately, neither will anyone around you.&lt;br /&gt;&lt;br /&gt;Personally, I've been using Fring exclusively as an IM client. It has a couple of advantages over the IM client that ships with the Blackjack. First, it supports a number of IM services including Windows Live Messenger, Google Talk, ICQ, and others. This app provides a unified contact list and you are logged into all of your IM services simultaneously. Even better, Fring provides tabbed conversations making it a lot easier to manage multiple concurrent conversations. Unfortunately, there appears to be no way to turn off the audible alerts that play when a new message is received. Arg.&lt;img src="http://feeds.feedburner.com/~r/JimRoos/~4/reO5BcWfsXY" height="1" width="1"/&gt;</content><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/JimRoos/~3/reO5BcWfsXY/at-wireless.html" title="Instant Messaging and AT&amp;T Wireless" /><link rel="replies" type="application/atom+xml" href="http://jimroos.blogspot.com/atom.xml" title="Post Comments" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/8918248/posts/default/4686555691653947222" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/8918248/posts/default/4686555691653947222" /><author><name>Jim Roos</name></author><feedburner:origLink>http://www.jimroos.com/2007/08/at-wireless.html</feedburner:origLink></entry><entry><id>tag:blogger.com,1999:blog-8918248.post-2741304191897773714</id><published>2007-07-24T08:08:00.000-07:00</published><updated>2007-07-24T08:17:47.122-07:00</updated><title type="text">CNN YouTube Debate</title><content type="html">The last several years in politics have taught us all some important lessons. Unfortunately, they haven't given the folks at CNN enough forsight to know a bad idea when they see it. Ladies and gentlemen, I implore you, let us promise never again to hold any kind of &lt;a href="http://www.cnn.com/2007/POLITICS/07/23/debate.main/index.html"&gt;YouTube debates&lt;/a&gt;. &lt;br /&gt;&lt;br /&gt;&lt;center&gt;&lt;img src="http://jimroos.com/youtube.jpg"&gt;&lt;/center&gt;&lt;img src="http://feeds.feedburner.com/~r/JimRoos/~4/VOscp-fnUW0" height="1" width="1"/&gt;</content><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/JimRoos/~3/VOscp-fnUW0/cnn-youtube-debate.html" title="CNN YouTube Debate" /><link rel="replies" type="application/atom+xml" href="http://jimroos.blogspot.com/atom.xml" title="Post Comments" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/8918248/posts/default/2741304191897773714" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/8918248/posts/default/2741304191897773714" /><author><name>Jim Roos</name></author><feedburner:origLink>http://www.jimroos.com/2007/07/cnn-youtube-debate.html</feedburner:origLink></entry><entry><id>tag:blogger.com,1999:blog-8918248.post-1710480946102100119</id><published>2007-07-23T19:26:00.000-07:00</published><updated>2007-07-23T20:47:29.454-07:00</updated><title type="text">Samsung Blackjack</title><content type="html">I've been thinking about a smart phone for awhile now. I guess it was the release of the iPhone that finally pushed me over the edge, but the iPhone's $500 price seems positively ridiculous considering you can pick up the nifty Samsung Blackjack for just $100 after mail-in rebate.&lt;br /&gt;&lt;br /&gt;&lt;center&gt;&lt;img src="http://jimroos.com/sbj.jpg" style="padding: 10px;" /&gt;&lt;/center&gt;&lt;br /&gt;I love this phone! Some advice for anyone considering the Blackjack:&lt;br /&gt;&lt;ul&gt;&lt;li&gt;The phone still ships with Windows Mobile 5.0.  Upgrade to Windows Mobile 6.0 before you do anything else. That'll give you HTML email as well as mobile versions of Word, Excel, and PowerPoint. And, it looks a lot nicer too. The upgrade re-images your phone, so don't spend too much time setting things up before you get to it. There's no official release of WM6 for the Blackjack yet, but if you sniff around the Web long enough, you'll find it.&lt;/li&gt;&lt;li&gt;Next, pickup the Google Maps and Live Search applications for Windows Mobile. These alone are worth the price of the phone.&lt;/li&gt;&lt;li&gt;The mobile version of IE does a decent job, but if you want to see desktop-style renderings of Web pages, pickup both mobile versions of Opera. Opera Mini is a Java-based application that actually gives you a mouse cursor. It renders Web sites on a remote server and sends them down to the phone as images. Not the best solution, IMHO, but it an interesting idea. Also, try Opera for Windows Mobile Smartphones, which is a native application that can actually handle some AJAX sites. Neither of these browsers are as good as Safari for iPhone, but they're both worth having around.&lt;/li&gt;&lt;/ul&gt;&lt;img src="http://feeds.feedburner.com/~r/JimRoos/~4/QOwh-QRlF7s" height="1" width="1"/&gt;</content><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/JimRoos/~3/QOwh-QRlF7s/samsung-blackjack.html" title="Samsung Blackjack" /><link rel="replies" type="application/atom+xml" href="http://jimroos.blogspot.com/atom.xml" title="Post Comments" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/8918248/posts/default/1710480946102100119" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/8918248/posts/default/1710480946102100119" /><author><name>Jim Roos</name></author><feedburner:origLink>http://www.jimroos.com/2007/07/samsung-blackjack.html</feedburner:origLink></entry><entry><id>tag:blogger.com,1999:blog-8918248.post-5597066869361590062</id><published>2007-07-12T13:28:00.000-07:00</published><updated>2007-07-19T07:49:06.362-07:00</updated><title type="text">Feature Creep</title><content type="html">Please tell us, would you like to edit this item, move this item, delete this item, zoom to street, zoom to city, zoom to region, drive from, drive to, or send in an e-mail?&lt;br /&gt;&lt;br /&gt;&lt;center&gt;&lt;img src="http://jimroos.com/features.png"&gt;&lt;/center&gt;&lt;img src="http://feeds.feedburner.com/~r/JimRoos/~4/EKx-OzbU9gE" height="1" width="1"/&gt;</content><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/JimRoos/~3/EKx-OzbU9gE/feature-creep.html" title="Feature Creep" /><link rel="replies" type="application/atom+xml" href="http://jimroos.blogspot.com/atom.xml" title="Post Comments" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/8918248/posts/default/5597066869361590062" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/8918248/posts/default/5597066869361590062" /><author><name>Jim Roos</name></author><feedburner:origLink>http://www.jimroos.com/2007/07/feature-creep.html</feedburner:origLink></entry><entry><id>tag:blogger.com,1999:blog-8918248.post-116839797645106471</id><published>2007-07-02T23:32:00.001-07:00</published><updated>2007-07-03T07:46:45.710-07:00</updated><title type="text">Kwik-E-Mart</title><content type="html">The 7-Eleven across the street from Microsoft is one of just twelve stores in North America that have been &lt;a href="http://www.cnn.com/2007/SHOWBIZ/Movies/07/02/7.eleven.kwik.e.mart.ap/index.html"&gt;converted into Kwik-E-Marts&lt;/a&gt; this month to promote the upcoming Simpsons movie. Dennis, Justin and I walked over this afternoon. I picked up some Buzz cola, a Squishee, and the latest issue of Radioactive Man!&lt;br /&gt; &lt;br /&gt;&lt;center&gt;&lt;img src="http://jimroos.com/kwik.jpg"&gt;&lt;/center&gt;&lt;img src="http://feeds.feedburner.com/~r/JimRoos/~4/_XETvMJCcHg" height="1" width="1"/&gt;</content><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/JimRoos/~3/_XETvMJCcHg/kwik-e-mart_02.html" title="Kwik-E-Mart" /><link rel="replies" type="application/atom+xml" href="http://jimroos.blogspot.com/atom.xml" title="Post Comments" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/8918248/posts/default/116839797645106471" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/8918248/posts/default/116839797645106471" /><author><name>Jim Roos</name></author><feedburner:origLink>http://www.jimroos.com/2007/07/kwik-e-mart_02.html</feedburner:origLink></entry><entry><id>tag:blogger.com,1999:blog-8918248.post-7168827894399956452</id><published>2007-06-30T19:29:00.000-07:00</published><updated>2007-07-06T21:59:10.991-07:00</updated><title type="text">iLike the iPhone</title><content type="html">Just got back from the Apple Store, and I have to admit, the iPhone makes some impressive strides in phone UI. I found the on-screen keyboard to be highly usable and I think, with practice, it would be a great text input device. &lt;br /&gt;&lt;br /&gt;&lt;b&gt;One important word of warning:&lt;/b&gt; if you drop by the Apple store to test out the device, the network connectivity will seem very snappy. Web pages will download quickly, Google Maps will be responsive, and Youtube videos will start playing immediatly. I suspect that's because the devices are picking up the store's WIFI connection. AT&amp;T's Edge network won't provide nearly the thoughput you'll experience while testing out the phone.&lt;img src="http://feeds.feedburner.com/~r/JimRoos/~4/GrTvZn61FKk" height="1" width="1"/&gt;</content><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/JimRoos/~3/GrTvZn61FKk/ilike-iphone.html" title="iLike the iPhone" /><link rel="replies" type="application/atom+xml" href="http://jimroos.blogspot.com/atom.xml" title="Post Comments" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/8918248/posts/default/7168827894399956452" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/8918248/posts/default/7168827894399956452" /><author><name>Jim Roos</name></author><feedburner:origLink>http://www.jimroos.com/2007/06/ilike-iphone.html</feedburner:origLink></entry><entry><id>tag:blogger.com,1999:blog-8918248.post-4385657871958605991</id><published>2007-06-11T15:36:00.000-07:00</published><updated>2007-06-11T15:44:07.127-07:00</updated><title type="text">Safari for Windows</title><content type="html">Apple has announced that &lt;a href="http://www.apple.com/safari/"&gt;Safari is available for Windows&lt;/a&gt;. Also, it seems building iPhone applications means writing JavaScript for Safari. All of this should help build more broad based support for Safari now that you don't need a Mac to build a Safari compatible Web site.&lt;img src="http://feeds.feedburner.com/~r/JimRoos/~4/gp07HlrN9Uo" height="1" width="1"/&gt;</content><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/JimRoos/~3/gp07HlrN9Uo/safari-for-windows.html" title="Safari for Windows" /><link rel="replies" type="application/atom+xml" href="http://jimroos.blogspot.com/atom.xml" title="Post Comments" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/8918248/posts/default/4385657871958605991" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/8918248/posts/default/4385657871958605991" /><author><name>Jim Roos</name></author><feedburner:origLink>http://www.jimroos.com/2007/06/safari-for-windows.html</feedburner:origLink></entry><entry><id>tag:blogger.com,1999:blog-8918248.post-2783655557623571270</id><published>2007-05-13T12:38:00.000-07:00</published><updated>2007-05-15T10:39:22.997-07:00</updated><title type="text">AJAX AutoComplete</title><content type="html">Here I've used my Easy Ajax framework to build AJAX autocomplete. To start, add a little html to build the input field and a container for the suggestions when they appear:&lt;br /&gt;&lt;div style="margin-left: 30px"&gt;&lt;code &gt;&lt;br /&gt;&amp;lt;input type="text" id="input" style="width: 250px"/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;&amp;lt;div style="position: absolute;"&amp;gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;lt;easy:ajax id="suggestions" url="AutoComplete.aspx"&amp;gt;&amp;lt;/easy:ajax&amp;gt;&lt;br /&gt;&amp;lt;/div&amp;gt;&lt;br /&gt;&lt;/code&gt;&lt;/div&gt;&lt;br /&gt;&lt;code&gt;AutoComplete.aspx&lt;/code&gt; accepts a single parameter named &lt;code&gt;prefix&lt;/code&gt; and uses it to generate a response that looks something like this:&lt;br /&gt;&lt;br /&gt;&lt;div style="margin-left: 30px"&gt;&lt;code&gt;&amp;lt;div class="autocomplete"&amp;gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;lt;div&gt;Jim Reed&amp;lt;/div&amp;gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;lt;div&gt;Jim Van&amp;lt;/div&amp;gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;lt;div&gt;Jim Zaner&amp;lt;/div&amp;gt;&lt;br /&gt;&amp;lt;/div&amp;gt;&lt;/code&gt;&lt;/div&gt;&lt;br /&gt;A little bit of CSS will make sure everything looks right:&lt;br /&gt;&lt;br /&gt;&lt;div style="margin-left: 30px"&gt;&lt;code&gt;#suggestions&lt;br /&gt;{&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;position: relative;&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;.autocomplete&lt;br /&gt;{&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;background: #D8EAFF;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;border: solid 1px #55A6C8;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;width: 200px;&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;.autocomplete DIV&lt;br /&gt;{&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;padding: 2px 4px 2px 4px;&lt;br /&gt;}&lt;/code&gt;&lt;/div&gt;&lt;br /&gt;And to kick things off, include &lt;code&gt;EasyAjax.js&lt;/code&gt; and &lt;code&gt;AutoComplete.js&lt;/code&gt; and instantiate &lt;code&gt;AutoComplete&lt;/code&gt; as follows:&lt;br /&gt;&lt;br /&gt;&lt;div style="margin-left: 30px"&gt;&lt;code&gt;&amp;lt;script type="text/javascript" src="EasyAjax.js" &amp;gt;&amp;lt;/script&amp;gt;&lt;br /&gt;&amp;lt;script type="text/javascript" src="AutoComplete.js"&amp;gt;&amp;lt;/script&amp;gt;&lt;br /&gt;&lt;br /&gt;&amp;lt;script type="text/javascript"&amp;gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;new AutoComplete(&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;document.getElementById("input"), &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;document.getElementById("suggestions")&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;);&lt;br /&gt;&amp;lt;/script&amp;gt;&lt;/code&gt;&lt;/div&gt;&lt;br /&gt;And here's what it looks like in action:&lt;br /&gt;&lt;br /&gt;&lt;center&gt;&lt;iframe style="border-style:none;border-width:0px;" frameborder=0 scrolling=no height=150 width=300  src="http://jimroos.com/autocomplete.html"&gt;&lt;/iframe&gt;&lt;/center&gt;&lt;br /&gt;&lt;b&gt;Note: &lt;/b&gt;Using arrow keys and hitting enter seems to work fine in Firefox, but the design of the fool Live Search box I have integrated into the top of my page prevents this feature from working correctly in IE. To view on a page that is free of poorly design Windows Live code, please visit my &lt;a href="http://jimroos.com/ac.html"&gt;auto complete demo page&lt;/a&gt;&lt;img src="http://feeds.feedburner.com/~r/JimRoos/~4/_06mpoixdn8" height="1" width="1"/&gt;</content><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/JimRoos/~3/_06mpoixdn8/ajax-autocomplete.html" title="AJAX AutoComplete" /><link rel="replies" type="application/atom+xml" href="http://jimroos.blogspot.com/atom.xml" title="Post Comments" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/8918248/posts/default/2783655557623571270" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/8918248/posts/default/2783655557623571270" /><author><name>Jim Roos</name></author><feedburner:origLink>http://www.jimroos.com/2007/05/ajax-autocomplete.html</feedburner:origLink></entry><entry><id>tag:blogger.com,1999:blog-8918248.post-6008423855189772250</id><published>2007-05-07T13:37:00.000-07:00</published><updated>2007-05-07T13:50:29.904-07:00</updated><title type="text">Windows Live Hotmail Ships</title><content type="html">The efforts of hundreds of people and millions of beta testers came to fruition this weekend as we launched Windows Live Hotmail. Starting this morning, new sign-ups will get their choice of either the Hotmail-like "classic" experience, or the Web 2.0-like "full" experience. &lt;br /&gt;&lt;br /&gt;CNET has an interesting article asking if the full version was &lt;a href="http://news.com.com/Too+Hotmail+to+handle/2009-1038_3-6181300.html?tag=nefd.lede"&gt;Too Hotmail to Handle&lt;/a&gt; which feature Mike Schackwitz describing how the classic version came to be. Also, checkout out the &lt;a href="http://mailcall.spaces.live.com/blog/cns!CC9301187A51FE33!42665.entry"&gt;announcement on the Mailcall Blog&lt;/a&gt; and look for pictures of some of the people who made it happen.&lt;img src="http://feeds.feedburner.com/~r/JimRoos/~4/YWGZyAoiInw" height="1" width="1"/&gt;</content><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/JimRoos/~3/YWGZyAoiInw/windows-live-hotmail-ships.html" title="Windows Live Hotmail Ships" /><link rel="replies" type="application/atom+xml" href="http://jimroos.blogspot.com/atom.xml" title="Post Comments" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/8918248/posts/default/6008423855189772250" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/8918248/posts/default/6008423855189772250" /><author><name>Jim Roos</name></author><feedburner:origLink>http://www.jimroos.com/2007/05/windows-live-hotmail-ships.html</feedburner:origLink></entry><entry><id>tag:blogger.com,1999:blog-8918248.post-1512899575325107683</id><published>2007-05-06T08:00:00.000-07:00</published><updated>2007-05-08T07:18:11.581-07:00</updated><title type="text">Queuing AJAX Requests</title><content type="html">One issue people often overlook when building their first AJAX application surrounds multiple concurrent requests. Your AJAX application may display some non-deterministic behavior if you aren't careful to queue your XMLHttp requests.&lt;br /&gt;&lt;br /&gt;Queuing requests is especially important in Internet Explorer as too many simultaneous request can actually cause IE to barf. Of course, we generally want to bundle requests together and avoid making concurrent requests. But no matter how you design your application, in the end you can't control how quickly your users clicks around within the UI.&lt;br /&gt;&lt;br /&gt;The following demonstrates why queuing is important. In Firefox, you'll notice clicking the &lt;b&gt;No Queue&lt;/b&gt; button leads to highly indeterminate results. Under Internet Explorer, the situation is worse. Firing off 50 simultaneous XMLHttp requests in IE can cause the browser to lock up. Queuing requests so that the next doesn't start until the first has finished fixes both of these problems.&lt;br /&gt;&lt;br /&gt;&lt;center&gt;&lt;iframe style="border-style:none;border-width:0px;" frameborder=0 scrolling=no height=370 width=620  src="http://jimroos.com/box.html"&gt;&lt;/iframe&gt;&lt;/center&gt;&lt;img src="http://feeds.feedburner.com/~r/JimRoos/~4/XK3g8k6IWF4" height="1" width="1"/&gt;</content><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/JimRoos/~3/XK3g8k6IWF4/queuing-ajax-requests.html" title="Queuing AJAX Requests" /><link rel="replies" type="application/atom+xml" href="http://jimroos.blogspot.com/atom.xml" title="Post Comments" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/8918248/posts/default/1512899575325107683" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/8918248/posts/default/1512899575325107683" /><author><name>Jim Roos</name></author><feedburner:origLink>http://www.jimroos.com/2007/05/queuing-ajax-requests.html</feedburner:origLink></entry><entry><id>tag:blogger.com,1999:blog-8918248.post-3589603628739850530</id><published>2007-04-26T21:14:00.000-07:00</published><updated>2007-04-28T11:12:11.981-07:00</updated><title type="text">AJAX Made Easy</title><content type="html">It's easy to over-engineer AJAX sites. Many of the AJAX frameworks available look a lot like RPC or even CORBA-type solutions, complete with marshaling of complex data types (almost as if JavaScript were a strongly typed language). While there are lots of reasons someone might want such a sophisticated framework, there are also plenty of problems that could be solved using a more basic solutions.  &lt;br /&gt;&lt;br /&gt;In many cases, all a developer is looking to do is grab a piece of HTML and drop it into the DOM somewhere. Here I've created a very easy mechanism for doing just that. To prepare a page to use my EasyAjax framework, modify your HTML tag to include the &lt;code&gt;easy&lt;/code&gt; XML namespace and reference EasyAjax.js. Once you've done that, you can use the &lt;code&gt;&amp;lt;easy:ajax&amp;gt;&lt;/code&gt; tag to define AJAX-updateable regions within your page.&lt;br /&gt;&lt;br /&gt;&lt;center&gt;&lt;a href="http://jimroos.com/EasyAjax.zip"&gt;&lt;img style="vertical-align:middle;" src="http://jimroos.com/zip.gif"&gt;Download EasyAjax.zip&lt;/a&gt;&lt;/center&gt;&lt;br /&gt;The simplest EasyAjax page looks like the following:&lt;br /&gt;&lt;div style="margin-left:30px"&gt;&lt;code&gt;&lt;br /&gt;&amp;lt;html &lt;span &gt;xmlns:easy="http://www.jimroos.com/easy"&lt;/span&gt;&amp;gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;lt;body&amp;gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;lt;script type="text/javascript" src="&lt;span &gt;EasyAjax.js&lt;/span&gt;"&amp;gt;&amp;lt;/script&amp;gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span &gt;&amp;lt;easy:ajax interval="5000" url="somepage.aspx"&amp;gt;&lt;/span&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span &gt;Initial Content&lt;/span&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span &gt;&amp;lt;/easy:ajax&amp;gt;&lt;/span&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;lt;/body&amp;gt;&lt;br /&gt;&amp;lt;/html&amp;gt;&lt;br /&gt;&lt;/code&gt;&lt;/div&gt;&lt;br /&gt;When first loaded, the &lt;code&gt;&amp;lt;easy:ajax&amp;gt;&lt;/code&gt; tag contains the string "Intial Content". Shortly there after, this content is replaced with whatever HTML content is generated by &lt;code&gt;somepage.aspx&lt;/code&gt;.  The page then automatically polls somepage.aspx every 5000 ms.&lt;br /&gt;&lt;br /&gt;The effect is similar to what you see on a lot of business news sites today that provide continuously updating quotes inline with the text of the articles. To demonstrate, I've used the framework to create a clock. The clock displays current time according to the server hosting my site and uses &lt;a href="http://jimroos.com/time.aspx"&gt;http://jimroos.com/time.aspx&lt;/a&gt; to get the current time:&lt;br /&gt;&lt;div style="margin-left:30px"&gt;&lt;code&gt;&lt;br /&gt;&amp;lt;img src="earth.gif"&amp;gt;&lt;br /&gt;&amp;lt;div style="float:right;"&amp;gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;lt;div&amp;gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;Current Time&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;lt;/div&amp;gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;lt;div&amp;gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;lt;easy:ajax interval="1000" url="time.aspx"&amp;gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;00:00:00&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;lt;/easy:ajax&amp;gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;lt;/div&amp;gt;&lt;br /&gt;&amp;lt;/div&amp;gt;&lt;br /&gt;&lt;/code&gt;&lt;/div&gt;&lt;br /&gt;And here's the result:&lt;br /&gt;&lt;br /&gt;&lt;center&gt;&lt;iframe style="border-style:none;border-width:0px;" frameborder=0 scrolling=no height=115 width=300  src="http://jimroos.com/time.html"&gt;&lt;/iframe&gt;&lt;/center&gt;&lt;br /&gt;There are times when we'd rather update the page based on some user action rather than polling the server. In those cases, we omit the &lt;code&gt;interval&lt;/code&gt; attribute and call &lt;code&gt;reload()&lt;/code&gt; on the &lt;code&gt;&amp;lt;easy:ajax&amp;gt;&lt;/code&gt; element. For example, we can modify the example above so that instead of polling the server, we only update when the user clicks on the time:&lt;br /&gt;&lt;div style="margin-left:30px"&gt;&lt;code style="margin-left:15px"&gt;&lt;br /&gt;&amp;lt;easy:ajax &lt;span style="font-weight: bold;background:yellow;"&gt;onclick="this.reload();"&lt;/span&gt; url="time.aspx"&amp;gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;00:00:00&lt;br /&gt;&amp;lt;/easy:ajax&amp;gt;&lt;br /&gt;&lt;/code&gt;&lt;/div&gt;&lt;br /&gt;Of course, we can update the page based on any user action. For example, if we rather update the page when the user clicks on the Earth image, we make the following modifications:&lt;br /&gt;&lt;div style="margin-left:30px"&gt;&lt;code&gt;&lt;br /&gt;&amp;lt;img src="earth.gif" &lt;span style="font-weight: bold;background:yellow;"&gt;onclick="document.getElementById('time').reload();"&lt;/span&gt;&amp;gt;&lt;br /&gt;&amp;lt;div style="float:right;"&amp;gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;lt;div&amp;gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;Current Time&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;lt;/div&amp;gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;lt;div&amp;gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;lt;easy:ajax &lt;span style="font-weight: bold;background:yellow;"&gt;id="time"&lt;/span&gt; url="time.aspx"&amp;gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;00:00:00&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;lt;/easy:ajax&amp;gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;lt;/div&amp;gt;&lt;br /&gt;&amp;lt;/div&amp;gt;&lt;br /&gt;&lt;/code&gt;&lt;/div&gt;&lt;br /&gt;We can also use this framework to create more sophisticated features. Consider Google's search suggestion system which presents you with a continuously updating list of search suggestions with each key you press. In order to implement something like this, we'll need some facility to post data with our request. To accomplish this, the &lt;code&gt;reload()&lt;/code&gt; function accepts, as a parameter, a JavaScript object representing name value pairs for the post data:&lt;br /&gt;&lt;div style="margin-left:30px"&gt;&lt;code&gt;&lt;br /&gt;var params = {&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;firstname : document.forms[0].firstname.value,&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;lastname&amp;nbsp;&amp;nbsp;:&amp;nbsp;document.forms[0].lastname.value&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;};&lt;br /&gt;&lt;br /&gt;document.getElementById("myelement").reload(params);&lt;br /&gt;&lt;/code&gt;&lt;/div&gt;&lt;br /&gt;Note that the framework will only make a POST request if parameters are provided. Otherwise, it will generate a GET request and append a nonce.&lt;img src="http://feeds.feedburner.com/~r/JimRoos/~4/CNTLSvVU1SI" height="1" width="1"/&gt;</content><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/JimRoos/~3/CNTLSvVU1SI/easy-ajax.html" title="AJAX Made Easy" /><link rel="replies" type="application/atom+xml" href="http://jimroos.blogspot.com/atom.xml" title="Post Comments" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/8918248/posts/default/3589603628739850530" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/8918248/posts/default/3589603628739850530" /><author><name>Jim Roos</name></author><feedburner:origLink>http://www.jimroos.com/2007/04/easy-ajax.html</feedburner:origLink></entry><entry><id>tag:blogger.com,1999:blog-8918248.post-6182364709082028579</id><published>2007-04-18T00:15:00.000-07:00</published><updated>2007-04-26T07:33:29.217-07:00</updated><title type="text">Google Docs &amp; Spreadsheets &amp; ...</title><content type="html">With the Web 2.0 conference going on this week in San Francisco, we might have expected a significant announcement from Google, and they haven't disappointed. (BTW, why am I not off on that boondoggle, hmm?) Eric Schmidt announced a new addition to Google's growing suite of Web-based productivity products: presentations. &lt;br /&gt;&lt;br /&gt;At the same time, Google has announced it acquired Tonic Systems, a company who's entire Web site has been yanked from the Internet and replaced with an &lt;a href=http://www.tonicsystems.com/&gt;FAQ on the acquisition&lt;/a&gt;. Cached versions of Tonic's Web site describe the company as offering "a library that provides a 100% Java API to read, create and manipulate PowerPoint presentations," which seems to be a positively frightening preview of what Google presentations might be like. &lt;br /&gt;&lt;br /&gt;I'm a long time Java developer and a big fan of the language and I suppose time will tell whether Google intends to use this API client-side or server-side, but anyone who has ever used the Internet knows the horror of that dreaded coffee cup icon and the utterly ridiculous wait for the JRE to crank up. &lt;br /&gt;&lt;br /&gt;Whether Google presentations makes use of Java applets or not, Eric Schmidt's assertion that Google presentations is not an attempt to compete with Microsoft's PowerPoint is untrue and Google's acquisition of Tonic Systems makes that clear.&lt;img src="http://feeds.feedburner.com/~r/JimRoos/~4/W4qlfqhfSUo" height="1" width="1"/&gt;</content><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/JimRoos/~3/W4qlfqhfSUo/google-docs-spreadsheets.html" title="Google Docs &amp; Spreadsheets &amp; ..." /><link rel="replies" type="application/atom+xml" href="http://jimroos.blogspot.com/atom.xml" title="Post Comments" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/8918248/posts/default/6182364709082028579" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/8918248/posts/default/6182364709082028579" /><author><name>Jim Roos</name></author><feedburner:origLink>http://www.jimroos.com/2007/04/google-docs-spreadsheets.html</feedburner:origLink></entry><entry><id>tag:blogger.com,1999:blog-8918248.post-2893244372206796232</id><published>2007-04-01T00:01:00.000-07:00</published><updated>2007-04-27T07:37:28.065-07:00</updated><title type="text">April Fools</title><content type="html">&lt;div style="border: solid 1px #ddd; padding: 10px;"&gt;&lt;strong&gt;Update:&lt;/strong&gt;&lt;br /&gt;Since it's after April 1st, it's probably worth noting that I did not, in fact, move to Australia. :)&lt;/div&gt;&lt;br /&gt;People who know me know I'm accustomed to moving. I moved nine times as child and attended three high schools. I've continued the pattern as an adult, moving from Texas to California and back again to Texas, and back again to California. But in all that moving I've never lived outside the United States.&lt;br /&gt;&lt;br /&gt;I've finally decided to take a chance. I'm moving to Australia in the morning. It's all very spur of the moment and there's a lot of people in my life who I haven't even had the chance to tell yet. Somehow I managed to arrange for my things to be packed up and stored today as I prepare to leave everything behind and start fresh down under.&lt;br /&gt;&lt;br /&gt;To celebrate my decision, I've created an Australian version of my map game:&lt;br /&gt;&lt;center&gt;&lt;iframe style="border-style:none;border-width:0px;" frameborder=0 scrolling=no height=390 width=500  src="http://jimroos.com/aus/map.html"&gt;&lt;/iframe&gt;&lt;/center&gt;&lt;br /&gt;If you're struggling to remember the names of the seven Australian states and territories, here's a list:&lt;br /&gt;&lt;ul&gt;&lt;li&gt;New South Wales&lt;/li&gt;&lt;li&gt;Northern Territory&lt;/li&gt;&lt;li&gt;Queensland&lt;/li&gt;&lt;li&gt;South Australia&lt;/li&gt;&lt;li&gt;Tasmania&lt;/li&gt;&lt;li&gt;Victoria&lt;/li&gt;&lt;li&gt;Western Australia&lt;/li&gt;&lt;/ul&gt;&lt;img src="http://feeds.feedburner.com/~r/JimRoos/~4/xelEtT0dK6A" height="1" width="1"/&gt;</content><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/JimRoos/~3/xelEtT0dK6A/moving-to-australia.html" title="April Fools" /><link rel="replies" type="application/atom+xml" href="http://jimroos.blogspot.com/atom.xml" title="Post Comments" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/8918248/posts/default/2893244372206796232" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/8918248/posts/default/2893244372206796232" /><author><name>Jim Roos</name></author><feedburner:origLink>http://www.jimroos.com/2007/04/moving-to-australia.html</feedburner:origLink></entry><entry><id>tag:blogger.com,1999:blog-8918248.post-3532365913883189698</id><published>2007-03-18T18:44:00.000-07:00</published><updated>2007-03-18T18:48:47.505-07:00</updated><title type="text">Star Wars 30th Anniversary Mailboxes</title><content type="html">Star Wars themed mailboxes began appearing all over San Francisco this week. This one is right across the street from me at the corner of 4th and Townsend. Frankly, I'd be afraid to drop a letter in one of these; it's only a matter of time before they start showing up on Ebay. Rumor has it the mailboxes are intended to promote a set of Star Wars 30th anniversary stamps to be release at the end of the month.&lt;br /&gt;&lt;br /&gt;&lt;center&gt;&lt;img src="http://jimroos.com/r2d2.jpg"&gt;&lt;/center&gt;&lt;img src="http://feeds.feedburner.com/~r/JimRoos/~4/EKol3ytYaC0" height="1" width="1"/&gt;</content><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/JimRoos/~3/EKol3ytYaC0/star-wars-30th-anniversary-mailboxes.html" title="Star Wars 30th Anniversary Mailboxes" /><link rel="replies" type="application/atom+xml" href="http://jimroos.blogspot.com/atom.xml" title="Post Comments" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/8918248/posts/default/3532365913883189698" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/8918248/posts/default/3532365913883189698" /><author><name>Jim Roos</name></author><feedburner:origLink>http://www.jimroos.com/2007/03/star-wars-30th-anniversary-mailboxes.html</feedburner:origLink></entry><entry><id>tag:blogger.com,1999:blog-8918248.post-6922382784670016675</id><published>2007-03-08T16:32:00.000-08:00</published><updated>2007-03-18T10:10:21.686-07:00</updated><title type="text">Frameset Bug in Internet Explorer</title><content type="html">Imagine the saddest you've ever felt; that's what the last 12 hours of my work life have been like. I've spent most of the last two days investigating a situation in which closing the browser window would cause IE to continuously spawn new windows. Since we're dealing with a "Web 2.0" application containing thousands of lines of Javascript, the first instinct is to scrub the code for &lt;code&gt;window.open()&lt;/code&gt;. But that revealed nothing.&lt;br /&gt;&lt;br /&gt;Instead, I've discovered a bizarre bug in the way IE handles framesets. Turns out, if a frameset frame contains a url containing an anchor, and the browser is closed before that particular frame has completed downloading, IE will begin endlessly spawning new windows.&lt;br /&gt;&lt;br /&gt;The lesson?, avoid anything looking like this:&lt;br /&gt;&lt;br /&gt;&lt;div style="margin-left:3em;"&gt;&lt;code&gt;&amp;lt;frameset&amp;gt;&lt;br /&gt;     &lt;span style="margin-left:3em"&gt;&amp;lt;frame src="somepage.aspx&lt;span style="font-weight: bold;background:yellow;"&gt;#anchor&lt;/span&gt;"&amp;gt;&amp;lt;/frame&amp;gt;&lt;/span&gt;&lt;br /&gt;&amp;lt;/frameset&amp;gt;&lt;/code&gt;&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/JimRoos/~4/XVEgZ4s_cHs" height="1" width="1"/&gt;</content><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/JimRoos/~3/XVEgZ4s_cHs/frameset-bug-in-internet-explorer.html" title="Frameset Bug in Internet Explorer" /><link rel="replies" type="application/atom+xml" href="http://jimroos.blogspot.com/atom.xml" title="Post Comments" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/8918248/posts/default/6922382784670016675" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/8918248/posts/default/6922382784670016675" /><author><name>Jim Roos</name></author><feedburner:origLink>http://www.jimroos.com/2007/03/frameset-bug-in-internet-explorer.html</feedburner:origLink></entry><entry><id>tag:blogger.com,1999:blog-8918248.post-8396353716146346914</id><published>2007-03-04T16:46:00.000-08:00</published><updated>2007-03-08T16:41:19.404-08:00</updated><title type="text">State Map</title><content type="html">Here I've built a reusuable state map widget. The &lt;code&gt;Map&lt;/code&gt; class generates a grayed-out map of the United States and allows you a to programtically show states. You might use this to generate maps of, say, states that went for Bush during the 2004 election or to generate an animated timeline of when each state joined the union.&lt;br /&gt;&lt;br /&gt;Below, I've built a demo that challenges you to name all 50 states in less than three minutes. Good Luck!&lt;center&gt;&lt;iframe style="border-style:none;border-width:0px;" frameborder=0 scrolling=no height=350 width=500  src="http://jimroos.com/map/map.html"&gt;&lt;/iframe&gt;&lt;/center&gt;&lt;br /&gt;If you'd like to use the map widget for your own purposes, download the source below:&lt;br /&gt;&lt;br /&gt;&lt;center&gt;&lt;a href="http://jimroos.com/map.zip"&gt;&lt;img style="vertical-align:middle;" src="http://jimroos.com/zip.gif"&gt;Download map.zip&lt;/a&gt;&lt;/center&gt;&lt;img src="http://feeds.feedburner.com/~r/JimRoos/~4/UlEV6V4S-BQ" height="1" width="1"/&gt;</content><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/JimRoos/~3/UlEV6V4S-BQ/state-map.html" title="State Map" /><link rel="replies" type="application/atom+xml" href="http://jimroos.blogspot.com/atom.xml" title="Post Comments" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/8918248/posts/default/8396353716146346914" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/8918248/posts/default/8396353716146346914" /><author><name>Jim Roos</name></author><feedburner:origLink>http://www.jimroos.com/2007/03/state-map.html</feedburner:origLink></entry></feed>
