<?xml version="1.0" ?>
<feed xmlns="http://www.w3.org/2005/Atom"> 
  <title>self.d-struct.org</title>
  <link href="http://self.d-struct.org/"/>
  <link type="application/atom+xml" rel="self" href="http://self.d-struct.org/atom.xml"/>
  <updated>2016-06-12T22:19:06-05:00</updated>
  <id>http://self.d-struct.org/</id>
  <author><name>Chris Gansen</name><email>cgansen@gmail.com</email></author>
  
  
  <entry>
    <id>http://self.d-struct.org/moving-on</id>
    <link type="text/html" rel="alternate" href="http://self.d-struct.org/moving-on"/>
    <title>Moving On</title>
    <updated>2016-06-13T00:00:00-05:00</updated>
    <author>
      <name>Chris Gansen</name>
      <uri>http://self.d-struct.org/</uri>
    </author>
    <content type="html">&lt;p&gt;June 17 will be my last day as CTO at &lt;a href=&quot;https://publicgood.com&quot;&gt;Public Good&lt;/a&gt;. I am moving on after three years and joining the team at &lt;a href=&quot;https://adhocteam.us/&quot;&gt;Ad Hoc&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;I am proud of what I have accomplished with the team at Public Good. Over three years we have built a powerful platform that has processed more than a million and a half dollars of donations for hundreds of nonprofits in the United States. We’ve helped thousands of people find the organizations and causes that they care about. We built online fundraising software that’s faster, easier, and cheaper to use than any competitor in the market. We built an &lt;a href=&quot;http://try.publicgood.com/take-action/&quot;&gt;innovative tool&lt;/a&gt; to connect folks that read the news to the organizations and causes related to what they just read. From a pure technology standpoint, we’ve made tens of thousands code commits and nearly two thousand releases.&lt;/p&gt;

&lt;p&gt;We have built quite a bit, all that on a team that has rarely exceeded 10 people total, and only 4 full-time engineers. Personally, I have learned a great deal about building technology and teams, and all of the ups and downs involved in the rollercoaster that is a venture-backed product-first technology startup.&lt;/p&gt;

&lt;p&gt;I joined Public Good on September 3, 2013. Since then, the company has gone through three major product pivots: the original vision for a data integration platform as a service, inspired by the work Dan, Jason, Paul, Aaron, and I (the original PGS team) were involved with on the Obama 2012 reelection campaign; then a two-sided marketplace joining nonprofits with new donors; and now a focus on linking news readers to organizations and causes related to stories that inspire them to act.&lt;/p&gt;

&lt;p&gt;Through each stage of product evolution, I have been challenged to learn and adapt to the needs of the people using our systems. As a result of working with our most recent partners, large media organizations, I’ve learned that I don’t have the desire or passion to build the products they want. I've also spent time reconsidering how much risk I am comfortable with, and realized that I no longer want to be part of an early-stage startup. I have decided to move on as a result.&lt;/p&gt;

&lt;p&gt;I am excited to join Ad Hoc for two reasons. First, they employ a number of people I admire and have had the pleasure of working with before, namely Paul Smith and Daniel X. O’Neil. Paul hired me at Public Good, back in 2013, and Dan hired me for a 9 month spell at Smart Chicago where I helped him build the beginnings of the &lt;a href=&quot;http://www.cutgroup.org/&quot;&gt;CUT Group&lt;/a&gt;, &lt;a href=&quot;http://www.smartchicagocollaborative.org/building-chicago-works-for-you/&quot;&gt;ChicagoWorksForYou.com&lt;/a&gt;, and a bunch of other civic-minded projects. Second, I am impressed with Ad Hoc’s meat and potatoes approach to building software that solves problems. Reading their &lt;a href=&quot;https://adhocteam.us/case-studies/&quot;&gt;case studies&lt;/a&gt; and coverage in the press, I am struck by their simple, direct approach to solving real problems that affect real people. The size and scope of the problems they're trying to solve, like making it &lt;a href=&quot;http://time.com/10228/obamas-trauma-team/&quot;&gt;easier to get health care&lt;/a&gt; and &lt;a href=&quot;http://www.huffingtonpost.com/entry/veterans-affairs-website-benefits_us_5733605ae4b096e9f0936adb&quot;&gt;simplifying the process for getting veterans' benefits&lt;/a&gt;, is impressive (and more than a little intimidating). I believe that, as part of the Ad Hoc team, I will be able to effect real change and have positive impact on peoples' lives.&lt;/p&gt;

&lt;p&gt;I am grateful for the opportunity I had at Public Good, and sincerely believe that the team will be successful. The folks that remain are smart and more than capable of building a fantastic product. I remain a cheerleader and ardent supporter.&lt;/p&gt;
</content>
  </entry>
  
  <entry>
    <id>http://self.d-struct.org/golessons-sxsw-talk</id>
    <link type="text/html" rel="alternate" href="http://self.d-struct.org/golessons-sxsw-talk"/>
    <title>Talking Go at SXSW Interactive 2015</title>
    <updated>2015-03-20T00:00:00-05:00</updated>
    <author>
      <name>Chris Gansen</name>
      <uri>http://self.d-struct.org/</uri>
    </author>
    <content type="html">&lt;p&gt;&lt;img src=&quot;https://s3.amazonaws.com/d-struct-org/blog-images/speaking-at-sxsw.jpg&quot; alt=&quot;&quot; /&gt;&lt;/p&gt;

&lt;p&gt;On &lt;a href=&quot;http://schedule.sxsw.com/2015/events/event_IAP37206&quot;&gt;March 17, 2015 at 9:30am in Salon B of the JW Marriott in Austin, Texas&lt;/a&gt;, I delivered a talk titled &quot;Lessons Learned Building Web Apps with Go&quot; to a crowd. The talk covered much of what the Public Good team has learned over the past two years building &lt;a href=&quot;https://publicgood.com&quot;&gt;publicgood.com&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;https://s3.amazonaws.com/d-struct-org/blog-images/sxsw-talk-placards.jpg&quot; alt=&quot;&quot; /&gt;&lt;/p&gt;

&lt;p&gt;The slides are online at &lt;a href=&quot;http://cgansen.github.io/sxsw-go-talk/#/&quot;&gt;http://cgansen.github.io/sxsw-go-talk/#/&lt;/a&gt;. I look forward to refining the content of the presentation and sharing it again in near future.&lt;/p&gt;
</content>
  </entry>
  
  <entry>
    <id>http://self.d-struct.org/annual-top-10</id>
    <link type="text/html" rel="alternate" href="http://self.d-struct.org/annual-top-10"/>
    <title>2014 Music Top 10</title>
    <updated>2014-12-14T00:00:00-06:00</updated>
    <author>
      <name>Chris Gansen</name>
      <uri>http://self.d-struct.org/</uri>
    </author>
    <content type="html">&lt;p&gt;Some friends compile an annual review of their favorite music and asked me to contribute. Here's what I had to say about 2014.&lt;/p&gt;

&lt;h3&gt;Top 10 albums of the year ranked in order.&lt;/h3&gt;

&lt;ol&gt;
&lt;li&gt;Aphex Twin - Syro: This the is Aphex Twin album everyone wanted.  Certainly worth the wait.&lt;/li&gt;
&lt;li&gt;War on Drugs - Lost in the Dream: I don’t think I listened to any album while driving around the Midwest as much as I did this one.&lt;/li&gt;
&lt;li&gt;Tycho - Awake: At first Tycho was a Boards of Canada clone, but with this album they finally shake that off and assert themselves as the real band that they are.&lt;/li&gt;
&lt;li&gt;The Budos Band - Burnt Offering: I love listening to music that makes me feel like I’m in a late-70s police chase scene.&lt;/li&gt;
&lt;li&gt;Jungle - Jungle: These dudes came out of nowhere to remind us all that disco wasn’t terrible.&lt;/li&gt;
&lt;li&gt;The Antlers - Familiars: I listened to this a ton then deleted the Spotify playlist and forgot about it. I’m adding it mostly based on the strength of the amazing show they put on at Lincoln Hall.&lt;/li&gt;
&lt;li&gt;Clark - Clark: Pretty heavy and intimidating end-of-the-world music. I dig it.&lt;/li&gt;
&lt;li&gt;Spoon - They Want My Soul: These guys are flawless.&lt;/li&gt;
&lt;li&gt;Caribou - Our Love: A late addition to the list but incredibly catchy.&lt;/li&gt;
&lt;li&gt;Various - Hyperdub 10.4: Another late entry, but a great cross section of music from the legendary London label.&lt;/li&gt;
&lt;/ol&gt;


&lt;h3&gt;Top 10 songs of the year ranked in order.&lt;/h3&gt;

&lt;iframe src=&quot;https://embed.spotify.com/?uri=spotify:user:cgansen:playlist:39HwQ7tq5Nx41JRragOzxz&quot; width=&quot;300&quot; height=&quot;380&quot; frameborder=&quot;0&quot; allowtransparency=&quot;true&quot;&gt;&lt;/iframe&gt;


&lt;p&gt;The War on Drugs - An Ocean In Between The Waves&lt;/p&gt;

&lt;iframe width=&quot;560&quot; height=&quot;315&quot; src=&quot;//www.youtube.com/embed/qOfIN7XBl-4&quot; frameborder=&quot;0&quot; allowfullscreen&gt;&lt;/iframe&gt;


&lt;p&gt;A Sunny Day in Glasgow - MTLOV (Minor Keys)&lt;/p&gt;

&lt;iframe width=&quot;560&quot; height=&quot;315&quot; src=&quot;//www.youtube.com/embed/tfSJqmYGMVM&quot; frameborder=&quot;0&quot; allowfullscreen&gt;&lt;/iframe&gt;


&lt;p&gt;Jungle - Busy Earning&lt;/p&gt;

&lt;iframe width=&quot;560&quot; height=&quot;315&quot; src=&quot;//www.youtube.com/embed/BcsfftwLUf0&quot; frameborder=&quot;0&quot; allowfullscreen&gt;&lt;/iframe&gt;


&lt;p&gt;Aphex Twin - minipops 67 [120.2][source field mix]&lt;/p&gt;

&lt;iframe width=&quot;560&quot; height=&quot;315&quot; src=&quot;//www.youtube.com/embed/FEE7j9k_jVk&quot; frameborder=&quot;0&quot; allowfullscreen&gt;&lt;/iframe&gt;


&lt;p&gt;The Budos Band - The Sticks&lt;/p&gt;

&lt;iframe width=&quot;560&quot; height=&quot;315&quot; src=&quot;//www.youtube.com/embed/1z3fnWfD0mU&quot; frameborder=&quot;0&quot; allowfullscreen&gt;&lt;/iframe&gt;


&lt;p&gt;Caribou - Our Love&lt;/p&gt;

&lt;iframe width=&quot;560&quot; height=&quot;315&quot; src=&quot;//www.youtube.com/embed/IMwgcRByA8Y&quot; frameborder=&quot;0&quot; allowfullscreen&gt;&lt;/iframe&gt;


&lt;p&gt;Tycho - See&lt;/p&gt;

&lt;iframe width=&quot;560&quot; height=&quot;315&quot; src=&quot;//www.youtube.com/embed/y_rwBgLpAFs&quot; frameborder=&quot;0&quot; allowfullscreen&gt;&lt;/iframe&gt;


&lt;p&gt; (this video is bonkers, you should watch it)&lt;/p&gt;

&lt;p&gt;The Antlers - Hotel&lt;/p&gt;

&lt;iframe width=&quot;560&quot; height=&quot;315&quot; src=&quot;//www.youtube.com/embed/Lcn-KtL2VSg&quot; frameborder=&quot;0&quot; allowfullscreen&gt;&lt;/iframe&gt;


&lt;p&gt;The War on Drugs - Red Eyes&lt;/p&gt;

&lt;iframe width=&quot;560&quot; height=&quot;315&quot; src=&quot;//www.youtube.com/embed/IpH-HwtPD-I&quot; frameborder=&quot;0&quot; allowfullscreen&gt;&lt;/iframe&gt;


&lt;p&gt;Spoon - Do You&lt;/p&gt;

&lt;iframe width=&quot;560&quot; height=&quot;315&quot; src=&quot;//www.youtube.com/embed/93BtQxS-eg4&quot; frameborder=&quot;0&quot; allowfullscreen&gt;&lt;/iframe&gt;


&lt;h3&gt;The Beyoncé Award for the 2013 album you wish you would have included on last year's list.&lt;/h3&gt;

&lt;p&gt;nothing comes to mind&lt;/p&gt;

&lt;h3&gt;Your favorite album you discovered in 2014 that did not come out in 2014.&lt;/h3&gt;

&lt;p&gt;Disc Two of Derek and the Dominos “The Layla Sessions: 20th Anniversary Edition”. It’s all the session players (including Duane and Gregg Allman, Dickey Betts, and Eric Clapton) jamming for an hour straight. I love it.&lt;/p&gt;

&lt;iframe src=&quot;https://embed.spotify.com/?uri=spotify:user:cgansen:playlist:7HuDWgXHXQCaYb1bS3FZIR&quot; width=&quot;300&quot; height=&quot;380&quot; frameborder=&quot;0&quot; allowtransparency=&quot;true&quot;&gt;&lt;/iframe&gt;


&lt;h3&gt;Best concert you attended this year.  &lt;/h3&gt;

&lt;p&gt;Slowdive at Pitchfork this past July. Specifically, this:&lt;/p&gt;

&lt;iframe width=&quot;560&quot; height=&quot;315&quot; src=&quot;//www.youtube.com/embed/O5iK_mqtJ04&quot; frameborder=&quot;0&quot; allowfullscreen&gt;&lt;/iframe&gt;


&lt;p&gt;Honorable mentions: TWEEDY (thanks for taking me on a date, Brian!), and Tycho at Concord (another date night with BB!).&lt;/p&gt;

&lt;h3&gt;No honorable mentions.  &lt;/h3&gt;

&lt;p&gt;Honorable mentions: Run The Jewels 2, Yo La Tengo - Extra Painful, She &amp;amp; Him - Classics, Arca - Xen, A Sunny Day in Glasgow - Sea When Absent, Sun Kil Moon - Benji, Future Islands.&lt;/p&gt;
</content>
  </entry>
  
  <entry>
    <id>http://self.d-struct.org/health-near-me</id>
    <link type="text/html" rel="alternate" href="http://self.d-struct.org/health-near-me"/>
    <title>HealthNear.Me</title>
    <updated>2014-03-23T00:00:00-05:00</updated>
    <author>
      <name>Chris Gansen</name>
      <uri>http://self.d-struct.org/</uri>
    </author>
    <content type="html">&lt;p&gt;In November 2013 Melissa and I built &lt;a href=&quot;http://healthnear.me&quot;&gt;HealthNear.Me&lt;/a&gt;, a web and phone-based application to help people find public health resources near them in Chicago.&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/assets/img/health-near-me-screenshot.png&quot; alt=&quot;HealthNear.Me Screenshot&quot; /&gt;&lt;/p&gt;

&lt;p&gt;After we surveyed the current tools people have to use to find a free clinic or a place to find free condoms near them, we knew we could build something better. We also built it because we wanted to enter the &lt;a href=&quot;http://www.smartchicagocollaborative.org/illinois-public-health-datapalooza-and-a-10k-challenge/&quot;&gt;Making Public Health Data Work Challenge&lt;/a&gt;. We won the &lt;a href=&quot;http://www.idph.state.il.us/public/press14/4.1.14_Datapalooza_Challenge_Winners.htm&quot;&gt;first place prize in the competition&lt;/a&gt; and we're excited to share a bit more about what HealthNear.Me is, how it works, and how we can improve it.&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/assets/img/health-near-me-results.png&quot; alt=&quot;Search results page of HealthNear.Me&quot; /&gt;&lt;/p&gt;

&lt;h2&gt;Genesis&lt;/h2&gt;

&lt;p&gt;Melissa and I attended the Illinois Public Health Datapalooza to learn more about what was happening at the intersection of the public health and technology fields. Melissa is finishing her Masters degree in Public Health, and I am a software developer, so this was a rare intersection of our professional interests. We sat in on a few interesting talks at the event and decided to build something for the app contest. Our first idea involved an app for folks with asthma to record air quality and get alerts for when they might have bad days. A few minutes of Googling showed us that the market was already pretty saturated with apps that did just that.&lt;/p&gt;

&lt;p&gt;Looking for a new angle, Melissa started to survey the available health-related datasets on the &lt;a href=&quot;https://data.cityofchicago.org/browse?category=Health+%26+Human+Services&amp;amp;limitTo=datasets&amp;amp;utf8=%E2%9C%93&quot;&gt;City of Chicago&lt;/a&gt; and &lt;a href=&quot;https://data.illinois.gov/browse?category=Public+Health&amp;amp;limitTo=datasets&amp;amp;utf8=%E2%9C%93&quot;&gt;State of Illinois&lt;/a&gt; data portals and found many lists of service providers;  at the same time I reviewed the City of Chicago and State of Illinois web sites to see how the general public could locate service providers near them. What I found was a fragmented, hard to parse set of pages. Results were broken up by type, search by address wasn't available, and the sites didn't work very well on smart phones.&lt;/p&gt;

&lt;p&gt;&lt;a href=&quot;http://www.cityofchicago.org/city/en/depts/cdph/supp_info/clinical_health/Find_a_clinic.html&quot;&gt;&lt;img src=&quot;/assets/img/cdph-find-a-clinic.png&quot; alt=&quot;&amp;quot;Find a Clinic&amp;quot; on the Chicago Department of Public Health Site&quot; /&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;It was obvious that the experience for finding public health providers was suboptimal, and we could use the raw data published by &lt;a href=&quot;http://www.cityofchicago.org/city/en/depts/cdph.html&quot;&gt;Chicago Department of Public Health&lt;/a&gt; (CDPH) and &lt;a href=&quot;http://www.idph.state.il.us/&quot;&gt;Illinois Department of Public Health&lt;/a&gt; (IDPH) to build our own search tool. I am a big proponent of Tim O'Reilly's argument for &lt;a href=&quot;http://oreilly.com/tim/gov2/&quot;&gt;government as a platform&lt;/a&gt;. Paraphrasing quite a bit, he argues that governments are very good at providing raw data, but not very good at building consumer applications. By focusing on their strengths – collecting, managing, and publishing data about their services – governments can leverage &lt;a href=&quot;http://opengovhacknight.org/&quot;&gt;developer communities&lt;/a&gt; or hire &lt;a href=&quot;http://www.azavea.com/&quot;&gt;professional developers&lt;/a&gt; to build consumer-facing applications. In this case, the CDPH and IDPH provided immense value by providing relevant, consistent, machine-readable lists of service providers. If they did not publish this raw data in a sane format, we would have never been able to build HealthNear.Me. In the course of a few evenings of coding, I had all of their provider data aggregated, indexed, and available for public searching.&lt;/p&gt;

&lt;p&gt;Melissa and I talked about how we thought people might want to look for health resources near them, and what features would be the most useful for them. We didn't spend too much time on design research doing things like interviews or developing personas. Instead, we tried to guess a few common uses cases and build features to support them. For example: &quot;I am a social worker and want to find clinics near where one of my clients goes to school&quot; or &quot;I need to find a place to go warm up&quot; or even &quot;What is the nearest hospital?&quot;. One feature that we prioritized was making the application work via SMS. I was inspired by the rich SMS search features available in the &lt;a href=&quot;http://www.chicagoearlylearning.org/sms&quot;&gt;Chicago Early Learning&lt;/a&gt; site. The City of Chicago has a basic SMS service – &lt;a href=&quot;https://www.cityofchicago.org/city/en/depts/311/supp_info/chitext.html&quot;&gt;CHITEXT&lt;/a&gt; – but it doesn't support searching for health providers.&lt;/p&gt;

&lt;h2&gt;Production&lt;/h2&gt;

&lt;p&gt;I wrote the backend search index and API in Go. The health provider data lives in an ElasticSearch index. The public-facing application is HTML and AngularJS. Go makes writing APIs very simple. It's fast, handles JSON well, and integrates well with the ElasticSearch. ElasticSearch is fast and does geospatial searches with ease. AngularJS is great at gluing together front end applications and JSON APIs. This technology stack is also what I use for &lt;a href=&quot;https://publicgoodsoftware.com/&quot;&gt;my day job&lt;/a&gt;, so I was already very comfortable working with it. The application is running on an EC2 instance provided through Smart Chicago's &lt;a href=&quot;http://www.smartchicagocollaborative.org/projects/hosted-web-space/&quot;&gt;hosted web space&lt;/a&gt;. I signed up for a cheap Twilio plan to handle the SMS integration. Twilio makes it super simple to read and write SMS messages from inside computer programs.&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/assets/img/health-near-me-sms.png&quot; alt=&quot;Screenshot of SMS interaction with HealthNear.Me&quot; /&gt;&lt;/p&gt;

&lt;p&gt;The application is broken down into two main components: a bulk data loader and a HTTP API. The loader app reads the JSON exports of the CDPH and IDPH data and inserts it into the ElasticSearch index. The API app handles requests from Twilio and the AngularJS application, searches the index, and returns data as a blob of JSON. I'm grateful to a a number of open source libraries that made development much faster, especially the &lt;a href=&quot;https://github.com/mattbaird/elastigo&quot;&gt;Elastigo&lt;/a&gt; and &lt;a href=&quot;https://github.com/kellydunn/golang-geo&quot;&gt;go-geo&lt;/a&gt; projects. The entire application source code is available at the &lt;a href=&quot;https://github.com/cgansen/health-near-me&quot;&gt;health-near-me Github project page&lt;/a&gt;. It's licensed under the MIT license, meaning anyone can take the code, make improvements, and run their own local instances of the application.&lt;/p&gt;

&lt;h2&gt;Future&lt;/h2&gt;

&lt;p&gt;Melissa and I are excited to continue to develop and refine HealthNear.Me. We've had productive conversations with CDPH about how we can work together to make the application available to the community and how we can increase the quantity and quality of the data in our search index. We would like to explore translation and localization to make it easier for users who do not speak or read English to search for providers near them. The user interface is rough around the edges, owing to a short development cycle and a lack of graphic design skills. We would like to improve the look and feel, and make the search results on the web application more actionable, including showing results on a map and seeing what providers in an area provide multiple services.&lt;/p&gt;

&lt;p&gt;We're exceptionally grateful and honored to win the first place prize. We hope that HealthNear.Me continues to grow and becomes a useful tool for people in Chicago and beyond to find public health providers in their communities.&lt;/p&gt;
</content>
  </entry>
  
  <entry>
    <id>http://self.d-struct.org/building-chicago-works-for-you</id>
    <link type="text/html" rel="alternate" href="http://self.d-struct.org/building-chicago-works-for-you"/>
    <title>Building Chicago Works For You</title>
    <updated>2013-09-29T00:00:00-05:00</updated>
    <author>
      <name>Chris Gansen</name>
      <uri>http://self.d-struct.org/</uri>
    </author>
    <content type="html">&lt;p&gt;&lt;em&gt;Note: this essay was originally posted at the &lt;a href=&quot;http://www.smartchicagocollaborative.org/building-chicago-works-for-you/&quot;&gt;Smart Chicago Collaborative blog&lt;/a&gt; as part of my work as Civic Innovation Program Manager.&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;Chicago Works For You (CWFY) is comprised of three components: a AngularJS/Jekyll frontend, a custom Go API and worker layer, and a PostgreSQL/PostGIS database. This post will dive into the mechanics of the system and explain why it works the way it does.&lt;/p&gt;

&lt;p&gt;CWFY started with only a handful of requirements. It had to pull service requests from &lt;a href=&quot;http://dev.cityofchicago.org/docs/api&quot;&gt;Chicago's Open311 API&lt;/a&gt;, save them to a database, do some math, and expose the results to a pretty user interface.&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;https://dl.dropboxusercontent.com/u/19098/cwfy%20-%20arch%20drawing.jpeg&quot; alt=&quot;&quot; /&gt;&lt;/p&gt;

&lt;p&gt;The first sketch of the system was pretty rudimentary, but it matches very closely the end result. We implemented the worker and API in &lt;a href=&quot;http://golang.org/&quot;&gt;Go&lt;/a&gt;, a powerful and fun language that is well-suited for this type of work. We are hosting the Go applications and database on a m1.medium EC2 instance on the &lt;a href=&quot;http://www.smartchicagoapps.org/&quot;&gt;Smart Chicago Apps infrastructure&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;The worker application finds the timestamp of the most recently updated service request in the CWFY database and asks the Open311 API endpoint for all service requests created or updated since that point. This repeats every thirty seconds. That interval is short enough that we're not clobbering the Open311 API, the number of requests in the response is small (usually less than a dozen), and we still have near-real-time data on our site. We've found that the Open311 API is very reliable — and fast — and can stand sustained load, as it did when we backfilled our database.&lt;/p&gt;

&lt;p&gt;The database schema is very simple. There is a single service_requests table with more than three million rows. That's all service data stretching back to January 2008. This table is very similar to the service_requests schema used by Code for America's &lt;a href=&quot;https://github.com/codeforamerica/311-fm-data&quot;&gt;311.fm&lt;/a&gt; application. In fact, we used that schema to bootstrap this application.&lt;/p&gt;

