<?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>Holtwick IT</title>
	<atom:link href="http://www.holtwick.it/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.holtwick.it</link>
	<description>Mac and iOS Development</description>
	<lastBuildDate>Mon, 11 Mar 2013 12:40:11 +0000</lastBuildDate>
	<language>en-US</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.5</generator>
		<item>
		<title>★ Favs</title>
		<link>http://www.holtwick.it/2012/03/08/favs/</link>
		<comments>http://www.holtwick.it/2012/03/08/favs/#comments</comments>
		<pubDate>Thu, 08 Mar 2012 18:08:06 +0000</pubDate>
		<dc:creator>Dirk Holtwick</dc:creator>
				<category><![CDATA[Projects]]></category>

		<guid isPermaLink="false">http://www.holtwick.it/?p=187</guid>
		<description><![CDATA[Favs is available on the Mac App Store and iPhone App Store now. More about it&#8217;s functionallity at favsapp.com.]]></description>
				<content:encoded><![CDATA[<p>Favs is available on the <a href="http://itunes.apple.com/us/app/favs/id436961703?ls=1&amp;mt=12">Mac App Store</a> and <a href="http://itunes.apple.com/us/app/favs/id436962003?mt=8&amp;uo=4">iPhone App Store now</a>. More about it&#8217;s functionallity at <a href="http://www.favsapp.com">favsapp.com</a>.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.holtwick.it/2012/03/08/favs/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Essay and Evernote</title>
		<link>http://www.holtwick.it/2011/08/30/essay-and-evernote/</link>
		<comments>http://www.holtwick.it/2011/08/30/essay-and-evernote/#comments</comments>
		<pubDate>Tue, 30 Aug 2011 04:32:54 +0000</pubDate>
		<dc:creator>Dirk Holtwick</dc:creator>
				<category><![CDATA[Info]]></category>
		<category><![CDATA[Projects]]></category>
		<category><![CDATA[editor]]></category>
		<category><![CDATA[evernote]]></category>
		<category><![CDATA[ios]]></category>
		<category><![CDATA[ipad]]></category>
		<category><![CDATA[iphone]]></category>
		<category><![CDATA[rich text]]></category>

		<guid isPermaLink="false">http://www.holtwick.it/?p=154</guid>
		<description><![CDATA[Dear Essay users, Thanks for supporting our rich text editor app. As many of you know, Essay is no longer available in the App Store. The good news is that I have been working with Evernote to bring rich text &#8230; <a href="http://www.holtwick.it/2011/08/30/essay-and-evernote/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
				<content:encoded><![CDATA[<p>Dear Essay users,</p>
<p>Thanks for supporting our rich text editor app. As many of you know, Essay is no longer available in the App Store. The good news is that I have been working with Evernote to bring rich text editing to their fantastic application. This means you get all of the rich text editing you love paired with the strong organization and sync capabilities of Evernote, all for free.</p>
<p>Learn more about the new Evernote functionality at<br />
<a href="http://blog.evernote.com/2011/08/22/the-big-evernote-for-ios-update/">http://blog.evernote.com/2011/08/22/the-big-evernote-for-ios-update/</a></p>
<p>Regards,<br />
Dirk Holtwick</p>
<p><img class="alignnone size-medium wp-image-161" title="Evernote rich text editing" src="http://www.holtwick.biz/wp-content/uploads/ios_richtext-1-300x244.png" alt="" width="300" height="244" /></p>
]]></content:encoded>
			<wfw:commentRss>http://www.holtwick.it/2011/08/30/essay-and-evernote/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Essay for iPad</title>
		<link>http://www.holtwick.it/2011/01/27/essay-for-ipad/</link>
		<comments>http://www.holtwick.it/2011/01/27/essay-for-ipad/#comments</comments>
		<pubDate>Thu, 27 Jan 2011 08:30:30 +0000</pubDate>
		<dc:creator>Dirk Holtwick</dc:creator>
				<category><![CDATA[Projects]]></category>
		<category><![CDATA[editor]]></category>
		<category><![CDATA[ios]]></category>
		<category><![CDATA[ipad]]></category>
		<category><![CDATA[iphone]]></category>
		<category><![CDATA[rich text]]></category>

		<guid isPermaLink="false">http://www.holtwick.it/?p=134</guid>
		<description><![CDATA[Essay is a rich text editor that offers only the most essential formatting options to keep the writer concentrated on the document. The file format used is HTML which is itself is the base format of all web pages and &#8230; <a href="http://www.holtwick.it/2011/01/27/essay-for-ipad/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
				<content:encoded><![CDATA[<p><a href="http://www.essayapp.com/" target="_blank"><img class="alignright size-medium wp-image-135" title="Essay App" src="http://www.holtwick.biz/wp-content/uploads/icon-essay-300x300.png" alt="" width="180" height="180" /></a><a href="http://www.essayapp.com/" target="_blank">Essay</a> is a rich text editor that offers only the most essential formatting options to keep the writer concentrated on the document. The file format used is HTML which is itself is the base format of all web pages and therefore well supported and well documented. There are various ways of importing and exporting documents to Essay. As a little plus Essay also features sending texts as formated HTML emails like you are used from the desktop. Word and character counting gives you control of your works progress as you type. We hope you enjoy Essay as much as we do.</p>
<p><strong>Essay is available now on the <a href="http://www.essayapp.com/" target="_blank">Apple AppStore</a>.</strong></p>
]]></content:encoded>
			<wfw:commentRss>http://www.holtwick.it/2011/01/27/essay-for-ipad/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Twitter + Video = mov.io</title>
		<link>http://www.holtwick.it/2009/10/22/movio/</link>
		<comments>http://www.holtwick.it/2009/10/22/movio/#comments</comments>
		<pubDate>Thu, 22 Oct 2009 16:23:17 +0000</pubDate>
		<dc:creator>Dirk Holtwick</dc:creator>
				<category><![CDATA[Projects]]></category>
		<category><![CDATA[ios]]></category>
		<category><![CDATA[iphone]]></category>
		<category><![CDATA[video]]></category>

		<guid isPermaLink="false">http://www.holtwick.it/?p=79</guid>
		<description><![CDATA[I&#8217;m happy to see the mov.io service has launched recently. Oliver Wagner and Oliver Köster have build a clean and elegant service to easily share videos on Twitter. I contributed the iPhone app to this project which is still in &#8230; <a href="http://www.holtwick.it/2009/10/22/movio/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
				<content:encoded><![CDATA[<p>I&#8217;m happy to see the <strong><a href="http://mov.io" target="_blank">mov.io</a></strong> service has launched recently.  <a href="http://socialobjects.de/team/" target="_blank">Oliver Wagner and Oliver Köster</a> have build a clean and elegant service to easily share videos on Twitter. I contributed the iPhone app to this project which is still in the approval process for the Apple AppStore. Hope you enjoy and use the new service. <span id="more-79"></span></p>
<p>Here is an appetizing video that explains the main features:</p>
<p><iframe src='http://mov.io/go/showvideo/player/e?autoplay=false' width='430' height='480' scrolling='no' frameborder='0'></iframe></p>
]]></content:encoded>
			<wfw:commentRss>http://www.holtwick.it/2009/10/22/movio/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Ghana VAT Project</title>
		<link>http://www.holtwick.it/2009/07/16/ghana-vat-project/</link>
		<comments>http://www.holtwick.it/2009/07/16/ghana-vat-project/#comments</comments>
		<pubDate>Thu, 16 Jul 2009 09:29:56 +0000</pubDate>
		<dc:creator>Dirk Holtwick</dc:creator>
				<category><![CDATA[Projects]]></category>
		<category><![CDATA[africa]]></category>
		<category><![CDATA[project]]></category>
		<category><![CDATA[python]]></category>
		<category><![CDATA[reference]]></category>
		<category><![CDATA[web]]></category>

		<guid isPermaLink="false">http://www.holtwick.it/?p=47</guid>
		<description><![CDATA[I had the honor to work on a very nice project this year for the eGenix GmbH. It is about bringing a better VAT infrastructure to the African country Ghana. We used technologies like Python, Django, Javascript and YUI. To &#8230; <a href="http://www.holtwick.it/2009/07/16/ghana-vat-project/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
				<content:encoded><![CDATA[<p>I had the honor to work on a very nice project this year for the <a href="http://www.egenix.com" target="_blank">eGenix GmbH</a>. It is about bringing a better VAT infrastructure to the African country Ghana. We used technologies like Python, Django, Javascript and YUI.</p>
<p>To get an idea of it I recommend to watch this <strong><a href="http://www.egenix.com/library/presentations/EuroPython2009-Making-50Mio-EUR-per-year-using-Python/" target="_blank">lightning talk</a></strong> Marc-Andre Lemburg gave at the EuroPython 2009.</p>
<p><strong>Update 2009-09-02:</strong></p>
<p>African press is speaking about the start of the pilot phase:</p>
<ul>
<li><a href="http://allafrica.com/stories/200908280652.html">http://all​africa.com​/stories/2​0090828065​2.html</a></li>
<li><a href="http://news.myjoyonline.com/business/200808/19027.asp">http://new​s.myjoyonl​ine.com/bu​siness/200​808/19027.​asp</a></li>
</ul>
]]></content:encoded>
			<wfw:commentRss>http://www.holtwick.it/2009/07/16/ghana-vat-project/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Twittori &#8211; Geotags for Twitter status messages</title>
		<link>http://www.holtwick.it/2009/07/06/twittori-info/</link>
		<comments>http://www.holtwick.it/2009/07/06/twittori-info/#comments</comments>
		<pubDate>Mon, 06 Jul 2009 09:11:16 +0000</pubDate>
		<dc:creator>Dirk Holtwick</dc:creator>
				<category><![CDATA[Projects]]></category>
		<category><![CDATA[appengine]]></category>
		<category><![CDATA[google]]></category>
		<category><![CDATA[ios]]></category>
		<category><![CDATA[iphone]]></category>
		<category><![CDATA[project]]></category>
		<category><![CDATA[python]]></category>
		<category><![CDATA[twitter]]></category>
		<category><![CDATA[web]]></category>

		<guid isPermaLink="false">http://blog.holtwick.it/?p=21</guid>
		<description><![CDATA[Twittori.com is our current project that adds geo tagging to Twitter messages. It is very easy to use and intends to bring a more useable geo dimension into the Twitter World. I started a little service that adds geo location &#8230; <a href="http://www.holtwick.it/2009/07/06/twittori-info/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
				<content:encoded><![CDATA[<p><a href="http://www.twittori.com"><img class="alignnone size-full wp-image-32" title="logo-twittori" src="http://www.holtwick.biz/wp-content/uploads/logo-twittori.png" alt="logo-twittori" width="207" height="64" /></a></p>
<p><strong><a href="http://www.twittori.com">Twittori.com</a></strong> is our current project that adds geo tagging to Twitter messages. It is very easy to use and intends to bring a more useable geo dimension into the Twitter World.</p>
<div id="_mcePaste" style="position: absolute; left: -10000px; top: 0px; width: 1px; height: 1px; overflow-x: hidden; overflow-y: hidden;">I started a little service that adds geo location informations to single Twitter status messages.</div>
<div id="_mcePaste" style="position: absolute; left: -10000px; top: 0px; width: 1px; height: 1px; overflow-x: hidden; overflow-y: hidden;">Unlike other services this is done by a tiny URL that itself contains all geo location informations e.g. http://GE0.at/0MbEX8 which locates the Eiffel Tower in Paris. This is achieved by a modified &#8216;geohash&#8217; algorithm (more on that at Wikipedia).</div>
<div id="_mcePaste" style="position: absolute; left: -10000px; top: 0px; width: 1px; height: 1px; overflow-x: hidden; overflow-y: hidden;">The second unique feature is that users can follow places in a similar way than they are used to follow users on Twitter. Therefore the earth is divided in discrete squares of about 0.25 square kilometers. You can keep updated by subscribing to a RSS Feed or visiting the web site.</div>
<div id="_mcePaste" style="position: absolute; left: -10000px; top: 0px; width: 1px; height: 1px; overflow-x: hidden; overflow-y: hidden;">An iPhone application is also ready but not yet approved by the Apple App Store. In the meanwhile you can watch a little demo on the web site under the &#8216;iPhone&#8217; menu entry.</div>
<div id="_mcePaste" style="position: absolute; left: -10000px; top: 0px; width: 1px; height: 1px; overflow-x: hidden; overflow-y: hidden;">I hope this is an interesting project for the readers of Mashable. The URL of the project is http://www.twittori.com</div>
<p>Unlike other services this is done by a tiny URL that itself contains all geo location informations e.g. http://GE0.at/0MbEX8 which locates the Eiffel Tower in Paris. This is achieved by a modified &#8216;geohash&#8217; algorithm (more on that at Wikipedia).</p>
<p>The second unique feature is that users can follow places in a similar way than they are used to follow users on Twitter. Therefore the earth is divided in discrete squares of about 0.25 square kilometers. You can keep updated by subscribing to a RSS Feed or visiting the web site.<span id="more-21"></span></p>
<p><strong>The Website</strong></p>
<p>The web site has been designed by <a href="http://datendesigner.de/" target="_blank">Martin &#8220;Datendesigner&#8221; Jacobs</a>. It aims to be clear and simple to use.</p>
<h2>The iPhone App</h2>
<p>The iPhone App is waiting to become approved for the App Store. It is very easy to use and provides a well defined user interface. A little demo on Twittori.com shows the details: <a href="http://www.twittori.com/content/iphone">http://www.twittori.com/content/iphone</a></p>
<p><strong><a href="http://www.twittori.com"><img class="alignnone size-full wp-image-30" title="Screenshot Twittori" src="http://www.holtwick.biz/wp-content/uploads/screen-1.png" alt="Screenshot Twittori" /></a></strong></p>
<h2>The Technology</h2>
<p>The Google App Engine is used for hosting. Therefore the server side code is written in Python. For the AJAX stuff we use Google Maps, Google Gears, jQuery, jQueryTools scrollable, jQuery mousewheel, prettyPhoto. The CSS is based on Blueprint CSS Framework.</p>
<h2>The Shortlink</h2>
<p>We use the short link to identify the location you refer to and to connect the tweet with the Twittori service. We do not use the domain <a href="http://www.twittori.com/" target="_blank">http://www.twittori.com</a> but the domain <a href="http://ge0.at/" target="_blank">http://ge0.at</a> just because it is shorter (minus 10 characters). The six characters that follow the domain name contain the whole geo location information. That means it is not done like <a href="http://tinyurl.com/" target="_blank">tinyurl.com</a>, <a href="http://bit.ly/" target="_blank">bit.ly</a> or <a href="http://is.gd/" target="_blank">is.gd</a> do it by  adding a new reference to their database. Instead you can calculate the corresponding latitude and longitude of the position from the six characters itself. The following section describes how this is done.</p>
<h3>FROM A TECHNICAL VIEW</h3>
<p>Basically we use the <a href="http://en.wikipedia.org/wiki/Geohash" target="_blank">Geohash algorithm</a> for calculating our location hash. We just expanded this technique to use 64 characters in place of 32 characters. Here you can see the implementation in Javascript to calculate the latitude and longitude from the hash:</p>
<pre>var BITS = [32, 16, 8, 4, 2, 1];
var BASE = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789-_";

function refine_interval(interval, cd, mask){
    if (cd &amp; mask)
        interval[0] = (interval[0] + interval[1]) / 2;
    else
        interval[1] = (interval[0] + interval[1]) / 2;
}

function decodeGeoHash(geohash){
    var is_even = 1;
    var lat = [];
    var lon = [];
    lat[0] = -90.0;
    lat[1] = 90.0;
    lon[0] = -180.0;
    lon[1] = 180.0;
    lat_err = 90.0;
    lon_err = 180.0;

    for (i = 0; i &lt; geohash.length; i++) {
        c = geohash.charAt(i);
        cd = BASE.indexOf(c);
        for (j = 0; j &lt; 6; j++) {
            mask = BITS[j];
            if (is_even) {
                lon_err /= 2;
                refine_interval(lon, cd, mask);
            }
            else {
                lat_err /= 2;
                refine_interval(lat, cd, mask);
            }
            is_even = !is_even;
        }
    }
    lat[2] = (lat[0] + lat[1]) / 2;
    lon[2] = (lon[0] + lon[1]) / 2;

    return {
        lat: lat[2],
        lon: lon[2]
    };
}</pre>
<p>I wrote a little demo to show this in action. Follow this link: <a href="http://www.twittori.com/geohash.html#0BOdWE" target="_blank">http://www.twittori.com/geohash.html#0BOdWE</a></p>
<p>&nbsp;</p>
]]></content:encoded>
			<wfw:commentRss>http://www.holtwick.it/2009/07/06/twittori-info/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>
