<?xml version='1.0' encoding='UTF-8'?><?xml-stylesheet href="http://www.blogger.com/styles/atom.css" type="text/css"?><feed xmlns='http://www.w3.org/2005/Atom' xmlns:openSearch='http://a9.com/-/spec/opensearchrss/1.0/' xmlns:georss='http://www.georss.org/georss' xmlns:gd='http://schemas.google.com/g/2005' xmlns:thr='http://purl.org/syndication/thread/1.0'><id>tag:blogger.com,1999:blog-16183088</id><updated>2012-01-09T19:04:49.490-08:00</updated><title type='text'>Web Things Considered</title><subtitle type='html'>Thoughts on web development, web business, entrepreneurship, personal finance and whatever else crosses my mind.</subtitle><link rel='http://schemas.google.com/g/2005#feed' type='application/atom+xml' href='http://webthingsconsidered.blogspot.com/feeds/posts/default'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/16183088/posts/default?max-results=100'/><link rel='alternate' type='text/html' href='http://webthingsconsidered.blogspot.com/'/><link rel='hub' href='http://pubsubhubbub.appspot.com/'/><author><name>Ryan Williams</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><generator version='7.00' uri='http://www.blogger.com'>Blogger</generator><openSearch:totalResults>14</openSearch:totalResults><openSearch:startIndex>1</openSearch:startIndex><openSearch:itemsPerPage>100</openSearch:itemsPerPage><entry><id>tag:blogger.com,1999:blog-16183088.post-113408630645256562</id><published>2005-12-08T15:55:00.000-08:00</published><updated>2005-12-08T15:59:13.570-08:00</updated><title type='text'>Moving</title><content type='html'>&lt;a href="http://www.webthingsconsidered.com"&gt;Web Things Considered&lt;/a&gt; has moved to a new location:&lt;br /&gt;&lt;br /&gt;&lt;a href="http://www.webthingsconsidered.com"&gt;http://www.webthingsconsidered.com&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;I'll keep this blog for the archive and search engine traffic for a little while, but all new posts will be on my new blog.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/16183088-113408630645256562?l=webthingsconsidered.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://webthingsconsidered.blogspot.com/feeds/113408630645256562/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=16183088&amp;postID=113408630645256562' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/16183088/posts/default/113408630645256562'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/16183088/posts/default/113408630645256562'/><link rel='alternate' type='text/html' href='http://webthingsconsidered.blogspot.com/2005/12/moving.html' title='Moving'/><author><name>Ryan Williams</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-16183088.post-113263666458229959</id><published>2005-11-21T21:12:00.000-08:00</published><updated>2005-11-21T21:18:48.503-08:00</updated><title type='text'>Diggdot.us - New Web Heroin</title><content type='html'>I recently dropped my &lt;a href="http://www.digg.com"&gt;Digg&lt;/a&gt; feed, just wasting too much time, and was back to relying on only &lt;a href="http://del.icio.us/popular"&gt;del.icio.us/popular&lt;/a&gt; and &lt;a href="http://www.slashdot.com"&gt;/.&lt;/a&gt; for info.  So, now &lt;a href="http://diggdot.us/"&gt;Diggdot.us&lt;/a&gt; comes along to provide all three in one place with duplicates removed.  Sweet!  I think this will make me much more effecient in my blog reading.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/16183088-113263666458229959?l=webthingsconsidered.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://webthingsconsidered.blogspot.com/feeds/113263666458229959/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=16183088&amp;postID=113263666458229959' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/16183088/posts/default/113263666458229959'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/16183088/posts/default/113263666458229959'/><link rel='alternate' type='text/html' href='http://webthingsconsidered.blogspot.com/2005/11/diggdotus-new-web-heroin.html' title='Diggdot.us - New Web Heroin'/><author><name>Ryan Williams</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-16183088.post-113263621434960598</id><published>2005-11-21T20:52:00.000-08:00</published><updated>2005-11-22T07:48:35.396-08:00</updated><title type='text'>Breakin' the rules</title><content type='html'>It's nice to know that I'm committing so many of &lt;a href="http://www.greatnexus.com/blog/85.html"&gt;The Seven Deadly Sins of Blogging&lt;/a&gt;.  Gotta' find a way to stand out somehow I guess.  Let's see:&lt;br /&gt;&lt;br /&gt;&lt;blockquote&gt;1. Using Free Blog Hosting&lt;/blockquote&gt;&lt;br /&gt;Sinner. But not for long.&lt;br /&gt;&lt;blockquote&gt;2. Ignoring the Basic Principles of Good Web Site Design and Usability&lt;/blockquote&gt;&lt;br /&gt;Not a sinner. I'm relying on a nicely designed template.&lt;br /&gt;&lt;blockquote&gt;3. Being the Jack Of All Trades&lt;/blockquote&gt;&lt;br /&gt;Sinner. But since this blog is for mainly to share some thoughts and experiences for myself and anyone who may want to learn more about me someday. I'm not too concerned about it.&lt;br /&gt;&lt;blockquote&gt;4. Not Posting Regularly&lt;/blockquote&gt;&lt;br /&gt;Sinner.  Not enough hours in the day.&lt;br /&gt;&lt;blockquote&gt;5. Publishing Badly Written Posts&lt;/blockquote&gt;&lt;br /&gt;Not really a sinner.  Most of my posts aren't long or in-depth enough for this to matter much.&lt;br /&gt;&lt;blockquote&gt;6. Spamming and Stealing&lt;/blockquote&gt;&lt;br /&gt;Not a sinner. This I don't do.&lt;br /&gt;&lt;blockquote&gt;7. Failing to Establish a Personality&lt;/blockquote&gt;&lt;br /&gt;Sinner.  But again, I'm not too concerned as I don't currently aspire to be a famous blogger.&lt;br /&gt;&lt;br /&gt;So, all in all, I'm committing 4 of the 7 sins. Could be worse. But, aside from moving to my own domain soon, I definitely do need to develop some more original posts. I have a number of drafts in process, so maybe I'll finish some of them up someday.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/16183088-113263621434960598?l=webthingsconsidered.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://webthingsconsidered.blogspot.com/feeds/113263621434960598/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=16183088&amp;postID=113263621434960598' title='5 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/16183088/posts/default/113263621434960598'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/16183088/posts/default/113263621434960598'/><link rel='alternate' type='text/html' href='http://webthingsconsidered.blogspot.com/2005/11/breakin-rules.html' title='Breakin&apos; the rules'/><author><name>Ryan Williams</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>5</thr:total></entry><entry><id>tag:blogger.com,1999:blog-16183088.post-113106009659266960</id><published>2005-11-03T14:59:00.000-08:00</published><updated>2005-11-03T15:24:49.826-08:00</updated><title type='text'>The one thing I like about the new Yahoo! Maps</title><content type='html'>The new &lt;a href="http://maps.yahoo.com/beta/"&gt;Yahoo! Maps&lt;/a&gt; (&lt;a href="http://tech.memeorandum.com/051103/p10#a051103p10"&gt;more discussion&lt;/a&gt;) is out today. The interface looks ok and all, nice and big, smooth dragging (but a little jerky on zoom), etc. Though it won't be as cool as Google's or even Microsoft's until there's satellite imagery.&lt;br /&gt;&lt;br /&gt;However, one thing that I'm exited about is the new &lt;a href="http://developer.yahoo.net/maps/rest/V1/geocode.html"&gt;Geocoding API&lt;/a&gt; (the other apis look great too). I've finally found a free, reliable source that geocodes a zip code by itself! This is huge in my book and will be great to try out when we hook up some geo features on &lt;a href="http://www.networthiq.com/"&gt;NetworthIQ&lt;/a&gt;.  Simon Willison has the &lt;a href="http://simon.incutio.com/archive/2005/11/03/maps"&gt;API scoop&lt;/a&gt;.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/16183088-113106009659266960?l=webthingsconsidered.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://webthingsconsidered.blogspot.com/feeds/113106009659266960/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=16183088&amp;postID=113106009659266960' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/16183088/posts/default/113106009659266960'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/16183088/posts/default/113106009659266960'/><link rel='alternate' type='text/html' href='http://webthingsconsidered.blogspot.com/2005/11/one-thing-i-like-about-new-yahoo-maps.html' title='The one thing I like about the new Yahoo! Maps'/><author><name>Ryan Williams</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-16183088.post-112992967664584541</id><published>2005-10-21T14:17:00.000-07:00</published><updated>2005-10-21T20:12:21.150-07:00</updated><title type='text'>Is Flock a half-assed product?</title><content type='html'>I mentioned &lt;a href="http://www.flock.com/"&gt;Flock&lt;/a&gt; last month and was really excited to check it out yesterday when they launched their public beta.  Wow, what a disappointment.  I'll keep my POFF (Plain Old FireFox) for now, thanks.&lt;br /&gt;&lt;br /&gt;I do like the del.icio.us integration, though it bugs me how easy it is to bookmark something without any tags, (when using the star button, there's a tiny black arrow to click on if you want to add tags, but it's definitely not obvious and it's difficult to click on because it's so small).  Further complaints are that it's incredibly slow, the blogging tool doesn't really add much value, and the RSS reader is useless as far as I can tell (I want to store my subscriptions online, just like my bookmarks, how 'bout Bloglines integration?).&lt;br /&gt;&lt;br /&gt;It's very interesting to see the &lt;a href="http://businesslogs.com/reviews/flock_soars_like_an_ostrich.php"&gt;abundance&lt;/a&gt; of negative feedback with the early reviews.  This seems to be a good reinforcement of the &lt;a href="http://www.37signals.com/"&gt;37 signals&lt;/a&gt; motto, &lt;a href="http://www.37signals.com/presentations/sxsw2005/37s-bigthingssmallteam.pdf"&gt;"Build half a product, not a half-assed product"&lt;/a&gt;. Flock seems pretty half-assed right now.  You can put up all the disclaimers in the world, but once you put something out there, it will be judged.&lt;br /&gt;&lt;br /&gt;With NetworthIQ, we've taken the half a product concept to heart by focusing on a limited number of features to get it out the door quickly.  What features we do have are at least three-quarter assed ;-). But, then again, we don't have millions of VC funding and are building it in our spare time.&lt;br /&gt;&lt;br /&gt;&lt;div class="tag_list"&gt;Tags: &lt;span id="post-tags"&gt;&lt;a href="http://technorati.com/tag/flock" rel="tag"&gt;flock&lt;/a&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/16183088-112992967664584541?l=webthingsconsidered.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://webthingsconsidered.blogspot.com/feeds/112992967664584541/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=16183088&amp;postID=112992967664584541' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/16183088/posts/default/112992967664584541'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/16183088/posts/default/112992967664584541'/><link rel='alternate' type='text/html' href='http://webthingsconsidered.blogspot.com/2005/10/is-flock-half-assed-product.html' title='Is Flock a half-assed product?'/><author><name>Ryan Williams</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-16183088.post-112727653044086931</id><published>2005-09-20T21:07:00.000-07:00</published><updated>2005-09-20T22:51:49.643-07:00</updated><title type='text'>Tagging hits mainstream</title><content type='html'>I happened to catch the end of this &lt;a href="http://www.npr.org/templates/story/story.php?storyId=4856924"&gt;commentary&lt;/a&gt; tonight on NPR discussing tagging, &lt;a href="http://del.icio.us"&gt;del.icio.us&lt;/a&gt;, and &lt;a href="http://www.flickr.com"&gt;Flickr&lt;/a&gt;.  Social software sites such as these were a big inspiration for NetworthIQ, so it's nice to see them in the mainstream press.&lt;br /&gt;&lt;br /&gt;(sneak preview exclusive only available to Web Things Considered readers.... you probably could guess that tagging is in our future too)&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/16183088-112727653044086931?l=webthingsconsidered.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://webthingsconsidered.blogspot.com/feeds/112727653044086931/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=16183088&amp;postID=112727653044086931' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/16183088/posts/default/112727653044086931'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/16183088/posts/default/112727653044086931'/><link rel='alternate' type='text/html' href='http://webthingsconsidered.blogspot.com/2005/09/tagging-hits-mainstream.html' title='Tagging hits mainstream'/><author><name>Ryan Williams</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-16183088.post-112718237049787452</id><published>2005-09-19T19:00:00.000-07:00</published><updated>2005-09-19T19:28:04.053-07:00</updated><title type='text'>Internet Explorer coming around?</title><content type='html'>I'm pretty much a confirmed Firefox guy.  I'll probably give &lt;a href="http://www.flock.com/home/"&gt;Flock&lt;/a&gt; a try, when it comes out, but for now Firefox is where it's at.  There are two big reasons for this, &lt;a href="http://livehttpheaders.mozdev.org/"&gt;LiveHTTPHeaders&lt;/a&gt; and the &lt;a href="http://chrispederick.com/work/firefox/webdeveloper/"&gt;Web Developer Toolbar&lt;/a&gt; (along with tabbed browsing and the general abundance of plugins).&lt;br /&gt;&lt;br /&gt;But as a web developer, I still have to respect IE's market share.  Today, Microsoft released a web developer &lt;a href="http://www.microsoft.com/downloads/details.aspx?FamilyID=e59c3964-672d-4511-bb3e-2d5e1db91038&amp;displaylang=en"&gt;toolbar &lt;/a&gt; for IE.  I'll have to check this out and see if it can make life in IE easier.  Let's just hope this goes better than my experiment with &lt;a href="http://www.blunck.info/iehttpheaders.html"&gt;IEHttpHeaders&lt;/a&gt;, which crashed IE on three different computers I tried to run it on.&lt;br /&gt;&lt;br /&gt;Update:&lt;br /&gt;Nikhil Kothari's &lt;a href="http://www.nikhilk.net/Project.WebDevHelper.aspx"&gt;Web Development Helper&lt;/a&gt; also looks like a great tool for debugging web apps if you're working with ASP.NET 2.0.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/16183088-112718237049787452?l=webthingsconsidered.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://webthingsconsidered.blogspot.com/feeds/112718237049787452/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=16183088&amp;postID=112718237049787452' title='3 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/16183088/posts/default/112718237049787452'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/16183088/posts/default/112718237049787452'/><link rel='alternate' type='text/html' href='http://webthingsconsidered.blogspot.com/2005/09/internet-explorer-coming-around.html' title='Internet Explorer coming around?'/><author><name>Ryan Williams</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>3</thr:total></entry><entry><id>tag:blogger.com,1999:blog-16183088.post-112700766238236224</id><published>2005-09-18T20:00:00.000-07:00</published><updated>2005-09-18T08:03:23.006-07:00</updated><title type='text'>In the New York Times</title><content type='html'>This is a big day for &lt;a href="http://www.networthiq.com"&gt;NetworthIQ&lt;/a&gt;, Fourio (our company) and myself.  We were mentioned in a an &lt;a href="http://www.nytimes.com/2005/09/18/business/yourmoney/18blog.html"&gt;article&lt;/a&gt; in the New York Times discussing how people are sharing their financial information on the web.&lt;br /&gt;&lt;br /&gt;It's a pretty amazing feeling to to see an idea you had get put in front of millions of people.  Needless to say, our user base has nearly doubled and we've had nearly as much traffic as we had in the whole first two months of operation, all in the last 14 hours.  Let's see what happens as the west coast wakes up.  Now, we have to get back to work on getting some new features implemented so that we can keep the momentum going.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/16183088-112700766238236224?l=webthingsconsidered.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://webthingsconsidered.blogspot.com/feeds/112700766238236224/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=16183088&amp;postID=112700766238236224' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/16183088/posts/default/112700766238236224'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/16183088/posts/default/112700766238236224'/><link rel='alternate' type='text/html' href='http://webthingsconsidered.blogspot.com/2005/09/in-new-york-times.html' title='In the New York Times'/><author><name>Ryan Williams</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-16183088.post-112672662261943122</id><published>2005-09-14T07:30:00.000-07:00</published><updated>2005-09-14T12:37:02.623-07:00</updated><title type='text'>SEO thoughts</title><content type='html'>Just wanted to point to my entry over on the &lt;a href="http://networthiq.blogspot.com/2005/09/1-on-msn-and-other-seo-thoughts.html"&gt;NetworthIQ blog&lt;/a&gt; discussing the latest SEO results and how we implement our SEO strategy.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/16183088-112672662261943122?l=webthingsconsidered.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://webthingsconsidered.blogspot.com/feeds/112672662261943122/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=16183088&amp;postID=112672662261943122' title='3 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/16183088/posts/default/112672662261943122'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/16183088/posts/default/112672662261943122'/><link rel='alternate' type='text/html' href='http://webthingsconsidered.blogspot.com/2005/09/seo-thoughts.html' title='SEO thoughts'/><author><name>Ryan Williams</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>3</thr:total></entry><entry><id>tag:blogger.com,1999:blog-16183088.post-112665889706087381</id><published>2005-09-14T07:10:00.000-07:00</published><updated>2005-09-14T07:35:04.300-07:00</updated><title type='text'>DropDownList inside a GridView (or DataGrid)</title><content type='html'>I'm still coming up to full speed on ASP.NET, as evidenced by a conversation I had yesterday about Grids and DropDownLists and their events.  In the interest of reinforcing the concepts, I've implemented a sample page and am summarizing it here to further commit it into my brain.&lt;br /&gt;&lt;br /&gt;The page requirements:&lt;br /&gt;1) Table/Grid displays a list of states (U.S. states) with a column for the state name and a column that contains a dropdown list of the state's cities.&lt;br /&gt;2) Upon selecting a city, the page will display the city name (and perhaps futher lookup some information specific to the city).&lt;br /&gt;&lt;br /&gt;The basic ASP.NET flow here is (using 2.0 here, but works similarly in 1.1 using DataGrid):&lt;br /&gt;1) Create a GridView with a bound column for state and a template column for the DropDownList&lt;br /&gt;2) Create a label to display the city name upon selecting it in the DropDownList.&lt;br /&gt;3) Bind the GridView to an array of state objects (could be bound to many other things as well, but keeping it simple for this example). State contains properties for Name and for Cities.&lt;br /&gt;4) Hookup RowCreated event on the GridView so that we can populate the cities into the particular row's DropDownList.&lt;br /&gt;5) Add postback event for getting the selected city and populating the label with it.&lt;br /&gt;&lt;br /&gt;Here's what the aspx code looks like:&lt;!-- code formatted by http://manoli.net/csharpformat/ --&gt;&lt;pre class="csharpcode"&gt;&lt;br /&gt;&lt;span class="kwrd"&gt;&amp;lt;&lt;/span&gt;&lt;span class="html"&gt;asp:GridView&lt;/span&gt; &lt;span class="attr"&gt;ID&lt;/span&gt;&lt;span class="kwrd"&gt;="gvStates"&lt;/span&gt; &lt;span class="attr"&gt;AutoGenerateColumns&lt;/span&gt;&lt;span class="kwrd"&gt;="false"&lt;/span&gt;&lt;br /&gt;     &lt;span class="attr"&gt;runat&lt;/span&gt;&lt;span class="kwrd"&gt;="server"&lt;/span&gt; &lt;span class="attr"&gt;OnRowCreated&lt;/span&gt;&lt;span class="kwrd"&gt;="gvStates_RowCreated"&lt;/span&gt;&lt;span class="kwrd"&gt;&amp;gt;&lt;/span&gt;&lt;br /&gt;  &lt;span class="kwrd"&gt;&amp;lt;&lt;/span&gt;&lt;span class="html"&gt;Columns&lt;/span&gt;&lt;span class="kwrd"&gt;&amp;gt;&lt;/span&gt;&lt;br /&gt;    &lt;span class="kwrd"&gt;&amp;lt;&lt;/span&gt;&lt;span class="html"&gt;asp:BoundField&lt;/span&gt; &lt;span class="attr"&gt;HeaderText&lt;/span&gt;&lt;span class="kwrd"&gt;="State"&lt;/span&gt; &lt;span class="attr"&gt;DataField&lt;/span&gt;&lt;span class="kwrd"&gt;="Name"&lt;/span&gt; &lt;span class="kwrd"&gt;/&amp;gt;&lt;/span&gt;&lt;br /&gt;    &lt;span class="kwrd"&gt;&amp;lt;&lt;/span&gt;&lt;span class="html"&gt;asp:TemplateField&lt;/span&gt; &lt;span class="attr"&gt;HeaderText&lt;/span&gt;&lt;span class="kwrd"&gt;="Cities"&lt;/span&gt;&lt;span class="kwrd"&gt;&amp;gt;&lt;/span&gt;&lt;br /&gt;      &lt;span class="kwrd"&gt;&amp;lt;&lt;/span&gt;&lt;span class="html"&gt;ItemTemplate&lt;/span&gt;&lt;span class="kwrd"&gt;&amp;gt;&lt;/span&gt;&lt;br /&gt;        &lt;span class="kwrd"&gt;&amp;lt;&lt;/span&gt;&lt;span class="html"&gt;asp:DropDownList&lt;/span&gt; &lt;span class="attr"&gt;ID&lt;/span&gt;&lt;span class="kwrd"&gt;="ddlCities"&lt;/span&gt;&lt;br /&gt;&lt;span class="attr"&gt;AutoPostBack&lt;/span&gt;&lt;span class="kwrd"&gt;="true"&lt;/span&gt; &lt;span class="attr"&gt;runat&lt;/span&gt;&lt;span class="kwrd"&gt;="server"&lt;/span&gt; &lt;br /&gt;&lt;span class="attr"&gt;OnSelectedIndexChanged&lt;/span&gt;&lt;span class="kwrd"&gt;="ddlCities_SelectedIndexChanged"&lt;/span&gt;&lt;span class="kwrd"&gt;&amp;gt;&lt;/span&gt;&lt;br /&gt;        &lt;span class="kwrd"&gt;&amp;lt;/&lt;/span&gt;&lt;span class="html"&gt;asp:DropDownList&lt;/span&gt;&lt;span class="kwrd"&gt;&amp;gt;&lt;/span&gt;&lt;br /&gt;      &lt;span class="kwrd"&gt;&amp;lt;/&lt;/span&gt;&lt;span class="html"&gt;ItemTemplate&lt;/span&gt;&lt;span class="kwrd"&gt;&amp;gt;&lt;/span&gt;&lt;br /&gt;    &lt;span class="kwrd"&gt;&amp;lt;/&lt;/span&gt;&lt;span class="html"&gt;asp:TemplateField&lt;/span&gt;&lt;span class="kwrd"&gt;&amp;gt;&lt;/span&gt;&lt;br /&gt;  &lt;span class="kwrd"&gt;&amp;lt;/&lt;/span&gt;&lt;span class="html"&gt;Columns&lt;/span&gt;&lt;span class="kwrd"&gt;&amp;gt;&lt;/span&gt;&lt;br /&gt;&lt;span class="kwrd"&gt;&amp;lt;/&lt;/span&gt;&lt;span class="html"&gt;asp:GridView&lt;/span&gt;&lt;span class="kwrd"&gt;&amp;gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span class="kwrd"&gt;&amp;lt;&lt;/span&gt;&lt;span class="html"&gt;asp:Label&lt;/span&gt; &lt;span class="attr"&gt;ID&lt;/span&gt;&lt;span class="kwrd"&gt;="lblCity"&lt;/span&gt; &lt;span class="attr"&gt;runat&lt;/span&gt;&lt;span class="kwrd"&gt;="server"&lt;/span&gt; &lt;span class="attr"&gt;Text&lt;/span&gt;&lt;span class="kwrd"&gt;="Label"&lt;/span&gt;&lt;span class="kwrd"&gt;&amp;gt;&lt;br /&gt;&amp;lt;/&lt;/span&gt;&lt;span class="html"&gt;asp:Label&lt;/span&gt;&lt;span class="kwrd"&gt;&amp;gt;&lt;/span&gt;&lt;/pre&gt;&lt;br /&gt;And here's the code behind:&lt;!-- code formatted by http://manoli.net/csharpformat/ --&gt;&lt;pre class="csharpcode"&gt;&lt;br /&gt;&lt;span class="kwrd"&gt;protected&lt;/span&gt; &lt;span class="kwrd"&gt;void&lt;/span&gt; Page_Load(&lt;span class="kwrd"&gt;object&lt;/span&gt; sender, EventArgs e)&lt;br /&gt;{&lt;br /&gt;   &lt;span class="kwrd"&gt;if&lt;/span&gt; (!IsPostBack)&lt;br /&gt;   {&lt;br /&gt;       &lt;span class="rem"&gt;// Create states array and bind it to Grid&lt;/span&gt;&lt;br /&gt;       ArrayList states = &lt;span class="kwrd"&gt;new&lt;/span&gt; ArrayList();&lt;br /&gt;&lt;br /&gt;       &lt;span class="kwrd"&gt;string&lt;/span&gt;[] cities = &lt;br /&gt;           &lt;span class="kwrd"&gt;new&lt;/span&gt; &lt;span class="kwrd"&gt;string&lt;/span&gt;[] { &lt;span class="str"&gt;"Portland"&lt;/span&gt;, &lt;span class="str"&gt;"Salem"&lt;/span&gt;, &lt;span class="str"&gt;"Eugene"&lt;/span&gt; };&lt;br /&gt;       State state = &lt;span class="kwrd"&gt;new&lt;/span&gt; State(&lt;span class="str"&gt;"OR"&lt;/span&gt;, cities);&lt;br /&gt;       states.Add(state);&lt;br /&gt;       cities = &lt;br /&gt;           &lt;span class="kwrd"&gt;new&lt;/span&gt; &lt;span class="kwrd"&gt;string&lt;/span&gt;[] { &lt;span class="str"&gt;"Seattle"&lt;/span&gt;, &lt;span class="str"&gt;"Tacoma"&lt;/span&gt;, &lt;span class="str"&gt;"Olympia"&lt;/span&gt; };&lt;br /&gt;       state = &lt;span class="kwrd"&gt;new&lt;/span&gt; State(&lt;span class="str"&gt;"WA"&lt;/span&gt;, cities);&lt;br /&gt;       states.Add(state);&lt;br /&gt;&lt;br /&gt;       &lt;span class="kwrd"&gt;this&lt;/span&gt;.gvStates.DataSource = states;&lt;br /&gt;       &lt;span class="kwrd"&gt;this&lt;/span&gt;.gvStates.DataBind();&lt;br /&gt;   }&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;&lt;span class="kwrd"&gt;protected&lt;/span&gt; &lt;span class="kwrd"&gt;void&lt;/span&gt; gvStates_RowCreated(&lt;span class="kwrd"&gt;object&lt;/span&gt; sender, &lt;br /&gt;    GridViewRowEventArgs e)&lt;br /&gt;{&lt;br /&gt;   &lt;span class="kwrd"&gt;if&lt;/span&gt; (!IsPostBack)&lt;br /&gt;   {&lt;br /&gt;       &lt;span class="kwrd"&gt;if&lt;/span&gt; (e.Row.RowType == DataControlRowType.DataRow)&lt;br /&gt;       {&lt;br /&gt;           &lt;span class="rem"&gt;// Bind drop down to cities&lt;/span&gt;&lt;br /&gt;           DropDownList ddl = &lt;br /&gt;             (DropDownList)e.Row.FindControl(&lt;span class="str"&gt;"ddlCities"&lt;/span&gt;);&lt;br /&gt;           ddl.DataSource = ((State)e.Row.DataItem).Cities;&lt;br /&gt;           ddl.DataBind();&lt;br /&gt;       }&lt;br /&gt;   }&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;&lt;span class="kwrd"&gt;protected&lt;/span&gt; &lt;span class="kwrd"&gt;void&lt;/span&gt; ddlCities_SelectedIndexChanged(&lt;span class="kwrd"&gt;object&lt;/span&gt; sender, &lt;br /&gt;    EventArgs e)&lt;br /&gt;{&lt;br /&gt;   &lt;span class="kwrd"&gt;this&lt;/span&gt;.lblCity.Text = ((DropDownList)sender).SelectedValue;&lt;br /&gt;}&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;This code should be more defensive with null checking, type checking and exception handling in place.  But, you get the idea of the general work flow (and now, so do I).&lt;br /&gt;&lt;br /&gt;A couple of points that I'd like to highlight:&lt;br /&gt;- AutoPostBack is required on the DropDownList in order to submit the page immediatlely opon selecting an item.  For some reason I thought if the event was there, that was all that was needed (time to come out of my WinForms haze).&lt;br /&gt;- Use the FindControl() method to grab a reference to the DropDown.&lt;br /&gt;- In this case RowCreated or RowDataBound would work for binding the DropDownList.  If you needed the State name to lookup cities, you would need to use RowDataBound.  However in this case, since the object we're bound to already has the cities, RowCreated works fine too.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/16183088-112665889706087381?l=webthingsconsidered.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://webthingsconsidered.blogspot.com/feeds/112665889706087381/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=16183088&amp;postID=112665889706087381' title='108 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/16183088/posts/default/112665889706087381'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/16183088/posts/default/112665889706087381'/><link rel='alternate' type='text/html' href='http://webthingsconsidered.blogspot.com/2005/09/dropdownlist-inside-gridview-or.html' title='DropDownList inside a GridView (or DataGrid)'/><author><name>Ryan Williams</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>108</thr:total></entry><entry><id>tag:blogger.com,1999:blog-16183088.post-112667471020136592</id><published>2005-09-13T21:37:00.000-07:00</published><updated>2005-09-13T22:11:51.340-07:00</updated><title type='text'>Atlas and LINQ</title><content type='html'>A couple of notable events (to me anyway) from PDC today.  Atlas and LINQ were both announced.&lt;br /&gt;&lt;br /&gt;&lt;a href="http://atlas.asp.net/"&gt;Atlas&lt;/a&gt; is Microsoft's much touted AJAX implementation.  I believe AJAX (and Atlas) has a bright future, and I'm looking forward to diving in to it deeper.  I just hope that developers don't start doing everything with Atlas without understanding what's going on under the hood, just because they can.&lt;br /&gt;&lt;br /&gt;&lt;a href="http://msdn.microsoft.com/netframework/future/linq/"&gt;LINQ&lt;/a&gt; is new to me, but looks to be the successor to C-Omega which I touched on briefly in my last post about &lt;a href="http://webthingsconsidered.blogspot.com/2005/09/object-persistence-in-net-padnug-83105.html"&gt;object persistence in .Net&lt;/a&gt;.  Being able to query both XML and relational data directly in the language, complete with compiler support, is a powerful idea which will hopefully make all that data access code a whole lot easier to write.&lt;br /&gt;&lt;br /&gt;More stuff to play with now.  Man, you sure can't ever stand still in this industry.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/16183088-112667471020136592?l=webthingsconsidered.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://webthingsconsidered.blogspot.com/feeds/112667471020136592/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=16183088&amp;postID=112667471020136592' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/16183088/posts/default/112667471020136592'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/16183088/posts/default/112667471020136592'/><link rel='alternate' type='text/html' href='http://webthingsconsidered.blogspot.com/2005/09/atlas-and-linq.html' title='Atlas and LINQ'/><author><name>Ryan Williams</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-16183088.post-112593630107051856</id><published>2005-09-05T07:41:00.000-07:00</published><updated>2005-09-05T11:18:04.560-07:00</updated><title type='text'>Object Persistence in .Net (PADNUG 8/31/05)</title><content type='html'>I have very little free time these days, but the timing/topic/speaker were the right combination to motivate me to go to my first &lt;a href="http://www.padnug.org/padnug/default.aspx"&gt;PADNUG&lt;/a&gt; (Portland area .Net user group) meeting last week.  We're using NHibernate for &lt;a href="http://www.networthiq.com/"&gt;NetworthIQ&lt;/a&gt; and I wanted to hear more opinions about it from the community. Plus, I didn't want to miss the chance to see &lt;a href="http://blogs.tedneward.com/"&gt;Ted Neward&lt;/a&gt; speak. I took a J2EE class from him a couple years ago and was utterly amazed at how much I learned in that week. Ted is one smart dude, he's probably the brighest developer I've come across in my career. Oh yeah, and since Ted has stated that &lt;a href="http://neward.net/ted/weblog/index.jsp?date=20040721"&gt;"Object-relational technologies are the Vietnam of the Computer Science industry,"&lt;/a&gt; I knew he'd have some interesting thoughts on the subject.&lt;br /&gt;&lt;br /&gt;In the spirt of agile development, Ted gave an "agile" presentation on Object Persistence in .Net. Below are my notes, most of which comes from from his "agile" PowerPoint (Notepad) presentation used for the talk.&lt;br /&gt;&lt;br /&gt;&lt;h2&gt;Object Persistence in .NET&lt;/h2&gt;&lt;h3&gt;Key Points&lt;/h3&gt;&lt;ul&gt;&lt;li&gt;Most modern languages are object oriented&lt;br /&gt;&lt;/li&gt;&lt;li&gt;Objects (fields) --&gt; databases (columns)&lt;br /&gt;&lt;/li&gt;&lt;li&gt;Should match up?  Not so much (object relational impedence)&lt;br /&gt;&lt;/li&gt;&lt;li&gt;The RDBMS is governed by the relational calculus (Chris Date)&lt;/li&gt;&lt;li&gt;When trying to bridge from model (object --&gt; hierarchichal, object --&gt; relational) you run into object impedence&lt;br /&gt;&lt;/li&gt; &lt;li&gt;Models don't slave well to other models&lt;br /&gt;&lt;/li&gt;&lt;li&gt;Microsoft Research is tackling it&lt;/li&gt;&lt;/ul&gt;&lt;h3&gt;ADO.NET issues&lt;/h3&gt;&lt;ul&gt;&lt;li&gt;ChrisT sez objects are cooler than relations (we work with objects mostly)&lt;br /&gt;&lt;/li&gt;&lt;li&gt;no compiler support for when you f*ck up your SQL (latebound)&lt;br /&gt;&lt;/li&gt;&lt;li&gt;dangerous security implications (SQL injection)&lt;br /&gt;&lt;/li&gt;&lt;li&gt;tedious (lots of typing)&lt;br /&gt;&lt;/li&gt;&lt;li&gt;smells of DAO (rows and columns not objects)&lt;br /&gt;&lt;/li&gt;&lt;li&gt;type mismatching&lt;br /&gt;&lt;/li&gt;&lt;li&gt;nulls/nullable/nullable types (fixed in 2.0, right?)&lt;br /&gt;&lt;/li&gt;&lt;li&gt;connections and connection pooling&lt;br /&gt;&lt;/li&gt;&lt;li&gt;transactions&lt;br /&gt;&lt;/li&gt;&lt;li&gt;entlib can help (not an end-all)&lt;br /&gt;&lt;/li&gt;&lt;/ul&gt;&lt;h3&gt;DataSets&lt;/h3&gt;&lt;ul&gt;&lt;li&gt;a big bowl object: DOM for data people&lt;br /&gt;&lt;/li&gt;&lt;li&gt;disconnected (+ connection-management, sort of)&lt;br /&gt;&lt;/li&gt;&lt;li&gt;in-memory options&lt;br /&gt;&lt;/li&gt;&lt;li&gt;"strongly-typed" DataSets aren't (?)&lt;br /&gt;&lt;/li&gt;&lt;li&gt;boxing/unboxing overhead&lt;br /&gt;&lt;/li&gt;&lt;li&gt;memory footprint (God help the PocketPC)&lt;br /&gt;&lt;/li&gt;&lt;li&gt;eager-fetched data retrieval strategy&lt;br /&gt;&lt;/li&gt;&lt;li&gt;Does it provide much more than ADO.NET (not really)&lt;br /&gt;&lt;/li&gt;&lt;/ul&gt;&lt;h3&gt;ActiveDirectory&lt;/h3&gt;&lt;ul&gt;&lt;li&gt;some support for early-bound&lt;br /&gt;&lt;/li&gt;&lt;li&gt;not general-purpose&lt;br /&gt;&lt;/li&gt;&lt;li&gt;dynamic schema/schema manipulation after deployment&lt;br /&gt;&lt;/li&gt;&lt;/ul&gt;&lt;h3&gt;OODBMS&lt;/h3&gt;&lt;ul&gt;&lt;li&gt;no object-relational impedance mismatch!!&lt;br /&gt;&lt;/li&gt;&lt;li&gt;behavior and data combination/disconnect&lt;br /&gt;&lt;/li&gt;&lt;li&gt;whose definition of OO do we use?&lt;br /&gt;&lt;/li&gt;&lt;li&gt;how do we import into OODBMS&lt;br /&gt;&lt;/li&gt;&lt;li&gt;reporting? It's up to you to do it all&lt;br /&gt;&lt;/li&gt;&lt;li&gt;data access approaches mean object access approaches&lt;br /&gt;&lt;/li&gt;&lt;li&gt;have to navigation objects as opposed to the SQL join approach&lt;br /&gt;&lt;/li&gt;&lt;li&gt;dasBlog, I mean regexp, kicks ass, sez ScottH (don't ask about reporting on blog entries)&lt;br /&gt;&lt;/li&gt;&lt;/ul&gt;&lt;h3&gt;XML and related tools&lt;/h3&gt;&lt;ul&gt;&lt;li&gt;querying/reporting difficult across files&lt;br /&gt;&lt;/li&gt;&lt;li&gt;"objects and xml go together like chocolate &amp;amp; PB" (nope)&lt;br /&gt;&lt;/li&gt;&lt;li&gt;xml is hierarchical, objects can by cyclical&lt;br /&gt;&lt;/li&gt;&lt;li&gt;XML needs single root, SOAP provides SOAP body element as a cheat (SOAP 1.1)&lt;br /&gt;&lt;/li&gt;&lt;li&gt;Schema committee wrestled with it for 2.5 years and punted&lt;br /&gt;&lt;/li&gt;&lt;/ul&gt;&lt;h3&gt;&lt;a href="http://wiki.nhibernate.org/display/NH/Home"&gt;Nhibernate&lt;/a&gt;&lt;/h3&gt;&lt;ul&gt;&lt;li&gt;(there are lots of ORM tools, but we mainly discussed NHibernate)&lt;br /&gt;&lt;/li&gt;&lt;li&gt;O/R-M: match objects to database stuff&lt;/li&gt; &lt;li&gt;Reflection-based schmutzer (serializer)&lt;br /&gt;&lt;/li&gt;&lt;li&gt;lazy vs. eager evaluation (either way can run into problems with memory issues for eager and db/network overhead for lazy)&lt;br /&gt;&lt;/li&gt;&lt;li&gt;Is it worth the price (saved dev time) for not being able to decide when to fetch data&lt;/li&gt;&lt;li&gt;question of how deeply coupled (at some point you have to be coupled)&lt;br /&gt;&lt;/li&gt;&lt;li&gt;is it too chatty?  Will it scale?&lt;br /&gt;&lt;/li&gt;&lt;li&gt;prefer pulling more data (overhead of making calls to db can be costly)&lt;br /&gt;&lt;/li&gt;&lt;/ul&gt;&lt;h3&gt;C-omega&lt;/h3&gt;&lt;ul&gt;&lt;li&gt;Microsoft research project&lt;br /&gt;&lt;/li&gt;&lt;li&gt;elevate relational concepts to the language&lt;br /&gt;&lt;/li&gt;&lt;li&gt;compiler support&lt;br /&gt;&lt;/li&gt;&lt;li&gt;ORM need not apply&lt;br /&gt;&lt;/li&gt;&lt;li&gt;when you gen the code, the types are created&lt;/li&gt;&lt;/ul&gt;&lt;br /&gt;Overall, it was a good presentation. Not a lot of new stuff for me. Most of this I had already known from my previous research on NHibernate, but I picked up some tidbits that you can only get in a presentation/discussion format, and not just reading. C-omega looked pretty sweet, but anything like it in a production release is a long ways out.&lt;br /&gt;&lt;br /&gt;The biggest thing I took away is that ORM's can be a big help, but be wary, they're not perfect. If you own the database schema, and it's relatively straightforward (i.e. don't have to make seven joins to get your data), you can have good success with them. I'd say that matches up pretty well with my experience using NHibernate so far. For NetworthIQ, we'll have to revisit the scaling issue at some point, probably adding some profiling and doing some more performance testing. But, so far I'm pleased with it.&lt;br /&gt;&lt;br /&gt;&lt;div class="tag_list"&gt;Tags: &lt;span id="post-tags"&gt;&lt;a href="http://technorati.com/tag/padnug" rel="tag"&gt;padnug&lt;/a&gt; &lt;a href="http://technorati.com/tag/nhibernate" rel="tag"&gt;nhibernate&lt;/a&gt; &lt;a href="http://technorati.com/tag/ORM" rel="tag"&gt;ORM&lt;/a&gt; &lt;/span&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/16183088-112593630107051856?l=webthingsconsidered.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://webthingsconsidered.blogspot.com/feeds/112593630107051856/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=16183088&amp;postID=112593630107051856' title='6 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/16183088/posts/default/112593630107051856'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/16183088/posts/default/112593630107051856'/><link rel='alternate' type='text/html' href='http://webthingsconsidered.blogspot.com/2005/09/object-persistence-in-net-padnug-83105.html' title='Object Persistence in .Net (PADNUG 8/31/05)'/><author><name>Ryan Williams</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>6</thr:total></entry><entry><id>tag:blogger.com,1999:blog-16183088.post-112581198858517773</id><published>2005-09-03T22:29:00.000-07:00</published><updated>2005-09-03T22:33:57.833-07:00</updated><title type='text'>And then there was silence.... (clearing Bloglines backlog)</title><content type='html'>For anyone who follows a significant number of blogs, especially in &lt;a href="http://www.bloglines.com"&gt;Bloglines&lt;/a&gt;, you probably start marking a lot of posts as new in order to come back to them later.  I had a really bad habit of this, especially since the clipping feature is too cumbersome to use effectively.  So, over the last couple of days, I've been cleaning them out, transferring a few to del.icio.us, but mostly just skimming and and clearing.  Now, my feeds are all read.  A rare sight indeed to have no new items, kind of refreshing.  I'll be able to get through new items much more quickly now, without having to wade through the old stuff.  And this time, no more marking as new.  It either gets read, or goes to del.icio.us immediatlely for later reading.&lt;br /&gt;&lt;br /&gt;Now, about that backlog in del.icio.us.... ahh, that's ok, at least I don't have to see it every time I get online like I do with Bloglines.&lt;br /&gt;&lt;br /&gt;&lt;div class="tag_list"&gt;Tags: &lt;span id="post-tags"&gt;&lt;a href="http://technorati.com/tag/bloglines" rel="tag"&gt;bloglines&lt;/a&gt; &lt;a href="http://technorati.com/tag/productivity" rel="tag"&gt;productivity&lt;/a&gt; &lt;/span&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/16183088-112581198858517773?l=webthingsconsidered.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://webthingsconsidered.blogspot.com/feeds/112581198858517773/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=16183088&amp;postID=112581198858517773' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/16183088/posts/default/112581198858517773'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/16183088/posts/default/112581198858517773'/><link rel='alternate' type='text/html' href='http://webthingsconsidered.blogspot.com/2005/09/and-then-there-was-silence-clearing.html' title='And then there was silence.... (clearing Bloglines backlog)'/><author><name>Ryan Williams</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-16183088.post-112563740518623176</id><published>2005-09-01T21:40:00.000-07:00</published><updated>2005-09-02T08:47:34.716-07:00</updated><title type='text'>YAB (Yet another blog)</title><content type='html'>I know, I know, real original subject there.  Oh well, it's all I could come up with.  &lt;br /&gt;&lt;br /&gt;It's time to throw my hat into the blogosphere.  I've been in the stands for too long.  Though i've been blogging for a month or so for &lt;a href="http://www.networthiq.com"&gt;NetworthIQ&lt;/a&gt; (and &lt;a href="networthiq.blogspot.com"&gt;blog&lt;/a&gt;), it's time for a personal/technical blog.  I'm using blogger because I'm cheap and I don't want to pay for hosting (what else would you expect from someone working on a personal finance app), plus they have awesome templates (I'm a big fan of &lt;a href="http://www.simplebits.com"&gt;Dan Cederholm&lt;/a&gt;, &lt;a href="http://www.stopdesign.com/"&gt;Doug Bowman&lt;/a&gt;, and &lt;a href="http://www.mezzoblue.com"&gt;Dave Shea&lt;/a&gt;).&lt;br /&gt;&lt;br /&gt;So, what's this blog about you ask?  Well, from the title you probably guessed something about the web.  You're right.  I have a passion for the web, and web development, so I will primarily focus on those topics.  My interests in the web are wide ranging, from the front end to the back and everything in-between (entrepreneurship, marketing, project management, etc.).  I'll also probably throw in a dash of personal stuff, maybe some personal finance posts, the periodic political ramble, and the occaisonal sports rant (Go Ducks!).&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/16183088-112563740518623176?l=webthingsconsidered.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://webthingsconsidered.blogspot.com/feeds/112563740518623176/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=16183088&amp;postID=112563740518623176' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/16183088/posts/default/112563740518623176'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/16183088/posts/default/112563740518623176'/><link rel='alternate' type='text/html' href='http://webthingsconsidered.blogspot.com/2005/09/yab-yet-another-blog.html' title='YAB (Yet another blog)'/><author><name>Ryan Williams</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry></feed>