&lt;p&gt;There are two tables of ward boundary data, one for the current ward boundaries, and one for the new ward boundaries, to be instated in 2015. But the city's service request records only include the ward the request is &lt;em&gt;currently&lt;/em&gt; in. Using the popular &lt;a href=&quot;http://postgis.org/&quot;&gt;PostGIS PostgreSQL extension&lt;/a&gt;, we're able to use the latitude and longitude associated with each service request to geo-locate it within its 2015 ward-to-be and determine if it's in one the 233 areas of the city that are changing from one ward to another. These calculations allow CWFY to compute service delivery information for current and future wards, as well as individual transition areas.&lt;/p&gt;

&lt;p&gt;Finally, there's a daily_counts table, populated with counts of service requests opened for each day, ward, and service type combination. This table is populated automatically by a Postgres trigger, and allows CWFY to perform quick aggregate calculations.&lt;/p&gt;

&lt;p&gt;The API layer is a collection of HTTP endpoints that generate JSON. Instead of building an API and then building a client, we built the API to explicitly support the needs of the user interface. We would sketch out ideas for how we'd like to present the data, then work backwards from that to determine what endpoints were needed, what data they must expose, and how to format that data. Each endpoint allows for JSONP output, making use by JavaScript applications very simple. The API sits behind a &lt;a href=&quot;http://www.varnish-cache.org&quot;&gt;Varnish cache server&lt;/a&gt;, significantly reducing the load on the database during periods of high traffic.&lt;/p&gt;

&lt;p&gt;The user-facing application is powered by HTML and &lt;a href=&quot;http://angularjs.org/&quot;&gt;AngularJS&lt;/a&gt;. We use the &lt;a href=&quot;http://jekyllrb.com/&quot;&gt;Jekyll&lt;/a&gt; static site tool to automatically generate pages for each ward and service type, and to manage packaging the SCSS and Javascript assets. AngularJS is a powerful framework for building API-backed JavaScript applications. Angular manages all of the communication between the front-end and the API.&lt;/p&gt;

&lt;p&gt;The site is hosted in a Amazon Web Service S3 bucket, making it very inexpensive to host, highly available, and simple to update.&lt;/p&gt;

&lt;p&gt;We relied heavily on third-party libraries to speed our development. We acknowledge the following and offer our thanks:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Leaflet, Cloudmade, and OpenStreetMap: powering our beautiful maps&lt;/li&gt;
&lt;li&gt;Gorilla: Golang tools&lt;/li&gt;
&lt;li&gt;SCSS: the only way to write CSS&lt;/li&gt;
&lt;li&gt;PostgreSQL and PostGIS: simple data munging&lt;/li&gt;
&lt;li&gt;lib/pq: Golang + PostgreSQL&lt;/li&gt;
&lt;li&gt;CapistranoRb: simple deployments&lt;/li&gt;
&lt;li&gt;Jekyll: smart static-site creation&lt;/li&gt;
&lt;li&gt;Jim Pravetz: &lt;a href=&quot;https://gist.github.com/jpravetz/1424893&quot;&gt;Jekyll page generator&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;AngularJS: easy dynamic webapps&lt;/li&gt;
&lt;li&gt;Bootstrap: simple grid framework&lt;/li&gt;
&lt;li&gt;Highcharts: beautiful charts and graphs&lt;/li&gt;
&lt;li&gt;Underscore: better Javascript&lt;/li&gt;
&lt;/ul&gt;

</content>
  </entry>
  
  <entry>
    <id>http://self.d-struct.org/improving-adopt-a-sidewalk</id>
    <link type="text/html" rel="alternate" href="http://self.d-struct.org/improving-adopt-a-sidewalk"/>
    <title>Improving Adopt-a-sidewalk</title>
    <updated>2013-09-08T00:00:00-05:00</updated>
    <author>
      <name>Chris Gansen</name>
      <uri>http://self.d-struct.org/</uri>
    </author>
    <content type="html">&lt;p&gt;&lt;em&gt;Note: this essay was originally posted at the &lt;a href=&quot;http://www.smartchicagocollaborative.org/improving-adopt-a-sidewalk/&quot;&gt;Smart Chicago Collaborative blog&lt;/a&gt; as part of my work as Civic Innovation Program Manager.&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;&lt;em&gt;TL;DR: Adopt-a-sidewalk is a flawed, under-utilized application with enormous potential. By refocusing the user experience on addressing actual needs of people in Chicago and showing meaningful activity, it could be a powerful tool for engaging citizens in supporting and  improving the civic infrastructure in their community.&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;Winter is officially in Chicago’s rearview mirror, although you would not notice from the chilly temperatures outside. This post is a reflection on one of Chicago’s winter-weather civic applications, Adopt-a-sidewalk, an application I helped bring online over a year ago, and how it can evolve to improve the lives of Chicago residents year-round.&lt;/p&gt;

&lt;p&gt;&lt;a href=&quot;http://adoptasidewalk.org/&quot;&gt;Adopt-a-sidewalk&lt;/a&gt; is a Chicago-based version of the &lt;a href=&quot;http://adoptahydrant.org/&quot;&gt;Adopt-a-hydrant&lt;/a&gt; web application built by &lt;a href=&quot;http://codeforamerica.org/?cfa_project=adopt-a-hydrant&quot;&gt;Code for America&lt;/a&gt; in Boston back in 2011. Developed by Code for America fellow &lt;a href=&quot;https://twitter.com/sferik&quot;&gt;Erik Michaels-Ober&lt;/a&gt;, Adopt-a-hydrant lets residents of Boston volunteer to clear fire hydrants when there is a snow storm.&lt;/p&gt;

&lt;p&gt;In the fall of 2011, City of Chicago officials, acutely aware of the severity and importance of swift snow removal, saw an opportunity to repurpose the code, and invited a group of civic developers to customize the application for use in Chicago. The key functional difference between the applications is that in Chicago, residents can request help clearing their sidewalk. Adopt-a-sidewalk first went live as part of ChicagoShovels.org in January 2012, and generated a bit of fanfare in local and national media:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;New York Times: &lt;a href=&quot;http://www.nytimes.com/2012/01/03/us/chicagoshovels-web-site-gives-lowdown-on-snow.html?_r=1&quot;&gt;Snow Site Lets Chicago See if Plows Are Really in a Rut&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;ABC7 News: &lt;a href=&quot;http://abclocal.go.com/wls/story?section=resources&amp;amp;id=8487788&quot;&gt;Mayor’s office launches ChicagoShovels.org&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;Chicagoist: &lt;a href=&quot;http://chicagoist.com/2012/02/10/citys_adopt-a-sidewalk_website_laun.php&quot;&gt;City’s Adopt-A-Sidewalk Website Launches&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;


&lt;p&gt;Adopt-a-sidewalk saw moderate adoption, but quickly fell out of use due to a very mild winter, and the fast arrival of spring a few months later. In the fall of 2012, the City of Chicago asked the Smart Chicago Collaborative to &lt;a href=&quot;http://www.smartchicagocollaborative.org/help-improve-adopt-a-sidewalk/&quot;&gt;assume the responsibility of hosting the application&lt;/a&gt;, and development responsibilities were handed over to the &lt;a href=&quot;https://www.facebook.com/groups/cfachicago/&quot;&gt;Code for America Chicago brigade&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;To date, Adopt-a-sidewalk has seen very little adoption in Chicago. There are 557,793 individual sidewalk segments available for adoption, but only 75 registered users. 153 sidewalks have been claimed, either by volunteer shovelers, or people asking for help. That means that only 0.027% of all sidewalk segments in Chicago have been adopted. At its busiest, only 200 people visited the site in a given day.&lt;/p&gt;

&lt;p&gt;There are three major issues that impact the usability and adoption of Adopt-a-sidewalk.&lt;/p&gt;

&lt;p&gt;First, plainly speaking, the application is boring. In the case of a snow storm, there is a sense of urgency to responding and cleaning up the mess. The City deploys a fleet of snowplows to clear the streets, and neighborhoods are abuzz with residents scraping cars, shoveling steps, and snow-blowing their sidewalks and alleys. On Adopt-a-sidewalk, there is absolutely no perception of activity, urgency, or community. There is no mechanism to show users where activity is happening, or if there is a need for activity. On their first visit to the site, users are presented with a featureless, generic Google map of the city of Chicago, and no clear call to action. If the user does decide to register and adopt a sidewalk, there is little incentive to return or to refer friends to the site.&lt;/p&gt;

&lt;p&gt;Second, the path to participating is laden with friction. Users must search using a real Chicago street address and register for an account before they may participate. Registering an account involves giving a name, email address, a password, and completing a captcha. There’s no mechanism to invite your neighbors to join you in shoveling, nor is there a mechanism to share your activity with your social network.&lt;/p&gt;

&lt;p&gt;Third, the application is useless when there is no snow on the ground. Adopt-a-sidewalk is irrelevant in the summertime, and, for most of the winter spent between snow storms. There is no incentive to return to the site, and there is no meaningful action to take in between snow storms.&lt;/p&gt;

&lt;p&gt;On a conceptual level, the premise of Adopt-a-sidewalk is flawed. Chicago residents are already expected to and, by ordinance, required to, shovel their sidewalks. Adopt-a-sidewalk provides no benefit to users who adopt the sidewalk in front of their house and dutifully shovel it each time snow falls. The steps to register and adopt their sidewalk is busy work.&lt;/p&gt;

&lt;h3&gt;The real work&lt;/h3&gt;

&lt;p&gt;Instead of asking users to do monotonous work, Adopt-a-sidewalk should focus on providing a real service: matching people in need of help with people willing to help. In that scenario, there are two key classes of users: people who cannot clear their sidewalks and people who are willing to help shovel sidewalks near them.&lt;/p&gt;

&lt;p&gt;By shifting the interaction model from navigating a half million rectangles on a map to a focused, needs-based one, many of the core usability issues can be alleviated. It’s far easier to show activity, in the form of the most recent or most urgent requests for help, and the reward for participating is much more immediate and meaningful. Instead of highlighting what’s expected of people, the focus can be on enabling and rewarding people who want to help their neighbors.&lt;/p&gt;

&lt;p&gt;The natural extension of this concept is to move beyond simple sidewalks and instead enable neighborhood adoption of any civic infrastructure. Adopting sidewalks could easily gave way in the spring and summer time to adopting parks and community gardens. In the fall, communities could band together to adopt a local school and fix it up before students return. A baseball team can adopt its ball field and organize events to maintain and improve it.&lt;/p&gt;

&lt;p&gt;Fostering community around shared civic infrastructure is not a new concept. However, using technology, it is possible to integrate the real world thing with an online community, and the vast network of people and data that exists there. With the rise of open government data, not only is the civic infrastructure as physical object or place, it’s a continuous stream of data and interactions. The baseball diamond around the corner is not just a sandlot for shagging fly balls, it is a collection of data points: tweets, photos, and events created by community members, and crime reports, 311 requests, park facilities data from the local government.&lt;/p&gt;

&lt;p&gt;I look forward to seeing where Adopt-a-sidewalk goes from here, especially if Code for America or one of the brigades takes some of the concepts from Adopt-a-sidewalk and pulls them back into the mainline repository. Adopt-a-sidewalk is, despite its flaws and low adoption, one very small step on a long path to building, enabling, and merging real life and online communities.&lt;/p&gt;
</content>
  </entry>
  
  <entry>
    <id>http://self.d-struct.org/montana-trip</id>
    <link type="text/html" rel="alternate" href="http://self.d-struct.org/montana-trip"/>
    <title>Montana Trip</title>
    <updated>2013-08-18T00:00:00-05:00</updated>
    <author>
      <name>Chris Gansen</name>
      <uri>http://self.d-struct.org/</uri>
    </author>
    <content type="html">&lt;p&gt;&lt;img src=&quot;http://farm6.staticflickr.com/5330/9481140717_2df50c50c8_c.jpg&quot; alt=&quot;Lake McDonald&quot; /&gt;&lt;/p&gt;

&lt;p&gt;Melissa and I spent a week exploring the great state of Montana earlier this month. She was in Missoula for work; I joined her there and we headed to Glacier National Park and points north. We explored Missoula and took in the &lt;a href=&quot;http://www.milb.com/index.jsp?sid=t518&quot;&gt;Ospreys&lt;/a&gt; vs. the Helena Brewers at &lt;a href=&quot;http://www.milb.com/content/page.jsp?sid=t518&amp;amp;ymd=20080516&amp;amp;content_id=399755&amp;amp;vkey=team4&quot;&gt;Ogren Park Allegiance Field&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;http://farm3.staticflickr.com/2820/9481134169_dfaa536ca5_c.jpg&quot; alt=&quot;&quot; /&gt;&lt;/p&gt;

&lt;p&gt;Our stay in West Glacier was mostly a bust thanks to ceaseless rain. Thankfully the bar and restaurant at the Belton Chalet were a cozy setting to pass the time with endless games of Uno.&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;http://farm3.staticflickr.com/2805/9483938044_9e01a41d76_c.jpg&quot; alt=&quot;&quot; /&gt;&lt;/p&gt;

&lt;p&gt;From West Glacier we headed north to the &lt;a href=&quot;http://www.thewaylesstraveled.com&quot;&gt;Way Less Traveled Bed and Breakfast&lt;/a&gt;, a delightful place far, far off the beaten path. Our hosts Nancy and Paul were adept at feeding us and making us comfortable.&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;http://farm3.staticflickr.com/2818/9481147379_b238c64835_c.jpg&quot; alt=&quot;&quot; /&gt;&lt;/p&gt;

&lt;p&gt;We spent our daytime on hikes around the &lt;a href=&quot;https://www.google.com/maps/preview#!q=Glacier+National+Park%2C+MT%2C+West+Glacier%2C+MT&amp;amp;data=!1m4!1m3!1d38935!2d-114.1844095!3d48.8595933!2m1!1e3!4m10!1m9!4m8!1m3!1d173906!2d-87.7319639!3d41.8337329!3m2!1i1280!2i702!4f13.1&amp;amp;fid=7&quot;&gt;Bowman Lake area&lt;/a&gt;, in the northwest corner of the park. It's far quieter and undeveloped compared to the West Glacier area.&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;http://farm8.staticflickr.com/7318/9481163185_980fde88bd_c.jpg&quot; alt=&quot;&quot; /&gt;&lt;/p&gt;

&lt;p&gt;On the way back down to Missoula, we swung back through the park and drove up Going to the Sun Road. This time around the weather was perfect, and we were treated to endless vistas and, much to Melissa's delight, a pack of &lt;strong&gt;mountain goats&lt;/strong&gt; up near Logan's Pass.&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;http://farm4.staticflickr.com/3693/9483960326_16ef69f7d1_c.jpg&quot; alt=&quot;&quot; /&gt;
&lt;img src=&quot;http://farm8.staticflickr.com/7421/9483961298_3112f8d027_c.jpg&quot; alt=&quot;&quot; /&gt;
&lt;img src=&quot;http://farm6.staticflickr.com/5475/9481176195_9d550f9c55_c.jpg&quot; alt=&quot;&quot; /&gt;&lt;/p&gt;

&lt;p&gt;See more photographs &lt;a href=&quot;http://www.flickr.com/photos/daychokesnight/sets/72157635014079969/&quot;&gt;over on Flickr&lt;/a&gt;.&lt;/p&gt;
</content>
  </entry>
  
  <entry>
    <id>http://self.d-struct.org/coffee-bitters</id>
    <link type="text/html" rel="alternate" href="http://self.d-struct.org/coffee-bitters"/>
    <title>Coffee bitters</title>
    <updated>2013-05-12T00:00:00-05:00</updated>
    <author>
      <name>Chris Gansen</name>
      <uri>http://self.d-struct.org/</uri>
    </author>
    <content type="html">&lt;p&gt;In anticipation of an upcoming &quot;Stock the Bar&quot; party, I made a batch of coffee bitters to give as gifts. Thankfully there was enough left over to keep some for myself.&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;http://farm8.staticflickr.com/7294/8732209257_02a26cb130_c.jpg&quot; alt=&quot;&quot; /&gt;&lt;/p&gt;

&lt;p&gt;I followed the recipe outlined at &lt;a href=&quot;http://www.jacobgrier.com/blog/archives/3765.html&quot;&gt;Liquidity Preference&lt;/a&gt; with a few variations. I was unable to find whole orris root. Spice House, a delightful spice shop here in Chicago, only had powdered orris root. I used a small amount of the powder wrapped in a coffee filter, which seemed to work fine. The orris root from Spice House was labeled &quot;not for consumption&quot; but cursory Googling showed it used in enough consumables that I am not concerned. I also removed the orange peel after a few days, instead of letting it steep for all seven days. A previous batch I made came out far too orange-flavored, to the point of masking most of the coffee flavors.&lt;/p&gt;

&lt;p&gt;The bitters work well with a classic Old Fashioned or Manhattan, and I'm eager to try them with a rum Old Fashioned.&lt;/p&gt;
</content>
  </entry>
  
  <entry>
    <id>http://self.d-struct.org/cambodia</id>
    <link type="text/html" rel="alternate" href="http://self.d-struct.org/cambodia"/>
    <title>Cambodia</title>
    <updated>2013-02-01T00:00:00-06:00</updated>
    <author>
      <name>Chris Gansen</name>
      <uri>http://self.d-struct.org/</uri>
    </author>
    <content type="html">&lt;p&gt;In December 2012 Melissa and I spent 10 days in Cambodia. It was a joint reward, for me finishing the campaign, and her finishing her first semester of graduate school.&lt;/p&gt;

&lt;p&gt;We spent the first three days traveling with our friends Sarah and David to see the temples of &lt;a href=&quot;http://whc.unesco.org/en/list/668&quot;&gt;Angkor Wat&lt;/a&gt;, a UNESCO World Heritage site, outside the lovely city of Siem Reap.&lt;/p&gt;

&lt;p&gt;Melissa and I then went to the coast, to &lt;a href=&quot;http://en.wikipedia.org/wiki/Sihanoukville&quot;&gt;Sihanoukville&lt;/a&gt;, for a few days of nothing but being lazy on the beach on the Gulf of Thailand.&lt;/p&gt;

&lt;p&gt;We then packed up and headed to the capital, &lt;a href=&quot;http://en.wikipedia.org/wiki/Phnom_Penh&quot;&gt;Phnom Penh&lt;/a&gt;, and visited sites there, including the &lt;a href=&quot;http://en.wikipedia.org/wiki/Killing_Fields&quot;&gt;killing fields&lt;/a&gt; near &lt;a href=&quot;http://en.wikipedia.org/wiki/Choeung_Ek&quot;&gt;Choeung Ek&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;Here are some favorite photos from the trip. The entire collection, all 238, are &lt;a href=&quot;http://www.flickr.com/photos/daychokesnight/sets/72157632410426026/&quot;&gt;over at Flickr&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;http://farm9.staticflickr.com/8082/8336857458_38217bccba_c.jpg&quot; alt=&quot;&quot; /&gt;&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;http://farm9.staticflickr.com/8080/8335802749_7046034b92_c.jpg&quot; alt=&quot;&quot; /&gt;&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;http://farm9.staticflickr.com/8353/8336890454_19f9847741_c.jpg&quot; alt=&quot;&quot; /&gt;&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;http://farm9.staticflickr.com/8073/8336892484_e046472325_c.jpg&quot; alt=&quot;&quot; /&gt;&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;http://farm9.staticflickr.com/8504/8336932066_cc2bb01cfb_c.jpg&quot; alt=&quot;&quot; /&gt;&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;http://farm9.staticflickr.com/8502/8335829487_3e65929241_c.jpg&quot; alt=&quot;&quot; /&gt;&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;http://farm9.staticflickr.com/8097/8437010922_b79cfb883b_c.jpg&quot; alt=&quot;&quot; /&gt;&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;http://farm9.staticflickr.com/8085/8437018792_abc6a681ec_c.jpg&quot; alt=&quot;&quot; /&gt;&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;http://farm9.staticflickr.com/8332/8435918247_a390669f2c_c.jpg&quot; alt=&quot;&quot; /&gt;&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;http://farm9.staticflickr.com/8079/8435916331_d1280f968f_c.jpg&quot; alt=&quot;&quot; /&gt;&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;http://farm9.staticflickr.com/8329/8437002158_04cd2beb6f_c.jpg&quot; alt=&quot;&quot; /&gt;&lt;/p&gt;
</content>
  </entry>
  
  <entry>
    <id>http://self.d-struct.org/aws-two-factor-reset</id>
    <link type="text/html" rel="alternate" href="http://self.d-struct.org/aws-two-factor-reset"/>
    <title>Resetting an AWS IAM Account with 2-factor Authentication</title>
    <updated>2013-01-23T00:00:00-06:00</updated>
    <author>
      <name>Chris Gansen</name>
      <uri>http://self.d-struct.org/</uri>
    </author>
    <content type="html">&lt;p&gt;I use Amazon's AWS extensively; their &lt;a href=&quot;http://aws.amazon.com/mfa/&quot;&gt;two-factor authentication&lt;/a&gt; is pretty great. Recently I had the pleasure of resetting an Amazon Web Services IAM user account after losing my virtual MFA device. Thanks to a &lt;a href=&quot;https://twitter.com/cgansen/status/290166318706065408&quot;&gt;botched iOS 6 update&lt;/a&gt;, I lost everything on my phone, including all of my &lt;a href=&quot;https://itunes.apple.com/us/app/google-authenticator/id388497605?mt=8&quot;&gt;Google Authenticator&lt;/a&gt; profiles. That meant I had no way to log in to any of my protected accounts, including AWS. Yikes!&lt;/p&gt;

&lt;p&gt;Amazon's &lt;a href=&quot;http://aws.amazon.com/mfa/faqs/#My_authentication_device_is_lost_is_damaged_or_has_been_stolen_and_now_I_cant_sign_in&quot;&gt;MFA FAQ addresses this scenario&lt;/a&gt;, but doesn't say what is involved in the reset process. Here's what I was asked to do when I contacted Amazon support:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Identify myself by name and email address.&lt;/li&gt;
&lt;li&gt;Provide the address on the AWS account, with absolute precision. There was a bit of back and forth until I refined my answer to include the type of street (e.g. &quot;Avenue&quot;).&lt;/li&gt;
&lt;li&gt;Last 4 digits of the credit card associated with the account.&lt;/li&gt;
&lt;li&gt;Exact amount of a previous AWS bill.&lt;/li&gt;
&lt;li&gt;The agent then emailed me a PIN number and asked me to hang up.&lt;/li&gt;
&lt;li&gt;The agent then called back at a phone number associated with the account, and asked me to recite the emailed PIN.&lt;/li&gt;
&lt;/ol&gt;


&lt;p&gt;I hope this helps someone else in a similar situation.&lt;/p&gt;
</content>
  </entry>
  
  <entry>
    <id>http://self.d-struct.org/coding-forward</id>
    <link type="text/html" rel="alternate" href="http://self.d-struct.org/coding-forward"/>
    <title>#codingforward</title>
    <updated>2013-01-20T00:00:00-06:00</updated>
    <author>
      <name>Chris Gansen</name>
      <uri>http://self.d-struct.org/</uri>
    </author>
    <content type="html">&lt;p&gt;&lt;img src=&quot;https://s3.amazonaws.com/d-struct-org/blog-images/coding-forward-chicago.jpg&quot; alt=&quot;Coding Forward Chicago&quot; /&gt;&lt;/p&gt;

&lt;p&gt;Earlier this month I was fortunate to be a part of &lt;a href=&quot;http://www.newrelic.com&quot;&gt;New Relic's&lt;/a&gt; &lt;a href=&quot;http://newrelic.com/codingforward&quot;&gt;Coding Forward&lt;/a&gt; events. New Relic, makers of &lt;a href=&quot;http://newrelic.com/product/real-user-monitoring&quot;&gt;an amazing application performance monitoring tool&lt;/a&gt;, kindly sponsored a road trip of OFA Technology team members: Jason Kunesh, Ryan Kolak, Nick Leeper, Scott Van Den Plas, and myself.&lt;/p&gt;

&lt;p&gt;We had a great time traveling to New York, San Francisco, and here at home in Chicago. We shared some behind-the-scenes stories from our time on the Obama for America Technology team.&lt;/p&gt;

