<?xml version="1.0" encoding="UTF-8"?>
<rss xmlns:dc="http://purl.org/dc/elements/1.1/" version="2.0"><channel><atom:link rel="hub" href="http://tumblr.superfeedr.com/" xmlns:atom="http://www.w3.org/2005/Atom"/><description></description><title>Joe's Nerd Party</title><generator>Tumblr (3.0; @joevandyk)</generator><link>http://joevandyk.com/</link><item><title>Writable CTEs are neat</title><description>&lt;p&gt;I have a line_items table that contains a shipping_price column.  The shipping_price is the amount charged for shipping for that particular line item.&lt;/p&gt;
&lt;p&gt;Requirements changed and we need to be able to combine shipment charges for multiple line_items (i.e. buy 3 shirts for one shipping price).&lt;/p&gt;
&lt;p&gt;To correctly model this, you need a shipment_charges(id, amount) table and a line_items_shipment_charges(line_item_id, shipment_charge_id) table. shipment_charges stores the shipment charge and the line_items_shipment_charges table joins the shipment charge to the line_items.&lt;/p&gt;
&lt;p&gt;Now, how to efficiently do the migration? For each line_item that has a positive shipping_price, we need to insert a new row into the shipping_charges table and insert another row into the line_items_shipment_charges table. The line_items_shipment_charges table needs to refer to the correct shipment_charges row.&lt;/p&gt;
&lt;p&gt;Postgresql has this thing called a CTE (&lt;a href="http://www.postgresql.org/docs/9.1/static/queries-with.html"&gt;Common Table Expression&lt;/a&gt;).  This lets you put multiple insert, select, update, and delete statements into a single SQL query and they all can reference each other.&lt;/p&gt;
&lt;pre&gt; 
create table shipment_charges (                                                                     
  id serial primary key,                                                                            
  amount tanga_money not null                                                                       
);                                                                                                  
                                                                                                    
create table line_items_shipment_charges (                                                          
  line_item_id integer,                                                                             
  shipment_charge_id integer                                                                        
);                                                                                                  
                                                                                                    
                                                                                                    
with                                                                                                
  ids as (                                                                                          
    select nextval('shipment_charges_id_seq') as shipment_charge_id,                                
           line_items.id as line_item_id,                                                           
           line_items.shipping_price                                                                
    from line_items                                                                                 
    where shipping_price &amp;gt; 0),                                                                      
                                                                                                    
  shipment_charges_insert as (                                                                      
    insert into shipment_charges (id, amount)                                                       
      select shipment_charge_id, shipping_price from ids)                                           
                                                                                                    
insert into line_items_shipment_charges (line_item_id, shipment_charge_id)                          
  select line_item_id, shipment_charge_id from ids;                                                 
                                                                                                    
                                                                                                    
-- Add the foreign key constraints. Faster to do it after the bulk insert.                          
alter table line_items_shipment_charges                                                             
  add constraint line_item_id_pkey foreign key (line_item_id) references line_items(id),            
  add constraint shipment_charge_id_pkey foreign key (shipment_charge_id) references shipment_charges(id);
                                                                                                    
