<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>Seth Gholson</title>
	<atom:link href="http://www.sethgholson.com/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.sethgholson.com</link>
	<description></description>
	<lastBuildDate>Wed, 25 Apr 2012 01:00:26 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.3.2</generator>
<atom:link rel="hub" href="http://pubsubhubbub.appspot.com"/><atom:link rel="hub" href="http://superfeedr.com/hubbub"/>		<item>
		<title>Restart Forever.js After Reboot</title>
		<link>http://www.sethgholson.com/2012/04/restart-forever-js-after-reboot/</link>
		<comments>http://www.sethgholson.com/2012/04/restart-forever-js-after-reboot/#comments</comments>
		<pubDate>Wed, 25 Apr 2012 01:00:26 +0000</pubDate>
		<dc:creator>Seth Gholson</dc:creator>
				<category><![CDATA[Technology]]></category>
		<category><![CDATA[bash]]></category>
		<category><![CDATA[javascript]]></category>
		<category><![CDATA[node.js]]></category>

		<guid isPermaLink="false">http://www.sethgholson.com/?p=1555</guid>
		<description><![CDATA[I’m amid migrating from a Dreamhost shared server to a VPS. A benefit of this is the ability to have long running processes like node.js. I’m also migrating the back end for Menu Line George to Parse.com. My v1 process for recording the George calls was a kludge of scripts running on my home desktop [...]]]></description>
			<content:encoded><![CDATA[<p>I’m amid migrating from a Dreamhost shared server to a VPS. A benefit of this is the ability to have long running processes like node.js. I’m also migrating the back end for <a title="Praaaaaaaaaaaaaise the Looooooooooord it's Tuesday! Wait... Damn. It's Tuesday." href="http://itunes.apple.com/us/app/menu-line-george/id440761181" target="_blank">Menu Line George</a> to Parse.com. My v1 process for recording the George calls was a kludge of scripts running on my home desktop to call via Skype. This was more a proof-of-concept than a long term solution. Now I’ll be using <a href="http://www.twilio.com" target="_blank">Twilio</a> + <a title="I can't stand the taste of V8." href="http://www.nodejs.org" target="_blank">node.js</a> + <a title="Most ungooglable product name ever." href="http://www.parse.com" target="_blank">Parse</a> as my permanent solution, significantly reducing how much I’ll need to think about it on a daily basis.</p>
<p>The simplest way I’ve found to keep a node script running as a service is <a title="He got caved in, and he's been there ever since. Forever? Forever." href="https://github.com/nodejitsu/forever" target="_blank">forever.js</a>. If you’re new to node, I suggest checking it out. Otherwise, I’m sure you’ve heard of it.</p>
<p>I fired it up yesterday and it worked like a champ. That is, of course, until my VPS rebooted overnight for some reason and the call wasn’t made this morning. I found a handy little guide over at Hack Sparrow for creating a cron job to restart your node script with forever when the machine reboots.</p>
<p>First create a shell script like this one (I called mine <em>app-starter.sh</em>):</p>
<pre class="brush:plain">#!/bin/sh

if [ $(ps aux | grep $USER | grep node | grep -v grep | wc -l | tr -s "\n") -eq 0 ]
then
        export NODE_ENV=production
        export PATH=/usr/local/bin:$PATH
        forever start ~/example/app.js &gt; /dev/null
fi</pre>
<p>Then make the script executable:</p>
<pre class="brush:plain">chmod 700 ~/app-starter.sh</pre>
<p>Now make cron run the script when the system is rebooted. Add this to your crontab (via <em>crontab –e</em>):</p>
<pre class="brush:plain">@reboot ~/app-starter.sh &gt;&gt; cron.log 2&gt;&amp;1</pre>
<p>For the uninitiated like myself, use<em> CTRL+K,X</em> to save.</p>
<p>Thanks to Hack Sparrow for taking the time to share this.</p>
<p>via <a title="The night starts now" href="http://www.hacksparrow.com/make-forever-reboot-proof-with-cron.html" target="_blank">Hack Sparrow</a>.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.sethgholson.com/2012/04/restart-forever-js-after-reboot/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>XML Shredding In SQL Is A Recipe For Arthritis</title>
		<link>http://www.sethgholson.com/2012/04/xml-shredding-in-sql-is-a-recipe-for-arthritis/</link>
		<comments>http://www.sethgholson.com/2012/04/xml-shredding-in-sql-is-a-recipe-for-arthritis/#comments</comments>
		<pubDate>Fri, 06 Apr 2012 22:07:06 +0000</pubDate>
		<dc:creator>Seth Gholson</dc:creator>
				<category><![CDATA[.NET]]></category>
		<category><![CDATA[SQL]]></category>

		<guid isPermaLink="false">http://www.sethgholson.com/?p=1533</guid>
		<description><![CDATA[At work I&#8217;ve been spending a lot of time the past couple of weeks doing the same thing: serialize the records in a table as XML, pass it up to the client, then back down to another database to be deserialized and merged. It&#8217;s nothing fancy, but it&#8217;s certainly tedious. It&#8217;s generally been a pattern [...]]]></description>
			<content:encoded><![CDATA[<p>At work I&#8217;ve been spending a lot of time the past couple of weeks doing the same thing: serialize the records in a table as XML, pass it up to the client, then back down to another database to be deserialized and merged. It&#8217;s nothing fancy, but it&#8217;s certainly tedious. It&#8217;s generally been a pattern of:</p>
<p>Generate the XML: (easy)</p>
<pre class="brush:sql">SELECT
  Column1,
  Column2,
  Column3,
  Column4,
  Column5
FROM FooTable Foo
FOR XML AUTO, ROOT('Root')</pre>
<p>To create something like this:</p>
<pre class="brush:xml">&lt;Root&gt;
&lt;Foo Column1="Value1" Column2="Value2" Column3="Value3" Column4="Value4" Column5="Value5" /&gt;
&lt;/Root&gt;</pre>
<p>But having to type this out has been the arthritic step. For larger tables, this can take a while.</p>
<pre class="brush:sql">SELECT
	a.value('@Column1', 'varchar(20)') Column1,
	a.value('@Column2', 'varchar(20)') Column2,
	a.value('@Column3', 'varchar(20)') Column3,
	a.value('@Column4', 'varchar(20)') Column4,
	a.value('@Column5', 'varchar(20)') Column5
FROM
	@XmlValue.nodes('/Root/Foo') T(a)</pre>
<p>I know of nothing to automatically generate something like this, and yesterday I decided enough is enough (after coming to a table that was 65 columns wide). I wanted a way to quickly write the SELECT clause of something like this for me. Quick and easy was important, because if it were a chore to use I&#8217;d likely just write it out, grumbling the whole time.</p>
<p>The table definition is easy to generate via Management Studio. Right Click the window &gt; Script Table As &gt; Create To &gt; New Query Window and you get something like:</p>
<pre class="brush:sql">CREATE TABLE [dbo].[FooTable](
	[Column1] [varchar(20)] NULL,
	[Column2] [varchar(20)] NULL,
	[Column3] [varchar(20)] NULL,
	[Column4] [varchar(20)] NULL,
	[Column5] [varchar(20)] NULL,
//...[constraint and references]...</pre>
<p>I settled on using the clipboard as the medium so I don&#8217;t need to deal with saving a file or using a form for input. With this pinned to my taskbar, I just copy the table definition text to my clipboard and click the icon. Voila! The result is ready to be pasted. There&#8217;s nothing fancy here. Just convenience.</p>
<pre class="brush:csharp">using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.IO;
using System.Windows.Forms;

namespace MasterShredder
{
    class Program
    {
        [STAThread]
        static void Main(string[] args)
        {
            string contents = Clipboard.GetText();
            if (string.IsNullOrEmpty(contents))
            {
                Console.WriteLine("I'm expecting the column definition to be in your clipboard.");
                Console.WriteLine("Expected format:  [ColumnName] [ColumnType] [NULL or NOT NULL],");
                Console.Read();
            }
            else
            {

                string[] lines = contents.Split('\n');
                StringBuilder result = new StringBuilder();

                foreach (string line in lines)
                {
                	//Strip new line and tab characters.
                    string cleanLine = line.Replace(Environment.NewLine, "").Replace("\t", "");
                    string[] parts = cleanLine.Split(' ');
                    if (parts.Length &gt; 2)
                    {
                        string name = parts[0].Replace("[", "").Replace("]", "");
                        string type = parts[1].Replace("[", "").Replace("]", "");

                        // type definition was split. i.e. decimal(18, 6)
                        if(parts[2].EndsWith(")"))
                        {
                            type += parts[2];
                        }
                        string lineResult = String.Format(",a.value('@{0}', '{1}') {0}", name, type);
                        result.AppendLine(lineResult);
                        Console.WriteLine(lineResult);
                    }
                }

                if(!string.IsNullOrEmpty(result.ToString()))
                {
                    Clipboard.SetText(result.ToString());
                }
            }
        }
    }
}</pre>
<p>Oh, and if this is crappy, <a title="fork it and fix it on gist." href="https://gist.github.com/2323419" target="_blank">fork and fix it on gist</a>.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.sethgholson.com/2012/04/xml-shredding-in-sql-is-a-recipe-for-arthritis/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Using simple_list_item_2 with an ArrayAdapter (Android)</title>
		<link>http://www.sethgholson.com/2012/01/using-simple_list_item_2-with-an-arrayadapter-android/</link>
		<comments>http://www.sethgholson.com/2012/01/using-simple_list_item_2-with-an-arrayadapter-android/#comments</comments>
		<pubDate>Fri, 13 Jan 2012 21:31:48 +0000</pubDate>
		<dc:creator>Seth Gholson</dc:creator>
				<category><![CDATA[Development]]></category>
		<category><![CDATA[android]]></category>
		<category><![CDATA[java]]></category>
		<category><![CDATA[XML]]></category>

		<guid isPermaLink="false">http://www.sethgholson.com/2012/01/using-simple_list_item_2-with-an-arrayadapter-android/</guid>
		<description><![CDATA[Today I wanted to display static a ListView of properties and their values. It’s Friday, so I really wanted to do this with as little work as possible. Android’s free layout simple_list_item_2 sounded like what I wanted, but it wasn’t immediately clear how to handle this. There are a lot of lazy ways we can [...]]]></description>
			<content:encoded><![CDATA[<p>Today I wanted to display static a ListView of properties and their values. It’s Friday, so I really wanted to do this with as little work as possible. Android’s free layout simple_list_item_2 sounded like what I wanted, but it wasn’t immediately clear how to handle this. There are a lot of lazy ways we can list single values, but Googling around how to use simple_list_item_2 resulted in lots of questions with no real answer.</p>
<p>I found Mark Assad, who parsed the system layout files into <a href="http://sydney.edu.au/engineering/it/~massad/project-android.html" target="_blank">raw XML</a>. The led to the magic answer of <a href="http://developer.android.com/reference/android/widget/TwoLineListItem.html" target="_blank">TwoLineListItem</a> widget. Finding this widget allowed me to write a simple ArrayAdapter of key/value pairs.</p>
<pre class="brush:java">adapter = new ArrayAdapter(this,android.R.layout.simple_list_item_2,list){
        @Override
        public View getView(int position, View convertView, ViewGroup parent){
            TwoLineListItem row;
            if(convertView == null){
                LayoutInflater inflater = (LayoutInflater)getApplicationContext().getSystemService(Context.LAYOUT_INFLATER_SERVICE);
                row = (TwoLineListItem)inflater.inflate(android.R.layout.simple_list_item_2, null);
            }else{
                row = (TwoLineListItem)convertView;
            }
            BasicNameValuePair data = list.get(position);
            row.getText1().setText(data.getName());
            row.getText2().setText(data.getValue());

            return row;
        }
    };
listView.setAdapter(adapter);</pre>
<p>Hope this saves someone else some time, as I spent an embarrassing amount of time determined to use the simple_list_item_2 layout.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.sethgholson.com/2012/01/using-simple_list_item_2-with-an-arrayadapter-android/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>A Bit Scatterbrained&#8230;</title>
		<link>http://www.sethgholson.com/2012/01/a-bit-scatterbrained/</link>
		<comments>http://www.sethgholson.com/2012/01/a-bit-scatterbrained/#comments</comments>
		<pubDate>Thu, 12 Jan 2012 20:19:06 +0000</pubDate>
		<dc:creator>Seth Gholson</dc:creator>
				<category><![CDATA[.NET]]></category>
		<category><![CDATA[Apple]]></category>
		<category><![CDATA[Family]]></category>
		<category><![CDATA[Humor]]></category>
		<category><![CDATA[iPhone]]></category>
		<category><![CDATA[SQL]]></category>

		<guid isPermaLink="false">http://www.sethgholson.com/2012/01/a-bit-scatterbrained/</guid>
		<description><![CDATA[Lately I find myself mixing my PascalCase with my camelCase, calling alloc init instead of new, using [ ] instead of (), and writing awfully verbose method names all over the place. I justify my errors with a glimpse at my average day here lately:]]></description>
			<content:encoded><![CDATA[<p>Lately I find myself mixing my PascalCase with my camelCase, calling alloc init instead of new, using [ ] instead of (), and writing awfully verbose method names all over the place. I justify my errors with a glimpse at my average day here lately:</p>
<p><a href="http://www.sethgholson.com/wp-content/uploads/2012/01/dailyFocus1.png"><img style="border-bottom: 0px; border-left: 0px; display: inline; border-top: 0px; border-right: 0px" title="Not to scale. Some margin of error. I focus on my family all day. I promise!" border="0" alt="Not to scale. Some margin of error. I focus on my family all day. I promise!" src="http://www.sethgholson.com/wp-content/uploads/2012/01/dailyFocus_thumb1.png" width="623" height="212" /></a></p>
]]></content:encoded>
			<wfw:commentRss>http://www.sethgholson.com/2012/01/a-bit-scatterbrained/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>The Value of Documentation</title>
		<link>http://www.sethgholson.com/2011/10/the-value-of-documentation/</link>
		<comments>http://www.sethgholson.com/2011/10/the-value-of-documentation/#comments</comments>
		<pubDate>Wed, 12 Oct 2011 14:26:50 +0000</pubDate>
		<dc:creator>Seth Gholson</dc:creator>
				<category><![CDATA[Technology]]></category>
		<category><![CDATA[Titanium]]></category>
		<category><![CDATA[appcelerator]]></category>
		<category><![CDATA[javascript]]></category>
		<category><![CDATA[titanium]]></category>

		<guid isPermaLink="false">http://www.sethgholson.com/2011/10/the-value-of-documentation/</guid>
		<description><![CDATA[Having been reared as a developer in Microsoft’s cozy little .NET world, I didn’t really appreciate the value of quality documentation until I ventured out into the wild jungle. I’ve been using Appcelerator’s Titanium Mobile SDK for the past few months. It’s kind of become my Shere Khan here in the jungle. Theoretically, using Titanium [...]]]></description>
			<content:encoded><![CDATA[<p>Having been reared as a developer in Microsoft’s cozy little .NET world, I didn’t really appreciate the value of quality documentation until I ventured out into the wild jungle.</p>
<p>I’ve been using Appcelerator’s Titanium Mobile SDK for the past few months. It’s kind of become my <a title="Chris Benard is my Baloo" href="http://en.wikipedia.org/wiki/Shere_Khan" target="_blank">Shere Khan</a> here in the jungle. Theoretically, using Titanium Mobile is easier and faster than writing native code. This might be true if I didn’t waste so much time deciphering their documentation. </p>
<p>I made a button to toggle my table view’s editable status. The object had a property called editable, so that seemed to be what I wanted. After testing, however, all this did was toggle whether or not swipe-to-delete worked. What I really wanted was the little red minus sign to appear, and have the contents of each row shifted to the right to make room. After 30 minutes of trial and error, looking through <a href="http://developer.appcelerator.com/apidoc/mobile/latest/Titanium.UI.TableViewRow-object" target="_blank">TableViewRow</a> properties, and searching their <a title="Want to see only the results that have been answered? Screw you." href="http://developer.appcelerator.com/questions/newest" target="_blank">Q&amp;A</a> section (because Appcelerator has no official forums) I found that <a title="I&#39;m surprised it doesn&#39;t have two visibility properties: visible and viewing" href="http://developer.appcelerator.com/apidoc/mobile/latest/Titanium.UI.TableView-object" target="_blank">TableView</a> actually has two properties: editable and editing.</p>
<p>&#160;</p>
<p><a href="http://www.sethgholson.com/wp-content/uploads/2011/10/image1.png"><img style="border-bottom: 0px; border-left: 0px; display: inline; border-top: 0px; border-right: 0px" title="image" border="0" alt="image" src="http://www.sethgholson.com/wp-content/uploads/2011/10/image_thumb1.png" width="603" height="94" /></a> </p>
<p>&#160;</p>
<p>Even after discovering this other property, I still had to actually test each one to see what they did. Apparently, “editable” toggles the swipe-to-delete, whereas “editing” toggles the minus-button-on-the-left thing. The two are independent of each other. </p>
<p>Thanks for saving me time, web based application framework!</p>
<p>Signed,</p>
<p>Bitter in Bossier</p>
]]></content:encoded>
			<wfw:commentRss>http://www.sethgholson.com/2011/10/the-value-of-documentation/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Enterprise Library Sometimes Chops XML into 2033 Characters</title>
		<link>http://www.sethgholson.com/2011/10/enterprise-library-sometimes-chops-xml-into-2033-characters/</link>
		<comments>http://www.sethgholson.com/2011/10/enterprise-library-sometimes-chops-xml-into-2033-characters/#comments</comments>
		<pubDate>Tue, 04 Oct 2011 20:37:57 +0000</pubDate>
		<dc:creator>Seth Gholson</dc:creator>
				<category><![CDATA[.NET]]></category>
		<category><![CDATA[SQL]]></category>
		<category><![CDATA[Enterprise Library]]></category>
		<category><![CDATA[XML]]></category>

		<guid isPermaLink="false">http://www.sethgholson.com/?p=1446</guid>
		<description><![CDATA[This morning I began what I thought would be an uneventful task in .NET: connect to one database, download as XML some rows from a table that have changed since a given time, then pass that XML to a stored procedure in another database so that the changes can be merged. Just two tables: one [...]]]></description>
			<content:encoded><![CDATA[<p>This morning I began what I thought would be an uneventful task in .NET: connect to one database, download as XML some rows from a table that have changed since a given time, then pass that XML to a stored procedure in another database so that the changes can be merged. Just two tables: one relatively small, the other just a 2-column relationship table for the first table. Here’s a contrived snippet to serve the same purpose:</p>
<p>The SQL:</p>
<pre class="brush:sql">
CREATE PROCEDURE dbo.GetXmlValue

AS

SELECT TOP 100
*
FROM sys.all_columns
FOR XML AUTO, ROOT('Root')
</pre>
<p>The Code:</p>
<pre class="brush:csharp">
Database db = GetDatabase();

DataSet set;

using (DbCommand cmd = db.GetStoredProcCommand("dbo.GetXmlValue"))
{
set = db.ExecuteDataSet(cmd);
}
</pre>
<p>In my application, it was this second table that tripped me a bit. The first only had a few changed rows, so the XML was only 500-1000 characters. The second table generated a much longer XML string – 3864 characters long. My initial plan was to return two tables, each 1 column and 1 row. When using <a href="http://msdn.microsoft.com/en-us/library/microsoft.practices.enterpriselibrary.data.database.executedataset(v=pandp.31).aspx" target="_blank">Database.ExecuteDataSet</a> to fetch the results, however, the second table yielded two rows. I backtracked, second guessed myself, and even grabbed a couple of guys in the hall to double check my code. No one could explain it. It seemed odd that this hasn’t come up before for someone here. I did a bit of Googling and only found a couple of results. This <a href="http://support.microsoft.com/kb/310378" target="_blank">Microsoft Knowledgebase Article</a> just says it’s “by design” and to use <a href="http://msdn.microsoft.com/en-us/library/system.data.sqlclient.sqlcommand.executexmlreader(v=vs.71).aspx" target="_blank">SQLCommand.ExecuteXmlReader</a>.</p>
<p>The next question that came up was “Well, what does it do if I return a long XML value among other values in the same row?” I tested this out and everything worked as expected. All of the XML was in a single column value as it should be.</p>
<p>I still can’t exactly explain it. <a href="http://msdn.microsoft.com/en-us/library/microsoft.practices.enterpriselibrary.data.database.executescalar(v=pandp.31).aspx" target="_blank">ExecuteScalar</a> has a character limit of 2033 characters. I suspect that because each table in my result set is just a single column value, something somewhere is relying on ExecuteScalar.</p>
<p>My solution? In my stored procedure I just stored each of my table results as an XML typed variable, then returned the two together in the same row.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.sethgholson.com/2011/10/enterprise-library-sometimes-chops-xml-into-2033-characters/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>GTIN 12 UPC Check Digit Calculation in SQL Server 2008</title>
		<link>http://www.sethgholson.com/2011/09/gtin-12-upc-check-digit-calculation-in-sql-server-2008/</link>
		<comments>http://www.sethgholson.com/2011/09/gtin-12-upc-check-digit-calculation-in-sql-server-2008/#comments</comments>
		<pubDate>Fri, 16 Sep 2011 20:22:49 +0000</pubDate>
		<dc:creator>Seth Gholson</dc:creator>
				<category><![CDATA[SQL]]></category>
		<category><![CDATA[Technology]]></category>
		<category><![CDATA[barcode]]></category>
		<category><![CDATA[check digit]]></category>
		<category><![CDATA[UPC]]></category>

		<guid isPermaLink="false">http://www.sethgholson.com/?p=1406</guid>
		<description><![CDATA[I recently needed to generate the check digit for a GTIN-12 UPC code in SQL. The calculation method for the check digit varies depending on what kind of barcode you’re implementing, so I popped on over to Google to get the necessary algorithm. Naturally, and regardless of simplicity, I checked for any available code snippets. [...]]]></description>
			<content:encoded><![CDATA[<p>I recently needed to generate the check digit for a <a href="http://en.wikipedia.org/wiki/Universal_Product_Code">GTIN-12 UPC code</a> in SQL. The calculation method for the check digit varies depending on what kind of barcode you’re implementing, so I popped on over to Google to get the necessary algorithm. Naturally, and regardless of simplicity, I checked for any available code snippets. The only I found weren’t GTIN-12, and were in C or C++. So for anyone looking to do it (or something similar) in T-SQL, here’s a scalar function to do just that.</p>
<pre class="brush:sql">CREATE FUNCTION dbo.CalculateBarcodeGTIN12CheckDigit(@input CHAR(11))
RETURNS INT
AS
BEGIN
DECLARE @evenDigitSum INT = 0
,@oddDigitSum INT = 0
,@i TINYINT = 0
,@result INT;

-- check if given Barcode is Numeric , if not return error status -1
IF(ISNUMERIC(@input) = 0
OR LEN(RTRIM(LTRIM(@input))) != 11)
RETURN -1

-- start the compute BarCode checksum algorithm
SET @i = 1
WHILE (@i &lt;= 11)
BEGIN
--Add odd and even digits separately;
IF((@i % 2) = 0)
SET @evenDigitSum += CONVERT(TINYINT, SUBSTRING(@input,@i,1))
ELSE
SET @oddDigitSum += CONVERT(TINYINT, SUBSTRING(@input,@i,1))
SET @i += 1
END

--As per: http://en.wikipedia.org/wiki/Universal_Product_Code
--Multiply odd sum by 3, add to even sum, and mod 10.
SET @result = ((@oddDigitSum * 3) + @evenDigitSum) % 10;
IF(@result = 0)
RETURN 0
ELSE
RETURN 10 - @result;

RETURN -1
END
GO</pre>
<p>Scalar functions are killer, but I’ll only ever be using it for a single record.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.sethgholson.com/2011/09/gtin-12-upc-check-digit-calculation-in-sql-server-2008/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Hatcher William</title>
		<link>http://www.sethgholson.com/2011/05/1403/</link>
		<comments>http://www.sethgholson.com/2011/05/1403/#comments</comments>
		<pubDate>Fri, 20 May 2011 15:41:44 +0000</pubDate>
		<dc:creator>Seth Gholson</dc:creator>
				<category><![CDATA[Family]]></category>

		<guid isPermaLink="false">http://www.sethgholson.com/2011/05/1403/</guid>
		<description><![CDATA[So. Awesome.]]></description>
			<content:encoded><![CDATA[<p><a href="http://www.sethgholson.com/wp-content/uploads/2011/05/20110520-104025.jpg"><img src="http://www.sethgholson.com/wp-content/uploads/2011/05/20110520-104025.jpg" alt="20110520-104025.jpg" class="alignnone size-full" /></a></p>
<p>So. Awesome. <img src='http://www.sethgholson.com/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>
]]></content:encoded>
			<wfw:commentRss>http://www.sethgholson.com/2011/05/1403/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Berlin &#8211; All Panoramas</title>
		<link>http://www.sethgholson.com/2010/12/berlin-all-panoramas/</link>
		<comments>http://www.sethgholson.com/2010/12/berlin-all-panoramas/#comments</comments>
		<pubDate>Sat, 25 Dec 2010 14:28:22 +0000</pubDate>
		<dc:creator>Seth Gholson</dc:creator>
				<category><![CDATA[Travel]]></category>

		<guid isPermaLink="false">http://www.sethgholson.com/2010/12/berlin-all-panoramas/</guid>
		<description><![CDATA[Because I didn’t want to include all of the panoramas I took in my main Berlin summary post, here is a list of nearly all of them for those that care: Apartment: http://www.occip.it/pyh2l87gj Park behind apartment: http://www.occip.it/pyh30sy9j http://www.occip.it/pyh80z5ij Nazi war crimes trial exhibit: http://www.occip.it/pyh405w8j http://www.occip.it/pyhsssgj Outside the Nazi war crimes courthouse: http://www.occip.it/pyh7em0j http://www.occip.it/pyh20eo5j Outside our [...]]]></description>
			<content:encoded><![CDATA[<p>Because I didn’t want to include <em>all<strong> </strong></em>of the panoramas I took in my <a href="http://www.sethgholson.com/2010/12/berlin/">main Berlin summary post</a>, here is a list of nearly all of them for those that care:</p>
<p><strong>Apartment:<br />
</strong><a href="http://www.occip.it/pyh2l87gj">http://www.occip.it/pyh2l87gj</a></p>
<p><strong>Park behind apartment:<br />
</strong><a href="http://www.occip.it/pyh30sy9j">http://www.occip.it/pyh30sy9j</a><br />
<a href="http://www.occip.it/pyh80z5ij">http://www.occip.it/pyh80z5ij</a></p>
<p><strong>Nazi war crimes trial exhibit:<br />
</strong><a href="http://www.occip.it/pyh405w8j">http://www.occip.it/pyh405w8j</a><br />
<a href="http://www.occip.it/pyhsssgj">http://www.occip.it/pyhsssgj</a></p>
<p><strong>Outside the Nazi war crimes courthouse:<br />
</strong><a href="http://www.occip.it/pyh7em0j">http://www.occip.it/pyh7em0j</a><br />
<a href="http://www.occip.it/pyh20eo5j">http://www.occip.it/pyh20eo5j</a></p>
<p><strong>Outside our Nuremburg hotel:<br />
</strong><a href="http://www.occip.it/pyh78bnj">http://www.occip.it/pyh78bnj</a></p>
<p><strong>Church in Nuremburg (half):<br />
</strong><a href="http://www.occip.it/pygy00nksj">http://www.occip.it/pygy00nksj</a></p>
<p><strong>Bridge in Nuremburg:<br />
</strong><a href="http://www.occip.it/pyh203r7j">http://www.occip.it/pyh203r7j</a><br />
<a href="http://www.occip.it/pyh40yluj">http://www.occip.it/pyh40yluj</a></p>
<p><strong>Medieval Dungeon:<br />
</strong><a href="http://www.occip.it/pyhsunvj">http://www.occip.it/pyhsunvj</a></p>
<p><strong>Christmas markets:<br />
</strong><a href="http://www.occip.it/pyhsec8j">http://www.occip.it/pyhsec8j</a><br />
<a href="http://www.occip.it/pyh30wfjj">http://www.occip.it/pyh30wfjj</a><br />
<a href="http://www.occip.it/pygy0t15j">http://www.occip.it/pygy0t15j</a><br />
<a href="http://www.occip.it/pyh30sfbj">http://www.occip.it/pyh30sfbj</a></p>
<p><strong>Random Subway Station:<br />
</strong><a href="http://www.occip.it/pygz0cvgj">http://www.occip.it/pygz0cvgj</a></p>
<p><strong>Main train station (Berlin Hauptbahnhof)<br />
</strong><a href="http://www.occip.it/pyhs0jsxj">http://www.occip.it/pyhs0jsxj</a></p>
<p><strong>Church:<br />
</strong><a href="http://www.occip.it/pyh30zyej">http://www.occip.it/pyh30zyej</a><br />
<a href="http://www.occip.it/pyh3006qxj">http://www.occip.it/pyh3006qxj</a><br />
Outside: <a href="http://www.occip.it/pygy0v67j">http://www.occip.it/pygy0v67j</a></p>
<p><strong>Crypt:<br />
</strong><a href="http://www.occip.it/pyh50u4zj">http://www.occip.it/pyh50u4zj</a></p>
<p><strong>Charlottenburg Palace:<br />
</strong><a href="http://www.occip.it/pyh69zfj">http://www.occip.it/pyh69zfj</a></p>
<p><strong>Holocaust Memorial:<br />
</strong><a href="http://www.occip.it/pyh80z4rj">http://www.occip.it/pyh80z4rj</a><br />
<a href="http://www.occip.it/pyh3066kj">http://www.occip.it/pyh3066kj</a><br />
<a href="http://www.occip.it/pyh7i82j">http://www.occip.it/pyh7i82j</a></p>
<p><strong>Brandenberg Gate:<br />
</strong><a href="http://www.occip.it/pyh30dfsj">http://www.occip.it/pyh30dfsj</a> &#8212; kind of messed up</p>
<p><strong>Tiergarten:<br />
</strong><a href="http://www.occip.it/pyhsvm2j">http://www.occip.it/pyhsvm2j</a><br />
<a href="http://www.occip.it/pygy0fraj">http://www.occip.it/pygy0fraj</a></p>
<p><strong>KaDeWe Restaraunt:<br />
</strong><a href="http://www.occip.it/pygz0ygrj">http://www.occip.it/pygz0ygrj</a></p>
<p><strong>Gedächtniskirche:<br />
</strong><a href="http://www.occip.it/pyh80f95j">http://www.occip.it/pyh80f95j</a></p>
]]></content:encoded>
			<wfw:commentRss>http://www.sethgholson.com/2010/12/berlin-all-panoramas/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Berlin</title>
		<link>http://www.sethgholson.com/2010/12/berlin/</link>
		<comments>http://www.sethgholson.com/2010/12/berlin/#comments</comments>
		<pubDate>Fri, 24 Dec 2010 17:50:47 +0000</pubDate>
		<dc:creator>Seth Gholson</dc:creator>
				<category><![CDATA[Food]]></category>
		<category><![CDATA[Travel]]></category>
		<category><![CDATA[berlin]]></category>
		<category><![CDATA[germany]]></category>

		<guid isPermaLink="false">http://www.sethgholson.com/?p=564</guid>
		<description><![CDATA[Thanks to everyone that enabled me to take this trip – especially my wife Jen, who was selfless enough to allow me to take this trip without her. East Side Gallery Berlin Hauptbahnhof – the largest train station in Europe. It’s quite impressive in its size and feels much more like an airport. Tiergarten – [...]]]></description>
			<content:encoded><![CDATA[<p>Thanks to everyone that enabled me to take this trip – especially my wife Jen, who was selfless enough to allow me to take this trip without her.</p>
<p align="center"><a href="http://www.sethgholson.com/wp-content/uploads/2010/12/IMG_0577.jpg"><img style="border-right-width: 0px; display: block; float: none; border-top-width: 0px; border-bottom-width: 0px; margin-left: auto; border-left-width: 0px; margin-right: auto" title="This is the only car the communists had - and it&#39;s busting through the wall. Genius." border="0" alt="This is the only car the communists had - and it&#39;s busting through the wall. Genius." src="http://www.sethgholson.com/wp-content/uploads/2010/12/IMG_0577_thumb.jpg" width="403" height="302" /></a>East Side Gallery</p>
<p><strong>Berlin Hauptbahnhof</strong> – the largest train station in Europe. It’s quite impressive in its size and feels much more like an airport.</p>
<p><a href="http://www.sethgholson.com/wp-content/uploads/2010/12/DSC01919.jpg"><img style="border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" title="I ditched the turtle-looking hat after a while." border="0" alt="I ditched the turtle-looking hat after a while." src="http://www.sethgholson.com/wp-content/uploads/2010/12/DSC01919_thumb.jpg" width="244" height="184" /></a> <a href="http://www.sethgholson.com/wp-content/uploads/2010/12/DSC01920.jpg"><img style="border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" title="It was crawling with cops carrying submachine guns." border="0" alt="It was crawling with cops carrying submachine guns." src="http://www.sethgholson.com/wp-content/uploads/2010/12/DSC01920_thumb.jpg" width="244" height="184" /></a></p>
<p><strong>Tiergarten – </strong>the park just in front of the Brandenberg gate. The parks are stunning when covered with fresh smooth powder like they were while I was there. The scenery was just as foreign to me as the culture. Here you see the first glimpse of how I promised Jen she would be with us:</p>
<p><a href="http://www.sethgholson.com/wp-content/uploads/2010/12/DSC01941.jpg"><img style="border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" title="She was there in spirit." border="0" alt="She was there in spirit." src="http://www.sethgholson.com/wp-content/uploads/2010/12/DSC01941_thumb.jpg" width="164" height="124" /></a> <a href="http://www.sethgholson.com/wp-content/uploads/2010/12/DSC01942.jpg"><img style="border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" title="I should&#39;ve made one for my son too." border="0" alt="I should&#39;ve made one for my son too." src="http://www.sethgholson.com/wp-content/uploads/2010/12/DSC01942_thumb.jpg" width="164" height="124" /></a> <a href="http://www.sethgholson.com/wp-content/uploads/2010/12/DSC01939.jpg"><img style="border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" title="Just 3 studs... creeping through the park." border="0" alt="Just 3 studs... creeping through the park." src="http://www.sethgholson.com/wp-content/uploads/2010/12/DSC01939_thumb.jpg" width="164" height="124" /></a></p>
<p><iframe height="312" src="http://www.occip.it/pyhsvm2j" frameborder="0" width="490" type="text/html"></iframe></p>
<p><iframe height="312" src="http://www.occip.it/pygy0fraj" frameborder="0" width="490" type="text/html"></iframe></p>
<p><strong>Brandenburg Gate – </strong>Rain or shine, I think there are always people around this gate.</p>
<p><a href="http://www.sethgholson.com/wp-content/uploads/2010/12/DSC01952.jpg"><img style="border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" title="A real Christmas tree!" border="0" alt="A real Christmas tree!" src="http://www.sethgholson.com/wp-content/uploads/2010/12/DSC01952_thumb.jpg" width="249" height="188" /></a><a href="http://www.sethgholson.com/wp-content/uploads/2010/12/IMG_0283.jpg"><img style="border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" title="IMG_0283" border="0" alt="IMG_0283" src="http://www.sethgholson.com/wp-content/uploads/2010/12/IMG_0283_thumb.jpg" width="249" height="187" /></a></p>
<p><em><strong>Denkmal für die ermordeten Juden Europas</strong> (Memorial to the Murdered Jews of Europe) –</em> Walking through this place made you very uneasy. It was a bit disorienting at times while in the middle of it.</p>
<p><a href="http://www.sethgholson.com/wp-content/uploads/2010/12/DSC01954.jpg"><img style="border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" title="It went on forever" border="0" alt="It went on forever" src="http://www.sethgholson.com/wp-content/uploads/2010/12/DSC01954_thumb.jpg" width="164" height="124" /></a> <a href="http://www.sethgholson.com/wp-content/uploads/2010/12/DSC01968.jpg"><img style="border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" title="The size was enormous." border="0" alt="The size was enormous." src="http://www.sethgholson.com/wp-content/uploads/2010/12/DSC01968_thumb.jpg" width="164" height="124" /></a> <a href="http://www.sethgholson.com/wp-content/uploads/2010/12/DSC01964.jpg"><img style="border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" title="It&#39;s impossible not to want to play in it." border="0" alt="It&#39;s impossible not to want to play in it." src="http://www.sethgholson.com/wp-content/uploads/2010/12/DSC01964_thumb.jpg" width="164" height="124" /></a></p>
<p><strong>Christkindlmärkte </strong>(Christmas Market) – There were a <em>lot</em> of Christmas markets. We attended quite a few in Berlin and the famous large market in Nuremburg. These were a lot of fun. I ate lots of sausages and breads, the <em><strong>best hot chocolate in the world</strong>, </em>guaranteed, and struggled to find a piece of chocolate that <em>wasn’t</em> loaded with rum.</p>
<p><a href="http://www.sethgholson.com/wp-content/uploads/2010/12/DSC01974.jpg"><img style="border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" title="Best hot chocolate. In the world. Ever." border="0" alt="Best hot chocolate. In the world. Ever." src="http://www.sethgholson.com/wp-content/uploads/2010/12/DSC01974_thumb.jpg" width="244" height="184" /></a> <a href="http://www.sethgholson.com/wp-content/uploads/2010/12/DSC01973.jpg"><img style="border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" title="They always give you real cups and plates and cutlery and you are refunded a few dollars when you return them. " border="0" alt="They always give you real cups and plates and cutlery and you are refunded a few dollars when you return them. " src="http://www.sethgholson.com/wp-content/uploads/2010/12/DSC01973_thumb.jpg" width="244" height="184" /></a> <a href="http://www.sethgholson.com/wp-content/uploads/2010/12/IMG_0189.jpg"><img style="border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" title="CREPES WITH NUTELLA! AHHHHH! SOOO GOOD!" border="0" alt="CREPES WITH NUTELLA! AHHHHH! SOOO GOOD!" src="http://www.sethgholson.com/wp-content/uploads/2010/12/IMG_0189_thumb.jpg" width="128" height="170" /></a> <a href="http://www.sethgholson.com/wp-content/uploads/2010/12/IMG_0361.jpg"><img style="border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" title="Charlottenburg Palace" border="0" alt="Charlottenburg Palace" src="http://www.sethgholson.com/wp-content/uploads/2010/12/IMG_0361_thumb.jpg" width="227" height="170" /></a> <a href="http://www.sethgholson.com/wp-content/uploads/2010/12/IMG_0456.jpg"><img style="border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" title="NOM NOM NOM" border="0" alt="NOM NOM NOM" src="http://www.sethgholson.com/wp-content/uploads/2010/12/IMG_0456_thumb.jpg" width="129" height="171" /></a> <a href="http://www.sethgholson.com/wp-content/uploads/2010/12/IMG_0453.jpg"><img style="border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" title="Nuremburg&#39;s Christmas market was packed" border="0" alt="Nuremburg&#39;s Christmas market was packed" src="http://www.sethgholson.com/wp-content/uploads/2010/12/IMG_0453_thumb.jpg" width="244" height="183" /></a> <a href="http://www.sethgholson.com/wp-content/uploads/2010/12/IMG_0315.jpg"><img style="border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" title="Warm wine - DELICIOUS in cold weather! And kind of potent..." border="0" alt="Warm wine - DELICIOUS in cold weather! And kind of potent..." src="http://www.sethgholson.com/wp-content/uploads/2010/12/IMG_0315_thumb.jpg" width="244" height="183" /></a> <a href="http://www.sethgholson.com/wp-content/uploads/2010/12/IMG_0178.jpg"><img style="border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" title="Tasty looking dried fruits - I got sausage and crepes instead." border="0" alt="Tasty looking dried fruits - I got sausage and crepes instead." src="http://www.sethgholson.com/wp-content/uploads/2010/12/IMG_0178_thumb.jpg" width="244" height="183" /></a><a href="http://www.sethgholson.com/wp-content/uploads/2010/12/IMG_0321.jpg"><img style="border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" title="The Mother of Hot Chocolate" border="0" alt="The Mother of Hot Chocolate" src="http://www.sethgholson.com/wp-content/uploads/2010/12/IMG_0321_thumb.jpg" width="244" height="183" /></a></p>
<p><iframe height="312" src="http://www.occip.it/pyhsec8j" frameborder="0" width="490" type="text/html"></iframe></p>
<p><iframe height="312" src="http://www.occip.it/pyh30sfbj" frameborder="0" width="490" type="text/html"></iframe></p>
<p><strong>das Essen – </strong>Food was a big target of mine while there. I hear Germans “only eat meat and potatoes” and frankly that generalization isn’t too far off the mark. My ideal cuisine!</p>
<p><a href="http://www.sethgholson.com/wp-content/uploads/2010/12/IMG_0374.jpg"><img style="border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" title="A big wad of pork. And potatos." border="0" alt="A big wad of pork. And potatos." src="http://www.sethgholson.com/wp-content/uploads/2010/12/IMG_0374_thumb.jpg" width="168" height="224" /></a> <a href="http://www.sethgholson.com/wp-content/uploads/2010/12/IMG_0377.jpg"><img style="border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" title="Schnitzel!" border="0" alt="Schnitzel!" src="http://www.sethgholson.com/wp-content/uploads/2010/12/IMG_0377_thumb.jpg" width="168" height="224" /></a> <a href="http://www.sethgholson.com/wp-content/uploads/2010/12/IMG_0378.jpg"><img style="border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" title="The best beers in the world!" border="0" alt="The best beers in the world!" src="http://www.sethgholson.com/wp-content/uploads/2010/12/IMG_0378_thumb.jpg" width="167" height="223" /></a> <a href="http://www.sethgholson.com/wp-content/uploads/2010/12/IMG_0473.jpg"><img style="border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" title="Best (only?) brunch I have ever had!" border="0" alt="Best (only?) brunch I have ever had!" src="http://www.sethgholson.com/wp-content/uploads/2010/12/IMG_0473_thumb.jpg" width="181" height="241" /></a> <a href="http://www.sethgholson.com/wp-content/uploads/2010/12/IMG_0475.jpg"><img style="border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" title="Brunch buffet - twice as long as this. And there were two." border="0" alt="Brunch buffet - twice as long as this. And there were two." src="http://www.sethgholson.com/wp-content/uploads/2010/12/IMG_0475_thumb.jpg" width="321" height="240" /></a> <a href="http://www.sethgholson.com/wp-content/uploads/2010/12/IMG_0181.jpg"><img style="border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" title="I could only identify one thing on this plate." border="0" alt="I could only identify one thing on this plate." src="http://www.sethgholson.com/wp-content/uploads/2010/12/IMG_0181_thumb.jpg" width="324" height="242" /></a><a href="http://www.sethgholson.com/wp-content/uploads/2010/12/IMG_0182.jpg"><img style="border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" title="Their beers are much larger than ours.  *hiccup*" border="0" alt="Their beers are much larger than ours.  *hiccup*" src="http://www.sethgholson.com/wp-content/uploads/2010/12/IMG_0182_thumb.jpg" width="182" height="242" /></a> <a href="http://www.sethgholson.com/wp-content/uploads/2010/12/IMG_0588.jpg"><img style="border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" title="&quot;Ghetto Burger&quot; - yes, it came with a shot of Vodka." border="0" alt="&quot;Ghetto Burger&quot; - yes, it came with a shot of Vodka." src="http://www.sethgholson.com/wp-content/uploads/2010/12/IMG_0588_thumb.jpg" width="252" height="189" /></a> <a href="http://www.sethgholson.com/wp-content/uploads/2010/12/IMG_0148.jpg"><img style="border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" title="French Fry Sauce (this was in Amsterdam)" border="0" alt="French Fry Sauce (this was in Amsterdam)" src="http://www.sethgholson.com/wp-content/uploads/2010/12/IMG_0148_thumb.jpg" width="251" height="188" /></a></p>
<p><iframe class="youtube-player" title="YouTube video player" height="312" src="http://www.youtube.com/embed/ffT2P9nSvXw?rel=0" frameborder="0" width="490" type="text/html"></iframe></p>
<p><strong>die Geschichte – </strong>Spending time in a country with as much history as Germany is a clear reminder of how young the United States really is.</p>
<p><a href="http://www.sethgholson.com/wp-content/uploads/2010/12/IMG_0344.jpg"><img style="border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" title="The scale of this church is hard to capture." border="0" alt="The scale of this church is hard to capture." src="http://www.sethgholson.com/wp-content/uploads/2010/12/IMG_0344_thumb.jpg" width="175" height="233" /></a> <a href="http://www.sethgholson.com/wp-content/uploads/2010/12/IMG_0347.jpg"><img style="border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" title="This is no Southern Baptist church..." border="0" alt="This is no Southern Baptist church..." src="http://www.sethgholson.com/wp-content/uploads/2010/12/IMG_0347_thumb.jpg" width="311" height="233" /></a> <a href="http://www.sethgholson.com/wp-content/uploads/2010/12/IMG_0168.jpg"><img style="border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" title="Most of this church was destroyed during the war." border="0" alt="Most of this church was destroyed during the war." src="http://www.sethgholson.com/wp-content/uploads/2010/12/IMG_0168_thumb.jpg" width="244" height="183" /></a> <a href="http://www.sethgholson.com/wp-content/uploads/2010/12/IMG_0357.jpg"><img style="border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" title="Dead Prussian royalty in the crypt under a church." border="0" alt="Dead Prussian royalty in the crypt under a church." src="http://www.sethgholson.com/wp-content/uploads/2010/12/IMG_0357_thumb.jpg" width="244" height="183" /></a> <a href="http://www.sethgholson.com/wp-content/uploads/2010/12/IMG_0215.jpg"><img style="border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" title="Wedding is the name of the neighborhood." border="0" alt="Wedding is the name of the neighborhood." src="http://www.sethgholson.com/wp-content/uploads/2010/12/IMG_0215_thumb.jpg" width="244" height="183" /></a> <a href="http://www.sethgholson.com/wp-content/uploads/2010/12/IMG_0430.jpg"><img style="border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" title="Nazi War Criminals were tried here." border="0" alt="Nazi War Criminals were tried here." src="http://www.sethgholson.com/wp-content/uploads/2010/12/IMG_0430_thumb.jpg" width="244" height="183" /></a></p>
<p><iframe height="312" src="http://www.occip.it/pyh50u4zj" frameborder="0" width="490" type="text/html"></iframe></p>
<p><iframe height="312" src="http://www.occip.it/pyh203r7j" frameborder="0" width="490" type="text/html"></iframe></p>
<p><iframe height="312" src="http://www.occip.it/pyh69zfj" frameborder="0" width="490" type="text/html"></iframe></p>
<p><strong>Lochgefängnisse – </strong>While in Nuremburg, we toured a medieval dungeon under what was once a monastery, then became City Hall in the mid 1300’s. This was genuinely the creepiest place I’ve been to in a while. It might’ve had little to do with the dungeon and more to do with the lady giving the tour only in German that sounded like she smoked twelve packs a day since she was 2.</p>
<p><a href="http://www.sethgholson.com/wp-content/uploads/2010/12/IMG_0476.jpg"><img style="border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" title="She was a scary broad." border="0" alt="She was a scary broad." src="http://www.sethgholson.com/wp-content/uploads/2010/12/IMG_0476_thumb.jpg" width="164" height="219" /></a> <a href="http://www.sethgholson.com/wp-content/uploads/2010/12/IMG_0478.jpg"><img style="border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" title="Very cold - very low ceilings." border="0" alt="Very cold - very low ceilings." src="http://www.sethgholson.com/wp-content/uploads/2010/12/IMG_0478_thumb.jpg" width="164" height="219" /></a> <a href="http://www.sethgholson.com/wp-content/uploads/2010/12/IMG_0489.jpg"><img style="border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" title="The top of the door was at my throat level." border="0" alt="The top of the door was at my throat level." src="http://www.sethgholson.com/wp-content/uploads/2010/12/IMG_0489_thumb.jpg" width="164" height="219" /></a> <a href="http://www.sethgholson.com/wp-content/uploads/2010/12/IMG_0496.jpg"><img style="border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" title="That stone was hung from prisoners&#39; legs." border="0" alt="That stone was hung from prisoners&#39; legs." src="http://www.sethgholson.com/wp-content/uploads/2010/12/IMG_0496_thumb.jpg" width="248" height="186" /></a> <a href="http://www.sethgholson.com/wp-content/uploads/2010/12/IMG_0505.jpg"><img style="border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" title="Window up to ground level." border="0" alt="Window up to ground level." src="http://www.sethgholson.com/wp-content/uploads/2010/12/IMG_0505_thumb.jpg" width="250" height="188" /></a> <a href="http://www.sethgholson.com/wp-content/uploads/2010/12/IMG_0501.jpg"><img style="border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" title="Leg stocks." border="0" alt="Leg stocks." src="http://www.sethgholson.com/wp-content/uploads/2010/12/IMG_0501_thumb.jpg" width="320" height="240" /></a> <a href="http://www.sethgholson.com/wp-content/uploads/2010/12/IMG_0492.jpg"><img style="border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" title="This was the welcoming device - fingers were first crushed in it." border="0" alt="This was the welcoming device - fingers were first crushed in it." src="http://www.sethgholson.com/wp-content/uploads/2010/12/IMG_0492_thumb.jpg" width="180" height="240" /></a> <a href="http://www.sethgholson.com/wp-content/uploads/2010/12/IMG_05121.jpg"><img style="border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" title="The executioner&#39;s apartment room - can&#39;t explain this light. It happened multiple times." border="0" alt="The executioner&#39;s apartment room - can&#39;t explain this light. It happened multiple times." src="http://www.sethgholson.com/wp-content/uploads/2010/12/IMG_0512_thumb1.jpg" width="181" height="241" /></a> <a href="http://www.sethgholson.com/wp-content/uploads/2010/12/IMG_0514.jpg"><img style="border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" title="Some of the torture devices - the explanations were gruesome." border="0" alt="Some of the torture devices - the explanations were gruesome." src="http://www.sethgholson.com/wp-content/uploads/2010/12/IMG_0514_thumb.jpg" width="324" height="242" /></a></p>
<p><iframe height="312" src="http://www.occip.it/pyhsunvj" frameborder="0" width="490" type="text/html"></iframe></p>
<p>There were too many paintings&#160; to photograph at the<strong> East Side Gallery</strong>, but I took some shots of a few remarkable ones:</p>
<p><a href="http://www.sethgholson.com/wp-content/uploads/2010/12/IMG_0574.jpg"><img style="border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" title="The paintings go on seemingly forever" border="0" alt="The paintings go on seemingly forever" src="http://www.sethgholson.com/wp-content/uploads/2010/12/IMG_0574_thumb.jpg" width="164" height="123" /></a> <a href="http://www.sethgholson.com/wp-content/uploads/2010/12/IMG_0572.jpg"><img style="border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" title="Yes, that is Scrooge McDuck. They call him Dagobert Duck." border="0" alt="Yes, that is Scrooge McDuck. They call him Dagobert Duck." src="http://www.sethgholson.com/wp-content/uploads/2010/12/IMG_0572_thumb.jpg" width="165" height="124" /></a> <a href="http://www.sethgholson.com/wp-content/uploads/2010/12/IMG_0583.jpg"><img style="border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" title="I have no idea what&#39;s going on here." border="0" alt="I have no idea what&#39;s going on here." src="http://www.sethgholson.com/wp-content/uploads/2010/12/IMG_0583_thumb.jpg" width="165" height="124" /></a></p>
<p>A quick list of impressions this trip has left on me:</p>
<ol>
<li>I’d like to live in a big city some day. </li>
<li>Public transportation is abysmal in most of the United States. </li>
<li>Shreveport is a very dangerous city compared to Berlin. </li>
<li>Die Erfahrungen sind wertvoller als Besitz. </li>
</ol>
<p>An opportunity like this has made a much greater impression on me than anything I’ve got sitting on my shelf or in a closet. Thanks to my friends that had me along. Thanks to Mr. and Mrs. Hayes for sharing their son with us while they were visiting. Most of all, thanks to my wife for encouraging and enabling me to take this trip.</p>
<p><a href="http://www.sethgholson.com/wp-content/uploads/2010/12/DSC01950.jpg"><img style="border-right-width: 0px; display: block; float: none; border-top-width: 0px; border-bottom-width: 0px; margin-left: auto; border-left-width: 0px; margin-right: auto" title="DSC01950" border="0" alt="DSC01950" src="http://www.sethgholson.com/wp-content/uploads/2010/12/DSC01950_thumb.jpg" width="377" height="284" /></a></p>
<p align="center">Thanks, friends (including Ben and Elena, not pictured!)</p>
<p><strong>NOTE: </strong>I’ve linked to all of the panoramas I took in a separate post here: <a href="http://www.sethgholson.com/2010/12/berlin-all-panoramas/">Berlin – All Panoramas.</a></p>
]]></content:encoded>
			<wfw:commentRss>http://www.sethgholson.com/2010/12/berlin/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
	</channel>
</rss>