&lt;p&gt;Event attendees were very enthusiastic and appear to have had a great time. Here's a roundup of some reactions and press:&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Current TV&lt;/strong&gt;: &lt;a href=&quot;http://current.com/groups/news-blog/94016874_obama-tech-team-talks-winning-disrupting-and-sticking-to-basics.htm&quot;&gt;&quot;Obama tech team talks winning, disrupting and sticking to basics&quot;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Slashdot&lt;/strong&gt;: &lt;a href=&quot;http://slashdot.org/topic/bi/the-billion-dollar-startup-inside-obamas-campaign-tech/&quot;&gt;&quot;The Billion-Dollar Startup: Inside Obama’s Campaign Tech&quot;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Constantin Basturea's Storify&lt;/strong&gt;: &lt;a href=&quot;http://storify.com/cbasturea/coding-forward-new-york&quot;&gt;&quot;Coding Forward New York | January 8, 2013&quot;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;SF Bay Guardian&lt;/strong&gt;: &lt;a href=&quot;http://www.sfbg.com/politics/2013/01/11/machine-politics&quot;&gt;&quot;Machine Politics&quot;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Harish Chakravarthy's Storify&lt;/strong&gt;: &lt;a href=&quot;http://storify.com/harishvc/obama-for-america-tech-team-in-sf&quot;&gt;&quot;Obama for America tech team in SF&quot;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Software Development Times&lt;/strong&gt;: &lt;a href=&quot;http://www.sdtimes.com/link/37299&quot;&gt;&quot;DevOps were the difference on the campaign trail&quot;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Douglas Lee Miller's Blog&lt;/strong&gt;: &lt;a href=&quot;https://douglasleemiller.wordpress.com/2013/01/15/notes-from-the-codingforward-qa-with-the-obama-2012-tech-team-sponsored-by-newrelic/&quot;&gt;&quot;Notes from the #codingforward Q/A with the Obama 2012 Tech Team&quot;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Thank you to everyone who came out! I hope you enjoyed our stories.&lt;/p&gt;
</content>
  </entry>
  
  <entry>
    <id>http://self.d-struct.org/civic-innovation</id>
    <link type="text/html" rel="alternate" href="http://self.d-struct.org/civic-innovation"/>
    <title>Civic Innovation</title>
    <updated>2013-01-19T00:00:00-06:00</updated>
    <author>
      <name>Chris Gansen</name>
      <uri>http://self.d-struct.org/</uri>
    </author>
    <content type="html">&lt;p&gt;I am excited to start working with the &lt;a href=&quot;http://www.smartchicagocollaborative.org&quot;&gt;Smart Chicago Collaborative&lt;/a&gt; as a civic innovation program manager.&lt;/p&gt;

&lt;p&gt;The Smart Chicago Collaborative (SCC) is a non-profit devoted to using technology to make lives better in Chicago. Their work is, in broad terms, three-fold: increasing access to technology in Chicago; providing Chicagoans the skills required to use technology; and enabling civic innovation with open data and open government services. SCC is supported by a number of entities, most notably the &lt;a href=&quot;http://www.cct.org&quot;&gt;Chicago Community Trust&lt;/a&gt; and the &lt;a href=&quot;http://www.macfound.org/&quot;&gt;John D. and Catherine T. MacArthur Foundation&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;In the role of civic innovation program manager, I'm positioned at the intersection of the SCC, local governments, and the Chicago civic developer community. I'll work with developers to increase the number and quality of civic applications, and to increase the adoption of existing tools and services. I'll also manage SCC infrastructure and contribute code to grow and improve SCC-supported tools.&lt;/p&gt;

&lt;p&gt;SCC has supported a number of impressive technology projects in Chicago. I first became involved back in 2011 when I assisted with porting Code for America's &lt;a href=&quot;http://codeforamerica.org/?cfa_project=adopt-a-hydrant&quot;&gt;Adopt a Hydrant&lt;/a&gt; application to &lt;a href=&quot;http://adoptasidewalk.org&quot;&gt;Adopt a sidewalk&lt;/a&gt;, a free tool for Chicago residents to volunteer to clear sidewalks in their neighborhoods during snow storms. Other projects built by or supported by SCC include &lt;a href=&quot;http://clearstreets.org&quot;&gt;Clear Streets&lt;/a&gt;, built on the city's open plow tracker data; a &lt;a href=&quot;http://flushots.311services.org/&quot;&gt;flu-shot locator&lt;/a&gt;, used by the &lt;a href=&quot;http://www.cityofchicago.org/city/en/depts/cdph/iframe/scc_app.html&quot;&gt;Chicago Department of Health&lt;/a&gt;; &lt;a href=&quot;http://chicagoearlylearning.org/&quot;&gt;Chicago Early Learning&lt;/a&gt;, a resource for finding and comparing child care providers in the city; and &lt;a href=&quot;http://www.smartchicagocollaborative.org/projects/&quot;&gt;many more&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;Chicago is a leader in open data and civic innovation, evidenced by initiatives like &lt;a href=&quot;http://dev.cityofchicago.org/docs/api&quot;&gt;Open311&lt;/a&gt; and Mayor Rahm Emanuel's &lt;a href=&quot;http://www.cityofchicago.org/city/en/depts/mayor/press_room/press_releases/2012/december_2012/mayor_emanuel_expandsopendataoncityportalwithexecutiveorder.html&quot;&gt;executive order&lt;/a&gt; mandating city departments to publish and maintain their data. There is a robust and vibrant developer community that I feel is capable of building amazing applications. Groups like &lt;a href=&quot;http://www.opencityapps.com&quot;&gt;Open City&lt;/a&gt;, the &lt;a href=&quot;http://codeforamerica.org/2012/10/11/brigade-spotlight-chicago/&quot;&gt;Code for America Brigade&lt;/a&gt;, and &lt;a href=&quot;https://groups.google.com/forum/#!forum/OpenGovChicago&quot;&gt;OpenGov Chicagoland&lt;/a&gt; are collaborating and building the next wave of civic applications. I am honored to be a part of the community and look forward to a productive and innovative 2013.&lt;/p&gt;
</content>
  </entry>
  
  <entry>
    <id>http://self.d-struct.org/something-new</id>
    <link type="text/html" rel="alternate" href="http://self.d-struct.org/something-new"/>
    <title>Something new</title>
    <updated>2013-01-09T00:00:00-06:00</updated>
    <author>
      <name>Chris Gansen</name>
      <uri>http://self.d-struct.org/</uri>
    </author>
    <content type="html">&lt;p&gt;This past Saturday (January 5), on the four year anniversary of our first date, I got down on one knee in the front room of our apartment and asked Melissa to marry me.&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;https://s3.amazonaws.com/d-struct-org/blog-images/omg-a-ring.png&quot; alt=&quot;OMG!&quot;/&gt;&lt;/p&gt;

</content>
  </entry>
  
  <entry>
    <id>http://self.d-struct.org/coming-up-for-air</id>
    <link type="text/html" rel="alternate" href="http://self.d-struct.org/coming-up-for-air"/>
    <title>Coming up for air</title>
    <updated>2012-11-26T00:00:00-06:00</updated>
    <author>
      <name>Chris Gansen</name>
      <uri>http://self.d-struct.org/</uri>
    </author>
    <content type="html">&lt;p&gt;Whew.&lt;/p&gt;

&lt;p&gt;I am still figuring out what comes next after my time with Obama for America. Watch this space for writings about what we did, and what I will do next.&lt;/p&gt;</content>
  </entry>
  
  <entry>
    <id>http://self.d-struct.org/a-jaunt-through-the-u-k</id>
    <link type="text/html" rel="alternate" href="http://self.d-struct.org/a-jaunt-through-the-u-k"/>
    <title>A jaunt through the U.K.</title>
    <updated>2012-01-22T00:00:00-06:00</updated>
    <author>
      <name>Chris Gansen</name>
      <uri>http://self.d-struct.org/</uri>
    </author>
    <content type="html">&lt;img class=&quot;aligncenter&quot; title=&quot;Big Ben&quot; src=&quot;http://farm8.staticflickr.com/7166/6654270761_d831f653af_z.jpg&quot; alt=&quot;&quot; width=&quot;640&quot; height=&quot;640&quot; /&gt;

&lt;img class=&quot;aligncenter&quot; title=&quot;http://farm8.staticflickr.com/7032/6654265945_6f0f6f73cc_z.jpg&quot; src=&quot;http://farm8.staticflickr.com/7032/6654265945_6f0f6f73cc_z.jpg&quot; alt=&quot;&quot; width=&quot;640&quot; height=&quot;437&quot; /&gt;

&lt;img class=&quot;aligncenter&quot; title=&quot;http://farm8.staticflickr.com/7161/6654308469_f1bca4e192_z.jpg&quot; src=&quot;http://farm8.staticflickr.com/7161/6654308469_f1bca4e192_z.jpg&quot; alt=&quot;&quot; width=&quot;640&quot; height=&quot;425&quot; /&gt;

&lt;img class=&quot;aligncenter&quot; title=&quot;http://farm8.staticflickr.com/7029/6654307731_f966cebbef_z.jpg&quot; src=&quot;http://farm8.staticflickr.com/7029/6654307731_f966cebbef_z.jpg&quot; alt=&quot;&quot; width=&quot;640&quot; height=&quot;425&quot; /&gt;
&lt;p style=&quot;text-align: center;&quot;&gt;&lt;a href=&quot;http://www.flickr.com/photos/daychokesnight/sets/72157628763689243/show/&quot; target=&quot;_blank&quot;&gt;See all the fun&lt;/a&gt;.&lt;/p&gt;
</content>
  </entry>
  
  <entry>
    <id>http://self.d-struct.org/introducing-louie</id>
    <link type="text/html" rel="alternate" href="http://self.d-struct.org/introducing-louie"/>
    <title>Introducing Louie</title>
    <updated>2011-10-31T00:00:00-05:00</updated>
    <author>
      <name>Chris Gansen</name>
      <uri>http://self.d-struct.org/</uri>
    </author>
    <content type="html">&lt;img class=&quot;aligncenter&quot; title=&quot;Louie&quot; src=&quot;http://farm7.static.flickr.com/6114/6251048946_8fd330496c_z.jpg&quot; alt=&quot;&quot; width=&quot;640&quot; height=&quot;640&quot; /&gt;

&lt;p&gt;Say hello to Louie, the pooch Melissa and I adopted from a local canine rescue. Louie's a energetic little guy who's been through a lot. From what we know, he appears to be part beagle, part &lt;del&gt;pug&lt;/del&gt; dachshund ( a&quot;&lt;del&gt;puggle&lt;/del&gt; doxle&quot;) and is about 1.5 years old. He came into Chicago Animal Control as a stray, and folks seem to think he was hit by a car. &lt;a href=&quot;http://chicagocaninerescue.com/&quot;&gt;Chicago Canine Rescue&lt;/a&gt; saved the lil' guy, paid for hip surgery, and put him into a foster home. After some training, he was listed on Petfinder.com where Melissa instantly fell in love. He is settling in nicely.
&lt;/p&gt;

&lt;img class=&quot;aligncenter&quot; title=&quot;Hot dog&quot; src=&quot;https://s3.amazonaws.com/d-struct-org/blog-images/AdH708fCIAEJEVJ.jpg&quot; alt=&quot;&quot; width=&quot;648&quot; height=&quot;484&quot; /&gt;
</content>
  </entry>
  
  <entry>
    <id>http://self.d-struct.org/artwork-by-sergio</id>
    <link type="text/html" rel="alternate" href="http://self.d-struct.org/artwork-by-sergio"/>
    <title>Artwork by Sergio</title>
    <updated>2011-10-26T00:00:00-05:00</updated>
    <author>
      <name>Chris Gansen</name>
      <uri>http://self.d-struct.org/</uri>
    </author>
    <content type="html">&lt;img class=&quot;aligncenter&quot; title=&quot;Painting of Gordie&quot; src=&quot;http://farm7.static.flickr.com/6229/6285069426_80e523d49e_b.jpg&quot; alt=&quot;&quot; width=&quot;680&quot; height=&quot;1024&quot; /&gt;

&lt;p&gt;Melissa surprised me for my birthday with a commissioned painting of my family's dear pet bird Gordie (&lt;a href=&quot;http://self.d-struct.org/231/gordie-pretty-bird&quot; target=&quot;_blank&quot;&gt;previously&lt;/a&gt;).&lt;/p&gt;

&lt;p&gt;The talented artist responsible for this is our friend Sergio Quiñones, who has &lt;a href=&quot;http://www.etsy.com/shop/srgquin&quot; target=&quot;_blank&quot;&gt;an Etsy shop full of his original work&lt;/a&gt;. His attention to detail and ability to conjure emotion and character in his paintings is masterful.&lt;/p&gt;

&lt;img class=&quot;aligncenter&quot; title=&quot;Painting of Gordie (detail)&quot; src=&quot;http://farm7.static.flickr.com/6117/6285069690_69d01ef4b9_z_d.jpg&quot; alt=&quot;&quot; width=&quot;640&quot; height=&quot;640&quot; /&gt;

&lt;p&gt;Sergio is also a big fan of Rufus, and surprised Melissa and I with this painting of the little guy.&lt;/p&gt;
&lt;p style=&quot;text-align: center;&quot;&gt;&lt;img class=&quot;aligncenter&quot; title=&quot;Painting of Rufus&quot; src=&quot;http://farm7.static.flickr.com/6114/6285069982_a9ff05fd94_b.jpg&quot; alt=&quot;&quot; /&gt;&lt;/p&gt;
&lt;p&gt;Thank you so much, Melissa and Sergio. These are fantastic pieces of art.&lt;/p&gt;
</content>
  </entry>
  
  <entry>
    <id>http://self.d-struct.org/scene</id>
    <link type="text/html" rel="alternate" href="http://self.d-struct.org/scene"/>
    <title>[scene]</title>
    <updated>2011-09-16T00:00:00-05:00</updated>
    <author>
      <name>Chris Gansen</name>
      <uri>http://self.d-struct.org/</uri>
    </author>
    <content type="html">&lt;p&gt;Today is my last day with &lt;a href=&quot;http://www.ibminteractive.com&quot; target=&quot;_blank&quot;&gt;IBM Interactive&lt;/a&gt;. After six years, I'm moving on.
&lt;/p&gt;
&lt;p&gt;Working for IBM has been a tremendous experience. Fresh out of college in 2005, I had little idea what I was signing up for. My first task was rather menial: packing the office for its move across town. Immediately after that, Katrina hit and I was tasked with building a quick-and-dirty job search engine to help displaced workers. It was that project that revealed to me the scope and reach of IBM's influence. No longer was I hacking on dorm room projects; now I was building sites that ended up featured on cable news broadcasts.&lt;/p&gt;

&lt;p&gt;In the years that followed, I had the great fortune and privilege to work on a variety of projects supported by IBM's corporate citizenship group: designing and building the platform that powers the &lt;a href=&quot;http://www.smetoolkit.org/&quot; target=&quot;_blank&quot;&gt;SME Toolkit&lt;/a&gt;, a partnership with the International Finance Group and the World Bank; rebuilding the online presence of the &lt;a href=&quot;http://www.hermitage.ru&quot; target=&quot;_blank&quot;&gt;State Hermitage Museum in St. Petersburg, Russia&lt;/a&gt;; and building tools for &lt;a href=&quot;http://www.acp-usa.org/&quot; target=&quot;_blank&quot;&gt;American Corporate Partners&lt;/a&gt; to help our nation's veterans.
&lt;/p&gt;

&lt;p&gt;By far the most exciting experience I had at IBM was the Corporate Service Corps, a 4 week leadership development program in Arusha, Tanzania. Paired with 7 other IBMers, we assisted local NGO and a college with various projects. This was unlike anything I have done: no programming, no Internet. Every day was a new challenge, a new surprise, and we did our best to help our partners with whatever they could throw at us.&lt;/p&gt;

&lt;p&gt;What's next? I'm joining the &lt;a href=&quot;http://www.barackobama.com/&quot;&gt;Obama for America re-election campaign&lt;/a&gt;. It'll be fun.&lt;/p&gt;
</content>
  </entry>
  
  <entry>
    <id>http://self.d-struct.org/goodbye-rufus</id>
    <link type="text/html" rel="alternate" href="http://self.d-struct.org/goodbye-rufus"/>
    <title>Goodbye, Rufus.</title>
    <updated>2011-08-22T00:00:00-05:00</updated>
    <author>
      <name>Chris Gansen</name>
      <uri>http://self.d-struct.org/</uri>
    </author>
    <content type="html">&lt;img class=&quot;aligncenter&quot; title=&quot;Rufus&quot; src=&quot;http://farm3.static.flickr.com/2790/4403387394_49800179cd_z.jpg&quot; alt=&quot;&quot; width=&quot;640&quot; height=&quot;640&quot; /&gt;

&lt;p&gt;Rufus lost his battle with lymphoma this morning. Words cannot begin to express how much Melissa and I miss him now.
&lt;/p&gt;
&lt;p&gt;To everyone that was a friend of Rufus, everyone who watched him for a weekend, let him lick your face, or found all 60 pounds of him suddenly sitting in your lap, thank you for helping give him a wonderful life.&lt;/p&gt;

&lt;p&gt;Goodbye, little guy. We miss you, we love you.&lt;/p&gt;

&lt;img class=&quot;aligncenter&quot; title=&quot;Rufus&quot; src=&quot;http://farm5.static.flickr.com/4059/4530275332_269bc78886_z.jpg&quot; alt=&quot;&quot; width=&quot;529&quot; height=&quot;640&quot; /&gt;

&lt;img class=&quot;aligncenter&quot; title=&quot;Rufus&quot; src=&quot;http://farm5.static.flickr.com/4141/4910663721_6e987fce1a_z.jpg&quot; alt=&quot;&quot; width=&quot;640&quot; height=&quot;425&quot; /&gt;

&lt;a href=&quot;http://www.flickr.com/search/?w=55016393@N00&amp;amp;q=rufus&quot; target=&quot;_blank&quot;&gt;More&lt;/a&gt;.
</content>
  </entry>
  
  <entry>
    <id>http://self.d-struct.org/iberian-adventure</id>
    <link type="text/html" rel="alternate" href="http://self.d-struct.org/iberian-adventure"/>
    <title>Iberian Adventure</title>
    <updated>2011-03-06T00:00:00-06:00</updated>
    <author>
      <name>Chris Gansen</name>
      <uri>http://self.d-struct.org/</uri>
    </author>
    <content type="html">&lt;img title=&quot;http://farm6.static.flickr.com/5059/5501006747_51571fc23f_z.jpg&quot; src=&quot;http://farm6.static.flickr.com/5059/5501006747_51571fc23f_z.jpg&quot; alt=&quot;&quot; width=&quot;640&quot; height=&quot;425&quot; /&gt;

&lt;p&gt;Melissa and I recently returned from a 9 day jaunt through Spain, with stops in Barcelona, Seville, and Tarragona.
&lt;/p&gt;

&lt;img title=&quot;http://farm6.static.flickr.com/5140/5501597674_b70f1d2a31_z.jpg&quot; src=&quot;http://farm6.static.flickr.com/5140/5501597674_b70f1d2a31_z.jpg&quot; alt=&quot;&quot; width=&quot;640&quot; height=&quot;425&quot; /&gt;

&lt;img title=&quot;http://farm6.static.flickr.com/5173/5501602446_010dc6f13c_z.jpg&quot; src=&quot;http://farm6.static.flickr.com/5173/5501602446_010dc6f13c_z.jpg&quot; alt=&quot;&quot; width=&quot;640&quot; height=&quot;425&quot; /&gt;

&lt;img title=&quot;http://farm6.static.flickr.com/5094/5501605946_80c945bd1e_z.jpg&quot; src=&quot;http://farm6.static.flickr.com/5094/5501605946_80c945bd1e_z.jpg&quot; alt=&quot;&quot; width=&quot;640&quot; height=&quot;425&quot; /&gt;

&lt;img title=&quot;http://farm6.static.flickr.com/5178/5501622768_b4eb057391_z.jpg&quot; src=&quot;http://farm6.static.flickr.com/5178/5501622768_b4eb057391_z.jpg&quot; alt=&quot;&quot; width=&quot;640&quot; height=&quot;425&quot; /&gt;

&lt;img title=&quot;http://farm6.static.flickr.com/5252/5501636504_117461e2f6_z.jpg&quot; src=&quot;http://farm6.static.flickr.com/5252/5501636504_117461e2f6_z.jpg&quot; alt=&quot;&quot; width=&quot;425&quot; height=&quot;640&quot; /&gt;

&lt;img title=&quot;http://farm6.static.flickr.com/5053/5501644044_2556f3537c_z.jpg&quot; src=&quot;http://farm6.static.flickr.com/5053/5501644044_2556f3537c_z.jpg&quot; alt=&quot;&quot; width=&quot;425&quot; height=&quot;640&quot; /&gt;

&lt;img title=&quot;http://farm6.static.flickr.com/5254/5501052517_196e83a14f_z.jpg&quot; src=&quot;http://farm6.static.flickr.com/5254/5501052517_196e83a14f_z.jpg&quot; alt=&quot;&quot; width=&quot;640&quot; height=&quot;425&quot; /&gt;
&lt;p style=&quot;text-align: center;&quot;&gt;See all photos &lt;a href=&quot;http://www.flickr.com/photos/daychokesnight/sets/72157626080043215/&quot;&gt;here&lt;/a&gt;.&lt;/p&gt;
</content>
  </entry>
  
  <entry>
    <id>http://self.d-struct.org/errant-paw</id>
    <link type="text/html" rel="alternate" href="http://self.d-struct.org/errant-paw"/>
    <title>Errant Paw</title>
    <updated>2011-02-09T00:00:00-06:00</updated>
    <author>
      <name>Chris Gansen</name>
      <uri>http://self.d-struct.org/</uri>
    </author>
    <content type="html">&lt;img class=&quot;aligncenter&quot; title=&quot;paw&quot; src=&quot;http://farm6.static.flickr.com/5098/5432925220_97bc7f088f_z.jpg&quot; alt=&quot;&quot; width=&quot;640&quot; height=&quot;425&quot; /&gt;

&lt;p&gt;While helping &lt;a href=&quot;http://melouca.tumblr.com/&quot;&gt;Melissa&lt;/a&gt; shoot some photos for &lt;a href=&quot;http://www.etsy.com/shop/melouca&quot;&gt;her Etsy shop&lt;/a&gt;, this happy accident occurred. Silly art directors, always getting in the way of things.&lt;/p&gt;
</content>
  </entry>
  
  <entry>
    <id>http://self.d-struct.org/gridded</id>
    <link type="text/html" rel="alternate" href="http://self.d-struct.org/gridded"/>
    <title>Gridded</title>
    <updated>2011-01-12T00:00:00-06:00</updated>
    <author>
      <name>Chris Gansen</name>
      <uri>http://self.d-struct.org/</uri>
    </author>
    <content type="html">&lt;a href=&quot;http://self.d-struct.org/wp-content/uploads/2011/01/juans-notebook.jpg&quot;&gt;&lt;img class=&quot;aligncenter size-full wp-image-412&quot; title=&quot;juans-notebook&quot; src=&quot;http://self.d-struct.org/wp-content/uploads/2011/01/juans-notebook.jpg&quot; alt=&quot;&quot; width=&quot;640&quot; height=&quot;454&quot; /&gt;&lt;/a&gt;

&lt;p&gt;Action shot of Juan's wonderful entry to the 2010 DIY Gift Exchange. This handmade graph paper notebook is the shizz. His &lt;a href=&quot;http://birthmarkstrademarks.blogspot.com/&quot;&gt;nascent blog&lt;/a&gt; ain't too bad, either. &lt;a href=&quot;http://birthmarkstrademarks.blogspot.com/&quot;&gt;Check it out&lt;/a&gt;.&lt;/p&gt;
</content>
  </entry>
  
  <entry>
    <id>http://self.d-struct.org/dee-eye-why</id>
    <link type="text/html" rel="alternate" href="http://self.d-struct.org/dee-eye-why"/>
    <title>Dee Eye Why</title>
    <updated>2010-12-30T00:00:00-06:00</updated>
    <author>
      <name>Chris Gansen</name>
      <uri>http://self.d-struct.org/</uri>
    </author>
    <content type="html">&lt;p&gt;&lt;strong&gt;Stuff&lt;/strong&gt;. Lots and lots of &lt;strong&gt;stuff&lt;/strong&gt;. Since Melissa and I started living together, we've struggled to merge our respective collections of stuff, those little trinkets and knick-knacks that seemed so cool at first, but then just sit on a little shelf or cupboard and collect dust. We've done an all right job so far, but there's always more to be done.&lt;/p&gt;

&lt;p&gt;One day, while studiously avoiding real work clicking through Apartment Therapy, I ran across &lt;a href=&quot;http://www.the-brick-house.com/2009/09/shelving-unit.html&quot; target=&quot;_blank&quot;&gt;a neat post&lt;/a&gt; on a blog called &lt;a href=&quot;http://www.the-brick-house.com/&quot; target=&quot;_blank&quot;&gt;the Brick House&lt;/a&gt;. It detailed their DIY shelving unit project, and I was hooked.&lt;/p&gt;

&lt;p&gt;In our apartment there was a very large, very empty wall.&lt;/p&gt;

&lt;img class=&quot;aligncenter size-full wp-image-401&quot; title=&quot;Empty wall&quot; src=&quot;http://self.d-struct.org/wp-content/uploads/2010/12/DSC_0036.jpg&quot; alt=&quot;&quot; width=&quot;640&quot; height=&quot;425&quot; /&gt;

&lt;p&gt;And now it is no longer empty:&lt;/p&gt;

&lt;img class=&quot;aligncenter size-full wp-image-403&quot; title=&quot;Not empty wall&quot; src=&quot;http://self.d-struct.org/wp-content/uploads/2010/12/DSC_0071.jpg&quot; alt=&quot;&quot; width=&quot;640&quot; height=&quot;425&quot; /&gt;

&lt;p&gt;A few trips to Home Depot, a lot of 1/2&quot; pipes, fittings, wood stain, and spray paint later we had a nice set of shelves on the wall. It's rock solid and hasn't fallen down, y&lt;em&gt;et&lt;/em&gt;. That is my humble measure of success.&lt;/p&gt;