-- Add the indexes.  Faster to do it after the bulk insert.                                         
create index on line_items_shipment_charges using btree(line_item_id);                              
create index on line_items_shipment_charges using btree(shipment_charge_id);    
&lt;/pre&gt;
&lt;p&gt;ids is a table that contains a generated shipment_charge_id, the line_item_id, and the shipping price. Then we insert the shipment_charge_id and the shipping_price into the shipment table. &lt;/p&gt;
&lt;p&gt;The finally, we insert the line_item_id and the shipment_charge_id into the line_items_shipment_charges table, joining the line_items table to the newly generated shipment_charges table.&lt;/p&gt;
&lt;p&gt;On my crappy test machine, the above code migrates a million rows in about 10 seconds.&lt;/p&gt;</description><link>http://joevandyk.com/post/16879177857</link><guid>http://joevandyk.com/post/16879177857</guid><pubDate>Wed, 01 Feb 2012 13:11:00 -0800</pubDate></item><item><title>The perfect web framework</title><description>&lt;div&gt;I&amp;#8217;m hoping something that meets all the following is developed in a few years.&lt;/div&gt;
&lt;ul&gt;&lt;li&gt;The data access layer is separated out completely.&lt;/li&gt;
&lt;li&gt;Security built-in.  Easy to prevent csrf and xss without having to think much about it.&lt;/li&gt;
&lt;li&gt;Packages css/js for you.  Would be awesome if it worked with Sass/Coffeescript (or had something similar).&lt;/li&gt;
&lt;li&gt;Easy to write acceptance / unit tests.&lt;/li&gt;
&lt;li&gt;The language the framework is in has a good DSL for constructing SQL queries (like korma, sequel, etc).  I don&amp;#8217;t really need a full-fledged ORM &amp;#8212; I like using postgresql features like views and triggers &amp;#8212; but I&amp;#8217;m not hand-writing SQL all the time.&lt;/li&gt;
&lt;li&gt;The compiler can catch typing or missing method errors.  Computers should do my work for me, damn it.  I should know on compilation that a route/url was generated somewhere in my application without the correct parameters.&lt;/li&gt;
&lt;li&gt;Views probably will get complex.  There should be a good solution for complicated views.  HTML generation code often shares lots of things with tiny variations.&lt;/li&gt;
&lt;li&gt;Comes with a project skeleton.&lt;/li&gt;
&lt;li&gt;Deploys on heroku.&lt;/li&gt;
&lt;li&gt;Live code-reloading in development mode.&lt;/li&gt;
&lt;li&gt;Compiling / packaging is easy.&lt;/li&gt;
&lt;li&gt;Installing the app to a server doesn&amp;#8217;t require installing a butt-load of dependencies managed separately from the application (I&amp;#8217;m looking at you Ruby).&lt;/li&gt;
&lt;li&gt;Has some sort of a CRUD admin interface that can be plugged in and customized.  active_admin for Rails is pretty good.  &lt;a&gt;&lt;a href="http://activeadmin.info/"&gt;http://activeadmin.info/&lt;/a&gt;&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;Has a sane way of managing 3rd party dependencies.&lt;/li&gt;
&lt;li&gt;The application boots fast (for minimal downtime during deployments) and doesn&amp;#8217;t use tons of ram.&lt;/li&gt;
&lt;li&gt;Has a way to to stuff long running tasks in the backgrou d and report the progress of the task to the user.  (note: i&amp;#8217;m apparently not smart enough to understand amqp, at least in Ruby).&lt;/li&gt;
&lt;li&gt;Solutions for form validations and ajax.&lt;/li&gt;
&lt;li&gt;Support for i18n/localization.&lt;/li&gt;
&lt;/ul&gt;&lt;p&gt;I&amp;#8217;m sorta thinking something in Scala or Haskell are the only options here.  Haskell&amp;#8217;s cabal still sorta sucks, and Scala&amp;#8217;s complexity sorta scares me.&lt;/p&gt;</description><link>http://joevandyk.com/post/15975786138</link><guid>http://joevandyk.com/post/15975786138</guid><pubDate>Mon, 16 Jan 2012 15:44:00 -0800</pubDate></item><item><title>Fancy HTML Emails with Rails 3.1</title><description>&lt;p&gt;Getting HTML emails to look nice is a pain.  Most email clients can&amp;#8217;t use stylesheets, so you have to embed all the styles inline in the HTML.  You also have to write a separate plain-text version of the email.  And popular email clients (Outlook, Windows Live Mail, etc) render html email using some very weird rules.&lt;/p&gt;
&lt;p&gt;Here&amp;#8217;s what our order email looks like in Gmail: &lt;/p&gt;
&lt;p&gt;&lt;img src="https://img.skitch.com/20111118-t3ymgae75ej1wr3rq5sbye4hyw.png"/&gt;&lt;/p&gt;
&lt;p&gt;Here&amp;#8217;s what it looks like on the iPhone:&lt;/p&gt;
&lt;p&gt;&lt;img src="https://img.skitch.com/20111118-bjhp2c7jqf5ht9d7kx16dfqnhx.png"/&gt;&lt;/p&gt;
&lt;p&gt;Not too shabby.&lt;/p&gt;
&lt;p&gt;We found this to be a great article on how to make mobile email great looking: &lt;a href="http://webdesignerwall.com/general/make-your-html-email-5-times-more-mobile-friendly" title="http://webdesignerwall.com/general/make-your-html-email-5-times-more-mobile-friendly"&gt;&lt;a href="http://webdesignerwall.com/general/make-your-html-email-5-times-more-mobile-friendly"&gt;http://webdesignerwall.com/general/make-your-html-email-5-times-more-mobile-friendly&lt;/a&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;We also used the &lt;a href="https://github.com/alexdunae/premailer" title="Premailer"&gt;Premailer&lt;/a&gt; gem to automatically inline the linked stylesheet in the email views.&lt;/p&gt;
&lt;p&gt;Our email layout looks something like:&lt;/p&gt;
&lt;script src="https://gist.github.com/1377827.js"&gt; &lt;/script&gt;&lt;p&gt;We include a stylesheet in the HTML.  Premailer downloads it, processes it, and inserts the css rules inline in the HTML.&lt;/p&gt;
&lt;p&gt;The @media rules need to be inline in the email layout, since Premailer can&amp;#8217;t handle those being in a separate css file yet.&lt;/p&gt;
&lt;p&gt;We use &lt;a href="https://github.com/fphilipe/premailer-rails3"&gt;premailer-rails3&lt;/a&gt; to integrate Premailer into Rails 3.  Unfortunately, we found a bunch of bugs in premailer and premailer-rails3. Our forks of the projects are at &lt;a href="https://github.com/joevandyk/premailer"&gt;&lt;a href="https://github.com/joevandyk/premailer"&gt;https://github.com/joevandyk/premailer&lt;/a&gt;&lt;/a&gt; and &lt;a href="https://github.com/joevandyk/premailer-rails3"&gt;&lt;a href="https://github.com/joevandyk/premailer-rails3"&gt;https://github.com/joevandyk/premailer-rails3&lt;/a&gt;&lt;/a&gt;.  The forks fix some encoding bugs, remove some weird css processing stuff done by premailer-rails3, allow premailer to not strip out embedded &amp;lt;style&amp;gt; rules in the email layouts, and some other things.  &lt;/p&gt;
&lt;p&gt;We also found a bug in sass-rails, where you can&amp;#8217;t embed image-urls in inline sass code.  See &lt;a href="https://github.com/rails/sass-rails/issues/71"&gt;&lt;a href="https://github.com/rails/sass-rails/issues/71"&gt;https://github.com/rails/sass-rails/issues/71&lt;/a&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;Premailer-rails3 hooks into ActionMailer when the email actually being delivered, not just generated.  When running tests, email is not actually sent, so the premailer-rails3 hooks don&amp;#8217;t get ran during tests.  I haven&amp;#8217;t spent the time to see if it&amp;#8217;s possible to get the premailer processing to run during tests, but that would be a nice thing to do.&lt;/p&gt;
&lt;p&gt;Also, our forks on premailer-rails3 assume that you want premailer to go out and actually download the linked CSS files.  It should be possible to use the Rails 3.1 asset pipeline to get the processed css without downloading it.&lt;/p&gt;
&lt;p&gt;A very special thanks goes to Jordan Isip who did the super annoying job of making sure the emails look great in all the different clients out there.  Writing that CSS/HTML did not look fun.&lt;/p&gt;</description><link>http://joevandyk.com/post/12980661035</link><guid>http://joevandyk.com/post/12980661035</guid><pubDate>Fri, 18 Nov 2011 13:43:00 -0800</pubDate></item><item><title>WebOps #4</title><description>&lt;p&gt;Your continuous integration tests, if they use a database (or other shared resource), should use unique names for the database names.&lt;/p&gt;

&lt;p&gt;i.e. use &lt;code&gt;tanga_test_[git-hash]&lt;/code&gt; for the test database name.&lt;/p&gt;

&lt;p&gt;This way, you can have multiple tests going without conflicts.&lt;/p&gt;

&lt;p&gt;Same thing if you use rabbitmq or memcached or whatever &amp;#8212; segment the namespaces by some unique identifier.&lt;/p&gt;</description><link>http://joevandyk.com/post/8075350361</link><guid>http://joevandyk.com/post/8075350361</guid><pubDate>Mon, 25 Jul 2011 22:38:00 -0700</pubDate></item><item><title>WebOps #3</title><description>&lt;p&gt;It&amp;#8217;s amazing how unicorn and nginx lets you easily do zero-downtime deploys.  More software should handle signals correctly.&lt;/p&gt;

&lt;p&gt;I purchased the &lt;a href="http://www.amazon.com/gp/product/1593272200?ie=UTF8&amp;amp;tag=man7org-20&amp;amp;linkCode=as2&amp;amp;camp=1789&amp;amp;creative=9325&amp;amp;creativeASIN=1593272200"&gt;Linux Programming Interface&lt;/a&gt; book and it&amp;#8217;s stuffed with information on how to design things like this.&lt;/p&gt;</description><link>http://joevandyk.com/post/8073699852</link><guid>http://joevandyk.com/post/8073699852</guid><pubDate>Mon, 25 Jul 2011 21:48:07 -0700</pubDate></item><item><title>WebOps #2</title><description>&lt;p&gt;You should probably store your images/uploads on S3.  Are you going to build a cluster of synchronized fileservers?  Probably not.&lt;/p&gt;

&lt;p&gt;Unsolved question: How do you properly backup the S3 files?  Backups would need to be stored somewhere off S3, in case your S3 account mysteriously disappears.  And a simple copy/replace/rsync wouldn&amp;#8217;t do it, what if all your files were truncated to zero length?  You&amp;#8217;d want some sort of an incremental backups that takes a snapshot of how your S3 account looks at a given point in time.  You also need to be able to do this without doing a zillion GET/PUT/LIST requests, those are expensive.&lt;/p&gt;</description><link>http://joevandyk.com/post/8073623275</link><guid>http://joevandyk.com/post/8073623275</guid><pubDate>Mon, 25 Jul 2011 21:45:54 -0700</pubDate></item><item><title>WebOps #1</title><description>&lt;p&gt;This is a series of posts, each time I realize or read something useful.&lt;/p&gt;

&lt;p&gt;In Rails, don&amp;#8217;t set cookies for all domains (i.e. .tanga.com).  Restrict cookies to &amp;#8216;www.tanga.com&amp;#8217;.  Otherwise, the cookies will be sent when doing requests for images, javascript, css, etc, even they they are hosted on assets.tanga.com.&lt;/p&gt;</description><link>http://joevandyk.com/post/8073464712</link><guid>http://joevandyk.com/post/8073464712</guid><pubDate>Mon, 25 Jul 2011 21:41:26 -0700</pubDate><category>webops</category></item><item><title>PostgreSQL Backups</title><description>&lt;p&gt;&lt;a title="http://www.tanga.com" href="http://Tanga"&gt;Tanga&lt;/a&gt; uses PostgreSQL.  Before the Crash Of 2011, we used 8.3, now we use 9.0.&lt;/p&gt;
&lt;p&gt;Our database server became slower and non-responsive. We used &lt;a title="http://aws.amazon.com/ebs/" href="http://EBS"&gt;EBS&lt;/a&gt; for the database storage. Up until that fateful day, we had 600+ days of uptime on that server, so it was a pretty stable (read: lucky) setup.  As EBS became unresponsive, I figured that I would have to shutdown the machine to mount the EBS drive elsewhere.  That&amp;#8217;s the point of EBS - the storage is separate from the machine, so if the machine goes down, you can use the database stored on the storage elsewhere.&lt;/p&gt;
&lt;p&gt;However, the server/instance wouldn&amp;#8217;t shutdown.  The EBS drive would not unmount (disconnect).  The database server was unreachable, but I could not disconnect the EBS storage and use it elsewhere.&lt;/p&gt;
&lt;p&gt;Shit.  See &lt;a title="http://twitter.com/joevandyk/status/61207619540500480" href="http://twitter.com/joevandyk/status/61207619540500480"&gt;&lt;a href="http://twitter.com/joevandyk/status/61207619540500480"&gt;http://twitter.com/joevandyk/status/61207619540500480&lt;/a&gt;&lt;/a&gt; for my thoughts at the time.&lt;/p&gt;
&lt;p&gt;At this point, Amazon was not providing much information about when they expected things to come back.  So, I looked at my backups.&lt;/p&gt;
&lt;p&gt;Unfortunately, the last backup I had was about two hours old.  This isn&amp;#8217;t too bad, but we would have lost some information and annoyed some people.&lt;/p&gt;
&lt;p&gt;My backup method was to do a complete dump of the database every so often. Then, another machine on a different provider would copy the backup (using &lt;a href="http://www.rsnapshot.org/"&gt;rsnapshot&lt;/a&gt;) off the database machine. rsnapshot was configured to keep hourly, daily, weekly, and monthly copies of the database.&lt;/p&gt;
&lt;p&gt;Obviously, &amp;#8220;every so often&amp;#8221; wasn&amp;#8217;t often enough if the latest usable backup copy was two hours old. This might be acceptable for some sites, but I really didn&amp;#8217;t want to lose that two hour period of data.&lt;/p&gt;
&lt;p&gt;Our database isn&amp;#8217;t too big (compressed, the database backup is about 1 gigabyte).  But that does take some time to copy over the internet (remember we&amp;#8217;re doing complete backups). Also, doing more frequent complete dumps of the production database was causing the database to slow down (turns out this was probably a &lt;a href="http://aws.amazon.com/ebs/"&gt;EBS&lt;/a&gt; problem as well).&lt;/p&gt;
&lt;p&gt;This is the first thing we need to address: fixing our backups.  If Amazon went &amp;#8220;poof&amp;#8221; and all our data disappeared instantly, we should still have access to an up to date version of it.  If only our database server at Amazon went &amp;#8220;poof&amp;#8221;, we should have a VERY recent copy of the data. This isn&amp;#8217;t specific to Amazon.  Servers die.  If you don&amp;#8217;t have a backup and replication strategy, you will be screwed eventually.&lt;/p&gt;
&lt;p&gt;Unfortunately, with postgresql, the documentation for replication and backups always confused me.  Postgresql 9 has some neat replication features, and 9.1 is supposed to be even better.  &lt;/p&gt;
&lt;p&gt;So what are we going to do?  Doing a complete database backup with pg_dump will take too long, and our database gets bigger, it&amp;#8217;ll become impossible to do.  Remember that we want to transfer our data off Amazon as soon as possible. Doing a transfer of a large database will be difficult once it reaches a certain size.&lt;/p&gt;
&lt;p&gt;Luckily for us, Postgresql has something called &amp;#8220;&lt;a href="http://www.postgresql.org/docs/9.0/static/warm-standby.html"&gt;Log Shipping&lt;/a&gt;&amp;#8221;. As postgres saves stuff, it writes the data out to log files (WAL records, in their terminology). By default, these log files are 16 megabytes each. Once the log file reaches the 16 meg limit (or a time limit expires - usually around 60 seconds), an &amp;#8220;archive_command&amp;#8221; is ran, which can copy the log file to somewhere else.  Using the archive_command, we can copy the changes to the database to someplace else relatively soon after the changes happened.&lt;/p&gt;
&lt;p&gt;Keep in mind that these log files just contain the changes to the database over some small period of time, it doesn&amp;#8217;t contain all of the database data.  To do a complete restore of the database, we will need to apply the log files mentioned above to a &amp;#8220;&lt;a href="http://www.postgresql.org/docs/current/static/continuous-archiving.html"&gt;base backup&lt;/a&gt;&amp;#8221;.  &lt;/p&gt;
&lt;p&gt;So, the procedure is:&lt;/p&gt;
&lt;ol&gt;&lt;li&gt;Create a base backup.&lt;/li&gt;
&lt;li&gt;Copy that base backup somewhere safe.&lt;/li&gt;
&lt;li&gt;Tell postgresql to copy the WAL records somewhere safe.&lt;/li&gt;
&lt;li&gt;Ensure you can restore the database.&lt;/li&gt;
&lt;/ol&gt;</description><link>http://joevandyk.com/post/4995602921</link><guid>http://joevandyk.com/post/4995602921</guid><pubDate>Wed, 27 Apr 2011 15:45:27 -0700</pubDate></item><item><title>This is me. I live in the Matrix.</title><description>&lt;img src="http://24.media.tumblr.com/tumblr_ljzlsmdvSZ1qislxzo1_500.jpg"/&gt;&lt;br/&gt;&lt;br/&gt;&lt;p&gt;This is me. I live in the Matrix.&lt;/p&gt;</description><link>http://joevandyk.com/post/4933773066</link><guid>http://joevandyk.com/post/4933773066</guid><pubDate>Mon, 25 Apr 2011 12:32:00 -0700</pubDate></item><item><title>Motivations</title><description>&lt;p&gt;I develop and run a website called &lt;a title="http://www.tanga.com" href="http://www.tanga.com"&gt;&lt;a href="http://www.tanga.com"&gt;http://www.tanga.com&lt;/a&gt;&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;Last week, my website was offline for 36+ hours because of problems at Amazon. See &lt;a title="http://highscalability.com/blog/2011/4/25/the-big-list-of-articles-on-the-amazon-outage.html" href="http://highscalability.com/blog/2011/4/25/the-big-list-of-articles-on-the-amazon-outage.html"&gt;&lt;a href="http://highscalability.com/blog/2011/4/25/the-big-list-of-articles-on-the-amazon-outage.html"&gt;http://highscalability.com/blog/2011/4/25/the-big-list-of-articles-on-the-amazon-outage.html&lt;/a&gt;&lt;/a&gt; for more details.&lt;/p&gt;
&lt;p&gt;There were multiple reasons why our website was so vulnerable to a glitch in Amazon service.  This blog will be an attempt to investigate and solve these issues.  I&amp;#8217;m hoping this information will be useful to other people.&lt;/p&gt;
&lt;p&gt;Let&amp;#8217;s start with some assumptions:&lt;/p&gt;
&lt;ul&gt;&lt;li&gt;We&amp;#8217;re running a webservice or website - something http-based.&lt;/li&gt;
&lt;li&gt;The dataset involved is a &amp;#8220;reasonable&amp;#8221; size.  We aren&amp;#8217;t dealing with Google, Reddit, or Amazon-sized loads.  Most discussion online about high availability and scalability assumes you are dealing with huge amounts of traffic and data. If you follow recommendations geared for large sites, you will be wasting effort that should be spent in other areas.&lt;/li&gt;
&lt;li&gt;You want your service to be up as much as possible, while keeping costs and complexity down.  You don&amp;#8217;t want an army of operations people, you don&amp;#8217;t want a byzantine system, you don&amp;#8217;t want overly-complex code.&lt;/li&gt;
&lt;li&gt;You know the basics of *nix, databases, filesystems, http, etc.&lt;/li&gt;
&lt;li&gt;You run on some *nix.  I use Ubuntu server (10.04).&lt;/li&gt;
&lt;/ul&gt;&lt;p&gt;The next post will deal with database backups! You don&amp;#8217;t think your database server will last forever, do you&amp;#8230;?&lt;/p&gt;</description><link>http://joevandyk.com/post/4933541863</link><guid>http://joevandyk.com/post/4933541863</guid><pubDate>Mon, 25 Apr 2011 12:23:00 -0700</pubDate></item><item><title>Beginnings...</title><description>&lt;p&gt;What this blog will be about:&lt;/p&gt;
&lt;ul&gt;&lt;li&gt;Services!  Monolithic applications are for losers.&lt;/li&gt;
&lt;li&gt;Postgresql: backups, replication, performance, storage&lt;/li&gt;
&lt;li&gt;Rails: nothing too Rails specific, but some general thoughts, especially about integrating with services and background processes and forms.&lt;/li&gt;
&lt;li&gt;Load balancing &lt;/li&gt;
&lt;li&gt;Backups &amp;amp; Recovery&lt;/li&gt;
&lt;li&gt;Failures: thinking of them, thinking of recovery options.&lt;/li&gt;
&lt;li&gt;Chef&lt;/li&gt;
&lt;li&gt;Logging&lt;/li&gt;
&lt;li&gt;Visualization &amp;amp; transparency&lt;/li&gt;
&lt;li&gt;Alerting&lt;/li&gt;
&lt;li&gt;Daemons&lt;/li&gt;
&lt;li&gt;Security&lt;/li&gt;
&lt;/ul&gt;</description><link>http://joevandyk.com/post/4916344249</link><guid>http://joevandyk.com/post/4916344249</guid><pubDate>Sun, 24 Apr 2011 20:02:16 -0700</pubDate></item><item><title>This isn’t a tech post, just a test picture of my kid.</title><description>&lt;img src="http://24.media.tumblr.com/tumblr_lk6t90ZRUL1qjugh6o1_500.jpg"/&gt;&lt;br/&gt;&lt;br/&gt;&lt;p&gt;This isn’t a tech post, just a test picture of my kid.&lt;/p&gt;</description><link>http://joevandyk.com/post/4916027157</link><guid>http://joevandyk.com/post/4916027157</guid><pubDate>Sun, 24 Apr 2011 19:50:00 -0700</pubDate></item><item><title>"Failure is simply the opportunity to begin again, this time more intelligently."</title><description>“Failure is simply the opportunity to begin again, this time more intelligently.”&lt;br/&gt;&lt;br/&gt; - &lt;em&gt;Henry Ford&lt;/em&gt;</description><link>http://joevandyk.com/post/4915838813</link><guid>http://joevandyk.com/post/4915838813</guid><pubDate>Sun, 24 Apr 2011 19:44:19 -0700</pubDate></item><item><title>"All intelligent thoughts have already been thought; what is necessary is only to try to think them..."</title><description>“All intelligent thoughts have already been thought; what is necessary is only to try to think them again.”&lt;br/&gt;&lt;br/&gt; - &lt;em&gt;Johann Wolfgang von Goethe&lt;/em&gt;</description><link>http://joevandyk.com/post/4915612744</link><guid>http://joevandyk.com/post/4915612744</guid><pubDate>Sun, 24 Apr 2011 19:36:19 -0700</pubDate></item><item><title>Hey!</title><description>&lt;p&gt;I&amp;#8217;ve got some ideas and I want you to read them and let me know if they are good ones.&lt;/p&gt;</description><link>http://joevandyk.com/post/4915100811</link><guid>http://joevandyk.com/post/4915100811</guid><pubDate>Sun, 24 Apr 2011 19:18:19 -0700</pubDate></item></channel></rss>

