<?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-5263682907420927513</id><updated>2011-11-27T17:28:14.365-08:00</updated><category term='email'/><category term='cloud atlanta'/><category term='python'/><category term='fail productmanagement'/><category term='data'/><category term='data location google python twitter'/><category term='twitter'/><category term='travel delta'/><title type='text'>Technical Credit</title><subtitle type='html'>Technical debt is a term coined by Ward Cunningham to describe a situation where the architecture of a large software system is designed and developed too hastily. (&lt;a href="http://en.wikipedia.org/wiki/Technical_debt"&gt;http://en.wikipedia.org/wiki/Technical_debt&lt;/a&gt;)

I believe in Technical Credit, wherein systems are developed very thoughtfully, allowing you to continue building without having to re-do major subsystems along the way.</subtitle><link rel='http://schemas.google.com/g/2005#feed' type='application/atom+xml' href='http://technicalcredit.blogspot.com/feeds/posts/default'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5263682907420927513/posts/default?max-results=100'/><link rel='alternate' type='text/html' href='http://technicalcredit.blogspot.com/'/><link rel='hub' href='http://pubsubhubbub.appspot.com/'/><author><name>Niel</name><uri>http://www.blogger.com/profile/11605496939523809343</uri><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>13</openSearch:totalResults><openSearch:startIndex>1</openSearch:startIndex><openSearch:itemsPerPage>100</openSearch:itemsPerPage><entry><id>tag:blogger.com,1999:blog-5263682907420927513.post-1504150429742218105</id><published>2011-04-13T20:18:00.000-07:00</published><updated>2011-04-13T20:18:17.764-07:00</updated><title type='text'>New things afoot.</title><content type='html'>I &lt;a href="http://twitter.com/niel/status/56057661917102080"&gt;tweeted&lt;/a&gt; recently that I felt as though a fortune cookie was coming true, though not a specific fortune that I had actually received at a Chinese restaurant. What I meant was that several things had seemingly fallen into my lap, though they were things that I hadn't really planned on, and in at least one case, wasn't sure I really wanted. That last one I don't think I will ever be able to speak publicly about, but another one I hope I will be able to blog about by the end of the week. Stay tuned!&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5263682907420927513-1504150429742218105?l=technicalcredit.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://technicalcredit.blogspot.com/feeds/1504150429742218105/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5263682907420927513&amp;postID=1504150429742218105' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5263682907420927513/posts/default/1504150429742218105'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5263682907420927513/posts/default/1504150429742218105'/><link rel='alternate' type='text/html' href='http://technicalcredit.blogspot.com/2011/04/new-things-afoot.html' title='New things afoot.'/><author><name>Niel</name><uri>http://www.blogger.com/profile/11605496939523809343</uri><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-5263682907420927513.post-6592989306382183057</id><published>2010-09-27T14:59:00.000-07:00</published><updated>2010-09-27T14:59:07.656-07:00</updated><title type='text'>I hear there's a new twitter.com.</title><content type='html'>The tweetosphere has been deluged with talk about the new twitter.com. Out of curiosity I went and looked today, and, yes, I have it. A couple weeks ago it was all about Google live search. Nice, sure, fantastic technology.&lt;br /&gt;&lt;br /&gt;But I don't ever go to twitter.com or google.com in my web browser. Both services have exposed their functionality via APIs, and I use tools that access them via their APIs. So I really don't think fancy new skins for Google or Twitter will affect me at all, besides forcing me to ignore commentary about how great they are or how someone doesn't have the new new yet.&lt;br /&gt;&lt;br /&gt;In this regard, I guess I have to agree with Wired: &lt;a href="http://www.wired.com/magazine/2010/08/ff_webrip/all/1"&gt;the web is dead&lt;/a&gt;.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5263682907420927513-6592989306382183057?l=technicalcredit.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://technicalcredit.blogspot.com/feeds/6592989306382183057/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5263682907420927513&amp;postID=6592989306382183057' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5263682907420927513/posts/default/6592989306382183057'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5263682907420927513/posts/default/6592989306382183057'/><link rel='alternate' type='text/html' href='http://technicalcredit.blogspot.com/2010/09/i-hear-theres-new-twittercom.html' title='I hear there&apos;s a new twitter.com.'/><author><name>Niel</name><uri>http://www.blogger.com/profile/11605496939523809343</uri><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-5263682907420927513.post-4537962912672621216</id><published>2010-04-28T15:34:00.000-07:00</published><updated>2010-07-14T19:04:41.106-07:00</updated><title type='text'>Stop stealing my IP address!</title><content type='html'>I have had sporadic network problems at my client site.&amp;nbsp; On certain days, it seemed like my network connection would partially drop every 10 to 15 minutes. By "partially", I mean that some connections would stay up with no problem (like to an IRC channel, or connections to Google), but everything else would disappear, both locally and on the internet&lt;br /&gt;&lt;br /&gt;My laptop worked fine on other networks, but it didn't work on any port at the client.&amp;nbsp; But this was only on certain days.&amp;nbsp; For a while it seemed like it was just on Tuesdays.&amp;nbsp; The only way I could get it to come back was to either restart &lt;a href="http://projects.gnome.org/NetworkManager/" linkindex="56"&gt;NetworkManager&lt;/a&gt; or physically unplug and replug the ethernet cable. &lt;br /&gt;&lt;br /&gt;With a little help from a number of online friends, I figured out the problem was an IP address conflict.&amp;nbsp; Switching to traditional ifup/ifdown, the log showed me exactly what was happening... the address DHCP was handing out to me was already taken by someone else.&amp;nbsp; (&lt;span style="color: black;"&gt;&lt;span style="font-size: small;"&gt;00:08:02:8a:1b:04, I'm lookin' at you. Stop hard-coding your ip in the DHCP range!)&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="color: black;"&gt;&lt;span style="font-size: small;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="color: black;"&gt;&lt;span style="font-size: small;"&gt;Thanks to advice from the enterprising Matt Hunt, I used &lt;a href="http://www.alobbs.com/macchanger/" linkindex="57"&gt;GNU Mac Changer&lt;/a&gt; to change my MAC address so that DHCP would hand me a different IP address, and everything now works fine.&lt;/span&gt;&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5263682907420927513-4537962912672621216?l=technicalcredit.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://technicalcredit.blogspot.com/feeds/4537962912672621216/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5263682907420927513&amp;postID=4537962912672621216' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5263682907420927513/posts/default/4537962912672621216'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5263682907420927513/posts/default/4537962912672621216'/><link rel='alternate' type='text/html' href='http://technicalcredit.blogspot.com/2010/04/stop-stealing-my-ip-address.html' title='Stop stealing my IP address!'/><author><name>Niel</name><uri>http://www.blogger.com/profile/11605496939523809343</uri><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-5263682907420927513.post-7298978868165056420</id><published>2010-02-24T13:18:00.000-08:00</published><updated>2010-02-24T13:18:44.642-08:00</updated><title type='text'>IT FAIL</title><content type='html'>I'm not normally the kind of guy to complain about tech support, since I have worked in that business and know it's not easy. But the corporate IT process is just fundamentally broken.&amp;nbsp; Let me describe.&lt;br /&gt;&lt;br /&gt;My laptop started freezing shortly after login time. Sounds like bad RAM to me, so I boot up the wonderful &lt;a href="http://www.memtest86.com/" linkindex="130"&gt;memtest86+ &lt;/a&gt;to see what it says.&amp;nbsp; Sure enough, bad RAM,&amp;nbsp; So I contact our helpdesk and start the process.&lt;br /&gt;&lt;br /&gt;A very nice person in the Philippines picked up the other end of my IM session.&amp;nbsp; I explained the situation, and he said "Ok" a lot. When I described how I had run memtest86+ and discovered the bad RAM, his inscrutable response was "I can check that for you." I wonder how he's going to do that, exactly. Anyway, he issued me a ticket number and would have ended it there if I had not asked him what to expect next (a call from someone more local, apparently).&lt;br /&gt;&lt;br /&gt;I got a call from someone at least in the same country with me, who told me I had to call Lenovo, since they have the warranty on this particular laptop. I'm not sure why I have to call them, since they're supposed to be the IT department around here, but sure, I'm game.&lt;br /&gt;&lt;br /&gt;So I called up &lt;a href="http://www.lenovo.com/" linkindex="131"&gt;Lenovo&lt;/a&gt;, who helpfully looked up my laptop and told me I must have some third-party RAM since it only shipped with 2 gigs and I now have 4. So back to my IT guy, who told me to open up the laptop and pull out the third-party RAM and see if that solves the problem.&lt;br /&gt;&lt;br /&gt;Now, I've opened up a laptop before (an old iBook, and boy was that &lt;a href="http://www.faqintosh.com/risorse/en/guides/hw/ibook/g4hd/" linkindex="132"&gt;scary&lt;/a&gt;), and I've seen a ThinkPad splayed open before, and I have to say that scared me too.&amp;nbsp; But it turns out it was fairly easy, since it's just RAM and not a whole motherboard, which I had replaced twice on my old ThinkPad.&lt;br /&gt;&lt;br /&gt;Anyway, I pulled out the &lt;a href="http://www.kingston.com/" linkindex="133"&gt;Kingston&lt;/a&gt; RAM and re-ran memtest86+, proving that the Kingston RAM was bad. Back on the phone with IT, he told me I had to call the reseller who put that RAM into it originally. Again, I'm not sure why I have to call, I don't have a relationship with the vendor; that's why we have an IT department, right?&lt;br /&gt;&lt;br /&gt;Now I think I will have a new 2 gig Kingston RAM stick coming to me in the mail, and then I have to ship the original stick back to Kingston. Again, I'm not sure why I have to ship the thing, since I haven't ever bought anything from Kingston, but I'll do anything at this point.&lt;br /&gt;&lt;br /&gt;What should have happened? I don't really have a complaint about the guy in Manila, there's not much he can do from the other side of the planet, and besides I still feel a little guilty about &lt;a href="http://en.wikipedia.org/wiki/Philippine-American_War" linkindex="134"&gt;what we did to them&lt;/a&gt; a century ago. But local IT guy should have looked up my laptop in his asset management system and seen that I have some third-party RAM, told me that either one of them could be bad, so I could check which one was wrong to start with. After I determined that the Kingston one was bad, he should have called up the reseller himself and then called me back to tell me he was having new RAM shipped to me with a return shipping envelope for the old one.&lt;br /&gt;&lt;br /&gt;I mean, really. This is why we have IT, isn't it?&amp;nbsp; What if I didn't know anything about computers?&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5263682907420927513-7298978868165056420?l=technicalcredit.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://technicalcredit.blogspot.com/feeds/7298978868165056420/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5263682907420927513&amp;postID=7298978868165056420' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5263682907420927513/posts/default/7298978868165056420'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5263682907420927513/posts/default/7298978868165056420'/><link rel='alternate' type='text/html' href='http://technicalcredit.blogspot.com/2010/02/it-fail.html' title='IT FAIL'/><author><name>Niel</name><uri>http://www.blogger.com/profile/11605496939523809343</uri><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-5263682907420927513.post-4985926998613448956</id><published>2010-01-19T13:20:00.000-08:00</published><updated>2010-01-19T13:29:12.401-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='travel delta'/><title type='text'>The Problem with Zone 2</title><content type='html'>For the last couple of months I've been commuting weekly from my home near Atlanta to Dallas. I pretty much always take the same two flights -- I'm even starting to recognize some of my fellow passengers.&lt;br /&gt;&lt;br /&gt;On each of these more than a dozen flights so far, &lt;span style="font-style: italic;"&gt;exactly&lt;/span&gt; the same thing has happened: more than half the passengers are listed for an upgrade. The planes on this route typically seat about 140 passengers, and the upgrade list always has at least 75, sometimes more, passengers on it.&lt;br /&gt;&lt;br /&gt;For those of you who are not familiar with Delta's upgrade policies, that means that 75 or more passengers on the flight are SkyMiles or SkyTeam Elite members (Silver, Gold, Platinum, or the new Diamond). The lucky one or two who get the upgrade get to board in zone 1; the rest get to board in zone 2.&lt;br /&gt;&lt;br /&gt;To the business traveler, being able to board in zone 2 is important. It means that you have a chance of getting your roll-aboard bag into an overhead bin. Usually, you have a really good chance, because there are only some 25 of you.  The seven zones of passengers behind you are the occasional travelers who won't be too bothered if they have to check their bags.&lt;br /&gt;&lt;br /&gt;This all works fairly well on the typical flight. Zone 1 boards, gets their free drinks and hangs up their coats. Zone 2 boards and puts their bags in the overheads. Zones 3 through 9 get on board and try to find an empty bin for their stuff.&lt;br /&gt;&lt;br /&gt;Do you see the problem?  With 75 or more people in Zone 2, quite a few of them aren't going to find room in the overhead bins. So, to help increase the odds, &lt;span style="font-style: italic;"&gt;all&lt;/span&gt; of them try and get to the front of the line when zone 2 is called. Once, just once, I had a gate agent call zone 2 by rows, which was a decent way to handle the traffic jam.&lt;br /&gt;&lt;br /&gt;But there needs to be a better solution, because this does not account for different levels of elite status within zone 2.  Remember how Silver, Gold, Platinum, and Diamond members all board in the same zone? So it turns out a lowly Silver could get a bin for his bag while an exalted Diamond has to check his.&lt;br /&gt;&lt;br /&gt;My hack for this problem is to check my bags and board some time well after zone 2.  It's liberating to sit out the medallion crush, and just stroll on sans bag. Sure, I have to wait for my bag to show up, but it's just not worth the hassle of trying to carry it on.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5263682907420927513-4985926998613448956?l=technicalcredit.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://technicalcredit.blogspot.com/feeds/4985926998613448956/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5263682907420927513&amp;postID=4985926998613448956' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5263682907420927513/posts/default/4985926998613448956'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5263682907420927513/posts/default/4985926998613448956'/><link rel='alternate' type='text/html' href='http://technicalcredit.blogspot.com/2010/01/problem-with-atl-dfw-atl-circuit.html' title='The Problem with Zone 2'/><author><name>Niel</name><uri>http://www.blogger.com/profile/11605496939523809343</uri><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-5263682907420927513.post-317483108218919829</id><published>2010-01-13T12:31:00.000-08:00</published><updated>2010-01-13T12:38:20.281-08:00</updated><title type='text'>On the road again, again.</title><content type='html'>In an unexpected turn of events, as of mid-November of last year I find myself back in consulting and immediately back on the road at a major client for a long-term project. It's been interesting to find myself back in place that I never expected to be again: commuting by air and living in a hotel for weeks on end.&lt;br /&gt;&lt;br /&gt;I will try to find something interesting and relevant to blog about in this space.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5263682907420927513-317483108218919829?l=technicalcredit.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://technicalcredit.blogspot.com/feeds/317483108218919829/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5263682907420927513&amp;postID=317483108218919829' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5263682907420927513/posts/default/317483108218919829'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5263682907420927513/posts/default/317483108218919829'/><link rel='alternate' type='text/html' href='http://technicalcredit.blogspot.com/2010/01/on-road-again-again.html' title='On the road again, again.'/><author><name>Niel</name><uri>http://www.blogger.com/profile/11605496939523809343</uri><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-5263682907420927513.post-5276235124247084340</id><published>2009-07-24T06:46:00.000-07:00</published><updated>2009-07-24T08:14:53.384-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='fail productmanagement'/><title type='text'>Product feedback FAIL</title><content type='html'>I got the following spammy email today. All &lt;span style="font-weight: bold;"&gt;bold&lt;/span&gt; emphasis is in the original, and all names have been &lt;span style="font-style: italic;"&gt;redacted&lt;/span&gt;.&lt;br /&gt;&lt;br /&gt;&lt;blockquote&gt;Subject: &lt;span style="font-style: italic;"&gt;company name redacted&lt;/span&gt; invites you to contep-test [sic] new &lt;span style="font-style: italic;"&gt;company name redacted&lt;/span&gt; products&lt;br /&gt;&lt;br /&gt;Dear niel,&lt;br /&gt;&lt;br /&gt;The uncanny ability of &lt;span style="font-style: italic;"&gt;company name redacted&lt;/span&gt; traders to predict the future is legendary ;-) That's why the folks at the &lt;span style="font-style: italic;"&gt;company name redacted&lt;/span&gt;  company, creators of the world-famous &lt;span style="font-style: italic;"&gt;product name redacted&lt;/span&gt;, are eager for your feedback on some of their new product concepts.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-style: italic; font-weight: bold;"&gt;company name redacted&lt;/span&gt;&lt;span style="font-weight: bold;"&gt; is offering $2,400 to be shared by those of you who will offer the most insightful feedback on 15 of its new product ideas.&lt;/span&gt; Only 200 of you will be selected to participate, so your chance of sharing the prize is pretty good! By participating, you will also have an exclusive preview of some new food products that might soon be on America's shelves, and which you'll have helped refine and optimize with your feedback!&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;The innovative collaboration platform we've developed for this purpose allows you to comment and rate product ideas, and also rate each other's feedback! &lt;/span&gt;The exercise is divided into four phases over 2 weeks starting next monday July 27th, but each stage offers its own set of prizes and is designed to require just a few minutes of your precious time: Commenting on the product concepts, rating the best ones, rating other people's feedback, and taking a short survey.&lt;br /&gt;&lt;br /&gt;If you are interested in participating to this cutting-edge research effort on concepts for a share of the $2,400 reward, please&lt;span style="font-weight: bold;"&gt; register now at &lt;/span&gt;&lt;span style="font-style: italic; font-weight: bold;"&gt;URL redacted&lt;/span&gt;. It will be fun!&lt;br /&gt;&lt;br /&gt;Best regards,&lt;br /&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;company name redacted&lt;/span&gt; Team&lt;/blockquote&gt;&lt;br /&gt;Let me enumerate the FAILs.&lt;br /&gt;&lt;ol&gt;&lt;li&gt;The subject line contains a typo.  What is a "contept-test"? My phish-filter tingled immediately.&lt;br /&gt;&lt;/li&gt;&lt;li&gt;A smiley in a commercial solicitation? Another phish indicator. If you want to be taken seriously, be serious.&lt;br /&gt;&lt;/li&gt;&lt;li&gt;Ooh, $2400, an arbitrary monetary payout! Oh wait, that amount is to be shared. Among the 200 of us who share the most insightful feedback. So that means 200 arbitrarily selected participants will each get $12. Hooray, I can finally get my mom that operation. Hey, giant corporation, you're offering only $12 for valuable insight? You're off by an order of magnitude.&lt;br /&gt;&lt;/li&gt;&lt;/ol&gt;The URL seems valid, though I did not click on it. The organization running the survey is a real organization, though not one that has previously done commercial product research as far as I know. The organization on whose behalf they are performing this research is also a real food manufacturer.&lt;br /&gt;&lt;br /&gt;Forgive me if I don't participate.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;UPDATE:&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;I had an email conversation with the CEO of the organization running this survey, and I'd like to make a few additional points.&lt;br /&gt;&lt;br /&gt;First, I did not mean to imply that this message was a spam or phish, only that its content made my spidey-sense tingle in ways that spam and phish usually does. I am a registered member (although non-active) of the organization, but I do not recall having previously received any emails of this type from them.&lt;br /&gt;&lt;br /&gt;Second, it seems I misinterpreted some of the terms. The $2400 is not to be divided 200 ways; rather, only 200 people will be selected to participate, and the reward will be divided among the top entries. So while the actual payout per winner is indeed higher than $12, I believe that &lt;span style="font-style: italic;"&gt;statistically&lt;/span&gt; the expected payout is still $12 per person.&lt;br /&gt;&lt;br /&gt;Finally, speaking as a product manager, I would never offer this kind of payout for product feedback. It's been a while since I reviewed the literature on this, but I believe that you would get better feedback either by offering no cash, or by offering a donation to the participant's preferred charity. Psychologically, by offering a cash reward you change the feedback profile, and you actually would get a lower participation rate.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5263682907420927513-5276235124247084340?l=technicalcredit.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://technicalcredit.blogspot.com/feeds/5276235124247084340/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5263682907420927513&amp;postID=5276235124247084340' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5263682907420927513/posts/default/5276235124247084340'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5263682907420927513/posts/default/5276235124247084340'/><link rel='alternate' type='text/html' href='http://technicalcredit.blogspot.com/2009/07/product-feedback-fail.html' title='Product feedback FAIL'/><author><name>Niel</name><uri>http://www.blogger.com/profile/11605496939523809343</uri><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-5263682907420927513.post-8205340761018113818</id><published>2009-07-22T06:33:00.001-07:00</published><updated>2009-07-22T07:23:00.022-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='data location google python twitter'/><title type='text'>Location data on your.flowingdata</title><content type='html'>Yesterday &lt;a href="http://technicalcredit.blogspot.com/2009/07/experiments-with-flowing-data.html"&gt;I posted&lt;/a&gt; about how I am using &lt;a href="http://your.flowingdata.com/"&gt;your.flowingdata&lt;/a&gt; to track my email statistics. Today, I will go into the details of how I am tracking my location using &lt;a href="http://www.google.com/latitude/"&gt;Google Latitude&lt;/a&gt; and YFD.&lt;br /&gt;&lt;br /&gt;The first step was to enable Google Latitude on my BlackBerry, which I did quite some time ago. Latitude is an option in the &lt;a href="http://www.google.com/mobile/products/maps.html"&gt;mobile version of Google Maps&lt;/a&gt; that reports your location back to Google, and tells you the location of other members of your social network. A Google search told me that &lt;a href="http://radar.oreilly.com/2009/05/googles-sneaky-launch-of-latitudes-location-sharing-api.html"&gt;there is an API&lt;/a&gt; that lets you access this location information in KML or JSON format.  I decided to use the JSON version, since Python has a couple of different JSON libraries. I picked &lt;a href="http://code.google.com/p/simplejson/"&gt;simplejson&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;So, what I wanted was to tell YFD where I am, at least as far as Latitude knows.  Here's how I did it:&lt;br /&gt;&lt;br /&gt;&lt;blockquote&gt;&lt;code&gt;&lt;/code&gt;&lt;pre&gt;#!/usr/bin/python&lt;br /&gt;&lt;br /&gt;import twitter, simplejson, urllib&lt;br /&gt;&lt;br /&gt;# set some options&lt;br /&gt;options = {}&lt;br /&gt;options['twitteruser'] = 'my Twitter username'&lt;br /&gt;options['twitterpass'] = 'my Twitter password'&lt;br /&gt;options['latitudeid'] = 'my Google Latitude ID'&lt;br /&gt;&lt;br /&gt;# in case you don't want to hard code your password in the script&lt;br /&gt;if options['twitterpass'] == None or options['twitterpass'] == '':&lt;br /&gt;     options['twitterpass'] = getpass.getpass('Twitter password:')&lt;br /&gt;&lt;br /&gt;# get your location from Google Latitude&lt;br /&gt;url = 'http://www.google.com/latitude/apps/badge/api?type=json&amp;amp;user=' +&lt;br /&gt;  options['latitudeid']&lt;br /&gt;result = simplejson.load(urllib.urlopen(url))&lt;br /&gt;coordinates = result['features'][0]['geometry']['coordinates']&lt;br /&gt;lon =  coordinates[0]&lt;br /&gt;lat =  coordinates[1]&lt;br /&gt;location = result['features'][0]['properties']['reverseGeocode']&lt;br /&gt;&lt;br /&gt;# connect to twitter and post a message to @yfd&lt;br /&gt;api = twitter.Api(options['twitteruser'],options['twitterpass'])&lt;br /&gt;status = api.PostDirectMessage('yfd','location %f,%f (%s)' % (lon, lat, location))&lt;/pre&gt;&lt;/blockquote&gt;A nice optimization I should add would be to cache the location and only tweet it if it has changed.&lt;br /&gt;&lt;br /&gt;Shortly after I &lt;a href="http://twitter.com/niel/status/2688899368"&gt;tweeted&lt;/a&gt; about this script, Nathan &lt;a href="http://twitter.com/yfd/status/2689561284"&gt;tweeted&lt;/a&gt; back the following:&lt;br /&gt;&lt;code&gt;&lt;span class="status-body"&gt;&lt;span class="entry-content"&gt;@&lt;a href="http://twitter.com/niel"&gt;niel&lt;/a&gt; great! working location i.e. maps into YFD is in the works&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;br /&gt;&lt;br /&gt;So hopefully I will be able to generate maps from my data natively in YFD. In the meantime, of course, there are ways to access the data and mash it up with &lt;a href="http://maps.google.com/"&gt;Google Maps&lt;/a&gt; myself.&lt;br /&gt;&lt;br /&gt;Next: telephone data via &lt;a href="http://voice.google.com/"&gt;Google Voice&lt;/a&gt;, and, if possible, &lt;a href="http://www.vonage.com/"&gt;Vonage&lt;/a&gt;. (Getting an API to access &lt;a href="http://www.attwireless.com"&gt;AT&amp;amp;T Wireless&lt;/a&gt; call data seems very unlikely.)&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5263682907420927513-8205340761018113818?l=technicalcredit.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://technicalcredit.blogspot.com/feeds/8205340761018113818/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5263682907420927513&amp;postID=8205340761018113818' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5263682907420927513/posts/default/8205340761018113818'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5263682907420927513/posts/default/8205340761018113818'/><link rel='alternate' type='text/html' href='http://technicalcredit.blogspot.com/2009/07/location-data-on-yourflowingdata.html' title='Location data on your.flowingdata'/><author><name>Niel</name><uri>http://www.blogger.com/profile/11605496939523809343</uri><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-5263682907420927513.post-5683433314659572786</id><published>2009-07-21T07:14:00.000-07:00</published><updated>2009-07-22T06:51:09.521-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='data'/><category scheme='http://www.blogger.com/atom/ns#' term='email'/><category scheme='http://www.blogger.com/atom/ns#' term='python'/><category scheme='http://www.blogger.com/atom/ns#' term='twitter'/><title type='text'>Experiments with Flowing Data</title><content type='html'>I have been reading Nathan Yau's &lt;a href="http://flowingdata.com/"&gt;Flowing Data &lt;/a&gt;for some time now, and was intrigued by the announcement of &lt;a href="http://your.flowingdata.com/"&gt;Your Flowing Data&lt;/a&gt;, a data collection service that accepts input via &lt;a href="http://twitter.com/yfd"&gt;Twitter&lt;/a&gt;. About the same time, I read Nat's blog post about &lt;a href="http://nat.org/blog/2009/07/how-to-log-your-life/"&gt;personal data logging&lt;/a&gt;.  Also, today, a post from Ed Murphy about &lt;a href="http://blogs.law.harvard.edu/cqtwo/2009/07/20/visualization-sweep/"&gt;visualization&lt;/a&gt;, with a back-cite to yours truly. Herewith, a report on my first experiments recording my personal data with the YFD service.&lt;br /&gt;&lt;br /&gt;I decided to start by tracking things automatically. Traditionally, if I am required to perform some periodic action -- in this case, sending a tweet -- I will forget about it.  So, I thought about what kind of data could be tracked without manual intervention, and I decided to start with email statistics: the size of my inbox and the number of unread messages in my inbox.&lt;br /&gt;&lt;br /&gt;I decided to write some Python to get this task done. The first thing to do was figure out how to post to Twitter from Python, and that turned out to be easy: Google told me about Mike Verdone's &lt;a href="http://mike.verdone.ca/twitter/"&gt;Python Twitter Tools&lt;/a&gt; (PTT), which turned out to be very easy to install and use.&lt;br /&gt;&lt;br /&gt;The next task was to access my IMAP mailbox from Python, and that turned out to be easy as well: Python has a built-in &lt;a href="http://www.python.org/doc/2.5.2/lib/module-imaplib.html"&gt;IMAP library&lt;/a&gt;. The size of my inbox was easy enough, but a little more research was needed to figure out the number of unread messages. It turns out there is an IMAP search term ("UNSEEN") that gave me exactly what I wanted.&lt;br /&gt;&lt;br /&gt;Anyway, to make a not-so-long story somewhat shorter, here is the script (edited to hide personal data) that I ended up running twice a day:&lt;br /&gt;&lt;br /&gt;&lt;blockquote&gt;&lt;code&gt;&lt;pre&gt;#!/usr/bin/python&lt;br /&gt;&lt;br /&gt;import twitter, getpass, imaplib, string&lt;br /&gt;&lt;br /&gt;# set some options&lt;br /&gt;options = {}&lt;br /&gt;options['imapserver']  = 'my IMAP server'&lt;br /&gt;options['imapuser']    = 'my IMAP username'&lt;br /&gt;options['twitteruser'] = 'my Twitter username'&lt;br /&gt;options['imappass']    = 'my IMAP password'&lt;br /&gt;options['twitterpass'] = 'my Twitter password'&lt;br /&gt;&lt;br /&gt;# in case you don't want to hard code your passwords in the script&lt;br /&gt;if options['imappass'] == None or options['imappass'] == '':&lt;br /&gt;    options['imappass'] = getpass.getpass('IMAP password:')&lt;br /&gt;&lt;br /&gt;if options['twitterpass'] == None or options['twitterpass'] == '':&lt;br /&gt;    options['twitterpass'] = getpass.getpass('Twitter password:')&lt;br /&gt;&lt;br /&gt;# connect to mail server and get the data&lt;br /&gt;imap = imaplib.IMAP4_SSL(options['imapserver'])&lt;br /&gt;imap.login(options['imapuser'],options['imappass'])&lt;br /&gt;inbox = imap.select()[1][0]&lt;br /&gt;unread = len(string.split(imap.search(None, 'UNSEEN')[1][0]))&lt;br /&gt;imap.close()&lt;br /&gt;imap.logout()&lt;br /&gt;&lt;br /&gt;# connect to twitter and post a message to @yfd&lt;br /&gt;api = twitter.Api(options['twitteruser'],options['twitterpass'])&lt;br /&gt;status = api.PostDirectMessage('yfd','inbox ' + inbox)&lt;br /&gt;status = api.PostDirectMessage('yfd','unread %d' % unread)&lt;/pre&gt;&lt;/code&gt;&lt;/blockquote&gt;&lt;br /&gt;Obviously there are some changes I could (and indeed, should) make, such as reading the options from command line or file, but this is the basic script, implemented quickly for personal use.&lt;br /&gt;&lt;br /&gt;In the next day or two I will post about my second experiment, using &lt;a href="http://www.google.com/latitude/"&gt;Google Latitude&lt;/a&gt; to track my location data.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5263682907420927513-5683433314659572786?l=technicalcredit.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://technicalcredit.blogspot.com/feeds/5683433314659572786/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5263682907420927513&amp;postID=5683433314659572786' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5263682907420927513/posts/default/5683433314659572786'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5263682907420927513/posts/default/5683433314659572786'/><link rel='alternate' type='text/html' href='http://technicalcredit.blogspot.com/2009/07/experiments-with-flowing-data.html' title='Experiments with Flowing Data'/><author><name>Niel</name><uri>http://www.blogger.com/profile/11605496939523809343</uri><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-5263682907420927513.post-7047119781321982957</id><published>2009-01-21T06:55:00.000-08:00</published><updated>2009-01-21T07:16:03.850-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='cloud atlanta'/><title type='text'>My first unconference</title><content type='html'>Last night I attended &lt;a href="http://cloudcamp-atlanta-09.eventbrite.com/"&gt;CloudCamp Atlanta&lt;/a&gt;, part of the &lt;a href="http://www.cloudcamp.com/"&gt;CloudCamp &lt;/a&gt;series.  CloudCamp is an &lt;a href="http://en.wikipedia.org/wiki/Unconference"&gt;unconference&lt;/a&gt;, which is a less-structured way of holding a conference.  In the pure unconference model, there is no pre-set agenda; attendees collaborate to schedule talks at the beginning of the conference.  In a very real way, the attendees take ownership of the content; if you don't have a good experience at an unconference, it's your own fault.&lt;br /&gt;&lt;br /&gt;That's in theory, of course.  Last night's event was fairly good, but because of the limited time available -- four hours, on a workday evening -- some sessions were pre-filled, including an expert unpanel.  &lt;a href="http://www.johnmwillis.com/"&gt;John Willis&lt;/a&gt; did a good job of arranging these sessions, but it seemed to me the sessions were a mixed bag.&lt;br /&gt;&lt;br /&gt;In addition to the unpanel, I attended sessions on "what is a cloud?", using &lt;a href="http://reductivelabs.com/trac/puppet"&gt;Puppet&lt;/a&gt; to manage cloud computing and &lt;a href="http://www.microsoft.com/azure/default.mspx"&gt;Microsoft Windows Azure&lt;/a&gt;.  The "what is a cloud?" session, led by &lt;a href="http://bencherian.com/"&gt;Ben Charian&lt;/a&gt;, ended up going in an unpredicted direction, due to some specific questions about end-user applications in the cloud. The audience was mostly business-oriented, as opposed to technical, which means the conversation ended up rather high-level, but it was still interesting, overall.&lt;br /&gt;&lt;br /&gt;The Puppet session, which I came to late, was led by Luke Kanies of &lt;a href="http://reductivelabs.com"&gt;Reductive Labs&lt;/a&gt;.  It was a more technical session, which was great, but the direct applicability to cloud computing seemed tangential.  Still, very interesting stuff, and good information to know.&lt;br /&gt;&lt;br /&gt;The final session on Windows Azure, led by &lt;a href="http://blogs.msdn.com/chabrook/"&gt;Chad Brooks&lt;/a&gt; of Microsoft, was also a mixed bag for me.  The subject was perfectly suited for the unconference's charter, but I really chose the session as the lesser of several "evils" (not imply any of them were actually evil per se).&lt;br /&gt;&lt;br /&gt;All in all, it was a good evening, but I can't help thinking that it might have turned out differently if more of the open spaces had not been filled beforehand.  I did have several good conversations with other attendees, which is the main purpose of any conference, and learned of the existence of &lt;a href="http://www.meetup.com/awsomeatlanta/"&gt;AWsome&lt;/a&gt;, the Amazon Web Services user group.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5263682907420927513-7047119781321982957?l=technicalcredit.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://technicalcredit.blogspot.com/feeds/7047119781321982957/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5263682907420927513&amp;postID=7047119781321982957' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5263682907420927513/posts/default/7047119781321982957'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5263682907420927513/posts/default/7047119781321982957'/><link rel='alternate' type='text/html' href='http://technicalcredit.blogspot.com/2009/01/my-first-unconference.html' title='My first unconference'/><author><name>Niel</name><uri>http://www.blogger.com/profile/11605496939523809343</uri><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-5263682907420927513.post-4325667354027416827</id><published>2009-01-16T13:04:00.000-08:00</published><updated>2009-01-16T13:07:27.465-08:00</updated><title type='text'>Product Management is Hard.</title><content type='html'>Every time I think I know what I'm doing, it turns out there's a whole bunch of stuff I forgot. Then the scope starts ballooning, so I have to tamp it back down, then it balloons up again, so I have to keep tamping, but it never stays in quite the same shape it was before.&lt;br /&gt;&lt;br /&gt;I have to keep reminding myself, "stick to your core competencies", but what do you do when you're trying to expand into a different market?&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5263682907420927513-4325667354027416827?l=technicalcredit.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://technicalcredit.blogspot.com/feeds/4325667354027416827/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5263682907420927513&amp;postID=4325667354027416827' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5263682907420927513/posts/default/4325667354027416827'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5263682907420927513/posts/default/4325667354027416827'/><link rel='alternate' type='text/html' href='http://technicalcredit.blogspot.com/2009/01/product-management-is-hard.html' title='Product Management is Hard.'/><author><name>Niel</name><uri>http://www.blogger.com/profile/11605496939523809343</uri><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-5263682907420927513.post-3277426430741423706</id><published>2009-01-05T12:17:00.000-08:00</published><updated>2009-01-05T12:36:13.781-08:00</updated><title type='text'>Things I learned inadvertently</title><content type='html'>Over the holidays I've been doing a little bit of reading, and I inadvertently learned a couple of things that I am going to apply to my work.&lt;br /&gt;&lt;br /&gt;The first, which I read in the book &lt;a href="http://www.dreamingincode.com/"&gt;Dreaming In Code&lt;/a&gt;, which is about the &lt;a href="http://chandlerproject.org/"&gt;Chandler&lt;/a&gt; project, is actually from the &lt;a href="http://37signals.com/"&gt;37 Signals&lt;/a&gt; book, &lt;a href="http://gettingreal.37signals.com/"&gt;Getting Real&lt;/a&gt;.   The exact quote is "&lt;a href="http://gettingreal.37signals.com/ch05_Half_Not_Half_Assed.php"&gt;build half a product, not a half-ass product&lt;/a&gt;." It's a reminder to think small, at least at first, or the thing you build won't do anything well. I can't tell you for how many projects I've been involved with this has been a problem. We always try to build the ultimate tool that will do all things for all people, and as a result it is full of holes and bugs. Instead, we should be striving to focus on the key features that will make our product the killer in its market, and then worry about adding other features only as necessary. This jives really well with other &lt;a href="http://agilemanifesto.org/"&gt;agile&lt;/a&gt; principles like &lt;a href="http://c2.com/xp/YouArentGonnaNeedIt.html"&gt;YAGNI.&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;The second thing I learned was from an article in the &lt;a href="http://www.hbr.com"&gt;Harvard Business Review&lt;/a&gt; (my father-in-law got a subscription with his soon-to-expire frequent flier miles and hasn't read a word of it) titled "&lt;a href="http://harvardbusinessonline.hbsp.harvard.edu/hbsp/hbr/articles/article.jsp?articleID=R0812H&amp;amp;ml_action=get-article&amp;amp;ml_issueid=BR0812"&gt;Nudge Your Customers Toward Better Choices&lt;/a&gt;." This article provides some detail around how to provide default options (for software configuration, for example, or for add-on packages to another product). The article is not available online unless you pay the big bucks, but I'm sure you can find it in your local newsstand or library (my&lt;a href="http://www.cobbcat.org/"&gt; county library&lt;/a&gt; provides online access to most periodicals, and I'm sure yours does too -- that's a service of which too few adults take advantage).&lt;br /&gt;&lt;br /&gt;These may be general knowledge in the product management field, but I'm new so they are worth mentioning.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5263682907420927513-3277426430741423706?l=technicalcredit.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://technicalcredit.blogspot.com/feeds/3277426430741423706/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5263682907420927513&amp;postID=3277426430741423706' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5263682907420927513/posts/default/3277426430741423706'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5263682907420927513/posts/default/3277426430741423706'/><link rel='alternate' type='text/html' href='http://technicalcredit.blogspot.com/2009/01/things-i-learned-inadvertently.html' title='Things I learned inadvertently'/><author><name>Niel</name><uri>http://www.blogger.com/profile/11605496939523809343</uri><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-5263682907420927513.post-7984761136813385165</id><published>2008-09-02T12:23:00.000-07:00</published><updated>2008-09-02T12:24:40.368-07:00</updated><title type='text'>Introducing another blog.</title><content type='html'>You're probably asking me, "Niel, why another blog?" &lt;br /&gt;&lt;br /&gt;Well, I don't blame you.  I've started and stopped several over the years (you can take a look at most of them in the sidebar). I hope that this one will be different, but of course only time will tell.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5263682907420927513-7984761136813385165?l=technicalcredit.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://technicalcredit.blogspot.com/feeds/7984761136813385165/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5263682907420927513&amp;postID=7984761136813385165' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5263682907420927513/posts/default/7984761136813385165'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5263682907420927513/posts/default/7984761136813385165'/><link rel='alternate' type='text/html' href='http://technicalcredit.blogspot.com/2008/09/introducing-another-blog.html' title='Introducing another blog.'/><author><name>Niel</name><uri>http://www.blogger.com/profile/11605496939523809343</uri><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>