&lt;img class=&quot;aligncenter size-full wp-image-400&quot; title=&quot;Pipe fittings&quot; src=&quot;http://self.d-struct.org/wp-content/uploads/2010/12/DSC_0035.jpg&quot; alt=&quot;&quot; width=&quot;640&quot; height=&quot;640&quot; /&gt;

&lt;img class=&quot;aligncenter size-full wp-image-404&quot; title=&quot;DSC_0081&quot; src=&quot;http://self.d-struct.org/wp-content/uploads/2010/12/DSC_0081.jpg&quot; alt=&quot;&quot; width=&quot;640&quot; height=&quot;640&quot; /&gt;

&lt;p&gt;It was immensely fun for me to work on this project. I &lt;a href=&quot;http://twitter.com/cgansen/status/11630698557341696&quot;&gt;tweeted while in-progress&lt;/a&gt; that there's something really enjoyable about building an actual physical structure. I spend so many hours every day tapping away at a keyboard building digital things that getting covered in pipe grease and stinking of paint thinner and sawdust is a welcome respite.&lt;/p&gt;

&lt;img class=&quot;aligncenter size-full wp-image-399&quot; title=&quot;Finished&quot; src=&quot;http://self.d-struct.org/wp-content/uploads/2010/12/DSC_0004.jpg&quot; alt=&quot;&quot; width=&quot;640&quot; height=&quot;964&quot; /&gt;

&lt;p&gt;Santa was nice to me this Christmas and brought a new set of power tools. I haven't the faintest idea what I'll do with a reciprocating saw living in a rental, but I'll be pleasantly surprised when I finally figure it out.&lt;/p&gt;

&lt;img class=&quot;aligncenter size-full wp-image-402&quot; title=&quot;Filled&quot; src=&quot;http://self.d-struct.org/wp-content/uploads/2010/12/DSC_0043.jpg&quot; alt=&quot;&quot; width=&quot;640&quot; height=&quot;425&quot; /&gt;</content>
  </entry>
  
  <entry>
    <id>http://self.d-struct.org/phaseone-december-mix</id>
    <link type="text/html" rel="alternate" href="http://self.d-struct.org/phaseone-december-mix"/>
    <title>Phaseone December Mix</title>
    <updated>2010-12-29T00:00:00-06:00</updated>
    <author>
      <name>Chris Gansen</name>
      <uri>http://self.d-struct.org/</uri>
    </author>
    <content type="html">&lt;p&gt;Been listening to this mix a lot over the past month. My distaste for Björk is endless, but the remix he uses here works really, really well. Damn!&lt;/p&gt;

&lt;object classid=&quot;clsid:d27cdb6e-ae6d-11cf-96b8-444553540000&quot; width=&quot;100%&quot; height=&quot;81&quot; codebase=&quot;http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=6,0,40,0&quot;&gt;&lt;param name=&quot;allowscriptaccess&quot; value=&quot;always&quot; /&gt;&lt;param name=&quot;src&quot; value=&quot;http://player.soundcloud.com/player.swf?url=http%3A%2F%2Fapi.soundcloud.com%2Ftracks%2F7604818&quot; /&gt;&lt;embed type=&quot;application/x-shockwave-flash&quot; width=&quot;100%&quot; height=&quot;81&quot; src=&quot;http://player.soundcloud.com/player.swf?url=http%3A%2F%2Fapi.soundcloud.com%2Ftracks%2F7604818&quot; allowscriptaccess=&quot;always&quot;&gt;&lt;/embed&gt;&lt;/object&gt; &lt;span&gt;&lt;a href=&quot;http://soundcloud.com/phaseone/dec2010mix&quot;&gt;Phaseone - Dec 2010 Mix&lt;/a&gt; by &lt;a href=&quot;http://soundcloud.com/phaseone&quot;&gt;PHASEONE&lt;/a&gt;&lt;/span&gt;
</content>
  </entry>
  
  <entry>
    <id>http://self.d-struct.org/please-just-3-more</id>
    <link type="text/html" rel="alternate" href="http://self.d-struct.org/please-just-3-more"/>
    <title>Please just $3 more</title>
    <updated>2010-10-17T00:00:00-05:00</updated>
    <author>
      <name>Chris Gansen</name>
      <uri>http://self.d-struct.org/</uri>
    </author>
    <content type="html">&lt;a href=&quot;http://self.d-struct.org/wp-content/uploads/2010/10/campground_note.jpg&quot;&gt;&lt;img class=&quot;aligncenter size-full wp-image-387&quot; title=&quot;campground_note&quot; src=&quot;http://self.d-struct.org/wp-content/uploads/2010/10/campground_note.jpg&quot; alt=&quot;&quot; width=&quot;640&quot; height=&quot;478&quot; /&gt;&lt;/a&gt;

&lt;p&gt;Seven years ago Mogos and I took a long trip through Virginia and the surrounding environs. As we slowly inched north, we spent a night in a nondescript campground in Kentucky (painfully) named &lt;a href=&quot;http://www.recreation.gov/campgroundDetails.do?contractCode=NRSO&amp;amp;parkId=73643&quot;&gt;Twin Knobs&lt;/a&gt;. We pulled in late at night, and desperate for a place to crash, picked the first empty site we found, shoved some money in the donation box, and passed out. We woke the next morning to find, much to our delight, that we were married that night.
&lt;/p&gt;
&lt;a href=&quot;http://self.d-struct.org/wp-content/uploads/2010/10/newlyweds.jpg&quot;&gt;&lt;img class=&quot;aligncenter size-full wp-image-389&quot; title=&quot;newlyweds&quot; src=&quot;http://self.d-struct.org/wp-content/uploads/2010/10/newlyweds.jpg&quot; alt=&quot;Newlyweds&quot; width=&quot;640&quot; height=&quot;480&quot; /&gt;&lt;/a&gt;

&lt;p&gt;&lt;em&gt;Swoon.&lt;/em&gt;&lt;/p&gt;
</content>
  </entry>
  
  <entry>
    <id>http://self.d-struct.org/saint-petersburg</id>
    <link type="text/html" rel="alternate" href="http://self.d-struct.org/saint-petersburg"/>
    <title>Saint Petersburg</title>
    <updated>2010-09-30T00:00:00-05:00</updated>
    <author>
      <name>Chris Gansen</name>
      <uri>http://self.d-struct.org/</uri>
    </author>
    <content type="html">&lt;img class=&quot;aligncenter&quot; title=&quot;http://farm5.static.flickr.com/4149/5031897943_072c337eab_z.jpg&quot; src=&quot;http://farm5.static.flickr.com/4149/5031897943_072c337eab_z.jpg&quot; alt=&quot;&quot; width=&quot;640&quot; height=&quot;640&quot; /&gt;

&lt;p&gt;Last year, in September of 2009, I traveled to Saint Petersburg, Russia to work with the fine folks at the &lt;a href=&quot;http://hermitage.ru/&quot;&gt;State Hermitage Museum&lt;/a&gt;. I had the good fortune to spend 8 days in Petersburg. While not cooped up in a conference room in the museum, I spent my free time exploring the city. Here are some of my favorite pictures from the trip. You can &lt;a href=&quot;http://www.flickr.com/photos/daychokesnight/sets/72157625050579676/show/&quot;&gt;see the whole set over at Flickr&lt;/a&gt;.
&lt;/p&gt;

&lt;img class=&quot;aligncenter&quot; title=&quot;http://farm5.static.flickr.com/4125/5031903445_5e6de4ac8f_z.jpg&quot; src=&quot;http://farm5.static.flickr.com/4125/5031903445_5e6de4ac8f_z.jpg&quot; alt=&quot;&quot; width=&quot;640&quot; height=&quot;425&quot; /&gt;

&lt;img class=&quot;aligncenter&quot; title=&quot;http://farm5.static.flickr.com/4083/5032522376_a44be2a7b6_z.jpg&quot; src=&quot;http://farm5.static.flickr.com/4083/5032522376_a44be2a7b6_z.jpg&quot; alt=&quot;&quot; width=&quot;640&quot; height=&quot;425&quot; /&gt;

&lt;img class=&quot;aligncenter&quot; title=&quot;http://farm5.static.flickr.com/4131/5031922069_4b0e091a90_z.jpg&quot; src=&quot;http://farm5.static.flickr.com/4131/5031922069_4b0e091a90_z.jpg&quot; alt=&quot;&quot; width=&quot;640&quot; height=&quot;425&quot; /&gt;

&lt;img class=&quot;aligncenter&quot; title=&quot;http://farm5.static.flickr.com/4154/5032545320_d31fa8e937_z.jpg&quot; src=&quot;http://farm5.static.flickr.com/4154/5032545320_d31fa8e937_z.jpg&quot; alt=&quot;&quot; width=&quot;640&quot; height=&quot;425&quot; /&gt;

&lt;img class=&quot;aligncenter&quot; title=&quot;http://farm5.static.flickr.com/4124/5032553236_10ff48779f_z.jpg&quot; src=&quot;http://farm5.static.flickr.com/4124/5032553236_10ff48779f_z.jpg&quot; alt=&quot;&quot; width=&quot;640&quot; height=&quot;425&quot; /&gt;

&lt;img class=&quot;aligncenter&quot; title=&quot;http://farm5.static.flickr.com/4125/5031893357_dde3910eac_z.jpg&quot; src=&quot;http://farm5.static.flickr.com/4125/5031893357_dde3910eac_z.jpg&quot; alt=&quot;&quot; width=&quot;640&quot; height=&quot;425&quot; /&gt;
</content>
  </entry>
  
  <entry>
    <id>http://self.d-struct.org/handling-nested-cdata-with-builder</id>
    <link type="text/html" rel="alternate" href="http://self.d-struct.org/handling-nested-cdata-with-builder"/>
    <title>Handling Nested CDATA With Builder</title>
    <updated>2010-09-21T00:00:00-05:00</updated>
    <author>
      <name>Chris Gansen</name>
      <uri>http://self.d-struct.org/</uri>
    </author>
    <content type="html">As &lt;a href=&quot;http://spin.atomicobject.com/2010/09/01/working-with-embedded-cdata-in-xml-documents&quot; target=&quot;_blank&quot;&gt;noted by our associates at Atomic Object&lt;/a&gt;, XML doesn't allow for nested&amp;lt;![CDATA[&amp;hellip;]]&amp;gt; elements. In the course of rewriting some pieces of code, I developed the following &lt;a href=&quot;http://builder.rubyforge.org/&quot; target=&quot;_blank&quot;&gt;Builder&lt;/a&gt; workaround to allow our application to export valid XML by breaking the nested CDATA elements into distinct chunks. When read back in via our &lt;a href=&quot;http://nokogiri.org/Nokogiri.html&quot; target=&quot;_blank&quot;&gt;Nokogiri&lt;/a&gt;-based parser, it concatenates the values automagically, and the end result is clean, valid XML.

Fix code:
&lt;pre lang=&quot;ruby&quot;&gt;module Builder
  class XmlMarkup &lt; XmlBase

    def cdata_with_escaping!(text)
      if text =~ /(\]\]&gt;)/
        text.gsub!(/(\]\]&gt;)/, &quot;]]&gt;&quot;)
      end
      cdata_without_escaping!(text)
    end
    alias_method_chain 'cdata!', 'escaping'

  end
end
&lt;/pre&gt;

&lt;p&gt;Sample output:&lt;/p&gt;
&lt;pre lang=&quot;ruby&quot;&gt;&gt;&gt; xml = Builder::XmlMarkup.new(str)
&gt;&gt; xml.cdata!(&quot;&lt;![CDATA[Foo bar sna&quot;)
&gt;&gt; xml.target!
=&gt; &quot;&lt;![CDATA[Foo bar sna]]&gt;&quot;  # valid XML!
&gt;&gt; xml.cdata_without_escaping!(&quot;Foo bar sna&quot;)
&gt;&gt; xml.target!
=&gt; &quot;&lt;![CDATA[Foo bar sna]]&gt;&quot; # invalid XML!


Sample parsing with Nokogiri:


&gt;&gt; doc = Nokogiri::XML(&quot;&lt;![CDATA[Foo bar sna]]&gt;&quot;)
=&gt; #&lt;Nokogiri::XML::Document:0x825aff3c name=&quot;document&quot; children=[#&lt;Nokogiri::XML::Element:0x825afc1c name=&quot;baz&quot; children=[#&lt;Nokogiri::XML::CDATA:0x825af99c &quot;Foo bar sna&quot;&gt;]&gt;]&gt;
&gt;&gt; doc.css('baz').first.content
=&gt; &quot;Foo bar sna&quot;
]]&gt;
</content>
  </entry>
  
  <entry>
    <id>http://self.d-struct.org/tracking-drupal-user-registrations-by-date</id>
    <link type="text/html" rel="alternate" href="http://self.d-struct.org/tracking-drupal-user-registrations-by-date"/>
    <title>Tracking Drupal User Registrations by Date</title>
    <updated>2010-09-10T00:00:00-05:00</updated>
    <author>
      <name>Chris Gansen</name>
      <uri>http://self.d-struct.org/</uri>
    </author>
    <content type="html">&lt;p&gt;Today I wanted to graph the number of registrations recorded by a Drupal site grouped by date. Drupal stores all account data in the users table. To identify accounts that are registered and verified, I queried with &quot;login != 0&quot; in my WHERE clause, e.g.&lt;/p&gt;

&lt;pre lang=&quot;mysql&quot;&gt;SELECT COUNT(*) FROM user WHERE login != 0;&lt;/pre&gt;

&lt;p&gt;Since Drupal stores all dates as PHP-style Unix timestamps, e.g. &lt;a href=&quot;http://www.epochconverter.com/&quot;&gt;1284157128&lt;/a&gt;, I needed to convert those into a form that MySQL understands. I used &lt;a href=&quot;http://dev.mysql.com/doc/refman/5.1/en/date-and-time-functions.html#function_from-unixtime&quot; target=&quot;_blank&quot;&gt;from_unixtime()&lt;/a&gt; to convert the date to a MySQL date type. By casting, I was then able to use the column in a GROUP BY clause, yielding my result:&lt;/p&gt;

&lt;pre lang=&quot;mysql&quot;&gt;SELECT COUNT(*), DATE(FROM_UNIXTIME(created)) as created_date
FROM users WHERE login != 0 GROUP BY created_date;&lt;/pre&gt;

&lt;p&gt;Which produced results just as I wanted them.&lt;/p&gt;</content>
  </entry>
  
  <entry>
    <id>http://self.d-struct.org/blue-state</id>
    <link type="text/html" rel="alternate" href="http://self.d-struct.org/blue-state"/>
    <title>Blue State</title>
    <updated>2010-09-01T00:00:00-05:00</updated>
    <author>
      <name>Chris Gansen</name>
      <uri>http://self.d-struct.org/</uri>
    </author>
    <content type="html">&lt;p&gt;Exchange while taking Rufus for a walk:&lt;/p&gt;
&lt;p style=&quot;padding-left: 30px;&quot;&gt;&lt;strong&gt;Man on street&lt;/strong&gt;: That's a great dog there, a boxer, right?&lt;/p&gt;
&lt;p style=&quot;padding-left: 30px;&quot;&gt;&lt;strong&gt;Me&lt;/strong&gt;: Yep!&lt;/p&gt;
&lt;p style=&quot;padding-left: 30px;&quot;&gt;&lt;strong&gt;Man&lt;/strong&gt;: Aw, good dogs aren't they?&lt;/p&gt;
&lt;p style=&quot;padding-left: 30px;&quot;&gt;&lt;strong&gt;Me&lt;/strong&gt;: Yeah, he's pretty stupid but he does love life.&lt;/p&gt;
&lt;p style=&quot;padding-left: 30px;&quot;&gt;&lt;strong&gt;Man&lt;/strong&gt;: Must be a Republican!&lt;/p&gt;
&lt;em&gt;Zing!&lt;/em&gt;
</content>
  </entry>
  
  <entry>
    <id>http://self.d-struct.org/p4k-mobile-site</id>
    <link type="text/html" rel="alternate" href="http://self.d-struct.org/p4k-mobile-site"/>
    <title>P4K Mobile Site</title>
    <updated>2010-07-15T00:00:00-05:00</updated>
    <author>
      <name>Chris Gansen</name>
      <uri>http://self.d-struct.org/</uri>
    </author>
    <content type="html">&lt;p&gt;A few beers, boredom, and frustration with the lack of a mobile site for this weekend's &lt;a href=&quot;http://pitchforkmusicfestival.com/&quot;&gt;Pitchfork Music Festival&lt;/a&gt; led me to hack up a quick &lt;a href=&quot;http://d-struct.org/projects/p4k2k10/&quot;&gt;mobile-friendly version of the schedule&lt;/a&gt;. It works for all iPhones and Android-based phones. If you save it to your iPhone home screen, you can use it offline (a bonus considering how over-taxed the AT&amp;amp;T network is during the festival).&lt;/p&gt;
&lt;p style=&quot;text-align: center;&quot;&gt;&lt;a href=&quot;http://d-struct.org/projects/p4k2k10/&quot;&gt;&lt;strong&gt;See the mobile-friendly schedule - http://d-struct.org/projects/p4k2k10/&lt;/strong&gt;&lt;/a&gt;&lt;/p&gt;
</content>
  </entry>
  
  <entry>
    <id>http://self.d-struct.org/dont-be-afraid-dont-be-afraid-dont-be-afraid</id>
    <link type="text/html" rel="alternate" href="http://self.d-struct.org/dont-be-afraid-dont-be-afraid-dont-be-afraid"/>
    <title>Don't Be Afraid, Don't Be Afraid, Don't Be Afraid</title>
    <updated>2010-07-10T00:00:00-05:00</updated>
    <author>
      <name>Chris Gansen</name>
      <uri>http://self.d-struct.org/</uri>
    </author>
    <content type="html">&lt;p&gt;While digging through some boxes full of old papers, I found this leaflet from a Godspeed You! Black Emperor show in Detroit, circa 2001.&lt;/p&gt;

&lt;a href=&quot;http://www.flickr.com/photos/daychokesnight/4781443961/sizes/l/in/photostream/&quot;&gt;&lt;img class=&quot;aligncenter&quot; title=&quot;http://farm5.static.flickr.com/4080/4781443961_8c82cbcff1_z.jpg&quot; src=&quot;http://farm5.static.flickr.com/4080/4781443961_8c82cbcff1_z.jpg&quot; alt=&quot;&quot; width=&quot;496&quot; height=&quot;640&quot; /&gt;&lt;/a&gt;

&lt;p&gt;The reverse side:&lt;/p&gt;

&lt;a href=&quot;http://www.flickr.com/photos/daychokesnight/4781444207/sizes/l/in/photostream/&quot;&gt;&lt;img class=&quot;aligncenter&quot; title=&quot;http://farm5.static.flickr.com/4134/4781444207_421d19aff6_z.jpg&quot; src=&quot;http://farm5.static.flickr.com/4134/4781444207_421d19aff6_z.jpg&quot; alt=&quot;&quot; width=&quot;483&quot; height=&quot;640&quot; /&gt;&lt;/a&gt;
</content>
  </entry>
  
  <entry>
    <id>http://self.d-struct.org/is-now-for-the-first-time-dali-born</id>
    <link type="text/html" rel="alternate" href="http://self.d-struct.org/is-now-for-the-first-time-dali-born"/>
    <title>Is now for the first time Dalí born.</title>
    <updated>2010-06-14T00:00:00-05:00</updated>
    <author>
      <name>Chris Gansen</name>
      <uri>http://self.d-struct.org/</uri>
    </author>
    <content type="html">&lt;p style=&quot;text-align:center;&quot;&gt;&lt;object width=&quot;640&quot; height=&quot;505&quot;&gt;&lt;param name=&quot;movie&quot; value=&quot;http://www.youtube.com/v/YIFsdVPXMnE&amp;amp;amp;hl=en_US&amp;amp;fs=1&amp;amp;rel=0&quot;&gt;&lt;/param&gt;&lt;param name=&quot;allowFullScreen&quot; value=&quot;true&quot;&gt;&lt;/param&gt;&lt;param name=&quot;allowscriptaccess&quot; value=&quot;always&quot;&gt;&lt;/param&gt;&lt;embed src=&quot;http://www.youtube.com/v/YIFsdVPXMnE&amp;amp;hl=en_US&amp;amp;fs=1&amp;amp;rel=0&quot; type=&quot;application/x-shockwave-flash&quot; allowscriptaccess=&quot;always&quot; allowfullscreen=&quot;true&quot; width=&quot;640&quot; height=&quot;505&quot;&gt;&lt;/embed&gt;&lt;/object&gt;&lt;/p&gt;

&lt;p&gt;Senior year of high school my friends and I recreated this video for our final project in Spanish class. We weren't quite sure what was going on in the video then, and to this day I'm still not very certain. In our low-budget remake, we jumped out of a cardboard box and sprayed milk all over my parents' backyard. The neighbors, I can only imagine, were dumbfounded.&lt;/p&gt;

&lt;p&gt;I present to you, as a service to Google and befuddled viewers, a transcription of the video, unedited:&lt;/p&gt;
&lt;p style=&quot;padding-left: 30px;&quot;&gt;Bonjour, Good Morning&lt;/p&gt;
&lt;p style=&quot;padding-left: 30px;&quot;&gt;Is now for the first time&lt;/p&gt;
&lt;p style=&quot;padding-left: 30px;&quot;&gt;Dalí born&lt;/p&gt;
&lt;p style=&quot;padding-left: 30px;&quot;&gt;with any kind of traumatism&lt;/p&gt;
&lt;p style=&quot;padding-left: 30px;&quot;&gt;A little blood,&lt;/p&gt;
&lt;p style=&quot;padding-left: 30px;&quot;&gt;symbolic blood&lt;/p&gt;
&lt;p style=&quot;padding-left: 30px;&quot;&gt;And milk,&lt;/p&gt;
&lt;p style=&quot;padding-left: 30px;&quot;&gt;again milk of today born&lt;/p&gt;
&lt;p style=&quot;padding-left: 30px;&quot;&gt;and some symbolic fish&lt;/p&gt;
&lt;p style=&quot;padding-left: 30px;&quot;&gt;of Mediterranean people&lt;/p&gt;
&lt;p style=&quot;padding-left: 30px;&quot;&gt;This is the blood of Gala ...&lt;/p&gt;
&lt;p style=&quot;padding-left: 30px;&quot;&gt;...and the blood of the Divine Dalí&lt;/p&gt;
&lt;p style=&quot;padding-left: 30px;&quot;&gt;[scene]&lt;/p&gt;
</content>
  </entry>
  
  <entry>
    <id>http://self.d-struct.org/scenes-from-a-road-trip</id>
    <link type="text/html" rel="alternate" href="http://self.d-struct.org/scenes-from-a-road-trip"/>
    <title>Scenes from a road trip</title>
    <updated>2010-05-28T00:00:00-05:00</updated>
    <author>
      <name>Chris Gansen</name>
      <uri>http://self.d-struct.org/</uri>
    </author>
    <content type="html">&lt;p&gt;I accompanied &lt;a href=&quot;http://melouca.tumblr.com&quot;&gt;Melissa&lt;/a&gt; and her sister on a short trip to Columbus, Ohio two weekends past. This was the view from the backseat.&lt;/p&gt;

&lt;img class=&quot;aligncenter&quot; title=&quot;http://farm5.static.flickr.com/4017/4648129781_6b9b69ab32.jpg&quot; src=&quot;http://farm5.static.flickr.com/4017/4648129781_6b9b69ab32.jpg&quot; alt=&quot;&quot; width=&quot;500&quot; height=&quot;332&quot; /&gt;
&lt;img class=&quot;aligncenter&quot; title=&quot;a&quot; src=&quot;http://farm5.static.flickr.com/4058/4648129313_3825f60284.jpg&quot; alt=&quot;&quot; width=&quot;500&quot; height=&quot;332&quot; /&gt;

&lt;img class=&quot;aligncenter&quot; title=&quot;http://farm5.static.flickr.com/4064/4648130133_b0d18c1ea3.jpg&quot; src=&quot;http://farm5.static.flickr.com/4064/4648130133_b0d18c1ea3.jpg&quot; alt=&quot;&quot; width=&quot;500&quot; height=&quot;332&quot; /&gt;

&lt;p&gt;&lt;a href=&quot;http://www.flickr.com/photos/daychokesnight/sets/72157624032129717/&quot;&gt;More&lt;/a&gt;.&lt;/p&gt;
</content>
  </entry>
  
  <entry>
    <id>http://self.d-struct.org/where-to-find-old-versions-of-ruby</id>
    <link type="text/html" rel="alternate" href="http://self.d-struct.org/where-to-find-old-versions-of-ruby"/>
    <title>Where to find old versions of Ruby</title>
    <updated>2010-05-03T00:00:00-05:00</updated>
    <author>
      <name>Chris Gansen</name>
      <uri>http://self.d-struct.org/</uri>
    </author>
    <content type="html">&lt;p&gt;This post is as much for my reference as it is frustrated folks trying to find non-1.9 versions for old Rails apps.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Ruby 1.8.6 p399&lt;/strong&gt;: &lt;a href=&quot;ftp://ftp.ruby-lang.org/pub/ruby/1.8/ruby-1.8.6-p399.tar.gz&quot;&gt;ftp://ftp.ruby-lang.org/pub/ruby/1.8/ruby-1.8.6-p399.tar.gz&lt;/a&gt; (and in &lt;a href=&quot;ftp://ftp.ruby-lang.org/pub/ruby/1.8/ruby-1.8.6-p399.zip&quot;&gt;zip&lt;/a&gt; and &lt;a href=&quot;ftp://ftp.ruby-lang.org/pub/ruby/1.8/ruby-1.8.6-p399.bz2&quot;&gt;bz2&lt;/a&gt;)
