document.write('\x3cmeta http-equiv=\x22x-dns-prefetch-control\x22 content=\x22off\x22/\x3e\x3col class=\x22tumblr_posts\x22\x3e\x0a \x0a \x0a\x0a \x0a\x0a \x0a\x0a \x0a \x0a \x0a \x3cli class=\x22tumblr_post tumblr_video_post\x22\x3e\x0a \x3cdiv class=\x22tumblr_video\x22\x3e\x0a \x3ciframe width=\x22400\x22 height=\x22240\x22 src=\x22http://www.youtube.com/embed/E19D_-h9MIo?wmode=transparent\x26autohide=1\x26egm=0\x26hd=1\x26iv_load_policy=3\x26modestbranding=1\x26rel=0\x26showinfo=0\x26showsearch=0\x22 frameborder=\x220\x22 allowfullscreen\x3e\x3c/iframe\x3e\x0a \x3c/div\x3e\x0a \x0a \x0a \x3cdiv class=\x22tumblr_caption\x22\x3e\x0a \x3cp\x3e\x3ca href=\x22http://mlb.mlb.com/video/play.jsp?content_id=11623679\x26amp;topic_id=\x26amp;c_id=mlb\x22\x3eAnd here\x26#8217;s the Gaby Sanchez clothesline tackle on Nyjer Morgan\x3c/a\x3e\x3c/p\x3e\x0a \x3c/div\x3e\x0a \x0a \x3c/li\x3e\x0a \x0a \x0a \x0a\x0a \x0a \x0a \x0a \x3cli class=\x22tumblr_post tumblr_text_post\x22\x3e\x0a \x0a \x3cdiv class=\x22tumblr_title\x22\x3eAre URL Shorteners Bad for the Web?\x3c/div\x3e\x0a \x0a \x0a \x3cdiv class=\x22tumblr_body\x22\x3e\x0a \x3cp\x3eIt never occurred to me that there could be anything negative about short URLs until I read \x3ca href=\x22http://gigaom.com/2010/06/14/twitter-under-fire-for-link-shortening-service-plans/\x22\x3ethis piece in GigaOM\x3c/a\x3e. The most prominent voice raising concerns about URL shorteners is \x3ca href=\x22http://www.google.com/buzz/dclinton/JKoWPTAAyvw/More-thoughts-on-URL-shorteners-This-post-explores\x22\x3eDeWitt Clinton\x3c/a\x3e who is, surprisingly, not the former mayor of New York City, but an engineer on the Google Buzz team. Clinton says,\x3c/p\x3e\x0a\x3cblockquote\x3e\x0a\x3cp\x3e\x26#8220;\x3cspan class=\x22CSS_UPDATES_UCW_UPDATE_BODY_TEXT\x22 id=\x22col-z13cjxd5smvfgbmfb23wtrrpklnhf3gd3\x22\x3e\x3cspan class=\x22CSS_UPDATES_UCW_UPDATE_TITLE\x22\x3eDeployments of a large-scale URL rewriting proxies impact that ecosystem at the most fundamental level, making it more difficult for users and machines alike to predict what happens when a link is followed.\x26#8221;\x3c/span\x3e\x3c/span\x3e\x3c/p\x3e\x0a\x3c/blockquote\x3e\x0a\x3cp\x3e\x3cspan class=\x22CSS_UPDATES_UCW_UPDATE_BODY_TEXT\x22\x3e\x3cspan class=\x22CSS_UPDATES_UCW_UPDATE_TITLE\x22\x3eBut what if you could have a visible shortened URL, but when you hovered over it, you would see the long URL from which it was derived? Then users would have a better chance at being able to predict what happens when they follow the link. \x3c/span\x3e\x3c/span\x3e\x3c/p\x3e\x0a\x3cp\x3e\x3cbr/\x3eI made a simple example at\x3ca href=\x22http://tinpanvalley.com/bitly\x22\x3e \x3ca href=\x22http://tinpanvalley.com/bitly\x22\x3ehttp://tinpanvalley.com/bitly\x3c/a\x3e\x3c/a\x3e. When you hover over the short url, it uses the bit.ly API to fetch the long URL, then it puts the long URL into the title attribute of the \x26lt;a\x26gt; tag, so that when you hover over the short URL, you see the long URL.\x3c/p\x3e\x0a\x3cp\x3eIt would be cool if this feature were built into browsers in the future. There would be some hurdles like determining if the url shortener eve has an API that allows you to look up the long URL. Maybe this phenomenon will make its way into the specification for a future version of HTML.\x3c/p\x3e\x0a\x3cp\x3eUntil then, I\x26#8217;m thinking of making this into a browser add-on that you can download so the hover capability always works on your browser. Stay tuned.\x3c/p\x3e\x0a\x3cp\x3eUpdate: with a little searching, looks like \x3ca href=\x22http://jeez.eu/2009/11/19/decrypting-bit-ly-links-on-twitter-and-not-only/\x22\x3eother people have done this\x3c/a\x3e with greasemonkey scripts, etc.\x3c/p\x3e\x0a \x3c/div\x3e\x0a \x3c/li\x3e\x0a \x0a\x0a \x0a\x0a \x0a\x0a \x0a \x0a \x0a \x0a \x0a\x0a \x0a \x0a \x0a \x3cli class=\x22tumblr_post tumblr_text_post\x22\x3e\x0a \x0a \x3cdiv class=\x22tumblr_title\x22\x3eUsing Foursquare for Guerilla Recruiting\x3c/div\x3e\x0a \x0a \x0a \x3cdiv class=\x22tumblr_body\x22\x3e\x0a \x3cp\x3eI\x26#8217;m not a recruiter, but I work with recruiters and I am contacted by recruiters on a daily basis. Sometimes I\x26#8217;m stunned at how many recruiters there are. How can the economy support so many recruiters? I don\x26#8217;t understand it, but I know there are some who make a pretty good living from their commissions. Imagine how much more they could make if they had a little bit of creativity.\x3c/p\x3e\x0a\x3cp\x3eIf I were a tech recruiter, here\x26#8217;s what I would do. I\x26#8217;d go to the vicinity of companies that employ people that I want to place and I\x26#8217;d check in there. Here\x26#8217;s an example: you can stand on the corner of 9th Avenue and 16th St. in Manhattan and with foursquare, you can check in to\x3ca href=\x22http://foursquare.com/venue/31015\x22\x3e Google NYC\x3c/a\x3e. Then you can see all the other people who have checked in to Google NYC and you can request to be their friend on foursquare. Now instead of the enormous pool of people who happen to have uploaded their resume to Dice or Monster, you have a very concentrated pool of Googlers and prospective Googlers (and maybe a few phonies, but I think the number of fake check-ins is low; fauxsquare is not yet a common practice).\x3c/p\x3e\x0a \x3c/div\x3e\x0a \x3c/li\x3e\x0a \x0a\x0a \x0a\x0a \x0a\x0a \x0a \x0a \x0a \x0a \x0a\x0a \x0a \x0a \x0a \x3cli class=\x22tumblr_post tumblr_text_post\x22\x3e\x0a \x0a \x3cdiv class=\x22tumblr_title\x22\x3eMore on .NET\x3c/div\x3e\x0a \x0a \x0a \x3cdiv class=\x22tumblr_body\x22\x3e\x0a \x3cp\x3eHere\x26#8217;s a more concise way of framing the question of why startups don\x26#8217;t use .NET. Whenever you type runat=\x26#8221;server\x26#8221; in .NET you are ceding control of the web presentation layer to .NET. If .NET (or your .NET widget library) wants to puke out 32 nested tables and 200 lines of lousy-browser-performance javascript, then you\x26#8217;re stuck with that.\x3c/p\x3e\x0a \x3c/div\x3e\x0a \x3c/li\x3e\x0a \x0a\x0a \x0a\x0a \x0a\x0a \x0a \x0a \x0a \x0a \x0a\x0a \x0a \x0a \x0a \x3cli class=\x22tumblr_post tumblr_text_post\x22\x3e\x0a \x0a \x3cdiv class=\x22tumblr_title\x22\x3eWhy Startups Don\x26#8217;t Use .NET\x3c/div\x3e\x0a \x0a \x0a \x3cdiv class=\x22tumblr_body\x22\x3e\x0a \x3cp\x3eRecently a blogger named Aaron wrote a thought-provoking post called \x3ca title=\x22why .NET adoption lags among startups\x22 href=\x22http://www.aaronstannard.com/post/2010/07/03/NET-Culture-Shock-Why-NET-Adoption-Lags-Among-Startups.aspx\x22\x3e.NET Culture Shock: Why .NET Adoption Lags Among Startups.\x3c/a\x3e Aaron elucidates the problem insightfully, determining that .NET is well established among enterprise developers whose chief concern is supporting \x3cem\x3esystems\x3c/em\x3e, whereas startup developers worry primarily about supporting \x3cem\x3eproducts\x3c/em\x3e. Aaron concludes that there is nothing inherent in .NET that precludes its use among startups; it is simply limited by culture differences between enterprise developers and startup developers.\x3c/p\x3e\x0a\x3cp\x3eAaron claims that objections against .NET in the startup world such as platform lock-in and licensing costs\u00a0 do not \x26#8220;pass the objective reality test\x26#8221;, but he doesn\x26#8217;t provide an objective reality test to back up these claims. Here\x26#8217;s an objective reality test. My cash-strapped startup needs an IDE. Will I choose \x3ca title=\x22Visual Studio Ultimate\x22 href=\x22http://www.microsoft.com/visualstudio/en-us/products/2010-editions/ultimate\x22\x3eMicrosoft Visual Studio Ultimate for $11,899\x3c/a\x3e or \x3ca title=\x22Aptana Studio\x22 href=\x22http://aptana.com/\x22\x3eAptana Studio\x3c/a\x3e for free?\x3c/p\x3e\x0a\x3cp\x3eHowever, there is a simpler and more compelling reason why startups do not use .NET (.NET boosters will be quick to point out that developers can get \x3ca title=\x22Microsoft Visual Studio Express\x22 href=\x22http://www.microsoft.com/express/\x22\x3eMicrosoft Visual Studio Express\x3c/a\x3e for free). Startups preach the use of web standards, semantic HTML, and css-driven layouts.\u00a0 Here\x26#8217;s a snippet from a job description posted by \x3ca title=\x22Ze Frank\x22 href=\x22http://www.zefrank.com/jobz/\x22\x3eZe Frank\x3c/a\x3e (and re-tweeted by startup leaders such as Jonah Peretti, founder of \x3ca title=\x22Huffington Post\x22 href=\x22http://huffingtonpost.com/\x22\x3eHuffington Post\x3c/a\x3e and \x3ca title=\x22Buzz Feed\x22 href=\x22http://buzzfeed.com/\x22\x3eBuzzfeed\x3c/a\x3e), \x26#8220;You should have sent at least one email to someone you have never met telling them that they should stop using tables.\x26#8221; Keep that \x26#8220;stop using tables\x26#8221; thought in mind. It\x26#8217;s going to come back up in a moment.\x3c/p\x3e\x0a\x3cp\x3eI recently had the opportunity to work on my first .NET project. It\x26#8217;s a large, established enterprise web application and I\x26#8217;m implementing a number of UI enhancements. The project uses .NET UI widgets made by \x3ca title=\x22DevExpress\x22 href=\x22http://devexpress.com/\x22\x3eDevExpress\x3c/a\x3e, a very popular commercial UI widget library for .NET.\x3c/p\x3e\x0a\x3cp\x3eOne of my first assignments was to create a form that included a simple dropdown list with three items. As a proponent of web standards and semantic HTML, I would normally code this dropdown list as such:\x3c/p\x3e\x0a\x3cblockquote\x3e\x0a\x3cp\x3e\x26lt;select name=\x26#8221;Selection\x26#8221;\x26gt;\x3c/p\x3e\x0a\x3cp\x3e\x26lt;option value=\x26#8221;Single\x26#8221;\x26gt;Single\x26lt;/option\x26gt;\x3c/p\x3e\x0a\x3cp\x3e\x26lt;option value=\x26#8221;Multiple\x26#8221;\x26gt;Multiple\x26lt;/option\x26gt;\x3c/p\x3e\x0a\x3cp\x3e\x26lt;option value=\x26#8221;CheckColumn\x26#8221;\x26gt;CheckColumn\x26lt;/option\x26gt;\x3c/p\x3e\x0a\x3cp\x3e\x26lt;/select\x26gt;\x3c/p\x3e\x0a\x3c/blockquote\x3e\x0a\x3cp\x3eHowever, the technical lead on the project directed me to use the DevExpress dropdown control so that he could easily tie it into the back-end code. So, here is the HTML and javascript generated by DevExpress to create the same dropdown list that I have coded above (if you don\x26#8217;t believe me, you can see this code for yourself; just view source on \x3ca title=\x22DevExpress Dropdown\x22 href=\x22http://demos.devexpress.com/ASPxEditorsDemos/ASPxListBox/MultiSelect.aspx\x22\x3ethis page at DevExpress\x3c/a\x3e):\x3c/p\x3e\x0a\x3cblockquote\x3e\x0a\x3cp\x3e\x26lt;td\x26gt;\x3cbr/\x3e\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 \x26lt;table cellspacing=\x26#8221;1\x26#8221; cellpadding=\x26#8221;0\x26#8221; border=\x26#8221;0\x26#8221; style=\x26#8221;border-collapse: separate;\x26#8221; id=\x26#8221;ctl00_phContent_lbSelectionMode\x26#8221; class=\x26#8221;dxeButtonEdit_Aqua\u00a0 \x26#8220;\x26gt;\x3cbr/\x3e\u00a0\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0\u00a0\u00a0 \x26lt;tbody\x26gt;\x26lt;tr\x26gt;\x3cbr/\x3e\u00a0\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0\u00a0\u00a0 \x26lt;td style=\x26#8221;display: none;\x26#8221;\x26gt;\x26lt;input type=\x26#8221;hidden\x26#8221; name=\x26#8221;ctl00_phContent_lbSelectionMode_VI\x26#8221; id=\x26#8221;ctl00_phContent_lbSelectionMode_VI\x26#8221; value=\x26#8221;2\x26#8221;\x26gt;\x26lt;/td\x26gt;\x26lt;td style=\x26#8221;width: 100%;\x26#8221; onmousedown=\x26#8221;return aspxDDDropDown(\x26#8216;ctl00_phContent_lbSelectionMode\x26#8217;, event)\x26#8221; class=\x26#8221;dxic\x26#8221;\x26gt;\x26lt;input type=\x26#8221;text\x26#8221; style=\x26#8221;border-width: 0px; width: 100%; padding: 0px; margin: 1px 1px 2px; cursor: default;\x26#8221; readonly=\x26#8221;readonly\x26#8221; onchange=\x26#8221;aspxETextChanged(\x26#8216;ctl00_phContent_lbSelectionMode\x26#8217;)\x26#8221; onfocus=\x26#8221;aspxEGotFocus(\x26#8216;ctl00_phContent_lbSelectionMode\x26#8217;)\x26#8221; onblur=\x26#8221;aspxELostFocus(\x26#8216;ctl00_phContent_lbSelectionMode\x26#8217;)\x26#8221; id=\x26#8221;ctl00_phContent_lbSelectionMode_I\x26#8221; value=\x26#8221;CheckColumn\x26#8221; name=\x26#8221;ctl00$phContent$lbSelectionMode\x26#8221; class=\x26#8221;dxeEditArea_Aqua\u00a0 \x26#8221; autocomplete=\x26#8221;off\x26#8221;\x26gt;\x26lt;/td\x26gt;\x26lt;td style=\x26#8221;-moz-user-select: none;\x26#8221; onmousedown=\x26#8221;return aspxDDDropDown(\x26#8216;ctl00_phContent_lbSelectionMode\x26#8217;, event)\x26#8221; class=\x26#8221;dxeButtonEditButton_Aqua\x26#8221; id=\x26#8221;ctl00_phContent_lbSelectionMode_B-1\x26#8221;\x26gt;\x26lt;table cellspacing=\x26#8221;0\x26#8221; cellpadding=\x26#8221;0\x26#8221; border=\x26#8221;0\x26#8221; style=\x26#8221;border-collapse: separate;\x26#8221; class=\x26#8221;dxbebt\x26#8221;\x26gt;\x3cbr/\x3e\u00a0\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0\u00a0\u00a0 \x26lt;tbody\x26gt;\x26lt;tr\x26gt;\x3cbr/\x3e\u00a0\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0\u00a0\u00a0 \x26lt;td class=\x26#8221;dx\x26#8221;\x26gt;\x26lt;img style=\x26#8221;border-width: 0px;\x26#8221; alt=\x26#8221;v\x26#8221; src=\x26#8221;/ASPxEditorsDemos/DXR.axd?r=1_3\x26#8221; class=\x26#8221;dxEditors_edtDropDown_Aqua\x26#8221; id=\x26#8221;ctl00_phContent_lbSelectionMode_B-1Img\x26#8221;\x26gt;\x26lt;/td\x26gt;\x3cbr/\x3e\u00a0\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0\u00a0\u00a0 \x26lt;/tr\x26gt;\x3cbr/\x3e\u00a0\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0\u00a0\u00a0 \x26lt;/tbody\x26gt;\x26lt;/table\x26gt;\x26lt;/td\x26gt;\x3cbr/\x3e\u00a0\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0\u00a0\u00a0 \x26lt;/tr\x26gt;\x3cbr/\x3e\u00a0\u00a0\u00a0 \u00a0\u00a0\u00a0 \x26lt;/tbody\x26gt;\x26lt;/table\x26gt;\x26lt;input type=\x26#8221;hidden\x26#8221; value=\x26#8221;0:0:12000:395:120:0:-10000:-10000\x26#8221; name=\x26#8221;ctl00_phContent_lbSelectionMode_DDDWS\x26#8221; id=\x26#8221;ctl00_phContent_lbSelectionMode_DDDWS\x26#8221;\x26gt;\x3cbr/\x3e\u00a0\u00a0\u00a0 \u00a0\u00a0\u00a0 \x26lt;div style=\x26#8221;position: absolute; left: 395px; top: 120px; z-index: 12000; height: 69px; width: 170px; overflow: visible; visibility: hidden; display: none;\x26#8221; id=\x26#8221;ctl00_phContent_lbSelectionMode_DDD_PW-1\x26#8221;\x26gt;\x3cbr/\x3e\u00a0\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0\u00a0\u00a0 \x26lt;table cellspacing=\x26#8221;0\x26#8221; cellpadding=\x26#8221;0\x26#8221; border=\x26#8221;0\x26#8221; style=\x26#8221;border-collapse: separate; position: relative; left: 0px; top: 0px;\x26#8221; id=\x26#8221;ctl00_phContent_lbSelectionMode_DDD_PWST-1\x26#8221;\x26gt;\x3cbr/\x3e\u00a0\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0\u00a0\u00a0 \x26lt;tbody\x26gt;\x26lt;tr\x26gt;\x3cbr/\x3e\u00a0\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0\u00a0\u00a0 \x26lt;td style=\x26#8221;width: 168px; cursor: default; height: 0px;\x26#8221; onmousedown=\x26#8221;aspxPWMDown(event,\x26#8217;ctl00_phContent_lbSelectionMode_DDD\x26#8217;,-1,false)\x26#8221;\x26gt;\x26lt;table cellspacing=\x26#8221;0\x26#8221; cellpadding=\x26#8221;0\x26#8221; border=\x26#8221;0\x26#8221; style=\x26#8221;width: 168px; border-collapse: separate; height: 67px;\x26#8221; id=\x26#8221;ctl00_phContent_lbSelectionMode_DDD_CLW-1\x26#8221;\x26gt;\x3cbr/\x3e\u00a0\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0\u00a0\u00a0 \x26lt;tbody\x26gt;\x26lt;tr\x26gt;\x3cbr/\x3e\u00a0\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0\u00a0\u00a0 \x26lt;td style=\x26#8221;height: 100%;\x26#8221; id=\x26#8221;ctl00_phContent_lbSelectionMode_DDD_PWC-1\x26#8221;\x26gt;\x26lt;table cellspacing=\x26#8221;0\x26#8221; cellpadding=\x26#8221;0\x26#8221; border=\x26#8221;0\x26#8221; style=\x26#8221;border-collapse: separate; height: 0px; width: 170px;\x26#8221; id=\x26#8221;ctl00_phContent_lbSelectionMode_DDD_L\x26#8221; class=\x26#8221;dxeListBox_Aqua\x26#8221;\x26gt;\x3cbr/\x3e\u00a0\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0\u00a0\u00a0 \x26lt;tbody\x26gt;\x26lt;tr\x26gt;\x3cbr/\x3e\u00a0\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0\u00a0\u00a0 \x26lt;td valign=\x26#8221;top\x26#8221;\x26gt;\x26lt;div style=\x26#8221;width: 168px; overflow: hidden; height: 66px; padding-right: 0px;\x26#8221; class=\x26#8221;dxlbd\x26#8221; id=\x26#8221;ctl00_phContent_lbSelectionMode_DDD_L_D\x26#8221;\x26gt;\x3cbr/\x3e\u00a0\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0\u00a0\u00a0 \x26lt;input type=\x26#8221;hidden\x26#8221; name=\x26#8221;ctl00$phContent$lbSelectionMode$DDD$L\x26#8221; id=\x26#8221;ctl00_phContent_lbSelectionMode_DDD_L_VI\x26#8221; value=\x26#8221;2\x26#8221;\x26gt;\x26lt;table cellspacing=\x26#8221;0\x26#8221; cellpadding=\x26#8221;0\x26#8221; border=\x26#8221;0\x26#8221; style=\x26#8221;width: 100%; border-collapse: separate;\x26#8221; id=\x26#8221;ctl00_phContent_lbSelectionMode_DDD_L_LBT\x26#8221;\x26gt;\x3cbr/\x3e\u00a0\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0\u00a0\u00a0 \x26lt;tbody\x26gt;\x26lt;tr class=\x26#8221;dxeListBoxItemRow_Aqua\x26#8221;\x26gt;\x3cbr/\x3e\u00a0\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0\u00a0\u00a0 \x26lt;td class=\x26#8221;dxeListBoxItem_Aqua\x26#8221; id=\x26#8221;ctl00_phContent_lbSelectionMode_DDD_L_LBI0T0\x26#8221;\x26gt;Single\x26lt;/td\x26gt;\x3cbr/\x3e\u00a0\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0\u00a0\u00a0 \x26lt;/tr\x26gt;\x26lt;tr class=\x26#8221;dxeListBoxItemRow_Aqua\x26#8221;\x26gt;\x3cbr/\x3e\u00a0\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0\u00a0\u00a0 \x26lt;td class=\x26#8221;dxeListBoxItem_Aqua\x26#8221; id=\x26#8221;ctl00_phContent_lbSelectionMode_DDD_L_LBI1T0\x26#8221;\x26gt;Multiple\x26lt;/td\x26gt;\x3cbr/\x3e\u00a0\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0\u00a0\u00a0 \x26lt;/tr\x26gt;\x26lt;tr class=\x26#8221;dxeListBoxItemRow_Aqua\x26#8221;\x26gt;\x3cbr/\x3e\u00a0\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0\u00a0\u00a0 \x26lt;td class=\x26#8221;dxeListBoxItem_Aqua dxeListBoxItemSelected_Aqua\x26#8221; id=\x26#8221;ctl00_phContent_lbSelectionMode_DDD_L_LBI2T0\x26#8221;\x26gt;CheckColumn\x26lt;/td\x26gt;\x3cbr/\x3e\u00a0\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0\u00a0\u00a0 \x26lt;/tr\x26gt;\x3cbr/\x3e\u00a0\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0\u00a0\u00a0 \x26lt;/tbody\x26gt;\x26lt;/table\x26gt;\x3cbr/\x3e\u00a0\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0\u00a0\u00a0 \x26lt;/div\x26gt;\x26lt;/td\x26gt;\x3cbr/\x3e\u00a0\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0\u00a0\u00a0 \x26lt;/tr\x26gt;\x3cbr/\x3e\u00a0\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0\u00a0\u00a0 \x26lt;/tbody\x26gt;\x26lt;/table\x26gt;\x26lt;script type=\x26#8221;text/javascript\x26#8221; id=\x26#8221;dxss_1162343191\x26#8221;\x26gt;\x3cbr/\x3e\x26amp;lt;!\x26#8212;\x3cbr/\x3e\x3cbr/\x3evar dxo = new ASPxClientListBox(\x26#8216;ctl00_phContent_lbSelectionMode_DDD_L\x26#8217;);\x3cbr/\x3ewindow[\x26#8216;ctl00_phContent_lbSelectionMode_DDD_L\x26#8217;] = dxo;\x3cbr/\x3edxo.uniqueID = \x26#8216;ctl00$phContent$lbSelectionMode$DDD$L\x26#8217;;\x3cbr/\x3easpxAddDisabledItems(\x26#8216;ctl00_phContent_lbSelectionMode_DDD_L\x26#8217;,[[[\x26#8216;dxeDisabled_Aqua\x26#8217;],[\x26#8221;],[\x26#8221;]]]);\x3cbr/\x3edxo.SelectedIndexChanged.AddHandler(function (s, e) { aspxCBLBSelectedIndexChanged(\x26#8216;ctl00_phContent_lbSelectionMode\x26#8217;, e); });\x3cbr/\x3edxo.ItemClick.AddHandler(function (s, e) { aspxCBLBItemMouseUp(\x26#8216;ctl00_phContent_lbSelectionMode\x26#8217;, e); });\x3cbr/\x3edxo.RequireStyleDecoration();\x3cbr/\x3edxo.styleDecoration.AddStyle(\x26#8216;F\x26#8217;,\x26#8217;dxeFocused_Aqua\x26#8217;,\x26#8221;);\x3cbr/\x3edxo.savedSelectedIndex = 2;\x3cbr/\x3edxo.itemsValue=[\x26#8216;0\x26#8217;,\x26#8217;1\x26#8217;,\x26#8217;2\x26#8217;];\x3cbr/\x3edxo.isComboBoxList = true;\x3cbr/\x3edxo.hoverClasses=[\x26#8216;dxeListBoxItemHover_Aqua\x26#8217;];\x3cbr/\x3edxo.selectedClasses=[\x26#8216;dxeListBoxItemSelected_Aqua\x26#8217;];\x3cbr/\x3edxo.disabledClasses=[\x26#8216;dxeDisabled_Aqua\x26#8217;];\x3cbr/\x3edxo.InlineInitialize();\x3cbr/\x3e\x3cbr/\x3e//\x26#8212;\x26amp;gt;\x3cbr/\x3e\x26lt;/script\x26gt;\x3cbr/\x3e\x26lt;/td\x26gt;\x3cbr/\x3e\u00a0\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0\u00a0\u00a0 \x26lt;/tr\x26gt;\x3cbr/\x3e\u00a0\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0\u00a0\u00a0 \x26lt;/tbody\x26gt;\x26lt;/table\x26gt;\x26lt;/td\x26gt;\x3cbr/\x3e\u00a0\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0\u00a0\u00a0 \x26lt;/tr\x26gt;\x3cbr/\x3e\u00a0\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0\u00a0\u00a0 \x26lt;/tbody\x26gt;\x26lt;/table\x26gt;\x3cbr/\x3e\u00a0\u00a0\u00a0 \u00a0\u00a0\u00a0 \x26lt;/div\x26gt;\x26lt;script type=\x26#8221;text/javascript\x26#8221; id=\x26#8221;dxss_682451067\x26#8221;\x26gt;\x3cbr/\x3e\x26amp;lt;!\x26#8212;\x3cbr/\x3e\x3cbr/\x3evar dxo = new ASPxClientPopupControl(\x26#8216;ctl00_phContent_lbSelectionMode_DDD\x26#8217;);\x3cbr/\x3ewindow[\x26#8216;ctl00_phContent_lbSelectionMode_DDD\x26#8217;] = dxo;\x3cbr/\x3edxo.uniqueID = \x26#8216;ctl00$phContent$lbSelectionMode$DDD\x26#8217;;\x3cbr/\x3edxo.Shown.AddHandler(function (s, e) { aspxDDBPCShown(\x26#8216;ctl00_phContent_lbSelectionMode\x26#8217;, e); });\x3cbr/\x3edxo.adjustInnerControlsSizeOnShow=false;\x3cbr/\x3edxo.closeAction=\x26#8217;CloseButton\x26#8217;;\x3cbr/\x3edxo.popupHorizontalAlign=\x26#8217;LeftSides\x26#8217;;\x3cbr/\x3edxo.popupVerticalAlign=\x26#8217;Below\x26#8217;;\x3cbr/\x3edxo.isPopupPositionCorrectionOn=false;\x3cbr/\x3edxo.shadowVisible=false;\x3cbr/\x3edxo.width=0;\x3cbr/\x3edxo.height=0;\x3cbr/\x3edxo.InlineInitialize();\x3cbr/\x3e\x3cbr/\x3e//\x26#8212;\x26amp;gt;\x3cbr/\x3e\x26lt;/script\x26gt;\x3cbr/\x3e\x26lt;script type=\x26#8221;text/javascript\x26#8221; id=\x26#8221;dxss_949748170\x26#8221;\x26gt;\x3cbr/\x3e\x26amp;lt;!\x26#8212;\x3cbr/\x3edocument.getElementById(\x26#8220;ctl00_phContent_lbSelectionMode_I\x26#8221;).setAttribute(\x26#8220;autocomplete\x26#8221;, \x26#8220;off\x26#8221;);\x3cbr/\x3easpxAddHoverItems(\x26#8216;ctl00_phContent_lbSelectionMode\x26#8217;,[[[\x26#8216;dxeButtonEditButtonHover_Aqua\x26#8217;],[\x26#8221;],[\x26#8216;B-1\x26#8217;]\x26#8222;[[{\x26#8216;spriteCssClass\x26#8217;:\x26#8217;dxEditors_edtDropDownHover_Aqua\x26#8217;}]],[\x26#8216;Img\x26#8217;]]]);\x3cbr/\x3easpxAddPressedItems(\x26#8216;ctl00_phContent_lbSelectionMode\x26#8217;,[[[\x26#8216;dxeButtonEditButtonPressed_Aqua\x26#8217;],[\x26#8221;],[\x26#8216;B-1\x26#8217;]\x26#8222;[[{\x26#8216;spriteCssClass\x26#8217;:\x26#8217;dxEditors_edtDropDownPressed_Aqua\x26#8217;}]],[\x26#8216;Img\x26#8217;]]]);\x3cbr/\x3e\x3cbr/\x3evar dxo = new ASPxClientComboBox(\x26#8216;ctl00_phContent_lbSelectionMode\x26#8217;);\x3cbr/\x3ewindow[\x26#8216;ctl00_phContent_lbSelectionMode\x26#8217;] = dxo;\x3cbr/\x3edxo.autoPostBack = true;\x3cbr/\x3edxo.uniqueID = \x26#8216;ctl00$phContent$lbSelectionMode\x26#8217;;\x3cbr/\x3edxo.RequireStyleDecoration();\x3cbr/\x3edxo.styleDecoration.AddStyle(\x26#8216;F\x26#8217;,\x26#8217;dxeFocused_Aqua\x26#8217;,\x26#8221;);\x3cbr/\x3edxo.InlineInitialize();\x3cbr/\x3e\x3cbr/\x3e//\x26#8212;\x26amp;gt;\x3cbr/\x3e\x26lt;/script\x26gt;\x3cbr/\x3e\x3cbr/\x3e\x26lt;/td\x26gt;\x3c/p\x3e\x0a\x3c/blockquote\x3e\x0a\x3cp\x3eNow, if I walked into a startup and presented that 92-line table-based chunk as an example of how to code a HTML dropdown list, I guarantee you that I would not be getting a return call. The code above obviously violates web standards on many levels.\x3c/p\x3e\x0a\x3cp\x3eThe difference between .NET developers and startup developers goes deeper than just \x26#8220;culture\x26#8221;. Every culture has values. Startup developers (at least web startups) value the web as a native platform with its own technologies (HTML, CSS, Javascript). A lot of .NET web projects, on the other hand, appear to me to be attempts to create 1980\x26#8217;s-era client-server applications and then smush them and squash them until they run inside a web browser. Since many corporations require the use of Internet Explorer, .NET projects are typically only tested on IE. Startups have a more diverse audience and aim for quality across all browsers.\x3c/p\x3e\x0a\x3cp\x3eIt\x26#8217;s not so much about systems vs. products. It\x26#8217;s about valuing the web as a platform in its own right vs. valuing Microsoft as the platform and considering the web browser as just another delivery mechanism, an afterthought.\x3c/p\x3e\x0a\x3cp\x3eWhen .NET can generate the same kind of clean, semantic HTML, CSS, and Javascript that I can code by hand, then web startups might consider adopting it. Until then, .NET will remain inside the gray cubicle walls of the enterprise.\x3c/p\x3e\x0a \x3c/div\x3e\x0a \x3c/li\x3e\x0a \x0a\x0a \x0a\x0a \x0a\x0a \x0a \x0a \x0a \x0a \x0a\x0a \x0a \x0a \x0a \x3cli class=\x22tumblr_post tumblr_text_post\x22\x3e\x0a \x0a \x3cdiv class=\x22tumblr_title\x22\x3eDear RSA Security\x3c/div\x3e\x0a \x0a \x0a \x3cdiv class=\x22tumblr_body\x22\x3e\x0a \x3cp\x3ePlease add Indiglo to your ubiquitous security token key fob thingies.\x3c/p\x3e\x0a \x3c/div\x3e\x0a \x3c/li\x3e\x0a \x0a\x0a \x0a\x0a \x0a\x0a \x0a \x0a \x0a \x0a \x0a\x0a \x0a \x0a \x0a \x3cli class=\x22tumblr_post tumblr_text_post\x22\x3e\x0a \x0a \x3cdiv class=\x22tumblr_title\x22\x3eA K\x26uuml;bler-Ross-like Model for Apple Product Launches\x3c/div\x3e\x0a \x0a \x0a \x3cdiv class=\x22tumblr_body\x22\x3e\x0a \x3cp\x3eAs much as I love The Oatmeal\x26#8217;s \x26#8220;\x3ca title=\x22What it\'s like to own an Apple product\x22 href=\x22http://theoatmeal.com/comics/apple\x22\x3eWhat it\x26#8217;s like to own an Apple product\x3c/a\x3e\x26#8221;, I think it\x26#8217;s missing a few key stages in the Apple product launch cycle.\x3c/p\x3e\x0a\x3cp\x3eStage 1. Rumors.\x3c/p\x3e\x0a\x3cp\x3eStage 2. Leaks\x3c/p\x3e\x0a\x3cp\x3eStage 3. The big announcement and demo at WWDC. The ooohs and aaaahs.\x3c/p\x3e\x0a\x3cp\x3eStage 4. The pre-order that crashes all the servers. Panic ensues. I don\x26#8217;t know if Apple really got my pre-order!\x3c/p\x3e\x0a\x3cp\x3eStage 5. The product availability date is announced. Long, long lines start days before the product is available. Reservations, complaints, a media frenzy; Celebrities and politicians wait in line with ordinary, anonymous fanboys and fangirls. Rude, disorganized, and heartless Apple retail employees parrot Kafka-esque \x26#8220;company policies\x26#8221; without context or explanation. If you\x26#8217;re lucky enough to get the product on the first day, there is a surfeit of well-heeled folks flooding the social networks with offers to parachute in and buy yours at multiples of the cost. When the first lucky souls leave the Apple Stores with their gizmos it\x26#8217;s like the Rapture has begun.\x3c/p\x3e\x0a\x3cp\x3eStage 6. The scare. Oh my God, the touch screen is developing dead spots! The batteries are defective! When you make a call, your hand blocks the antenna! There\x26#8217;s no multi-tasking (does anyone remember the original Finder in the original MacOS? Remember how everyone complained that it couldn\x26#8217;t multi-task? Then they came out with the \x26#8220;Multi-Finder\x26#8221;\x26#8212;some things never change).\x3c/p\x3e\x0a\x3cp\x3eStage 7. The I-Told-You-So\x26#8217;s - Ha! Not only did you waste your money, you\x26#8217;re giving up your freedoms. It\x26#8217;s a closed system. It\x26#8217;s got DRM on everything. You got duped by the RDF!\x3c/p\x3e\x0a\x3cp\x3eStage 8. Everybody forgets stages 1-7 and goes back to complaining about how bad AT\x26amp;T\x26#8217;s network sucks.\x3c/p\x3e\x0a \x3c/div\x3e\x0a \x3c/li\x3e\x0a \x0a\x0a \x0a\x0a \x0a\x0a \x0a \x0a \x0a \x0a \x0a\x0a \x0a \x0a \x0a \x3cli class=\x22tumblr_post tumblr_text_post\x22\x3e\x0a \x0a \x3cdiv class=\x22tumblr_title\x22\x3eEmerging Alternative Uses of Foursquare\x3c/div\x3e\x0a \x0a \x0a \x3cdiv class=\x22tumblr_body\x22\x3e\x0a \x3cp\x3eI wonder if foursquare\x26#8217;s success will be boosted by people who start using foursquare for reasons other than to show off what cool restaurants and sporting events they attend. For example, I checked in at my bank yesterday and took the opportunity to \x26#8220;shout\x26#8221; my dissatisfaction with the bank(the bank is Wachovia, btw and they are a completely hideous institution that I would urge you to avoid and/or divest yourself of). I\x26#8217;m thinking that protest movements could be started by people who show up and check-in at businesses that provide lousy service, rip people off, etc. and shout them out. It could be like a real-time Better Business Bureau complaint.\x3c/p\x3e\x0a\x3cp\x3eOf course, foursquare is depending on small businesses for their revenue, so they might frown upon this behavior (although I notice that when foursquare CEO Dennis Crowley doesn\x26#8217;t like a venue, he doesn\x26#8217;t hesitate to check in and say the place is crappy, overpriced, etc.)\x3c/p\x3e\x0a \x3c/div\x3e\x0a \x3c/li\x3e\x0a \x0a\x0a \x0a\x0a \x0a\x0a \x0a \x0a \x0a \x0a \x0a\x0a \x0a \x0a \x0a \x3cli class=\x22tumblr_post tumblr_text_post\x22\x3e\x0a \x0a \x3cdiv class=\x22tumblr_title\x22\x3eFoursquare and Viral Marketing Patterns\x3c/div\x3e\x0a \x0a \x0a \x3cdiv class=\x22tumblr_body\x22\x3e\x0a \x3cp\x3eI was reading \x3ca title=\x22Foursquare at Where 2.0\x22 href=\x22http://gigaom.com/2010/03/31/the-twitter-highlights-of-foursquare-ceos-where-2-0-talk/\x22\x3eThe Twitter Highlights of Foursquare CEO\u2019s Where 2.0\u00a0Talk\x3c/a\x3e and this quote by Dennis Crowley stuck with me: \x26#8220;How can I turn life into a video game?\x26#8221; This quote was apparently the inspiration behind the wildly popular \x3ca title=\x22Foursquare\x22 href=\x22http://foursquare.com/\x22\x3eFoursquare\x3c/a\x3e.\x3c/p\x3e\x0a\x3cp\x3eToday I somehow landed on this page about \x3ca title=\x22design patterns in viral marketing\x22 href=\x22http://thebrandbuilder.wordpress.com/2008/07/31/viral-marketing-review-design-patterns-in-viral-marketing/\x22\x3edesign patterns in viral marketing\x3c/a\x3e which included a fascinating list of 21 patterns that have been successful in viral marketing. They included \x26#8220;animal personification\x26#8221;, \x26#8220;violate a stereotype\x26#8221;, and \x26#8220;Objects doing things they weren\u2019t really made for.\x26#8221; If you think about it, these have a ring of familiarity. We\x26#8217;ve been seeing them in ads and on the Internet for ages. Most of us (or at least me) have never been able to discern a pattern, but a guy named Mike Laurie has.\x3c/p\x3e\x0a\x3cp\x3eSo, what\x26#8217;s the point? Well, here\x26#8217;s #21 on the list: \x26#8220;Connect video games to real life.\x26#8221; I wonder if Dennis Crowley has seen this list of successful patterns for viral marketing or if it\x26#8217;s coincidence?\x3c/p\x3e\x0a \x3c/div\x3e\x0a \x3c/li\x3e\x0a \x0a\x0a \x0a\x0a \x0a\x0a \x0a \x0a \x0a \x0a \x0a\x0a \x0a \x0a \x0a \x3cli class=\x22tumblr_post tumblr_text_post\x22\x3e\x0a \x0a \x3cdiv class=\x22tumblr_title\x22\x3eNew Bipartisan Healthcare Reform: Healthcare Slot Machines!\x3c/div\x3e\x0a \x0a \x0a \x3cdiv class=\x22tumblr_body\x22\x3e\x0a \x3cp\x3eThe trends of rapidly growing numbers of slots parlors and rapidly growing numbers of Americans without health insurance are bound to collide sooner or later. There will soon be special slot machines that award the winner with the expensive and necessary healthcare resources they need. \x3cbr/\x3e\x3cbr/\x3eImagine sitting in a windowless, climate-controlled cavern in, say, Macungie, PA for six hours drinking $4 cokes and pumping quarters into the one-armed bandit when suddenly it\x26#8217;s your lucky day! ***HIP REPLACEMENT***, ***HIP REPLACEMENT***, ***HIP REPLACEMENT***. You\x26#8217;ve just won a HIP REPLACEMENT! Oh, you don\x26#8217;t need a hip replacement? You need a year\x26#8217;s supply of Procardia? Oops. Well here\x26#8217;s a coupon for half off the salad bar. Better luck next time. Keep on scratchin!\x3c/p\x3e\x0a \x3c/div\x3e\x0a \x3c/li\x3e\x0a \x0a\x0a \x0a\x0a \x0a\x0a \x0a \x0a \x0a \x0a \x0a\x0a \x0a \x0a\x3c/ol\x3e');