&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Ruby 1.8.7 p249&lt;/strong&gt;: &lt;a href=&quot;ftp://ftp.ruby-lang.org/pub/ruby/1.8/ruby-1.8.7-p249.tar.gz&quot;&gt;ftp://ftp.ruby-lang.org/pub/ruby/1.8/ruby-1.8.7-p249.tar.gz&lt;/a&gt; (and in &lt;a href=&quot;ftp://ftp.ruby-lang.org/pub/ruby/1.8/ruby-1.8.7-p249.zip&quot;&gt;zip&lt;/a&gt; and &lt;a href=&quot;ftp://ftp.ruby-lang.org/pub/ruby/1.8/ruby-1.8.7-p249.bz2&quot;&gt;bz2&lt;/a&gt;)&lt;/p&gt;

&lt;p&gt;And of course, browse the &lt;a href=&quot;ftp://ftp.ruby-lang.org/pub/ruby/1.8/&quot;&gt;entire FTP archive&lt;/a&gt; for everything going back to 1.8.0.&lt;/p&gt;
</content>
  </entry>
  
  <entry>
    <id>http://self.d-struct.org/swap-in-swap-out</id>
    <link type="text/html" rel="alternate" href="http://self.d-struct.org/swap-in-swap-out"/>
    <title>Swap in, swap out</title>
    <updated>2010-04-26T00:00:00-05:00</updated>
    <author>
      <name>Chris Gansen</name>
      <uri>http://self.d-struct.org/</uri>
    </author>
    <content type="html">&lt;img class=&quot;aligncenter&quot; title=&quot;Activity Monitor&quot; src=&quot;http://www.d-struct.org/i/Activity_Monitor-20100426-121951.png&quot; alt=&quot;Activity Monitor&quot; width=&quot;680&quot; height=&quot;655&quot; /&gt;

&lt;p&gt;There was a day, once upon a time, when 4 megabytes or RAM was enough to get by, and 8 megabytes made &lt;a href=&quot;http://www.3drealms.com/wolf3d/index.html&quot; target=&quot;_blank&quot;&gt;Wolfenstein 3d&lt;/a&gt; &lt;em&gt;just scream&lt;/em&gt;.&lt;/p&gt;

&lt;p&gt;Now I max out 4 gigabytes and dream of 8. Same story, different order of magnitude.&lt;/p&gt;
</content>
  </entry>
  
  <entry>
    <id>http://self.d-struct.org/nugget</id>
    <link type="text/html" rel="alternate" href="http://self.d-struct.org/nugget"/>
    <title>Nugget</title>
    <updated>2010-04-17T00:00:00-05:00</updated>
    <author>
      <name>Chris Gansen</name>
      <uri>http://self.d-struct.org/</uri>
    </author>
    <content type="html">&lt;img class=&quot;aligncenter&quot; title=&quot;couch&quot; src=&quot;http://farm5.static.flickr.com/4067/4529643011_fd77b50de5.jpg&quot; alt=&quot;&quot; width=&quot;500&quot; height=&quot;332&quot; /&gt;

&lt;img class=&quot;aligncenter&quot; title=&quot;1&quot; src=&quot;http://farm5.static.flickr.com/4026/4529643289_08315f5d81.jpg&quot; alt=&quot;&quot; width=&quot;500&quot; height=&quot;332&quot; /&gt;

&lt;img class=&quot;aligncenter&quot; title=&quot;z&quot; src=&quot;http://farm5.static.flickr.com/4059/4530275332_269bc78886.jpg&quot; alt=&quot;&quot; width=&quot;414&quot; height=&quot;500&quot; /&gt;

&lt;p&gt;He's just too ridiculous at times.&lt;/p&gt;
</content>
  </entry>
  
  <entry>
    <id>http://self.d-struct.org/mambo-poa</id>
    <link type="text/html" rel="alternate" href="http://self.d-struct.org/mambo-poa"/>
    <title>Mambo poa!</title>
    <updated>2010-03-11T00:00:00-06:00</updated>
    <author>
      <name>Chris Gansen</name>
      <uri>http://self.d-struct.org/</uri>
    </author>
    <content type="html">&lt;p&gt;One year ago I was alone, saddled with bags, inside Nairobi's Jomo Kenyetta airport, watching the last of the travelers filter out as the airport closed for the night. I had just missed my connection to Mombasa, where I was supposed to meet my friend Mary. She wasn't answering her cell phone. As the luggage carousel sputtered to a halt, the touts and taxi drivers sprung on me like jackals on a carcass. No, I didn't need a safari. No, I don't want to ride an elephant. Just get me to a hotel, please, somewhere I can sleep. I was wrecked after ~20 hours of travel, and I (stupidly) hadn't planned for the occasion in which I missed my connection. The last flight out.&lt;/p&gt;

&lt;p&gt;I zeroed in on my guy, one of the better dressed of the lot. He explained that he ran a tour company, and that he could show me some rooms. Wouldn't I look at some pamphlets in his office? Dubious, and only marginally reassured by the fact that his office was in the terminal itself, I followed. I have a place, my friend told me to go there, I said, can you just help me get there? No, he said, that is too far and they have no room. Please, look at these nice places. Very nice, and not too much. This one, I said, looks fine. How much? Two hundred dollars, that's a good price (no, it's not). Somehow I got him to go for half of that and pick me up in the morning. The room was dirtier than a dorm room, and about the same size. Whatever, there was a bed with a net on it. And a prayer rug, just in case.&lt;/p&gt;

&lt;p&gt;That's how I started a five week trip to Tanzania as part of &lt;a href=&quot;http://www.ibm.com/corporateservicecorps&quot; target=&quot;_blank&quot;&gt;IBM's Corporate Service Corps program&lt;/a&gt;, a trip that a year later I still think of often, if not daily. It was an incredible experience, and I'm incredibly grateful that I had a chance to participate. I long to go back to Tanzania, who knows what the future holds.&lt;/p&gt;

&lt;p&gt;Photos:&lt;/p&gt;
&lt;div style=&quot;text-align: center;&quot;&gt;&lt;object classid=&quot;clsid:d27cdb6e-ae6d-11cf-96b8-444553540000&quot; width=&quot;630&quot; height=&quot;473&quot; codebase=&quot;http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=6,0,40,0&quot;&gt;&lt;param name=&quot;flashvars&quot; value=&quot;offsite=true&amp;amp;lang=en-us&amp;amp;page_show_url=%2Fphotos%2Fdaychokesnight%2Fsets%2F72157617413503736%2Fshow%2F&amp;amp;page_show_back_url=%2Fphotos%2Fdaychokesnight%2Fsets%2F72157617413503736%2F&amp;amp;set_id=72157617413503736&amp;amp;jump_to=&quot; /&gt;&lt;param name=&quot;allowFullScreen&quot; value=&quot;true&quot; /&gt;&lt;param name=&quot;src&quot; value=&quot;http://www.flickr.com/apps/slideshow/show.swf?v=71649&quot; /&gt;&lt;param name=&quot;allowfullscreen&quot; value=&quot;true&quot; /&gt;&lt;embed type=&quot;application/x-shockwave-flash&quot; width=&quot;630&quot; height=&quot;473&quot; src=&quot;http://www.flickr.com/apps/slideshow/show.swf?v=71649&quot; allowfullscreen=&quot;true&quot; flashvars=&quot;offsite=true&amp;amp;lang=en-us&amp;amp;page_show_url=%2Fphotos%2Fdaychokesnight%2Fsets%2F72157617413503736%2Fshow%2F&amp;amp;page_show_back_url=%2Fphotos%2Fdaychokesnight%2Fsets%2F72157617413503736%2F&amp;amp;set_id=72157617413503736&amp;amp;jump_to=&quot;&gt;&lt;/embed&gt;&lt;/object&gt;&lt;/div&gt;
&lt;a href=&quot;http://www.flickr.com/photos/daychokesnight/collections/72157616337494075/&quot; target=&quot;_blank&quot;&gt;More photos on Flickr&lt;/a&gt;
</content>
  </entry>
  
  <entry>
    <id>http://self.d-struct.org/made-by-melouca</id>
    <link type="text/html" rel="alternate" href="http://self.d-struct.org/made-by-melouca"/>
    <title>Made by Melouca</title>
    <updated>2010-02-26T00:00:00-06:00</updated>
    <author>
      <name>Chris Gansen</name>
      <uri>http://self.d-struct.org/</uri>
    </author>
    <content type="html">&lt;p style=&quot;text-align: center;&quot;&gt;&lt;a title=&quot;Coil by day chokes night, on Flickr&quot; href=&quot;http://www.flickr.com/photos/daychokesnight/4378716111/&quot;&gt;&lt;img class=&quot;aligncenter&quot; src=&quot;http://farm5.static.flickr.com/4060/4378716111_95812151b1.jpg&quot; alt=&quot;Coil&quot; width=&quot;500&quot; height=&quot;332&quot; /&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p style=&quot;text-align: left;&quot;&gt;Melissa this past week started an &lt;a href=&quot;http://melouca.tumblr.com&quot; target=&quot;_blank&quot;&gt;awesome blog&lt;/a&gt; and an &lt;a href=&quot;http://melouca.etsy.com/&quot; target=&quot;_blank&quot;&gt;Etsy shop&lt;/a&gt;. You should totally check them out, subscribe to her updates, buy nifty knit stuff, and generally support her quest to out-nerd me.&lt;/p&gt;</content>
  </entry>
  
  <entry>
    <id>http://self.d-struct.org/the-device-failed-to-calibrate-the-laser-power-level</id>
    <link type="text/html" rel="alternate" href="http://self.d-struct.org/the-device-failed-to-calibrate-the-laser-power-level"/>
    <title>The device failed to calibrate the laser power level</title>
    <updated>2010-02-22T00:00:00-06:00</updated>
    <author>
      <name>Chris Gansen</name>
      <uri>http://self.d-struct.org/</uri>
    </author>
    <content type="html">So, this happened today:

&lt;img class=&quot;aligncenter&quot; title=&quot;laser power&quot; src=&quot;http://www.d-struct.org/i/Burn-20100222-211607.png&quot; alt=&quot;&quot; width=&quot;439&quot; height=&quot;147&quot; /&gt;
&lt;p&gt;&lt;ol&gt;
	&lt;li&gt;Mr. Jobs was obviously off the day this made it into OS X.&lt;/li&gt;
	&lt;li&gt;Never did I ever expect to run into trouble calibrating laser power in the course of daily computing. I am pleasantly surprised.&lt;/li&gt;
	&lt;li&gt;Compressed air made this go away. Pffft.&lt;/li&gt;
&lt;/ol&gt;
&lt;/p&gt;</content>
  </entry>
  
  <entry>
    <id>http://self.d-struct.org/dear-pilsen</id>
    <link type="text/html" rel="alternate" href="http://self.d-struct.org/dear-pilsen"/>
    <title>Dear Pilsen</title>
    <updated>2010-02-13T00:00:00-06:00</updated>
    <author>
      <name>Chris Gansen</name>
      <uri>http://self.d-struct.org/</uri>
    </author>
    <content type="html">&lt;p&gt;Every once in a while, despite your grime, your gang graffiti on every wall, your drunks pissing in alleys, and your abject antipathy to shoveling snow or even putting your trash in actual trash bins, you manage to be quite nice. Thanks for the sunset this evening.&lt;/p&gt;
&lt;p style=&quot;text-align: center;&quot;&gt;&lt;a title=&quot;Pilsen sunset on Flickr&quot; href=&quot;http://www.flickr.com/photos/daychokesnight/4354153157/&quot;&gt;&lt;img class=&quot;aligncenter&quot; src=&quot;http://farm5.static.flickr.com/4067/4354153157_f700c91251.jpg&quot; alt=&quot;Pilsen sunset&quot; width=&quot;500&quot; height=&quot;338&quot; /&gt;&lt;/a&gt;&lt;/p&gt;
</content>
  </entry>
  
  <entry>
    <id>http://self.d-struct.org/twitter-reactions-to-the-ipad</id>
    <link type="text/html" rel="alternate" href="http://self.d-struct.org/twitter-reactions-to-the-ipad"/>
    <title>Twitter reactions to the iPad</title>
    <updated>2010-01-27T00:00:00-06:00</updated>
    <author>
      <name>Chris Gansen</name>
      <uri>http://self.d-struct.org/</uri>
    </author>
    <content type="html">&lt;p&gt;Since the announcement a few hours ago:&lt;/p&gt;

&lt;img alt=&quot;Twitter stream&quot; src=&quot;http://www.d-struct.org/i/Tweetie-20100127-145436.png&quot; class=&quot;aligncenter&quot; width=&quot;481&quot; height=&quot;1366&quot; /&gt;
</content>
  </entry>
  
  <entry>
    <id>http://self.d-struct.org/the-intern-2</id>
    <link type="text/html" rel="alternate" href="http://self.d-struct.org/the-intern-2"/>
    <title>The Intern</title>
    <updated>2010-01-25T00:00:00-06:00</updated>
    <author>
      <name>Chris Gansen</name>
      <uri>http://self.d-struct.org/</uri>
    </author>
    <content type="html">&lt;a href=&quot;http://self.d-struct.org/wp-content/uploads/2010/01/rufus-the-intern.jpeg&quot;&gt;&lt;img src=&quot;http://self.d-struct.org/wp-content/uploads/2010/01/rufus-the-intern.jpeg&quot; alt=&quot;&quot; title=&quot;rufus-the-intern&quot; width=&quot;620&quot; height=&quot;411&quot; class=&quot;aligncenter size-full wp-image-270&quot; /&gt;&lt;/a&gt;

&lt;p&gt;Rufus has been helping out around the home office: providing moral support, slobbering on pant legs, and conducting some thought-leadership workshops (read: napping for hours on end). He's a real team player.&lt;/p&gt;
</content>
  </entry>
  
  <entry>
    <id>http://self.d-struct.org/fiori-di-como</id>
    <link type="text/html" rel="alternate" href="http://self.d-struct.org/fiori-di-como"/>
    <title>Fiori di Como</title>
    <updated>2010-01-24T00:00:00-06:00</updated>
    <author>
      <name>Chris Gansen</name>
      <uri>http://self.d-struct.org/</uri>
    </author>
    <content type="html">&lt;p style=&quot;text-align: center;&quot;&gt;&lt;a href=&quot;http://www.flickr.com/photos/daychokesnight/sets/72157623277458256/&quot;&gt;&lt;img class=&quot;aligncenter size-full wp-image-264&quot; title=&quot;fiori-di-como&quot; src=&quot;http://self.d-struct.org/wp-content/uploads/2010/01/fiori-di-como.jpeg&quot; alt=&quot;&quot; width=&quot;620&quot; height=&quot;934&quot; /&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;a href=&quot;http://www.chihuly.com/Fiori/BLessay.html&quot; target=&quot;_blank&quot;&gt;Dale Chihuly&lt;/a&gt;:
&lt;blockquote&gt;I'm amazed at what people find in my work, and I don't like to limit what you see with a title. For me titles are very difficult, and I don't usually even think in terms of a theme when I'm creating a sculpture. Once it's finished I'll come up with a title, but one person might see flowers, another something from the sea or something from a dream. Bellagio was inspired by the hotel on Lake Como, and I wanted to use the lake in the title - it's so romantic. I used the word fiori (flowers), but everybody sees something different.&lt;/blockquote&gt;&lt;/p&gt;
</content>
  </entry>
  
  <entry>
    <id>http://self.d-struct.org/watermarking-images-with-imagemagick-and-attachment_fu</id>
    <link type="text/html" rel="alternate" href="http://self.d-struct.org/watermarking-images-with-imagemagick-and-attachment_fu"/>
    <title>HOWTO: Watermarking Images with ImageMagick and attachment_fu</title>
    <updated>2010-01-14T00:00:00-06:00</updated>
    <author>
      <name>Chris Gansen</name>
      <uri>http://self.d-struct.org/</uri>
    </author>
    <content type="html">&lt;p&gt;While working on a project for the &lt;a href=&quot;http://www.hermitage.ru/&quot; target=&quot;_blank&quot;&gt;State Hermitage Museum&lt;/a&gt; last year, I had to implement some image watermarking. The basic requirement was that for a certain type of uploaded image, its largest thumbnail should have the museum's logo tiled across it. I was using &lt;a href=&quot;http://github.com/technoweenie/attachment_fu&quot; target=&quot;_blank&quot;&gt;attachment_fu&lt;/a&gt; to handle the image upload, and &lt;a href=&quot;http://www.imagemagick.org/script/index.php&quot; target=&quot;_blank&quot;&gt;ImageMagick&lt;/a&gt;/&lt;a href=&quot;http://rmagick.rubyforge.org/&quot; target=&quot;_blank&quot;&gt;RMagick&lt;/a&gt; to process the thumbnails.&lt;/p&gt;

&lt;p&gt;After some cursory Googling, I found the&lt;a href=&quot;http://www.imagemagick.org/Usage/annotating/#grey_tiled&quot; target=&quot;_blank&quot;&gt; ImageMagick Annotating guide&lt;/a&gt;, which had this sample watermark command:
&lt;/p&gt;&lt;pre lang=&quot;bash&quot;&gt; $ convert overlay.png  -fill grey50 -colorize 40  miff:- |\
    composite -dissolve 15 -tile  -  original.jpg watermarked_image.jpg
&lt;/pre&gt;
&lt;p&gt;The dissection of the command:
&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;overlay.png&lt;/strong&gt;: The source image to overlay
&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;-fill grey50 -colorize 40&lt;/strong&gt;: Alter the colors of the watermark file&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;composite&lt;/strong&gt;: command to overlay the watermark&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;-dissolve 15 -tile&lt;/strong&gt;: &quot;dissolve&quot; the overlay at 15%, for good transparency, and tile (repeat) the watermark over the source image.&lt;/p&gt;

&lt;p&gt;That's simple enough, and with these source files:&lt;/p&gt;

&lt;a href=&quot;http://self.d-struct.org/wp-content/uploads/2010/01/overlay.png&quot;&gt;&lt;img class=&quot;size-full wp-image-245&quot; title=&quot;overlay&quot; src=&quot;http://self.d-struct.org/wp-content/uploads/2010/01/overlay.png&quot; alt=&quot;&quot; width=&quot;150&quot; height=&quot;150&quot; /&gt;&lt;/a&gt;
&lt;p style=&quot;text-align: center;&quot;&gt;and dearest Rufus:&lt;/p&gt;


&lt;a href=&quot;http://self.d-struct.org/wp-content/uploads/2010/01/rufus.jpg&quot;&gt;&lt;img class=&quot;size-full wp-image-246&quot; title=&quot;rufus&quot; src=&quot;http://self.d-struct.org/wp-content/uploads/2010/01/rufus.jpg&quot; alt=&quot;rufus.jpg&quot; width=&quot;500&quot; height=&quot;344&quot; /&gt;&lt;/a&gt;
&lt;p style=&quot;text-align: center;&quot;&gt;&lt;/p&gt;

&lt;pre lang=&quot;bash&quot;&gt; $ convert overlay.png -fill grey50 -colorize 40 miff:- |\
    composite -dissolve 15 -tile - rufus.jpg result-15.jpg&lt;/pre&gt;
Produces:

&lt;a href=&quot;http://self.d-struct.org/wp-content/uploads/2010/01/result-15.jpg&quot;&gt;&lt;img class=&quot;size-full wp-image-247&quot; title=&quot;result-15&quot; src=&quot;http://self.d-struct.org/wp-content/uploads/2010/01/result-15.jpg&quot; alt=&quot;&quot; width=&quot;500&quot; height=&quot;344&quot; /&gt;&lt;/a&gt;
&lt;pre lang=&quot;bash&quot;&gt;convert overlay.png -fill grey50 -colorize 40 miff:- |\
  composite -dissolve 50 -tile - rufus.jpg result-50.jpg&lt;/pre&gt;
&lt;a href=&quot;http://self.d-struct.org/wp-content/uploads/2010/01/result-50.jpg&quot;&gt;&lt;img class=&quot;size-full wp-image-248&quot; title=&quot;result-50&quot; src=&quot;http://self.d-struct.org/wp-content/uploads/2010/01/result-50.jpg&quot; alt=&quot;&quot; width=&quot;500&quot; height=&quot;344&quot; /&gt;&lt;/a&gt;

&lt;p&gt;Unfortunately, RMagick's &lt;code&gt;watermark&lt;/code&gt; method doesn't support tiling. To work around, I had to call the &lt;code&gt;composite_tiled!&lt;/code&gt; method on a colorized image. This code is in my Thumbnail model, which includes attachment_fu:&lt;/p&gt;

&lt;pre lang=&quot;rails&quot;&gt;class Thumbnail &lt; ActiveRecord::Base
  has_attachment  :content_type =&gt; :image,
   # some settings omitted
   :watermark_overlay =&gt; File.join(RAILS_ROOT, '/public/images/watermark-overlay-image.png'),
   :watermarkable_size =&gt; &quot;1500&gt;&quot; 

  after_attachment_saved do |record|
    if record.respond_to?(:parent_id) and record.parent_id.nil? # the original image, not the smaller thumbnails
      with_image record.full_filename do |img|
        img.composite_tiled!(
          Magick::ImageList.new(attachment_options[:watermark_overlay]).first.colorize(0.4, 0.4, 0.4, 'grey'),
          Magick::SoftLightCompositeOp)
        img.write record.full_filename  # save image
      end
    end
  end
end
&lt;/pre&gt;

&lt;p&gt;Now every Thumbnail record will automatically have a watermarked large image.&lt;/p&gt;
</content>
  </entry>
  
  <entry>
    <id>http://self.d-struct.org/gordie-pretty-bird</id>
    <link type="text/html" rel="alternate" href="http://self.d-struct.org/gordie-pretty-bird"/>
    <title>Gordie, Pretty Bird</title>
    <updated>2010-01-08T00:00:00-06:00</updated>
    <author>
      <name>Chris Gansen</name>
      <uri>http://self.d-struct.org/</uri>
    </author>
    <content type="html">&lt;img class=&quot;aligncenter&quot; title=&quot;Gordie&quot; src=&quot;http://farm3.static.flickr.com/2769/4229233233_7f46dedcf0.jpg&quot; alt=&quot;&quot; width=&quot;500&quot; height=&quot;332&quot; /&gt;

&lt;p&gt;This is Gordie, the Gansen family pet bird. He's been around since 1997, making him 12 years old. Words cannot express how much I love this little guy.&lt;/p&gt;

&lt;p&gt;He loves nothing more than to run around and chase pieces of paper. If you tap on the paper, the following will happen:&lt;/p&gt;

&lt;object classid=&quot;clsid:d27cdb6e-ae6d-11cf-96b8-444553540000&quot; width=&quot;640&quot; height=&quot;360&quot; codebase=&quot;http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=6,0,40,0&quot;&gt;&lt;param name=&quot;data&quot; value=&quot;http://www.flickr.com/apps/video/stewart.swf?v=71377&quot; /&gt;&lt;param name=&quot;flashvars&quot; value=&quot;intl_lang=en-us&amp;amp;photo_secret=7f14670f5e&amp;amp;photo_id=4228678360&amp;amp;hd_default=false&quot; /&gt;&lt;param name=&quot;bgcolor&quot; value=&quot;#000000&quot; /&gt;&lt;param name=&quot;allowFullScreen&quot; value=&quot;true&quot; /&gt;&lt;param name=&quot;src&quot; value=&quot;http://www.flickr.com/apps/video/stewart.swf?v=71377&quot; /&gt;&lt;param name=&quot;allowfullscreen&quot; value=&quot;true&quot; /&gt;&lt;embed type=&quot;application/x-shockwave-flash&quot; width=&quot;640&quot; height=&quot;360&quot; src=&quot;http://www.flickr.com/apps/video/stewart.swf?v=71377&quot; allowfullscreen=&quot;true&quot; bgcolor=&quot;#000000&quot; flashvars=&quot;intl_lang=en-us&amp;amp;photo_secret=7f14670f5e&amp;amp;photo_id=4228678360&amp;amp;hd_default=false&quot; data=&quot;http://www.flickr.com/apps/video/stewart.swf?v=71377&quot;&gt;&lt;/embed&gt;&lt;/object&gt;

&lt;p&gt;And sometimes he gets a bit overstimulated and decides to bite everyone, then it's time to hang out in the cage:&lt;/p&gt;

&lt;img class=&quot;aligncenter&quot; title=&quot;gordie in cage&quot; src=&quot;http://farm5.static.flickr.com/4039/4230003168_502545b3d5.jpg&quot; alt=&quot;&quot; width=&quot;500&quot; height=&quot;332&quot; /&gt;

&lt;p&gt;Oh, Gordie. happy new year to you.&lt;/p&gt;
</content>
  </entry>
  
  <entry>
    <id>http://self.d-struct.org/you-should-concentrate-on-finalizing-this-transaction-rather-than-responding-to-negative-thoughts</id>
    <link type="text/html" rel="alternate" href="http://self.d-struct.org/you-should-concentrate-on-finalizing-this-transaction-rather-than-responding-to-negative-thoughts"/>
    <title>you should concentrate on finalizing this transaction rather than responding to negative thoughts</title>
    <updated>2009-12-22T00:00:00-06:00</updated>
    <author>
      <name>Chris Gansen</name>
      <uri>http://self.d-struct.org/</uri>
    </author>
    <content type="html">&lt;p&gt;This junk email wiggled its way through Google's filtering, much to my delight. After reading it, I felt genuinely touched, as if Deborah was really worried for me, worried that I wouldn't claim my money. 
&lt;/p&gt;
&lt;p&gt;Oh, Deborah, if I ever make it over to &lt;a href=&quot;http://en.wikipedia.org/wiki/Benin&quot;&gt;Benin&lt;/a&gt; to collect my fifteen thousand United States dollars, I'll give you a hug.
&lt;/p&gt;
&lt;p&gt;Email in full:
&lt;/p&gt;
&lt;blockquote&gt;&lt;p&gt;Fund Beneficiary, &lt;/p&gt;
&lt;p&gt;  Welcome to ECO BANK Money Gram money transfer Cotonou Benin Plc, 
  Beneficiary! This is to notify you that we have concluded your payment through Money Gram. 
&lt;/p&gt;
&lt;p&gt;Here is your 3payment MTCN of USD$15,000.00 united state dollars $5,000.00 each, First payment, MTCN 212-314-53 (2) 805-217-78 (3)  968-584-30  and we will give you the sender name to pick up this money immediately you send the activation  remittance permit  fee which is $188.00 dollars to the name below.
&lt;/p&gt;
&lt;p&gt;Receiver Name == Augustine Okolo &lt;br&gt;
Address: .... Benin / City Continuo&lt;br&gt;
Test Q............What?&lt;br&gt;
Ans .................Payment. &lt;br&gt;
Amount   $188.00 &lt;br&gt;
&lt;/p&gt;
&lt;p&gt;Kindly send the activated remittance permit fee with the given infor...and call for sender name on +22 998 377 738 Urgent,
&lt;strong&gt;The grace given to you, is a previledge, not a right, therefore it must not be abused. When i imagine the magnitude of your compensation funds left in our possession,it pains me to see that you are yet to get your transfered.&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;You should count yourself extremely luck for the fortune that has come your way today . It is one in a life time fortune and you should concentrate on finalizing this transaction rather than responding to negative thoughts.&lt;/strong&gt;
&lt;/p&gt;
&lt;p&gt;As a friend, i will not like you to loose this chance which has come up today because not every body in this life has this great chance that has come your way including me.Act fast in remitting the fee and let us finalize this transaction which has already stayed longer than expected. I await your swift response, comply and details
&lt;/p&gt;
&lt;p&gt;Sir. M. Deborah Utecht&lt;br&gt;
FORIGN OPERATION MANAGER&lt;br&gt;
MONEY GRAM OFFICE BENIN REPUBLIC )&lt;/p&gt;&lt;/blockquote&gt;

</content>
  </entry>
  
  <entry>
    <id>http://self.d-struct.org/i-have-purchased-but-a-single-song-from-itunes</id>
    <link type="text/html" rel="alternate" href="http://self.d-struct.org/i-have-purchased-but-a-single-song-from-itunes"/>
    <title>I have purchased but a single song from iTunes.</title>
    <updated>2009-10-21T00:00:00-05:00</updated>
    <author>
      <name>Chris Gansen</name>
      <uri>http://self.d-struct.org/</uri>
    </author>
    <content type="html">&lt;p style=&quot;text-align: center;&quot;&gt;&lt;a href=&quot;http://self.d-struct.org/wp-content/uploads/2009/10/iTunes.png&quot;&gt;&lt;img class=&quot;aligncenter size-full wp-image-215&quot; title=&quot;iTunes&quot; src=&quot;http://self.d-struct.org/wp-content/uploads/2009/10/iTunes.png&quot; alt=&quot;iTunes&quot; width=&quot;571&quot; height=&quot;333&quot; /&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p style=&quot;text-align: center;&quot;&gt;But what a song it is.&lt;/p&gt;
&lt;p style=&quot;text-align: center;&quot;&gt;&lt;/p&gt;

&lt;p style=&quot;text-align: center;&quot;&gt;&lt;object classid=&quot;clsid:d27cdb6e-ae6d-11cf-96b8-444553540000&quot; width=&quot;425&quot; height=&quot;344&quot; codebase=&quot;http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=6,0,40,0&quot;&gt;&lt;param name=&quot;allowFullScreen&quot; value=&quot;true&quot; /&gt;&lt;param name=&quot;allowscriptaccess&quot; value=&quot;always&quot; /&gt;&lt;param name=&quot;src&quot; value=&quot;http://www.youtube.com/v/840B27zYfOk&amp;amp;hl=en&amp;amp;fs=1&amp;amp;&quot; /&gt;&lt;param name=&quot;allowfullscreen&quot; value=&quot;true&quot; /&gt;&lt;embed type=&quot;application/x-shockwave-flash&quot; width=&quot;425&quot; height=&quot;344&quot; src=&quot;http://www.youtube.com/v/840B27zYfOk&amp;amp;hl=en&amp;amp;fs=1&amp;amp;&quot; allowscriptaccess=&quot;always&quot; allowfullscreen=&quot;true&quot;&gt; &lt;/embed&gt;&lt;/object&gt;
&lt;p style=&quot;text-align: center;&quot;&gt;&lt;/p&gt;

&lt;p style=&quot;text-align: center;&quot;&gt;&lt;object classid=&quot;clsid:d27cdb6e-ae6d-11cf-96b8-444553540000&quot; width=&quot;425&quot; height=&quot;344&quot; codebase=&quot;http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=6,0,40,0&quot;&gt;&lt;param name=&quot;allowFullScreen&quot; value=&quot;true&quot; /&gt;&lt;param name=&quot;allowscriptaccess&quot; value=&quot;always&quot; /&gt;&lt;param name=&quot;src&quot; value=&quot;http://www.youtube.com/v/ysUjYAi0WcQ&amp;amp;hl=en&amp;amp;fs=1&amp;amp;&quot; /&gt;&lt;param name=&quot;allowfullscreen&quot; value=&quot;true&quot; /&gt;&lt;embed type=&quot;application/x-shockwave-flash&quot; width=&quot;425&quot; height=&quot;344&quot; src=&quot;http://www.youtube.com/v/ysUjYAi0WcQ&amp;amp;hl=en&amp;amp;fs=1&amp;amp;&quot; allowscriptaccess=&quot;always&quot; allowfullscreen=&quot;true&quot;&gt;&lt;/embed&gt;&lt;/object&gt;
&lt;p style=&quot;text-align: center;&quot;&gt;&lt;/p&gt;
&lt;p style=&quot;text-align: center;&quot;&gt;&lt;object width=&quot;425&quot; height=&quot;344&quot;&gt;&lt;param name=&quot;movie&quot; value=&quot;http://www.youtube.com/v/lj-x9ygQEGA&amp;hl=en&amp;fs=1&amp;&quot;&gt;&lt;/param&gt;&lt;param name=&quot;allowFullScreen&quot; value=&quot;true&quot;&gt;&lt;/param&gt;&lt;param name=&quot;allowscriptaccess&quot; value=&quot;always&quot;&gt;&lt;/param&gt;&lt;embed src=&quot;http://www.youtube.com/v/lj-x9ygQEGA&amp;hl=en&amp;fs=1&amp;&quot; type=&quot;application/x-shockwave-flash&quot; allowscriptaccess=&quot;always&quot; allowfullscreen=&quot;true&quot; width=&quot;425&quot; height=&quot;344&quot;&gt;&lt;/embed&gt;&lt;/object&gt;&lt;/p&gt;
</content>
  </entry>
  
  <entry>
    <id>http://self.d-struct.org/howto-remove-byte-order-mark-with-ruby-and-iconv</id>
    <link type="text/html" rel="alternate" href="http://self.d-struct.org/howto-remove-byte-order-mark-with-ruby-and-iconv"/>
    <title>HOWTO: Remove Byte-order Mark with Ruby and Iconv</title>
    <updated>2009-10-19T00:00:00-05:00</updated>
    <author>
      <name>Chris Gansen</name>
      <uri>http://self.d-struct.org/</uri>
    </author>
    <content type="html">&lt;p&gt;I'm working on a small project that involves loading a UTF-16LE (16-bit Unicode, Little Endian) CSV file, converting it to UTF-8 (normal Unicode, as it may be) with &lt;a href=&quot;http://www.ruby-doc.org/stdlib/libdoc/iconv/rdoc/index.html&quot;&gt;iconv&lt;/a&gt;, then parsing the values with FasterCSV. Everything was working fine except for loading the first column of data by the column header value. For example, given data:
&lt;/p&gt;

&lt;p&gt;&lt;table class=&quot;table table-bordered&quot;&gt;
  &lt;tr&gt;
    &lt;th&gt;First Name&lt;/th&gt;
    &lt;th&gt;Last Name&lt;/th&gt;
    &lt;th&gt;Email&lt;/th&gt;
  &lt;/tr&gt;
  &lt;tr&gt;
    &lt;td&gt;Jimbo&lt;/td&gt;
    &lt;td&gt;Jones&lt;/td&gt;
    &lt;td&gt;jimbo.jones@example.com&lt;/td&gt;
  &lt;/tr&gt;
&lt;/table&gt;
&lt;/p&gt;
&lt;p&gt;I could access column 2 (Last Name) as either &lt;code&gt;row.field(&quot;Last Name&quot;)&lt;/code&gt; or &lt;code&gt;row.field(1)&lt;/code&gt;. However, if I tried to access the first column using &lt;code&gt;row.field(&quot;First Name&quot;)&lt;/code&gt;, it would return &lt;code&gt;nil&lt;/code&gt;. &lt;code&gt;row.field(0)&lt;/code&gt;, on the other hand, would return the proper value.
&lt;/p&gt;
&lt;p&gt;Hmmmm.
&lt;/p&gt;
&lt;p&gt;After some sleuthing, I examined the raw content of the string:
&lt;/p&gt;
&lt;pre lang=&quot;ruby&quot;&gt;
(rdb:1) p row.headers.first.unpack('C*')
[239, 187, 191, 70, 105, 114, 115, 116, 32, 78, 97, 109, 101]
&lt;/pre&gt;

&lt;p&gt;Ah, ha! The first three characters are the &lt;a href=&quot;http://en.wikipedia.org/wiki/Byte-order_mark&quot;&gt;byte-order mark, or BOM&lt;/a&gt;. Ruby, for whatever reason, does not strip it when reading a file as input, so it's passed along in the input stream. When loading a file with &lt;a href=&quot;http://fastercsv.rubyforge.org&quot;&gt;FasterCSV&lt;/a&gt;, it'll keep those characters in the key name, causing lookups by the first column key name to return nil.
&lt;/p&gt;
&lt;p&gt;I modified my file conversion code as follows:&lt;/p&gt;

&lt;pre lang=&quot;ruby&quot;&gt;
def convert_to_utf8
    # Data files are exported as Little Endian UTF-16. We need to parse as UTF-8
    contents = File.open(@file_name).read      
    begin
      converted = Iconv.iconv('UTF-8', 'UTF-16LE', contents)
      converted.first.gsub!(&quot;\xEF\xBB\xBF&quot;, '') # strip the BOM (byte order mark) from the first line of input
      output = File.open(@file_name, 'w')
      output.write(converted)
    rescue Iconv::Failure
      puts $!.inspect
    end
end
&lt;/pre&gt;
&lt;p&gt;And all is well in the world.
&lt;/p&gt;</content>
  </entry>
  
  <entry>
    <id>http://self.d-struct.org/an-incomplete-list</id>
    <link type="text/html" rel="alternate" href="http://self.d-struct.org/an-incomplete-list"/>
    <title>An incomplete list</title>
    <updated>2009-09-11T00:00:00-05:00</updated>
    <author>
      <name>Chris Gansen</name>
      <uri>http://self.d-struct.org/</uri>
    </author>
    <content type="html">&lt;img class=&quot;aligncenter&quot; title=&quot;Rufus&quot; src=&quot;http://farm3.static.flickr.com/2523/3839231205_a0bf92619c.jpg&quot; alt=&quot;&quot; width=&quot;500&quot; height=&quot;332&quot; /&gt;

&lt;p&gt;A list of names I have, at one point or another, used to refer to my girlfriend's dog:
&lt;ul&gt;
	&lt;li&gt;Ruf&lt;/li&gt;
	&lt;li&gt;Rufito&lt;/li&gt;
	&lt;li&gt;Rufee&lt;/li&gt;
	&lt;li&gt;Stinky&lt;/li&gt;
	&lt;li&gt;Poops&lt;/li&gt;
	&lt;li&gt;Poops McGee&lt;/li&gt;
	&lt;li&gt;Poop Machine&lt;/li&gt;
	&lt;li&gt;Lil' Pooper&lt;/li&gt;
	&lt;li&gt;Shit for brains (learned that one at the Sam Mazzara School of Driving, another story, for another time)&lt;/li&gt;
	&lt;li&gt;Stink Machine&lt;/li&gt;
	&lt;li&gt;(the) Nugg&lt;/li&gt;
	&lt;li&gt;Nugget&lt;/li&gt;
	&lt;li&gt;El Nuggo&lt;/li&gt;
	&lt;li&gt;&lt;a href=&quot;http://self.d-struct.org/wp-content/uploads/2009/09/dummy.wav&quot; target=&quot;_blank&quot;&gt;Big Dummy&lt;/a&gt;&lt;/li&gt;
	&lt;li&gt;The BEAST (ALL CAPS)&lt;/li&gt;
	&lt;li&gt;(Wee) Lil' Beastie&lt;/li&gt;
	&lt;li&gt;The Mayor of Cullerton&lt;/li&gt;
&lt;/ul&gt;
And for the record, his name is Rufus.
&lt;/p&gt;</content>
  </entry>
  
  <entry>
    <id>http://self.d-struct.org/superior-strength</id>
    <link type="text/html" rel="alternate" href="http://self.d-struct.org/superior-strength"/>
    <title>Superior strength</title>
    <updated>2009-08-20T00:00:00-05:00</updated>
    <author>
      <name>Chris Gansen</name>
      <uri>http://self.d-struct.org/</uri>
    </author>
    <content type="html">&lt;p style=&quot;text-align: center;&quot;&gt;&lt;object width=&quot;480&quot; height=&quot;360&quot; data=&quot;http://www.flickr.com/apps/video/stewart.swf?v=71377&quot; type=&quot;application/x-shockwave-flash&quot;&gt;&lt;param name=&quot;flashvars&quot; value=&quot;intl_lang=en-us&amp;amp;photo_secret=d40b1468ef&amp;amp;photo_id=3840022126&quot; /&gt;&lt;param name=&quot;bgcolor&quot; value=&quot;#000000&quot; /&gt;&lt;param name=&quot;allowFullScreen&quot; value=&quot;true&quot; /&gt;&lt;param name=&quot;src&quot; value=&quot;http://www.flickr.com/apps/video/stewart.swf?v=71377&quot; /&gt;&lt;param name=&quot;allowfullscreen&quot; value=&quot;true&quot; /&gt;&lt;/object&gt;
</content>
  </entry>
  
  <entry>
    <id>http://self.d-struct.org/rsync</id>
    <link type="text/html" rel="alternate" href="http://self.d-struct.org/rsync"/>
    <title>rsync</title>
    <updated>2009-08-13T00:00:00-05:00</updated>
    <author>
      <name>Chris Gansen</name>
      <uri>http://self.d-struct.org/</uri>
    </author>
    <content type="html">&lt;blockquote&gt;&lt;em&gt;Note that doubling a single-quote inside a single-quoted string gives you a single-quote; likewise for double-quotes (though you need to pay attention to which quotes your shell is parsing and which quotes rsync is parsing).&lt;/em&gt;

-- &lt;a href=&quot;http://www.samba.org/ftp/rsync/rsync.html&quot;&gt;rsync man page&lt;/a&gt;&lt;/blockquote&gt;
&lt;p&gt;Ow, my head hurts.
&lt;/p&gt;</content>
  </entry>
  
  <entry>
    <id>http://self.d-struct.org/directory-tree</id>
    <link type="text/html" rel="alternate" href="http://self.d-struct.org/directory-tree"/>
    <title>Directory tree</title>
    <updated>2009-08-10T00:00:00-05:00</updated>
    <author>
      <name>Chris Gansen</name>
      <uri>http://self.d-struct.org/</uri>
    </author>
    <content type="html">&lt;p&gt;A handy Bash script to display a tree view of a directory, adapted from &lt;a href=&quot;http://www.centerkey.com/tree&quot;&gt;http://www.centerkey.com/tree&lt;/a&gt;. This version omits .svn and .git directories, and uses the find utility.&lt;/p&gt;
&lt;pre lang=&quot;bash&quot;&gt;echo
if [ &quot;$1&quot; != &quot;&quot; ]  #if parameter exists, use as base folder
   then cd &quot;$1&quot;
   fi
pwd
find . \! \( -path &quot;*.svn*&quot; -or -path &quot;*.git*&quot; \) -type d | \
   sed -e 's/:$//' -e 's/[^-][^\/]*\//--/g' -e 's/^/   /' -e 's/-/|/'
if [ `ls -F -1 | grep &quot;/&quot; | wc -l` = 0 ]
   then echo &quot;   -&amp;gt; no sub-directories&quot;
   fi
echo
exit&lt;/pre&gt;
Example use:
&lt;pre lang=&quot;bash&quot;&gt;[cgansen@Crystal-Frontier ~]$ tree projects/self.d-struct.org/wp-admin/

/Users/cgansen/projects/self.d-struct.org/wp-admin
   .
   |-css
   |-images
   |-import
   |-includes
   |-js

[cgansen@Crystal-Frontier ~]$&lt;/pre&gt;
</content>
  </entry>
  
  <entry>
    <id>http://self.d-struct.org/assembling-coil</id>
    <link type="text/html" rel="alternate" href="http://self.d-struct.org/assembling-coil"/>
    <title>Assembling Coil</title>
    <updated>2009-07-06T00:00:00-05:00</updated>
    <author>
      <name>Chris Gansen</name>
      <uri>http://self.d-struct.org/</uri>
    </author>
    <content type="html">&lt;p&gt;A few weeks ago, &lt;a href=&quot;http://www.ascentstage.com&quot;&gt;John&lt;/a&gt; and I dropped by to see our friend &lt;a href=&quot;http://www.fueledbycoffee.com/&quot;&gt;Craig&lt;/a&gt; exhibiting at the &lt;a href=&quot;http://www.core77.com/blog/videos/neocon_2009_driveby_video_craighton_berman_at_the_guerrilla_truck_show_13794.asp&quot;&gt;Guerrilla Truck Show&lt;/a&gt; in Chicago's West Loop area. In spite of the pouring rain, we had a great time seeing the exhibits, and I walked away the proud owner of one of Craig's recent designs, the &lt;a href=&quot;http://www.craightonberman.com/coil.html&quot;&gt;Coil Lamp&lt;/a&gt;. After a few weeks of ignoring it, as I was busy moving into a (totally awesome) new apartment in Pilsen, I finally found a few free minutes to assemble it.&lt;/p&gt;

&lt;img src=&quot;http://farm3.static.flickr.com/2586/3697106896_c0cd572333.jpg?v=0&quot; alt=&quot;&quot; width=&quot;500&quot; height=&quot;332&quot; /&gt;

&lt;p&gt;Starting off, I gather the necessary items: lamp with signed dedication, 100' extension cord, CFL bulb OMG DO NOT USE A INCANDESCENT BULB (the instructions clarified that no fewer than three times), and a beer. My suggested pairing for assembling Coil: &lt;a href=&quot;http://www.gooseisland.com/pages/summertime/22.php&quot;&gt;Goose Island Summertime&lt;/a&gt;. The crisp finish accentuates the sharp, precise laser cut of the clear acrylic form of Coil, and they're both made here in Chicago.&lt;/p&gt;

&lt;img src=&quot;http://farm3.static.flickr.com/2504/3696319087_2915b028f0.jpg?v=0&quot; alt=&quot;&quot; width=&quot;500&quot; height=&quot;332&quot; /&gt;
&lt;p style=&quot;text-align: left;&quot;&gt;The instructions are detailed and nicely illustrated.&lt;/p&gt;
&lt;p style=&quot;text-align: left;&quot;&gt;&lt;/p&gt;


&lt;img src=&quot;http://farm3.static.flickr.com/2627/3696319201_2e009f3b7f.jpg?v=0&quot; alt=&quot;&quot; width=&quot;332&quot; height=&quot;500&quot; /&gt;

&lt;img src=&quot;http://farm3.static.flickr.com/2532/3697128382_0b259839ac.jpg?v=0&quot; alt=&quot;Unravelled cord&quot; width=&quot;500&quot; height=&quot;332&quot; /&gt;

&lt;p&gt;My only mistake was not taking enough time to straighten out the coiled cord, which was pretty gnarled up, which caused me to have a bit of trouble getting a really smooth, even &quot;coil&quot; on the form.
&lt;/p&gt;
&lt;img src=&quot;http://farm4.static.flickr.com/3477/3696320375_d73ea1675b.jpg?v=0&quot; alt=&quot;Beginning to take form&quot; width=&quot;500&quot; height=&quot;332&quot; /&gt;

&lt;img src=&quot;http://farm4.static.flickr.com/3586/3696320755_2d985ddc8c.jpg?v=0&quot; alt=&quot;First few spins&quot; width=&quot;361&quot; height=&quot;500&quot; /&gt;

&lt;img src=&quot;http://farm4.static.flickr.com/3444/3697129416_2c0e80017f.jpg?v=0&quot; alt=&quot;Flipped per instructions&quot; width=&quot;500&quot; height=&quot;332&quot; /&gt;

&lt;p&gt;Notice as the beer is slowly drained, the sign of real progress on any project.
&lt;/p&gt;
&lt;img src=&quot;http://farm3.static.flickr.com/2665/3696321583_a9db2cd891.jpg?v=0&quot; alt=&quot;&quot; width=&quot;392&quot; height=&quot;500&quot; /&gt;

&lt;img src=&quot;http://farm3.static.flickr.com/2457/3697108022_9a0f312fc2.jpg?v=0&quot; alt=&quot;&quot; width=&quot;500&quot; height=&quot;332&quot; /&gt;
&lt;p style=&quot;text-align: center;&quot;&gt;&lt;/p&gt;
&lt;p style=&quot;text-align: left;&quot;&gt;There you have it, an assembled Coil Lamp. At this moment, it is sitting in the window, casting a cool, fluorescent glow on the streets of Pilsen. More photos of the experience are online &lt;a href=&quot;http://www.flickr.com/photos/daychokesnight/sets/72157620942481141/&quot;&gt;over at Flickr&lt;/a&gt;.&lt;/p&gt;
</content>
  </entry>
  
  <entry>
    <id>http://self.d-struct.org/happy-as-an-elephant-in-mud</id>
    <link type="text/html" rel="alternate" href="http://self.d-struct.org/happy-as-an-elephant-in-mud"/>
    <title>Happy as an elephant in mud</title>
    <updated>2009-05-23T00:00:00-05:00</updated>
    <author>
      <name>Chris Gansen</name>
      <uri>http://self.d-struct.org/</uri>
    </author>
    <content type="html">Slowly sorting through all the &lt;vi&gt;&lt;/vi&gt;deo I shot while in Tanzania. This is one of my favorites, two elephants playing in the mud at &lt;a href=&quot;http://www.tanzaniaparks.com/tarangire.html&quot;&gt;Tarangire National Park&lt;/a&gt;.

&lt;object width=&quot;640&quot; height=&quot;368&quot;&gt;&lt;param name=&quot;allowfullscreen&quot; value=&quot;true&quot; /&gt;&lt;param name=&quot;allowscriptaccess&quot; value=&quot;always&quot; /&gt;&lt;param name=&quot;movie&quot; value=&quot;http://vimeo.com/moogaloop.swf?clip_id=4794836&amp;amp;server=vimeo.com&amp;amp;show_title=1&amp;amp;show_byline=1&amp;amp;show_portrait=0&amp;amp;color=00ADEF&amp;amp;fullscreen=1&quot; /&gt;&lt;embed src=&quot;http://vimeo.com/moogaloop.swf?clip_id=4794836&amp;amp;server=vimeo.com&amp;amp;show_title=1&amp;amp;show_byline=1&amp;amp;show_portrait=0&amp;amp;color=00ADEF&amp;amp;fullscreen=1&quot; type=&quot;application/x-shockwave-flash&quot; allowfullscreen=&quot;true&quot; allowscriptaccess=&quot;always&quot; width=&quot;640&quot; height=&quot;368&quot;&gt;&lt;/embed&gt;&lt;/object&gt;
</content>
  </entry>
  
  <entry>
    <id>http://self.d-struct.org/this-is-old-time-hockey</id>
    <link type="text/html" rel="alternate" href="http://self.d-struct.org/this-is-old-time-hockey"/>
    <title>This is old-time hockey</title>
    <updated>2009-05-19T00:00:00-05:00</updated>
    <author>
      <name>Chris Gansen</name>
      <uri>http://self.d-struct.org/</uri>
    </author>
    <content type="html">&lt;p&gt;As a Detroit-area native transplanted to Chicago, I'm often asked who I'm rooting for in the Red Wings vs. Blackhawks playoff matchup. I don't really care about pro sports, but there's no way I could root for anyone other than the Red Wings.&lt;/p&gt;
&lt;p style=&quot;text-align: center;&quot;&gt;&lt;object width=&quot;640&quot; height=&quot;505&quot;&gt;&lt;param name=&quot;movie&quot; value=&quot;http://www.youtube.com/v/C7DlAjrhm9s&amp;amp;hl=en&amp;amp;fs=1&amp;amp;rel=0&quot;&gt;&lt;/param&gt;&lt;param name=&quot;allowFullScreen&quot; value=&quot;true&quot;&gt;&lt;/param&gt;&lt;param name=&quot;allowscriptaccess&quot; value=&quot;always&quot;&gt;&lt;/param&gt;&lt;embed src=&quot;http://www.youtube.com/v/C7DlAjrhm9s&amp;amp;hl=en&amp;amp;fs=1&amp;amp;rel=0&quot; type=&quot;application/x-shockwave-flash&quot; allowscriptaccess=&quot;always&quot; allowfullscreen=&quot;true&quot; width=&quot;640&quot; height=&quot;505&quot;&gt;&lt;/embed&gt;&lt;/object&gt;&lt;/p&gt;
</content>
  </entry>
  
  <entry>
    <id>http://self.d-struct.org/jobs4recovery-2-0</id>
    <link type="text/html" rel="alternate" href="http://self.d-struct.org/jobs4recovery-2-0"/>
    <title>Jobs4Recovery 2.0</title>
    <updated>2009-05-04T00:00:00-05:00</updated>
    <author>
      <name>Chris Gansen</name>
      <uri>http://self.d-struct.org/</uri>
    </author>
    <content type="html">&lt;a href=&quot;http://jobs4recovery.com/&quot; target=&quot;_blank&quot;&gt;&lt;img class=&quot;aligncenter size-full wp-image-131&quot; title=&quot;j4r-logo&quot; src=&quot;http://self.d-struct.org/wp-content/uploads/2009/05/j4r-logo.png&quot; alt=&quot;j4r-logo&quot; width=&quot;237&quot; height=&quot;39&quot; /&gt;&lt;/a&gt;

&lt;p&gt;I'm pleased to announce the relaunch of &lt;a href=&quot;http://jobs4recovery.com/&quot; target=&quot;_blank&quot;&gt;Jobs4Recovery.com&lt;/a&gt;. I programmed the first version of this site in September 2005, in the aftermath of the Katrina-Rita one-two hurricane punch. After the initial wave of activity, the site fell by the wayside. The &lt;a href=&quot;http://www.uschamber.com/&quot;&gt;US Chamber of Commerce&lt;/a&gt;, in partnership with IBM, is resurrecting the site to deal with both economic events and natural disasters. Over the past few weeks I've worked on upgrading and refreshing the site. I'm pleased with how it turned out, and I hope it'll help folks when they need it the most.&lt;/p&gt;

&lt;p&gt;On a technical note, sometimes it's fun to switch your whole working environment for a while. I've been hacking Ruby on Rails for the past few years, but went back to PHP for this project. While I've fallen in love with the Ruby language and the Rails framework, the &lt;a href=&quot;http://www.loudthinking.com/posts/23-the-immediacy-of-php&quot;&gt;immediacy of PHP&lt;/a&gt; is refreshing. To upgrade this site, almost all of the effort was in modifying the Javascript calls to reflect changes in the Google Maps API, or tweaking layout issues in Internet Explorer. The same core PHP code from 3.5 years ago worked flawlessly, without changing a single line.&lt;/p&gt;
</content>
  </entry>
  
  <entry>
    <id>http://self.d-struct.org/photographic-roundup</id>
    <link type="text/html" rel="alternate" href="http://self.d-struct.org/photographic-roundup"/>
    <title>Photographic roundup</title>
    <updated>2009-04-26T00:00:00-05:00</updated>
    <author>
      <name>Chris Gansen</name>
      <uri>http://self.d-struct.org/</uri>
    </author>
    <content type="html">&lt;p style=&quot;text-align: center;&quot;&gt;&lt;img class=&quot;aligncenter size-full wp-image-122&quot; title=&quot;safari selfie&quot; src=&quot;http://self.d-struct.org/wp-content/uploads/2009/04/africa1.jpg&quot; alt=&quot;safari selfie&quot; width=&quot;477&quot; height=&quot;512&quot; /&gt;&lt;/p&gt;

&lt;p&gt;Before departing for East Africa, I purchased a &lt;a href=&quot;http://www.nikonusa.com/Find-Your-Nikon/Product/Digital-SLR/25446/D90.html&quot;&gt;Nikon D90&lt;/a&gt;. I had wanted to experiment with a digital SLR for a long, long time, and the trip was the tipping point for me. I only had a few weeks to learn the basics (how to focus, the different shooting modes), and I still had almost no idea how to use the thing when I arrived in Kenya. Nevertheless, after 30 days I had taken some 3000 photos. Most were crap, or alternate exposures, different compositions, etc. When it's all said and done, after editing and deleting the bad ones, I've got about 1500 photos from the trip. They won't win any awards, or even come close to what a &lt;em&gt;real&lt;/em&gt; photographer would produce, but I think they do a good job of documenting the experience.
&lt;/p&gt;
&lt;p&gt;I cannot say enough good things about the D90. It's a wonderful camera, and very, very easy to learn the ins-and-outs of it. Today I purchased a &lt;a href=&quot;http://www.amazon.com/Nikon-50mm-Nikkor-Digital-Cameras/dp/B00005LEN4/&quot;&gt;50mm lens&lt;/a&gt; for use around town. The &lt;a href=&quot;http://www.amazon.com/Nikon-18-200mm-3-5-5-6-ED-IF-Zoom-Nikkor/dp/B000BY52NU&quot;&gt;18 - 200mm zoom lens&lt;/a&gt; I used in Tanzania was great for safari and touring the countryside, but it's a bit heavy and bulky for everyday walking around. Also essential was the &lt;a href=&quot;http://www.amazon.com/Nikon-7072-Lens-Cleaning-System/dp/B00006JN3G&quot;&gt;Nikon lens pen&lt;/a&gt;, and the &lt;a href=&quot;http://dfx-software.com/products.html?tablename=zing&quot;&gt;Zing case&lt;/a&gt; (hat tip to &lt;a href=&quot;http://www.fueledbycoffee.com&quot;&gt;Craig&lt;/a&gt; for that one).&lt;/p&gt;

&lt;p&gt;Flickr sets:
&lt;ul&gt;
	&lt;li&gt;&lt;a href=&quot;http://www.flickr.com/photos/daychokesnight/sets/72157617175713040/&quot; target=&quot;_blank&quot;&gt;Visiting Mary in Mombasa&lt;/a&gt; - my pre-CSC travels to Mombasa to visit my friend Mary.&lt;/li&gt;
	&lt;li&gt;&lt;a href=&quot;http://www.flickr.com/photos/daychokesnight/sets/72157617327748082/&quot; target=&quot;_blank&quot;&gt;Safari&lt;/a&gt; - the team took a three day safari in Lake Manyara, Ngorongoro Crater, and Tarangire Park.&lt;/li&gt;
	&lt;li&gt;&lt;a href=&quot;http://www.flickr.com/photos/daychokesnight/sets/72157617085209685/ target=&quot;&gt;Team photos and sights around Arusha and the Institute&lt;/a&gt;&lt;/li&gt;
	&lt;li&gt;&lt;a href=&quot;http://www.flickr.com/photos/daychokesnight/sets/72157617051753741/&quot; target=&quot;_blank&quot;&gt;Visit to Arusha Primary School&lt;/a&gt; - the team visted the school and talked to the students one morning&lt;/li&gt;
	&lt;li&gt;&lt;a href=&quot;http://www.flickr.com/photos/daychokesnight/sets/72157617142235672/&quot; target=&quot;_blank&quot;&gt;Around the IAA campus&lt;/a&gt; - photos I took to help them with some marketing materials, and to document the campus&lt;/li&gt;
	&lt;li&gt;&lt;a href=&quot;http://www.flickr.com/photos/daychokesnight/sets/72157617104007564/&quot; target=&quot;_blank&quot;&gt;Trip into the Mangola bush&lt;/a&gt; - Abarani, Bakiri, me, and other took a day trip to visit a bush village near Mangola.&lt;/li&gt;
	&lt;li&gt;&lt;a href=&quot;http://www.flickr.com/photos/daychokesnight/sets/72157617001148023/&quot; target=&quot;_blank&quot;&gt;Zanzibar&lt;/a&gt; - After I left Arusha, I spent three days by myself on Zanzibar, an island off the coast in the Indian Ocean. I explored Stone Town, Nungwi Beach, and a local spice plantation.&lt;/li&gt;
	&lt;li&gt;&lt;a href=&quot;http://www.flickr.com/photos/daychokesnight/sets/72157616337482797/&quot; target=&quot;_blank&quot;&gt;Visit to Karim Childrens Centre&lt;/a&gt; - the team visited an orphanage in Arusha to meet and play with the 11 children there. They stole our hearts.&lt;/li&gt;
	&lt;li&gt;&lt;a href=&quot;http://www.flickr.com/photos/daychokesnight/sets/72157616417486358/&quot; target=&quot;_blank&quot;&gt;Trip to Dar Es Salaam with IAA&lt;/a&gt; - the IT staff of the Institute of Accountancy Arusha took a three-day field trip to Dar Es Salaam. I tagged along for the fun.&lt;/li&gt;
&lt;/ul&gt;
&lt;/p&gt;
&lt;p&gt;And a slideshow of the highlights:&lt;/p&gt;
&lt;p style=&quot;text-align: center;&quot;&gt;&lt;object width=&quot;500&quot; height=&quot;375&quot; data=&quot;http://www.flickr.com/apps/slideshow/show.swf?v=71574&quot; type=&quot;application/x-shockwave-flash&quot;&gt;&lt;param name=&quot;flashvars&quot; value=&quot;offsite=true&amp;amp;lang=en-us&amp;amp;page_show_url=%2Fphotos%2Fdaychokesnight%2Fsets%2F72157617413503736%2Fshow%2Fwith%2F3465156644%2F&amp;amp;page_show_back_url=%2Fphotos%2Fdaychokesnight%2Fsets%2F72157617413503736%2Fwith%2F3465156644%2F&amp;amp;set_id=72157617413503736&amp;amp;jump_to=3465156644&quot; /&gt;&lt;param name=&quot;allowFullScreen&quot; value=&quot;true&quot; /&gt;&lt;param name=&quot;src&quot; value=&quot;http://www.flickr.com/apps/slideshow/show.swf?v=71574&quot; /&gt;&lt;param name=&quot;allowfullscreen&quot; value=&quot;true&quot; /&gt;&lt;/object&gt;&lt;/p&gt;
</content>
  </entry>
  
  <entry>
    <id>http://self.d-struct.org/bicycles-of-arusha</id>
    <link type="text/html" rel="alternate" href="http://self.d-struct.org/bicycles-of-arusha"/>
    <title>Bicycles of Arusha</title>
    <updated>2009-04-14T00:00:00-05:00</updated>
    <author>
      <name>Chris Gansen</name>
      <uri>http://self.d-struct.org/</uri>
    </author>
    <content type="html">&lt;img class=&quot;aligncenter size-full wp-image-114&quot; title=&quot;dsc_0053_4&quot; src=&quot;http://self.d-struct.org/wp-content/uploads/2009/04/dsc_0053_4.jpg&quot; alt=&quot;dsc_0053_4&quot; width=&quot;640&quot; height=&quot;507&quot; /&gt;

&lt;p&gt;Between the frantic bustle of overloaded dala dalas (minibusses) and burly 4x4s shuffling batches of tourists off on safari move a eclectic mix of bicycles, filling the transportation gap for a large majority of the population here in Tanzania. The small, nimble bicyclists fight drivers and pedestrians for space on congested streets. The bicycles are usually loaded with a passenger on the back (one ride is a few hundred shillings, or $0.25) or a bunch of bananas on the way to market. The roadside is full of cycles repair shops where you'll see men (always men, never women) fixing flats or truing wheels. It's certainly no Amsterdam -- riders are at the bottom of the road food chain. Accidents are common, as the riders must jockey for position between exhaust-spewing cargo trucks and men pulling carts overloaded with sisal and bags of cement.
&lt;/p&gt;
&lt;img class=&quot;aligncenter size-full wp-image-117&quot; title=&quot;dsc_0157&quot; src=&quot;http://self.d-struct.org/wp-content/uploads/2009/04/dsc_0157.jpg&quot; alt=&quot;dsc_0157&quot; width=&quot;640&quot; height=&quot;634&quot; /&gt;
&lt;p&gt;Most of the bicycles in Tanzania, like the automobiles, are imported from China. They are heavy, up-right city cruisers with beefy 26&quot; wheels and thick tires, a requirement for the often potholed, uneven roads in the city. Riders will decorate their machines with tassels or bright-colored fabric trailing from the seat post. All bicycles have full fenders and mudflaps.
&lt;/p&gt;
&lt;img class=&quot;aligncenter size-full wp-image-116&quot; title=&quot;dsc_0154&quot; src=&quot;http://self.d-struct.org/wp-content/uploads/2009/04/dsc_0154.jpg&quot; alt=&quot;dsc_0154&quot; width=&quot;640&quot; height=&quot;390&quot; /&gt;

&lt;p&gt;In Dar Es Salaam, I noticed a large number of tricycles, usually with a meter-long platform on the back. These vehicles were always manned by at least two people: one to pedal, and one to help push it up steep hills. Very few of the cycles here have multiple gears, and when they do, the derailleurs are often broken or full of dirt.
&lt;/p&gt;
&lt;img class=&quot;aligncenter size-full wp-image-115&quot; title=&quot;dsc_0141&quot; src=&quot;http://self.d-struct.org/wp-content/uploads/2009/04/dsc_0141.jpg&quot; alt=&quot;dsc_0141&quot; width=&quot;640&quot; height=&quot;350&quot; /&gt;
&lt;p&gt;
I have seen a handful of road bikes in the month that I've been here. One early Sunday morning I spotted a group of five or six riders decked out in full kit with older European road bikes. Perhaps they were discussing starting the Arusha Critical Mass?
&lt;/p&gt;
&lt;img class=&quot;aligncenter size-full wp-image-118&quot; title=&quot;dsc_0203&quot; src=&quot;http://self.d-struct.org/wp-content/uploads/2009/04/dsc_0203.jpg&quot; alt=&quot;dsc_0203&quot; width=&quot;640&quot; height=&quot;425&quot; /&gt;
</content>
  </entry>
  
  <entry>
    <id>http://self.d-struct.org/countdown</id>
    <link type="text/html" rel="alternate" href="http://self.d-struct.org/countdown"/>
    <title>Countdown</title>
    <updated>2009-04-08T00:00:00-05:00</updated>
    <author>
      <name>Chris Gansen</name>
      <uri>http://self.d-struct.org/</uri>
    </author>
    <content type="html">&lt;img class=&quot;aligncenter size-full wp-image-110&quot; title=&quot;countdown&quot; src=&quot;http://self.d-struct.org/wp-content/uploads/2009/04/dsc_0031_7.jpg&quot; alt=&quot;countdown&quot; width=&quot;640&quot; height=&quot;390&quot; /&gt;

&lt;p&gt;Hard to believe that my time here in Arusha is almost complete. Today is the last day of real work; tomorrow is dedicated to presentations, handshakes (the cornerstone of Tanzanian business dealings), and goodbyes. Friday is a national holiday. The team leaves on Saturday at various times to go back to their homelands. I'm staying in Arusha for the weekend to visit Mangola, a local village near Karatu, and tour a friend's uncle's coffee plantation. Next week I'll head to Zanzibar for a few days, then it's back to the States on Thursday, with a pit-stop in London.
&lt;/p&gt;
&lt;p&gt;I'm happy with what we've been able to achieve as a team here, and I'm very happy with what I was able to accomplish by myself. It'll be tough not having our daily team dinners and card sessions, or to hear Bakiri's piercing laugh, or almost being blindsided by a speeding &lt;em&gt;dala dala&lt;/em&gt;, but I think we'll manage.&lt;/p&gt;
</content>
  </entry>
  
  <entry>
    <id>http://self.d-struct.org/the-land-of-bongo</id>
    <link type="text/html" rel="alternate" href="http://self.d-struct.org/the-land-of-bongo"/>
    <title>The land of Bongo</title>
    <updated>2009-04-05T00:00:00-05:00</updated>
    <author>
      <name>Chris Gansen</name>
      <uri>http://self.d-struct.org/</uri>
    </author>
    <content type="html">&lt;a href=&quot;http://www.flickr.com/photos/daychokesnight/sets/72157614859227591/&quot;&gt;&lt;img class=&quot;aligncenter&quot; title=&quot;street style&quot; src=&quot;http://farm4.static.flickr.com/3562/3415388692_b93fddc105.jpg?v=0&quot; alt=&quot;&quot; width=&quot;500&quot; height=&quot;414&quot; /&gt;&lt;/a&gt;

&lt;p&gt;Dar Es Salaam: hot, crowded, congested, brash, poor, dirty, lively, overwhelming, vibrant, humid, &lt;strong&gt;alive&lt;/strong&gt;.&lt;/p&gt;
</content>
  </entry>
  
  <entry>
    <id>http://self.d-struct.org/this-is-not-tanzania-this-is-tanzania-land-of-kilimanjaro</id>
    <link type="text/html" rel="alternate" href="http://self.d-struct.org/this-is-not-tanzania-this-is-tanzania-land-of-kilimanjaro"/>
    <title>This is not Tanzania! This is Tanzania, Land of Kilimanjaro!</title>
    <updated>2009-03-31T00:00:00-05:00</updated>
    <author>
      <name>Chris Gansen</name>
      <uri>http://self.d-struct.org/</uri>
    </author>
    <content type="html">&lt;p&gt;The title of this post comes from Bakiri, our very animated, very lovable partner at the Institute of Accountancy. I argued that it should not be &quot;land of Kilimanjaro,&quot; but rather &quot;land of Bakiri,&quot; but his modesty, for once, was too much.
&lt;/p&gt;
&lt;p&gt;Quick updates:
&lt;ul&gt;
	&lt;li&gt;Most bizarre item I've seen strapped on a bicycle rack: a lawn mower. The rider looked a bit unsteady navigating the speed bumps on Njiro road, but he never lost his balance, and drivers, surprisingly, gave him wide berth. Runners up for the award are: a tower of six suitcases that dwarfed the rider, and a large computer printer.&lt;/li&gt;
	&lt;li&gt;&lt;a href=&quot;http://www.fring.com/download/iphone/&quot;&gt;Fring&lt;/a&gt; has been indispensable in keeping in touch, as it usually much easier to carry the iPhone than the laptop and find a WiFi connection. Now that &lt;a href=&quot;http://business.timesonline.co.uk/tol/business/industry_sectors/technology/article6005428.ece&quot;&gt;Skype is available for iPhone&lt;/a&gt;, however, I think I'll switch, assuming I can &lt;a href=&quot;http://twitter.com/cgansen/status/1424601778&quot;&gt;ever finish downloading the app&lt;/a&gt;.&lt;/li&gt;
	&lt;li&gt;I made arrangements today with a colleague at IAA to visit his uncle's coffee farm outside Arusha. I'm unbelievable excited for this, possibly more excited than I am to see Zanzibar. His uncle is on the &lt;a href=&quot;http://dreamweaver.co.uk/tcb/&quot;&gt;Tanzania Coffee Board&lt;/a&gt;, so you know it's legit. Expect me to come back with 50kg sacks of coffee.&lt;/li&gt;
&lt;/ul&gt;
&lt;/p&gt;</content>
  </entry>
  
  <entry>
    <id>http://self.d-struct.org/the-team</id>
    <link type="text/html" rel="alternate" href="http://self.d-struct.org/the-team"/>
    <title>The Team</title>
    <updated>2009-03-29T00:00:00-05:00</updated>
    <author>
      <name>Chris Gansen</name>
      <uri>http://self.d-struct.org/</uri>
    </author>
    <content type="html">&lt;img title=&quot;sally nitish&quot; src=&quot;http://farm4.static.flickr.com/3096/3393801373_e1e81a2afa.jpg?v=0&quot; alt=&quot;&quot; width=&quot;500&quot; height=&quot;431&quot; /&gt;

&lt;img title=&quot;rodrigo christine&quot; src=&quot;http://farm4.static.flickr.com/3446/3394612262_1ce9e9f155.jpg?v=0&quot; alt=&quot;&quot; width=&quot;500&quot; height=&quot;332&quot; /&gt;

&lt;img title=&quot;Andrea&quot; src=&quot;http://farm4.static.flickr.com/3469/3394612852_8807527b18.jpg?v=0&quot; alt=&quot;Andrea&quot; width=&quot;500&quot; height=&quot;332&quot; /&gt;

&lt;img title=&quot;Nitish&quot; src=&quot;http://farm4.static.flickr.com/3469/3393803053_4947519fb4.jpg?v=0&quot; alt=&quot;Nitish&quot; width=&quot;500&quot; height=&quot;332&quot; /&gt;

&lt;img title=&quot;Hiroya&quot; src=&quot;http://farm4.static.flickr.com/3566/3393803513_d3623cd989.jpg?v=0&quot; alt=&quot;Hiroya&quot; width=&quot;500&quot; height=&quot;332&quot; /&gt;

&lt;img title=&quot;Rodrigo&quot; src=&quot;http://farm4.static.flickr.com/3615/3393803943_27e766715b.jpg?v=0&quot; alt=&quot;Rodrigo&quot; width=&quot;500&quot; height=&quot;332&quot; /&gt;

&lt;img title=&quot;Hiroya, Andrea, Gloria&quot; src=&quot;http://farm4.static.flickr.com/3540/3393804737_15ce490bd9.jpg?v=0&quot; alt=&quot;Hiroya, Andrea, Gloria&quot; width=&quot;500&quot; height=&quot;263&quot; /&gt;

&lt;img title=&quot;Chris&quot; src=&quot;http://farm4.static.flickr.com/3594/3393805201_e499c72849.jpg?v=0&quot; alt=&quot;Chris (yours truly)&quot; width=&quot;500&quot; height=&quot;332&quot; /&gt;

&lt;p&gt;Apologies to Colleen and Christine, I just didn't get a good picture of you guys.&lt;/p&gt;</content>
  </entry>
  
  <entry>
    <id>http://self.d-struct.org/a-short-visit-to-arusha-school</id>
    <link type="text/html" rel="alternate" href="http://self.d-struct.org/a-short-visit-to-arusha-school"/>
    <title>A short visit to Arusha School</title>
    <updated>2009-03-25T00:00:00-05:00</updated>
    <author>
      <name>Chris Gansen</name>
      <uri>http://self.d-struct.org/</uri>
    </author>
    <content type="html">&lt;p&gt;The team spent Wednesday morning visiting the staff and students of the Arusha School, a primary school in the Arusha city center. We paired off into groups of two to lead projects with the students. Hiroya and I partnered up to teach the kids origami, while other folks did science experiments, played marbles, and danced like vegetables. The kids were a joy to work with, all very curious about who the strangers on campus were. By far the most exciting thing for them was not the activities, or the stuff we brought to share, but rather to commandeer our digital cameras and run around campus taking pictures of each other and the stranger gaggle of foreigners, then clustering around to see the result on the LCD screens.
&lt;/p&gt;
&lt;img class=&quot;aligncenter&quot; title=&quot;kids with camera&quot; src=&quot;http://farm4.static.flickr.com/3431/3385317910_ff019f549f.jpg?v=0&quot; alt=&quot;kids with camera&quot; width=&quot;500&quot; height=&quot;279&quot; /&gt;

&lt;p&gt;The campus was a collection of classroom buildings, joined by dusty dirt pathways, and the kids wandered in and out of them between class. At times it was hard to determine if class was really in session, as teachers were sometimes absent from rooms, and children aimlessly wandered the grounds, eager to take a photo or to talk about their favorite singer, Chris Brown. An ancient turtle slowly meandered across a patch of grass, older than the buildings surrounding it. 
&lt;/p&gt;
&lt;p&gt;The classrooms at the school were austere and rather worn-down, without any sort of technology like televisions or computers, or even books and basic supplies like paper and pencils. The desks were battered and uncomfortable, simple welded steel and wood devices. The chalkboard chipped and stained with years of accumulated dust and grime. The walls coated in peeling paint and crude graffiti that sixth graders world-wide are compelled to leave behind. The windows had no screens, and had strong iron bars over them, casting a penitentiary mood over the interior.
&lt;/p&gt;
&lt;p&gt;Hiroya and I were left largely to ourselves to teach some thirty students, all sixth graders, how to fold origami paper cranes. There was no instructor for the class, and we more or less improvised our entire talk. After much too brief introductions, in which I introduced myself as a guy from the same city as Barack Obama, we launched into the origami. I had only learned the pattern an hour before, so I was only slightly less confused as the students. What began as patient listening on part of the students quickly devolved into barely organized chaos, as they clamored after Hiroya and I, shouting &quot;Teacher, teacher! Is this right?&quot; then thrusting some mangled attempt at folding paper into our faces. 
&lt;/p&gt;
&lt;p&gt;We persevered, however, and managed to reign in the chaos. I found a few students who were quick learners, then dispatched them to instruct their classmates. The few hopeless cases I took pity on and just folded the paper for them. No matter how many times I would demonstrate a fold, they simply just stared blankly at me and motion for me to do it for them. After 40 minutes with this one group (we had only planned for only 15 minutes, and to do three classes), they all finally had cranes, some more majestic than others, a few barely recognizable, one torn to shreds, and patiently shared one or two pencils to draw on eyes, the finishing touch on their masterpieces.
&lt;/p&gt;
&lt;img alt=&quot;&quot; src=&quot;http://farm4.static.flickr.com/3586/3385324404_2e40a5b717.jpg?v=0&quot; title=&quot;kids with cranes&quot; class=&quot;aligncenter&quot; width=&quot;500&quot; height=&quot;332&quot; /&gt;
</content>
  </entry>
  
  <entry>
    <id>http://self.d-struct.org/safari-njema</id>
    <link type="text/html" rel="alternate" href="http://self.d-struct.org/safari-njema"/>
    <title>Safari njema</title>
    <updated>2009-03-23T00:00:00-05:00</updated>
    <author>
      <name>Chris Gansen</name>
      <uri>http://self.d-struct.org/</uri>
    </author>
    <content type="html">&lt;p&gt;Last weekend the team traveled to Ngorongoro Crater, Tarangire National Park, and Lake Manyara National Park. I'm still sorting through the 1466 photos I took, but for now here are a few highlights.
&lt;/p&gt;
&lt;img class=&quot;aligncenter&quot; title=&quot;Baboon&quot; src=&quot;http://farm4.static.flickr.com/3465/3378854755_b25cf43278.jpg?v=0&quot; alt=&quot;&quot; width=&quot;496&quot; height=&quot;500&quot; /&gt;

&lt;img class=&quot;aligncenter&quot; title=&quot;Giraffe&quot; src=&quot;http://farm4.static.flickr.com/3564/3379675268_ebb88fd4e8.jpg?v=0&quot; alt=&quot;&quot; width=&quot;500&quot; height=&quot;404&quot; /&gt;

&lt;img class=&quot;aligncenter&quot; title=&quot;Zebra&quot; src=&quot;http://farm4.static.flickr.com/3634/3379690918_4a05a14250.jpg?v=0&quot; alt=&quot;&quot; width=&quot;500&quot; height=&quot;469&quot; /&gt;

&lt;img class=&quot;aligncenter&quot; title=&quot;Warthog&quot; src=&quot;http://farm4.static.flickr.com/3426/3378886775_cc0c01335c.jpg?v=0&quot; alt=&quot;&quot; width=&quot;500&quot; height=&quot;321&quot; /&gt;

&lt;img class=&quot;aligncenter&quot; title=&quot;Lion&quot; src=&quot;http://farm4.static.flickr.com/3456/3379708228_6157c279db.jpg?v=0&quot; alt=&quot;&quot; width=&quot;500&quot; height=&quot;396&quot; /&gt;

&lt;img class=&quot;aligncenter&quot; title=&quot;Rhinos&quot; src=&quot;http://farm4.static.flickr.com/3601/3378905917_7122440d1b.jpg?v=0&quot; alt=&quot;&quot; width=&quot;500&quot; height=&quot;180&quot; /&gt;

&lt;img class=&quot;aligncenter&quot; title=&quot;Starling&quot; src=&quot;http://farm4.static.flickr.com/3570/3379732402_bf3fa1a565.jpg?v=0&quot; alt=&quot;&quot; width=&quot;500&quot; height=&quot;430&quot; /&gt;

&lt;img class=&quot;aligncenter&quot; title=&quot;Elephant&quot; src=&quot;http://farm4.static.flickr.com/3554/3379021203_1206d54972.jpg?v=0&quot; alt=&quot;&quot; width=&quot;500&quot; height=&quot;358&quot; /&gt;
</content>
  </entry>
  
  <entry>
    <id>http://self.d-struct.org/a-place-to-lay-your-head</id>
    <link type="text/html" rel="alternate" href="http://self.d-struct.org/a-place-to-lay-your-head"/>
    <title>A place to lay your head</title>
    <updated>2009-03-18T00:00:00-05:00</updated>
    <author>
      <name>Chris Gansen</name>
      <uri>http://self.d-struct.org/</uri>
    </author>
    <content type="html">&lt;p&gt;While in Arusha I am staying at the &lt;a href=&quot;http://www.outposttanzania.com/index.htm&quot;&gt;Outpost Lodge&lt;/a&gt;. It's small compound of guesthouses with a swimming pool, decent restaurant, and a well-stocked bar. Most importantly, it's got wifi covering the public grounds. Three days in I've established a nice routine where I'll return from work at IAA, unload my pack in my room, and grab a beer by the pool.  Suddenly Tanzania doesn't seem so foreign and rough after all.&lt;/p&gt;

&lt;img class=&quot;aligncenter size-full wp-image-76&quot; title=&quot;the room&quot; src=&quot;http://self.d-struct.org/wp-content/uploads/2009/03/dsc_0005_2.jpg&quot; alt=&quot;the room&quot; width=&quot;640&quot; height=&quot;345&quot; /&gt;

&lt;p&gt;The room itself is decently appointed. The bed is soft, but smells incredibly musty, a byproduct of hot, humid days in the rainy season. The water is hot when it has to be, and the toilet works with minimal fuss. There's a nice porch out front, incidentally that is where I sit typing this, which makes for a nice place to sit out the afternoon rainstorms.&lt;/p&gt;

&lt;img class=&quot;aligncenter size-full wp-image-77&quot; title=&quot;dsc_0027_3&quot; src=&quot;http://self.d-struct.org/wp-content/uploads/2009/03/dsc_0027_3.jpg&quot; alt=&quot;dsc_0027_3&quot; width=&quot;640&quot; height=&quot;476&quot; /&gt;

&lt;p&gt;The restaurant and café are unremarkable, but reliable. I've sample all varieties of &lt;em&gt;nyama choma&lt;/em&gt; they offer: goat, lamb, and beef. I was hoping for more local fare, but it's solidly Western in its focus. Tonight we're heading out as a team to dinner for the first time. It is certain to be an interesting experience.&lt;/p&gt;

&lt;img class=&quot;aligncenter size-full wp-image-79&quot; title=&quot;dsc_0040_3&quot; src=&quot;http://self.d-struct.org/wp-content/uploads/2009/03/dsc_0040_3.jpg&quot; alt=&quot;dsc_0040_3&quot; width=&quot;640&quot; height=&quot;425&quot; /&gt;
</content>
  </entry>
  
  <entry>
    <id>http://self.d-struct.org/slainte</id>
    <link type="text/html" rel="alternate" href="http://self.d-struct.org/slainte"/>
    <title>Sláinte</title>
    <updated>2009-03-17T00:00:00-05:00</updated>
    <author>
      <name>Chris Gansen</name>
      <uri>http://self.d-struct.org/</uri>
    </author>
    <content type="html">&lt;p style=&quot;text-align: center;&quot;&gt;&lt;img class=&quot;size-full wp-image-71 alignnone&quot; title=&quot;dsc_0002_3&quot; src=&quot;http://self.d-struct.org/wp-content/uploads/2009/03/dsc_0002_3.jpg&quot; alt=&quot;dsc_0002_3&quot; width=&quot;640&quot; height=&quot;556&quot; /&gt;&lt;/p&gt;
&lt;p style=&quot;text-align: center;&quot;&gt;Happy St Patrick's Day from Arusha, Tanzania. No green beer or rivers dyed here, but the spirit lives on.&lt;/p&gt;
</content>
  </entry>
  
  <entry>
    <id>http://self.d-struct.org/day-one-of-work</id>
    <link type="text/html" rel="alternate" href="http://self.d-struct.org/day-one-of-work"/>
    <title>Day one of work</title>
    <updated>2009-03-16T00:00:00-05:00</updated>
    <author>
      <name>Chris Gansen</name>
      <uri>http://self.d-struct.org/</uri>
    </author>
    <content type="html">&lt;p style=&quot;text-align: center;&quot;&gt;&lt;img class=&quot;aligncenter&quot; title=&quot;office&quot; src=&quot;http://farm4.static.flickr.com/3659/3361363083_637755642d.jpg?v=0&quot; alt=&quot;&quot; width=&quot;500&quot; height=&quot;255&quot; /&gt;&lt;/p&gt;
&lt;p style=&quot;text-align: center;&quot;&gt;&lt;img class=&quot;aligncenter&quot; title=&quot;room&quot; src=&quot;http://farm4.static.flickr.com/3597/3362179366_19a9d46df7.jpg?v=0&quot; alt=&quot;&quot; width=&quot;500&quot; height=&quot;271&quot; /&gt;&lt;/p&gt;
&lt;p style=&quot;text-align: center;&quot;&gt;&lt;img class=&quot;aligncenter&quot; title=&quot;team&quot; src=&quot;http://farm4.static.flickr.com/3622/3362179660_fd8e628e3d.jpg?v=0&quot; alt=&quot;&quot; width=&quot;500&quot; height=&quot;253&quot; /&gt;&lt;/p&gt;
</content>
  </entry>
  
  <entry>
    <id>http://self.d-struct.org/habari</id>
    <link type="text/html" rel="alternate" href="http://self.d-struct.org/habari"/>
    <title>Habari</title>
    <updated>2009-03-15T00:00:00-05:00</updated>
    <author>
      <name>Chris Gansen</name>
      <uri>http://self.d-struct.org/</uri>
    </author>
    <content type="html">&lt;img class=&quot;aligncenter size-full wp-image-62&quot; title=&quot;coastal&quot; src=&quot;http://self.d-struct.org/wp-content/uploads/2009/03/dsc_0059.jpg&quot; alt=&quot;coastal&quot; width=&quot;640&quot; height=&quot;282&quot; /&gt;

&lt;p&gt;Greetings from Arusha, Tanzania. The trip so far is going wonderfully. My time in Mombasa with Mary was much, much too short. The sights, sounds, and smells were simply overwhelming. Above you can see the view from the beach outside her apartment.
&lt;/p&gt;
&lt;p&gt;I'm in Arusha, Tanzania now with the rest of the IBM team. Everything so far is going great, and I'm really happy with the other folks. Today is the first day of work, so we've all got a bit of first-day-of-school jitters.&lt;/p&gt;
</content>
  </entry>
  
  <entry>
    <id>http://self.d-struct.org/time-to-go</id>
    <link type="text/html" rel="alternate" href="http://self.d-struct.org/time-to-go"/>
    <title>Time to Go</title>
    <updated>2009-03-10T00:00:00-05:00</updated>
    <author>
      <name>Chris Gansen</name>
      <uri>http://self.d-struct.org/</uri>
    </author>
    <content type="html">&lt;p style=&quot;text-align: center;&quot;&gt;&lt;img class=&quot;size-full wp-image-55 aligncenter&quot; title=&quot;departure&quot; src=&quot;http://self.d-struct.org/wp-content/uploads/2009/03/departure.png&quot; alt=&quot;&quot; width=&quot;310&quot; height=&quot;88&quot; /&gt;&lt;/p&gt;
&lt;p style=&quot;text-align: left;&quot;&gt;Hard to believe that it's already departure time. Two months ago I couldn't tell Tanzania from Ghana from South Africa. I've so much time reading and learning about Africa, a place I never fathomed I would ever visit on my own, let alone for work.&lt;/p&gt;
&lt;p style=&quot;text-align: left;&quot;&gt;This afternoon I embark on 25 hours of travel, flying overnight from O'Hare to London Heathrow (9 hours), then to Nairobi (9 hours), then to Mombasa (1 hour). Last time I headed overseas &lt;a href=&quot;http://www.flickr.com/photos/daychokesnight/3314477861/in/set-72157614444427053/&quot; target=&quot;_blank&quot;&gt;I traveled in style.&lt;/a&gt; This time, I'm with the cattle in economy.&lt;/p&gt;
&lt;p style=&quot;text-align: left;&quot;&gt;A friend passed this along as a going-away present. I leave you to bask in its awesomeness.&lt;/p&gt;

&lt;p style=&quot;text-align: center;&quot;&gt;&lt;object width=&quot;425&quot; height=&quot;344&quot; data=&quot;http://www.youtube.com/v/lPT_3PEjnsE&amp;amp;hl=en&amp;amp;fs=1&quot; type=&quot;application/x-shockwave-flash&quot;&gt;&lt;param name=&quot;allowFullScreen&quot; value=&quot;true&quot; /&gt;&lt;param name=&quot;allowscriptaccess&quot; value=&quot;always&quot; /&gt;&lt;param name=&quot;src&quot; value=&quot;http://www.youtube.com/v/lPT_3PEjnsE&amp;amp;hl=en&amp;amp;fs=1&quot; /&gt;&lt;param name=&quot;allowfullscreen&quot; value=&quot;true&quot; /&gt;&lt;/object&gt;
</content>
  </entry>
  
  <entry>
    <id>http://self.d-struct.org/travel-lightly</id>
    <link type="text/html" rel="alternate" href="http://self.d-struct.org/travel-lightly"/>
    <title>Travel lightly</title>
    <updated>2009-03-07T00:00:00-06:00</updated>
    <author>
      <name>Chris Gansen</name>
      <uri>http://self.d-struct.org/</uri>
    </author>
    <content type="html">&lt;p style=&quot;text-align: center;&quot;&gt;&lt;a title=&quot;First attempt at packing by cgansen, on Flickr&quot; href=&quot;http://www.flickr.com/photos/daychokesnight/3336403522/&quot;&gt;&lt;img class=&quot;aligncenter&quot; src=&quot;http://farm4.static.flickr.com/3404/3336403522_4d17cdb188.jpg&quot; alt=&quot;First attempt at packing&quot; width=&quot;500&quot; height=&quot;332&quot; /&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;T minus 2 days and counting.&lt;/p&gt;
</content>
  </entry>
  
  <entry>
    <id>http://self.d-struct.org/moving-pictures</id>
    <link type="text/html" rel="alternate" href="http://self.d-struct.org/moving-pictures"/>
    <title>Moving Pictures</title>
    <updated>2009-03-04T00:00:00-06:00</updated>
    <author>
      <name>Chris Gansen</name>
      <uri>http://self.d-struct.org/</uri>
    </author>
    <content type="html">&lt;p&gt;In anticipation of my upcoming trip, I purchased a NIkon D90. I've wanted a DSLR for quite some time now, but never could bring myself to commit to the purchase. Researching my options for this, I teetered back and forth between the Canon 50D and the D90. What sold me on the D90, in the end, was its HD video capability. In a stroke of good timing, Flickr announced support for HD video. Here is a test clip:
&lt;/p&gt;&lt;p style=&quot;text-align: center;&quot;&gt;&lt;object width=&quot;400&quot; height=&quot;225&quot; data=&quot;http://www.flickr.com/apps/video/stewart.swf?v=68975&quot; type=&quot;application/x-shockwave-flash&quot;&gt;&lt;param name=&quot;flashvars&quot; value=&quot;intl_lang=en-us&amp;amp;photo_secret=6ee9663b8b&amp;amp;photo_id=3329357919&amp;amp;hd_default=false&quot; /&gt;&lt;param name=&quot;bgcolor&quot; value=&quot;#000000&quot; /&gt;&lt;param name=&quot;allowFullScreen&quot; value=&quot;true&quot; /&gt;&lt;param name=&quot;src&quot; value=&quot;http://www.flickr.com/apps/video/stewart.swf?v=68975&quot; /&gt;&lt;param name=&quot;allowfullscreen&quot; value=&quot;true&quot; /&gt;&lt;/object&gt;
&lt;p style=&quot;text-align: left;&quot;&gt;It's no &lt;a href=&quot;http://www.usa.canon.com/dlc/controller?act=GetArticleAct&amp;amp;articleID=2326&quot;&gt;5D Mark II,&lt;/a&gt; but I'm not complaining. Let's hope I can get some good footage of a rampaging elephant chasing after me on the savannah.&lt;/p&gt;
</content>
  </entry>
  
  <entry>
    <id>http://self.d-struct.org/nine-inch-nails</id>
    <link type="text/html" rel="alternate" href="http://self.d-struct.org/nine-inch-nails"/>
    <title>Nine Inch Nails</title>
    <updated>2009-03-01T00:00:00-06:00</updated>
    <author>
      <name>Chris Gansen</name>
      <uri>http://self.d-struct.org/</uri>
    </author>
    <content type="html">&lt;img class=&quot;size-full wp-image-38 aligncenter&quot; title=&quot;NIN Ticket&quot; src=&quot;http://self.d-struct.org/wp-content/uploads/2009/03/nin-ticket.jpg&quot; alt=&quot;NIN Ticket&quot; width=&quot;354&quot; height=&quot;215&quot; /&gt;
&lt;p&gt;My first ever &quot;real&quot; concert was&lt;a href=&quot;http://nin.com/&quot;&gt; Nine Inch Nails&lt;/a&gt; at the Palace of Auburn Hills in 2000. The opening act was A Perfect Circle. I was only 16 and had never in my life seen such a cross section of strangely dressed folk. Seeing a grown man wearing nothing but a full-body fishnet suit and Doc Martens was a defining moment of my teenage years.
&lt;/p&gt;
&lt;p&gt;The band's output lately has been top-notch. &lt;em&gt;Ghosts I-IV&lt;/em&gt; and &lt;em&gt;The Slip&lt;/em&gt; are fantastic albums. Their embrace of the Internet is a model for other bands. This video (on Vimeo to boot!) from the band reminds me of all the reasons why I loved that concert 9 years ago. Be sure to &lt;a href=&quot;http://vimeo.com/3385757&quot;&gt;click through and view in HD and fullscreen&lt;/a&gt;.
&lt;/p&gt;&lt;p style=&quot;text-align: center;&quot;&gt;&lt;object width=&quot;400&quot; height=&quot;225&quot; data=&quot;http://vimeo.com/moogaloop.swf?clip_id=3385757&amp;amp;server=vimeo.com&amp;amp;show_title=1&amp;amp;show_byline=1&amp;amp;show_portrait=0&amp;amp;color=00ADEF&amp;amp;fullscreen=1&quot; type=&quot;application/x-shockwave-flash&quot;&gt;&lt;param name=&quot;allowfullscreen&quot; value=&quot;true&quot; /&gt;&lt;param name=&quot;allowscriptaccess&quot; value=&quot;always&quot; /&gt;&lt;param name=&quot;src&quot; value=&quot;http://vimeo.com/moogaloop.swf?clip_id=3385757&amp;amp;server=vimeo.com&amp;amp;show_title=1&amp;amp;show_byline=1&amp;amp;show_portrait=0&amp;amp;color=00ADEF&amp;amp;fullscreen=1&quot; /&gt;&lt;/object&gt;
</content>
  </entry>
  
  <entry>
    <id>http://self.d-struct.org/african-adventure</id>
    <link type="text/html" rel="alternate" href="http://self.d-struct.org/african-adventure"/>
    <title>African Adventure</title>
    <updated>2009-02-28T00:00:00-06:00</updated>
    <author>
      <name>Chris Gansen</name>
      <uri>http://self.d-struct.org/</uri>
    </author>
    <content type="html">&lt;p&gt;I'm heading to Africa in a few days as a part of the &lt;a href=&quot;http://www.ibm.com/corporateservicecorps&quot;&gt;IBM Corporate Service Corps&lt;/a&gt;. Despite the mildly awkward name, it's a rather interesting program. IBM is sending 600 of its best and brightest to work with NGO in emerging markets. It's a mish-mash of corporate citizenship, good public relations, philanthropy, and advance market research. I'm joining 8 other IBMers from around the globe -- the Philippines, India, Brazil, Great Britain, Italy, Japan, and the United States -- to work for one month with three organizations in &lt;a href=&quot;http://en.wikipedia.org/wiki/Arusha&quot;&gt;Arusha, Tanzania&lt;/a&gt;. We have never worked together as a team before, let alone ever met in person. We're all hail from various backgrounds which run the gamut from technical skills to sales to marketing to management. Some of us don't speak English very well, and none of us speak any Swahili.&lt;/p&gt;

&lt;p&gt;I learned just a few days ago that I'll be working with the &lt;a href=&quot;http://www.iaa.ac.tz/08/&quot;&gt;Institute of Accountancy Arusha (IAA)&lt;/a&gt;. They offer various undergradute and postgraduate programs in business, accounting, and information technology. I'll be working with them to assess their current infrastructure, plan upgrades, and various other IT-related tasks. Other team members are working with the &lt;a href=&quot;http://www.awf.org/&quot;&gt;African Wildlife Foundation&lt;/a&gt; and the &lt;a href=&quot;http://www.tatotz.org/&quot;&gt;Tanzanian Association of Tour Operators&lt;/a&gt; on projects ranging from AIDS outreach to marketing to business planning. We're not the only IBM team that has been to Tanzania. Two teams visited in 2008 to work with TATO and AWF. They accomplished a lot, including creating the current TATO web site, numerous business plans, and lots of consulting work. A fourth team is leaving in a month to go work in the capital of Tanzania, Dodoma.&lt;/p&gt;

&lt;p&gt;Overall, I am quite excited for this. It is certainly the most interesting task I've taken on in my short tenure with IBM, and I have no doubts that it will be the most challenging. It's a bit intimidating going into a new country, culture, and pace fo life. Things I take for granted here like instant, always-available Internet access, are simply not available there. What will I ever do with out Google? But that's all part of the experience, and I look forward to it. I am also quite eager to join this new team. Just from the few weeks of conference calls and uncountable email chains, they have demonstrated a great level of capability and professionalism.&lt;/p&gt;
</content>
  </entry>
  
  <entry>
    <id>http://self.d-struct.org/a-reluctant-writer</id>
    <link type="text/html" rel="alternate" href="http://self.d-struct.org/a-reluctant-writer"/>
    <title>A Reluctant Writer</title>
    <updated>2009-02-26T00:00:00-06:00</updated>
    <author>
      <name>Chris Gansen</name>
      <uri>http://self.d-struct.org/</uri>
    </author>
    <content type="html">&lt;p&gt;I am a bad writer. I can string words together into sentences, and for the most part get my point across when I have to. But rarely am I ever happy going back and reading my writing. It's why I don't write a journal, don't write letters, and why I loathe long-winded emails. I have a college-era LiveJournal account, locked behind privacy settings as it's not fit for the world to see. Writing, to me, is a chore, and best left to the professionals. Or at least those who enjoy it.&lt;/p&gt;

&lt;p&gt;So why, then, would I do something as silly as start a writing a weblog? Mostly because I have been looking for a convenient way to post some of the things I come across, silly stories that I get tired of re-telling to friends at the bar, and pictures that don't belong on Facebook. But I also am starting this because I want to become a better writer. I figure if I have the tools, I can bumble my way through finding my writing &quot;voice.&quot; Practice makes perfect, right?&lt;/p&gt;

&lt;p&gt;I read plenty of blogs that I love, some by strangers, some by friends, and I find inspiration in them. I admire the free-ranging topics my dear friend and colleague &lt;a href=&quot;http://www.ascentstage.com/&quot;&gt;John Tolva&lt;/a&gt; writes about (how you can go from SXSW to prairie fires to Legos to wine making is a feat in itself), the succinct but always amusing link lists &lt;a href=&quot;http://www.fueledbycoffee.com/&quot;&gt;Craig&lt;/a&gt; puts together, and the sheer absurdity that was Aaron's (now defunct) candy blog. The &quot;big&quot; bloggers out there, like &lt;a href=&quot;http://www.kottke.org&quot;&gt;Kottke&lt;/a&gt;, &lt;a href=&quot;http://www.daringfireball.net&quot;&gt;Gruber&lt;/a&gt;, or &lt;a href=&quot;http://andrewsullivan.theatlantic.com/&quot;&gt;Sullivan &lt;/a&gt;show how finding a unique voice and sticking with it pays off in the end. I can only hope that what I write will be fraction as interesting as the other stuff out there on the Internet.&lt;/p&gt;

&lt;p&gt;Oh, I refuse to call myself a blogger, so don't even start with me on that.&lt;/p&gt;
</content>
  </entry>
  
  <entry>
    <id>http://self.d-struct.org/first-post</id>
    <link type="text/html" rel="alternate" href="http://self.d-struct.org/first-post"/>
    <title>First post.</title>
    <updated>2009-01-18T00:00:00-06:00</updated>
    <author>
      <name>Chris Gansen</name>
      <uri>http://self.d-struct.org/</uri>
    </author>
    <content type="html">Testing the waters with wordpress. I can't believe I'm actually starting a blog. Here we go.
</content>
  </entry>
  
</feed>