<?xml version="1.0" encoding="UTF-8"?>
<?xml-stylesheet type="text/xsl" media="screen" href="/~d/styles/atom10full.xsl"?><?xml-stylesheet type="text/css" media="screen" href="http://feeds.feedburner.com/~d/styles/itemcontent.css"?><feed xmlns="http://www.w3.org/2005/Atom">
  <title>Kaspars Dancis</title>
  
  <link href="http://kaspa.rs/" />
  <updated>2011-11-04T09:20:55-07:00</updated>
  <id>http://kaspa.rs/</id>
  <author>
    <name>Kaspars Dancis</name>
    <email>kaspars@kaspa.rs</email>
  </author>
  
  <atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="self" type="application/atom+xml" href="http://feeds.feedburner.com/KasparsDancis" /><feedburner:info xmlns:feedburner="http://rssnamespace.org/feedburner/ext/1.0" uri="kasparsdancis" /><atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="hub" href="http://pubsubhubbub.appspot.com/" /><entry>
    <title>Jekyll hacks - HTML excerpts</title>
    <link href="http://kaspa.rs/2011/04/jekyll-hacks-html-excerpts" />
    <updated>2011-04-29T00:00:00-07:00</updated>
    <id>http://kaspa.rs/2011/04/jekyll-hacks-html-excerpts</id>
    <content type="html">&lt;p&gt;&lt;a href='http://jekyllrb.com/'&gt;Jekyll&lt;/a&gt; is a really cool platform for blogs, especially if you are a geek and love &lt;a href='https://github.com'&gt;Github&lt;/a&gt;. Nevertheless it&amp;#8217;s fairly new and has some gaps here and there.&lt;/p&gt;

&lt;p&gt;One of the features that I really missed was &lt;a href='https://github.com/mojombo/jekyll/issues/105'&gt;a support for post excerpts&lt;/a&gt; so that for longer posts you could show a shorter version on the index page.&lt;/p&gt;

&lt;p&gt;One workaround is to use &lt;a href='https://github.com/tobi/liquid/wiki/Liquid-for-Designers'&gt;Liquid templating library&amp;#8217;s&lt;/a&gt; filters to strip the content:&lt;/p&gt;

&lt;pre&gt;&lt;code&gt;{{ post.content | strip_html | truncatewords: 25 }} &lt;/code&gt;&lt;/pre&gt;

&lt;p&gt;The downside of this is that you lose HTML tags and it&amp;#8217;s not very convenient to control how much of the content is truncated per post.&lt;/p&gt;

&lt;p&gt;Another alternative is to add additional attribute &amp;#8220;excerpt&amp;#8221; to post&amp;#8217;s YAML Front Matter but in this case you need to duplicate some of the content.&lt;/p&gt;

&lt;p&gt;Finally you can implement excerpt functionality as a &lt;a href='https://github.com/mojombo/jekyll/wiki/Plugins'&gt;Jekyll plugin&lt;/a&gt; but then you lose the convenience of the blog beeing auto-generated by Github Pages since it doesn&amp;#8217;t support plugins.&lt;/p&gt;

&lt;h3 id='the_solution'&gt;The solution&lt;/h3&gt;

&lt;p&gt;First, mark the part of the post that you want to be truncated like this:&lt;/p&gt;

&lt;pre&gt;&lt;code&gt;---
title: some post
layout: post
---

Some intro, this will be visible on the index page.

&amp;lt;!-- more start --&amp;gt;

More content, this will not be visible on the index page.

&amp;lt;!-- more end --&amp;gt;&lt;/code&gt;&lt;/pre&gt;

&lt;p&gt;And then use the following Liquid tag to hide the marked part on the index page:&lt;/p&gt;

&lt;pre&gt;&lt;code&gt;{{ post.content | replace:&amp;#39;more start --&amp;gt;&amp;#39;,&amp;#39;&amp;#39; | replace:&amp;#39;&amp;lt;!-- more end&amp;#39;,&amp;#39;&amp;#39; }}&lt;/code&gt;&lt;/pre&gt;

&lt;p&gt;It simply makes the part commented out in HTML. It&amp;#8217;s not perfect since the full content will still be included in the HTML, however it won&amp;#8217;t be visible to your blog&amp;#8217;s readers.&lt;/p&gt;

&lt;p&gt;The upside is that it supports full HTML and you don&amp;#8217;t need to duplicate any content or mess with the plugins.&lt;/p&gt;</content>
    <author>
      <name>Kaspars Dancis</name>
      <uri>http://kaspa.rs/about/</uri>
    </author>
  </entry>
  
  <entry>
    <title>10000km around Europe</title>
    <link href="http://kaspa.rs/2011/04/10000km-around-europe" />
    <updated>2011-04-27T00:00:00-07:00</updated>
    <id>http://kaspa.rs/2011/04/10000km-around-europe</id>
    <content type="html">&lt;style&gt;      

#map {
	width: 660px;
	height: 660px;
	background: url("/images/2011-04-26-10000km-apkart-eiropai.jpg");
	position: relative;
	margin-bottom: 20px;
}
              
.checkpoint-map {  
	display: block;
	width: 36px;
	height: 36px;
	background: url("/images/2011-04-26-10000km-apkart-eiropai-checkpoint.png");
	text-align: center;
	font-family: 'Josefin Sans', serif;
	font-size: 24px;
	line-height: 40px;
	font-weight: 700;
	color: #fff;
	position: absolute;
}              

.checkpoint-map:hover,.checkpoint-map:visited {           
	color: #fff;
}                   

.checkpoint-map:hover {
	background: url("/images/2011-04-26-10000km-apkart-eiropai-checkpoint-over.png");
	text-decoration: none;    	
}    

.checkpoint-map.c1 {left:572px; top:108px;}
.checkpoint-map.c2 {left:518px; top:248px;}
.checkpoint-map.c3 {left:390px; top:240px;}
.checkpoint-map.c4 {left:410px; top:310px;}
.checkpoint-map.c5 {left:452px; top:350px;}
.checkpoint-map.c6 {left:484px; top:369px;}
.checkpoint-map.c7 {left:521px; top:412px;}
.checkpoint-map.c8 {left:561px; top:485px;}
.checkpoint-map.c9 {left:552px; top:530px;}
.checkpoint-map.c10 {left:567px; top:591px;}
.checkpoint-map.c11 {left:531px; top:584px;}
.checkpoint-map.c12 {left:506px; top:551px;}
.checkpoint-map.c13 {left:465px; top:531px;}
.checkpoint-map.c14 {left:416px; top:599px;}
.checkpoint-map.c15 {left:403px; top:524px;}
.checkpoint-map.c16 {left:371px; top:504px;}
.checkpoint-map.c17 {left:279px; top:468px;}
.checkpoint-map.c18 {left:200px; top:516px;}
.checkpoint-map.c19 {left:154px; top:436px;}
.checkpoint-map.c20 {left:203px; top:336px;}
.checkpoint-map.c21 {left:244px; top:246px;}
.checkpoint-map.c22 {left:329px; top:212px;}
.checkpoint-map.c23 {left:373px; top:149px;}
.checkpoint-map.c24 {left:467px; top:33px;}

.checkpoint {
	width: 400px;
	padding: 1px 10px;
	border-right: 1px solid #ddd;    
	border-bottom: 1px solid #ddd;    
	border-radius: 10px;
}            

.checkpoint.right {
	margin-left: 240px;
}            

.checkpoint.c1 {
	background-color: #f2f2f2;
}

.checkpoint h3 {
	margin-top: 10px;
}                               

.checkpoint img {
	float: right;
	margin-left: 10px;
	margin-bottom: 10px;
}

.checkpoint-wrap {
	padding-bottom: 20px;  
	position: relative;  
}
                                
.checkpoint-wrap .time {
	position: absolute; 
	bottom: 0px;
	font-family: 'Josefin Sans', serif;
	font-size: 18px;   
	font-weight: 700;	
	color: #aaa;
}

.checkpoint-wrap.road-right {
	background: no-repeat 420px bottom url("/images/2011-04-26-10000km-apkart-eiropai-road-right.gif");
}                    

.checkpoint-wrap.road-right .time {
	left: 480px; 
}

.checkpoint-wrap.road-left {
	padding-bottom: 20px;
	background: no-repeat 190px bottom url("/images/2011-04-26-10000km-apkart-eiropai-road-left.gif");
}      

.checkpoint-wrap.road-left .time {
	right: 480px; 
}

.checkpoint-wrap.ferry-right {
	background: no-repeat 420px bottom url("/images/2011-04-26-10000km-apkart-eiropai-ferry-right.gif");
}      

.checkpoint-wrap.ferry-left {
	padding-bottom: 20px;
	background: no-repeat 170px bottom url("/images/2011-04-26-10000km-apkart-eiropai-ferry-left.gif");
}      

.checkpoint-wrap.ferry-left .time {
	right: 500px; 
}

&lt;/style&gt;&lt;div id='map'&gt;  
	                         
		&lt;a href='/2011/04/10000km-around-europe#c1' class='checkpoint-map c1'&gt;1&lt;/a&gt;
	                         
		&lt;a href='/2011/04/10000km-around-europe#c2' class='checkpoint-map c2'&gt;2&lt;/a&gt;
	                         
		&lt;a href='/2011/04/10000km-around-europe#c3' class='checkpoint-map c3'&gt;3&lt;/a&gt;
	                         
		&lt;a href='/2011/04/10000km-around-europe#c4' class='checkpoint-map c4'&gt;4&lt;/a&gt;
	                         
		&lt;a href='/2011/04/10000km-around-europe#c5' class='checkpoint-map c5'&gt;5&lt;/a&gt;
	                         
		&lt;a href='/2011/04/10000km-around-europe#c6' class='checkpoint-map c6'&gt;6&lt;/a&gt;
	                         
		&lt;a href='/2011/04/10000km-around-europe#c7' class='checkpoint-map c7'&gt;7&lt;/a&gt;
	                         
		&lt;a href='/2011/04/10000km-around-europe#c8' class='checkpoint-map c8'&gt;8&lt;/a&gt;
	                         
		&lt;a href='/2011/04/10000km-around-europe#c9' class='checkpoint-map c9'&gt;9&lt;/a&gt;
	                         
		&lt;a href='/2011/04/10000km-around-europe#c10' class='checkpoint-map c10'&gt;10&lt;/a&gt;
	                         
		&lt;a href='/2011/04/10000km-around-europe#c11' class='checkpoint-map c11'&gt;11&lt;/a&gt;
	                         
		&lt;a href='/2011/04/10000km-around-europe#c12' class='checkpoint-map c12'&gt;12&lt;/a&gt;
	                         
		&lt;a href='/2011/04/10000km-around-europe#c13' class='checkpoint-map c13'&gt;13&lt;/a&gt;
	                         
		&lt;a href='/2011/04/10000km-around-europe#c14' class='checkpoint-map c14'&gt;14&lt;/a&gt;
	                         
		&lt;a href='/2011/04/10000km-around-europe#c15' class='checkpoint-map c15'&gt;15&lt;/a&gt;
	                         
		&lt;a href='/2011/04/10000km-around-europe#c16' class='checkpoint-map c16'&gt;16&lt;/a&gt;
	                         
		&lt;a href='/2011/04/10000km-around-europe#c17' class='checkpoint-map c17'&gt;17&lt;/a&gt;
	                         
		&lt;a href='/2011/04/10000km-around-europe#c18' class='checkpoint-map c18'&gt;18&lt;/a&gt;
	                         
		&lt;a href='/2011/04/10000km-around-europe#c19' class='checkpoint-map c19'&gt;19&lt;/a&gt;
	                         
		&lt;a href='/2011/04/10000km-around-europe#c20' class='checkpoint-map c20'&gt;20&lt;/a&gt;
	                         
		&lt;a href='/2011/04/10000km-around-europe#c21' class='checkpoint-map c21'&gt;21&lt;/a&gt;
	                         
		&lt;a href='/2011/04/10000km-around-europe#c22' class='checkpoint-map c22'&gt;22&lt;/a&gt;
	                         
		&lt;a href='/2011/04/10000km-around-europe#c23' class='checkpoint-map c23'&gt;23&lt;/a&gt;
	                         
		&lt;a href='/2011/04/10000km-around-europe#c24' class='checkpoint-map c24'&gt;24&lt;/a&gt;
		
&lt;/div&gt;&lt;!-- &lt;div class='checkpoint-wrap road-right' id='c1'&gt;&lt;div class='checkpoint left c1 '&gt;
&lt;p&gt;&lt;a href='http://farm6.static.flickr.com/5145/5660733184_a28a775202_b.jpg'&gt;&lt;img src='http://farm6.static.flickr.com/5145/5660733184_a28a775202_s.jpg' alt='' /&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h3&gt;1. Riga, March 17, 6AM&lt;/h3&gt;

&lt;p&gt;Travel spirit wakes me up even without an alarm-clock. &lt;a href='http://twitter.com/gundegm'&gt;Gundega&lt;/a&gt; is in a similar mood, only &lt;a href='http://media.tumblr.com/tumblr_lj715lGCcg1qal78i.jpg'&gt;Olivers&lt;/a&gt; is not so happy about the unusually early morning.&lt;/p&gt;

&lt;p&gt;It&amp;#8217;s -3°C outside and we are extremly tired of that. Got to leave this place as fast as possible.&lt;/p&gt;
&lt;/div&gt;
&lt;div class='time'&gt;
&lt;p&gt;670km ↝ 10h&lt;/p&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;div class='checkpoint-wrap road-left' id='c2'&gt;&lt;div class='checkpoint right c1 '&gt;
&lt;h3&gt;2. Warsaw&lt;/h3&gt;

&lt;p&gt;Infamous Poland crossing seem to have goten more enjoyable; there are obvious improvements in the road infrastructure. Foodwise not much has change though; it&amp;#8217;s not a very good idea to eat at gas-stations or other similar places.&lt;/p&gt;

&lt;p&gt;Our hotel has windows covered with political ads. Ok, apparrently it&amp;#8217;s crisis and everyone makes money as they see fit.&lt;/p&gt;
&lt;/div&gt;
&lt;div class='time'&gt;
&lt;p&gt;600km ↝ 8h&lt;/p&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;div class='checkpoint-wrap road-right' id='c3'&gt;&lt;div class='checkpoint left c1 '&gt;
&lt;h3&gt;3. Berlin&lt;/h3&gt;

&lt;p&gt;One of the most progressive cities in Europe at the moment. Living here is cheap and high-quality while the environment is unobtrusively multi-cultural. We meet-up with &lt;a href='http://twitter.com/DainaMisina'&gt;Daina&lt;/a&gt; and time runs unnoticed.&lt;/p&gt;

&lt;p&gt;&lt;em&gt;Tip&lt;/em&gt; - have a lunch at Vietnamese restaurant &lt;a href='https://foursquare.com/venue/190913'&gt;Monsieur Vuong&lt;/a&gt;. Food is rather spicy, but tastes almost as good as at &lt;a href='https://foursquare.com/venue/2834'&gt;The Slanted Door&lt;/a&gt; in San Francisco, though 5 times cheaper and much closer (for those in Europe).&lt;/p&gt;
&lt;/div&gt;
&lt;div class='time'&gt;
&lt;p&gt;350km ↝ 4h&lt;/p&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;div class='checkpoint-wrap road-left' id='c4'&gt;&lt;div class='checkpoint right c1 '&gt;
&lt;h3&gt;4. Prague&lt;/h3&gt;

&lt;p&gt;Somewhat unexpectedly, Czech Respublic greets us with the worst road in the whole journey. Motorway from Prague to Bratislava feels like driving on the staircase. If your car has sport&amp;#8217;s suspension, you&amp;#8217;ll be much better off avoiding it.&lt;/p&gt;
&lt;/div&gt;
&lt;div class='time'&gt;
&lt;p&gt;330km ↝ 4h&lt;/p&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;div class='checkpoint-wrap road-right' id='c5'&gt;&lt;div class='checkpoint left c1 '&gt;
&lt;p&gt;&lt;a href='http://farm6.static.flickr.com/5301/5660733494_ddbf48a673_b.jpg'&gt;&lt;img src='http://farm6.static.flickr.com/5301/5660733494_ddbf48a673_s.jpg' alt='' /&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h3&gt;5. Bratislava&lt;/h3&gt;

&lt;p&gt;After an unsuccessful attempt to locate a breakfast near the hotel, we go out for an extended walk. Eventually we find a pleasant &lt;a href='https://foursquare.com/venue/1708809'&gt;cafe&lt;/a&gt; and conclude that Bratislava is pretty.&lt;/p&gt;
&lt;/div&gt;
&lt;div class='time'&gt;
&lt;p&gt;200km ↝ 2h&lt;/p&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;div class='checkpoint-wrap road-left' id='c6'&gt;&lt;div class='checkpoint right c1 '&gt;
&lt;p&gt;&lt;a href='http://farm6.static.flickr.com/5306/5660733770_1a8a57a7b4_b.jpg'&gt;&lt;img src='http://farm6.static.flickr.com/5306/5660733770_1a8a57a7b4_s.jpg' alt='' /&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h3&gt;6. Budapest&lt;/h3&gt;

&lt;p&gt;My knowledge about Hungary was limited to modest sterotypes, which where quickly broken. Motorway after Czech Respublic and Slovakia is perfect, while Budapest turns out to be suprisingly contemporary.&lt;/p&gt;

&lt;p&gt;&lt;em&gt;Tip&lt;/em&gt; - have a dinner at &lt;a href='https://foursquare.com/venue/1091038'&gt;Klassz&lt;/a&gt;. Marvelous local wines (for instance Ikon Shiraz) and the prices are very ok.&lt;/p&gt;
&lt;/div&gt;
&lt;div class='time'&gt;
&lt;p&gt;300km ↝ 4h&lt;/p&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;div class='checkpoint-wrap road-right' id='c7'&gt;&lt;div class='checkpoint left c1 '&gt;
&lt;h3&gt;7. Timişoara&lt;/h3&gt;

&lt;p&gt;Original plan to cross Serbia gets impulsively switched to Romania. Romanians are kind and friendly, although their english knowledge is rather modest. The driving is tiring; there&amp;#8217;s an village every 10km, and ussually it&amp;#8217;s small but long.&lt;/p&gt;

&lt;p&gt;To get into Bulgaria you have to cross Danube. Our &lt;a href='http://www.navigon.com/portal/int/produkte/navigationssoftware/mobile_navigator_iphone_eu.html'&gt;road-guru&lt;/a&gt; confuses us here, pretending there&amp;#8217;s a bridge. There indeed is, however it ends near the middle of the river. Eventually we cross it via the ferry on which all the other vehicles are trucks.&lt;/p&gt;
&lt;/div&gt;
&lt;div class='time'&gt;
&lt;p&gt;500km ↝ 10h&lt;/p&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;div class='checkpoint-wrap road-left' id='c8'&gt;&lt;div class='checkpoint right c1 '&gt;
&lt;h4&gt;8. Sofia&lt;/h4&gt;

&lt;p&gt;After reading &lt;a href='http://wikitravel.org/en/Bulgaria'&gt;wikitravel.org&lt;/a&gt; you get a rather troubling impression about driving culture in Bulgaria, which turns out to be quite true. Especially watch out for overtaking maneuvers where oncoming traffic is often completely ignored.&lt;/p&gt;

&lt;p&gt;Overall Bulgaria feels like a country with most extremes, it alternates a lot between very modern and a complete opposite. Unfortunately we don&amp;#8217;t have enough time to explore it much on this trip.&lt;/p&gt;
&lt;/div&gt;
&lt;div class='time'&gt;
&lt;p&gt;300km ↝ 5h&lt;/p&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;div class='checkpoint-wrap road-right' id='c9'&gt;&lt;div class='checkpoint left c1 '&gt;
&lt;p&gt;&lt;a href='http://farm6.static.flickr.com/5030/5660734278_9a23de5ca4_b.jpg'&gt;&lt;img src='http://farm6.static.flickr.com/5030/5660734278_9a23de5ca4_s.jpg' alt='' /&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h4&gt;9. Thessaloniki&lt;/h4&gt;

&lt;p&gt;After crossing the Bulgaria-Greece border, for a moment we feel like teleported into another world. Soon we arrive in Thessaloniki which is a pleasant sea-side city and even more so because of +20°C outside. Out of the three cities visited in Greece, this was our favourite.&lt;/p&gt;
&lt;/div&gt;
&lt;div class='time'&gt;
&lt;p&gt;500km ↝ 6h&lt;/p&gt;
&lt;/div&gt;  
&lt;/div&gt;&lt;div class='checkpoint-wrap road-left' id='c10'&gt;&lt;div class='checkpoint right c1 '&gt;
&lt;p&gt;&lt;a href='http://farm6.static.flickr.com/5150/5567622879_69d435694a_b.jpg'&gt;&lt;img src='http://farm6.static.flickr.com/5150/5567622879_69d435694a_s.jpg' alt='' /&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h4&gt;10. Athens&lt;/h4&gt;

&lt;p&gt;At first sight, Athens doesn&amp;#8217;t look like much. However once you get to Acropolis, its historic glamor takes over you. Also called the cradle of modern civilization, it&amp;#8217;s uncomparable to anything else.&lt;/p&gt;
&lt;/div&gt;
&lt;div class='time'&gt;
&lt;p&gt;200km ↝ 3h&lt;/p&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;div class='checkpoint-wrap road-right' id='c11'&gt;&lt;div class='checkpoint left c1 '&gt;
&lt;p&gt;&lt;a href='http://farm6.static.flickr.com/5225/5660164919_dec6bbcf1b_b.jpg'&gt;&lt;img src='http://farm6.static.flickr.com/5225/5660164919_dec6bbcf1b_s.jpg' alt='' /&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h4&gt;11. Patra&lt;/h4&gt;

&lt;p&gt;Here we observe an amusing view - a truck stops at the junction on the red light, a bunch of youngsters run to it, open the rear-side doors obviously intdending to unload whatever is inside. Unfortunately for them, the truck contains something uninteresting so they flee. In the meantime, the face expression of truck&amp;#8217;s driver is completely indifferent as if this kind of stuff happens regularly. As &lt;a href='http://www.topgear.com/'&gt;Richard Hammond&lt;/a&gt; would put it - &amp;#8220;business as ussual&amp;#8221;.&lt;/p&gt;

&lt;p&gt;&lt;em&gt;Tip&lt;/em&gt; - &lt;a href='https://foursquare.com/venue/4797479'&gt;Colazione&lt;/a&gt; serves a rather enjoyable lunch.&lt;/p&gt;
&lt;/div&gt;
&lt;div class='time'&gt;
&lt;p&gt;300km ↝ 5h&lt;/p&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;div class='checkpoint-wrap ferry-left' id='c12'&gt;&lt;div class='checkpoint right c1 '&gt;
&lt;h4&gt;12. Igoumenitsa&lt;/h4&gt;

&lt;p&gt;Ferry departs only at midnight so we hang out around the local cafes for the whole evening. There&amp;#8217;s realy not much else to do here.&lt;/p&gt;
&lt;/div&gt;
&lt;div class='time'&gt;
&lt;p&gt;250km ↝ 7h&lt;/p&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;div class='checkpoint-wrap road-right' id='c13'&gt;&lt;div class='checkpoint left c1 '&gt;
&lt;h4&gt;13. Brindisi&lt;/h4&gt;

&lt;p&gt;Italy meets us with a very rapid climate. Weather radically changes at least five times on our way to Sicily.&lt;/p&gt;
&lt;/div&gt;
&lt;div class='time'&gt;
&lt;p&gt;540km ↝ 9h&lt;/p&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;div class='checkpoint-wrap road-left' id='c14'&gt;&lt;div class='checkpoint right c1 '&gt;
&lt;p&gt;&lt;a href='http://farm6.static.flickr.com/5142/5660165135_4314e5e892_b.jpg'&gt;&lt;img src='http://farm6.static.flickr.com/5142/5660165135_4314e5e892_s.jpg' alt='' /&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h4&gt;14. Catania&lt;/h4&gt;

&lt;p&gt;We are rapidly acquiring gesture communication skills since this is the first place where practically nobody speaks any english. Driving is also a challenge because it seems as if road signs have only informative meaning and traffic lights are very few.&lt;/p&gt;

&lt;p&gt;Also we experience a little cultural shock from parking Italian-style - cars get parked in a tight row one after another and you have to leave the keys in the vehicle. Our communication with parking&amp;#8217;s supervisor probably looked quite amusing.&lt;/p&gt;
&lt;/div&gt;
&lt;div class='time'&gt;
&lt;p&gt;540km ↝ 8h&lt;/p&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;div class='checkpoint-wrap road-right' id='c15'&gt;&lt;div class='checkpoint left c1 '&gt;
&lt;p&gt;&lt;a href='http://farm6.static.flickr.com/5141/5660165605_c3bb6f0354_b.jpg'&gt;&lt;img src='http://farm6.static.flickr.com/5141/5660165605_c3bb6f0354_s.jpg' alt='' /&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h4&gt;15. Naples&lt;/h4&gt;

&lt;p&gt;If Catania&amp;#8217;s traffic is challenging, Naples is a nightmare. There are crazy scooters everywhere and the streets are very narrow, goes up and down and ussually in one direction only.&lt;/p&gt;

&lt;p&gt;This is the first place where road-guru really lets us down, eventually leading to an impossible turn. Subsequent driving downhill backwards on a very narrow street (actually gap would be a more appropriate name for it) is epic.&lt;/p&gt;

&lt;p&gt;&lt;em&gt;Tip&lt;/em&gt; - Naples is the birthplace of pizzas, and &lt;a href='https://foursquare.com/venue/11192550'&gt;here&lt;/a&gt; they are trully brilliant.&lt;/p&gt;
&lt;/div&gt;
&lt;div class='time'&gt;
&lt;p&gt;270km ↝ 3h&lt;/p&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;div class='checkpoint-wrap road-left' id='c16'&gt;&lt;div class='checkpoint right c1 '&gt;
&lt;p&gt;&lt;a href='http://farm6.static.flickr.com/5301/5660166055_bc8dcb0291_b.jpg'&gt;&lt;img src='http://farm6.static.flickr.com/5301/5660166055_bc8dcb0291_s.jpg' alt='' /&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h4&gt;16. Rome&lt;/h4&gt;

&lt;p&gt;After Catania and Naples, Rome feels like a fresh air.&lt;/p&gt;

&lt;p&gt;I guess it&amp;#8217;s true, this is one of the most romantic cities in Europe.&lt;/p&gt;
&lt;/div&gt;
&lt;div class='time'&gt;
&lt;p&gt;700km ↝ 8h&lt;/p&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;div class='checkpoint-wrap road-right' id='c17'&gt;&lt;div class='checkpoint left c1 '&gt;
&lt;p&gt;&lt;a href='http://farm6.static.flickr.com/5221/5660736336_57906b40ea_b.jpg'&gt;&lt;img src='http://farm6.static.flickr.com/5221/5660736336_57906b40ea_s.jpg' alt='' /&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h4&gt;17. Nice&lt;/h4&gt;

&lt;p&gt;Here it feels like the time has stopped. We pause a little and stay for a week, also checking out Cannas and Monaco. Our favourite turns out to be Cannes, as Nice appears too slow but Monaco uneasy.&lt;/p&gt;

&lt;p&gt;Oliver&amp;#8217;s birthday get&amp;#8217;s celebrated in a little &lt;a href='http://yfrog.com/h8wnfbsj'&gt;video chat&lt;/a&gt; across three corners of Europe. And finally we conclude that French kitchen beats Italian, at least this time around.&lt;/p&gt;
&lt;/div&gt;
&lt;div class='time'&gt;
&lt;p&gt;660km ↝ 7h&lt;/p&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;div class='checkpoint-wrap road-left' id='c18'&gt;&lt;div class='checkpoint right c1 '&gt;
&lt;p&gt;&lt;a href='http://farm6.static.flickr.com/5030/5660166645_49d0e1a2fe_b.jpg'&gt;&lt;img src='http://farm6.static.flickr.com/5030/5660166645_49d0e1a2fe_s.jpg' alt='' /&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h4&gt;18. Barcelona&lt;/h4&gt;

&lt;p&gt;Quite possibly the most stylish city in Europe. Architecture brings surprises on every corner and sometimes it feels like you are in the middle of an enourmous art exhibition.&lt;/p&gt;

&lt;p&gt;&lt;em&gt;Tip&lt;/em&gt; - have a dinner at &lt;a href='https://foursquare.com/venue/189151'&gt;Santa Maria&lt;/a&gt;. As a lot of restaurants in Barcelona, this is fusion with a wide variety of influences. It&amp;#8217;s small, stylish and the food is unforgetable. Order the tasting menu which includes almost everything the restaurant has to offer in small portions.&lt;/p&gt;

&lt;p&gt;&lt;em&gt;Be careful&lt;/em&gt; - with parking. Even if you leave a car in an allowed spot but forget to pay, it will be towed away in a matter of minutes and will cost you at least 150EUR.&lt;/p&gt;
&lt;/div&gt;
&lt;div class='time'&gt;
&lt;p&gt;640km ↝ 7h&lt;/p&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;div class='checkpoint-wrap road-right' id='c19'&gt;&lt;div class='checkpoint left c1'&gt;
&lt;h4&gt;19. Bordeaux&lt;/h4&gt;

&lt;p&gt;I&amp;#8217;m not sure why, but we almost instantly feel like at home in this western French town. If only we wouldn&amp;#8217;t have problems communicating in french&amp;#8230;&lt;/p&gt;
&lt;/div&gt;
&lt;div class='time'&gt;
&lt;p&gt;580km ↝ 6h&lt;/p&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;div class='checkpoint-wrap road-left' id='c20'&gt;&lt;div class='checkpoint right c1'&gt;
&lt;p&gt;&lt;a href='http://farm6.static.flickr.com/5261/5660186667_42c96acb96_b.jpg'&gt;&lt;img src='http://farm6.static.flickr.com/5261/5660186667_42c96acb96_s.jpg' alt='' /&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h4&gt;20. Paris&lt;/h4&gt;

&lt;p&gt;What can you possibly say about Paris that hasn&amp;#8217;t been said before? We are here just for one night, but nevertheless this is the most beautiful city in the journey.&lt;/p&gt;

&lt;p&gt;&lt;a href='http://www.facebook.com/perepeckina'&gt;Olga&lt;/a&gt; takes us to a &lt;a href='https://foursquare.com/venue/5734854'&gt;nice restaurant&lt;/a&gt; with a real Paris authenticity feel. Besides great food they serve the most ridiculously large cake I&amp;#8217;ve ever seen. Say what you will but they aren&amp;#8217;t moderate here.&lt;/p&gt;
&lt;/div&gt;
&lt;div class='time'&gt;
&lt;p&gt;480km ↝ 5h&lt;/p&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;div class='checkpoint-wrap road-right' id='c21'&gt;&lt;div class='checkpoint left c1 '&gt;
&lt;h4&gt;21. Leiden&lt;/h4&gt;

&lt;p&gt;A little town close to Amsterdam, where we hang out with &lt;a href='http://twitter.com/yeahzane'&gt;Zane&lt;/a&gt; and &lt;a href='http://twitter.com/dzinsustils'&gt;Martins&lt;/a&gt; and enjoy the first home-grill of the season. Yeah, it&amp;#8217;s super-tasty.&lt;/p&gt;

&lt;p&gt;&lt;em&gt;Tip&lt;/em&gt; - for fast, cheap and delicous oriental-style lunch/dinner, stop by &lt;a href='https://foursquare.com/venue/1585457'&gt;Eazie&lt;/a&gt;.&lt;/p&gt;
&lt;/div&gt;
&lt;div class='time'&gt;
&lt;p&gt;500km ↝ 6h&lt;/p&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;div class='checkpoint-wrap road-left' id='c22'&gt;&lt;div class='checkpoint right c1 '&gt;
&lt;h4&gt;22. Hamburg&lt;/h4&gt;

&lt;p&gt;We arrive here late in the evening and don&amp;#8217;t have enough time to fully grasp it. Plus seems like we have relaxed too much near the end of the journey and have caught a cold.&lt;/p&gt;

&lt;p&gt;One weirdness we come across is that grocery stores don&amp;#8217;t accept international payment cards such as Visa. Quoting shopgirl, &amp;#8220;no only normal card bitte&amp;#8221;.&lt;/p&gt;
&lt;/div&gt;
&lt;div class='time'&gt;
&lt;p&gt;470km ↝ 5h&lt;/p&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;div class='checkpoint-wrap road-right' id='c23'&gt;&lt;div class='checkpoint left c1 '&gt;
&lt;h4&gt;23. Copenhagen&lt;/h4&gt;

&lt;p&gt;Here we finally realise that our genes are northern after all. Copenhagen gets the title of &amp;#8220;the city where we would gladly live&amp;#8221;.&lt;/p&gt;
&lt;/div&gt;
&lt;div class='time'&gt;
&lt;p&gt;660km ↝ 7h&lt;/p&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;div class='checkpoint-wrap ferry-left' id='c24'&gt;&lt;div class='checkpoint right c1 '&gt;
&lt;h4&gt;24. Stockholm&lt;/h4&gt;

&lt;p&gt;After fairly uneventful but really beautiful passage, we head straight for the ferry. At the check-in the officer starts calling our names before we even say something or show any documents. Few moments later our confusion fades when we realise that he probably had our car number registered.&lt;/p&gt;
&lt;/div&gt;
&lt;div class='time'&gt;
&lt;p&gt;540km ↝ 15h&lt;/p&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;div class='checkpoint-wrap' id='c25'&gt;&lt;div class='checkpoint left c1 '&gt;
&lt;h4&gt;25. Riga, April 25, 11:00&lt;/h4&gt;

&lt;p&gt;There are still a lot of little ice blocks in the sea. Fortunately in Riga, at least temperature-wise, the spring is on. It feels a bit weird, but still truly great to return home!&lt;/p&gt;
&lt;/div&gt;&lt;/div&gt;
&lt;p&gt;Big thanks to &lt;a href='http://www.navigon.com/portal/int/produkte/navigationssoftware/mobile_navigator_iphone_eu.html'&gt;Navigon&lt;/a&gt; for almost perfect driving directions, &lt;a href='http://foursquare.com'&gt;Foursquare&lt;/a&gt; for help in finding the coolest restaurants, &lt;a href='http://www.tripadvisor.com/'&gt;TripAdvisor&lt;/a&gt; for quite reliable hotel recommendations, &lt;a href='http://www.abroadband.com/'&gt;ABroadband&lt;/a&gt; for mobile internet, and most importantly, to Daina, Olga, Zane and Martins for the great time we spent together.  --&gt;&lt;/p&gt;</content>
    <author>
      <name>Kaspars Dancis</name>
      <uri>http://kaspa.rs/about/</uri>
    </author>
  </entry>
  
  <entry>
    <title>People will make or break your startup</title>
    <link href="http://kaspa.rs/2010/01/people-will-make-or-brake-your-startup" />
    <updated>2010-01-07T00:00:00-08:00</updated>
    <id>http://kaspa.rs/2010/01/people-will-make-or-brake-your-startup</id>
    <content type="html">&lt;p&gt;As &lt;a href='http://sivers.org/multiply'&gt;Derek Sivers once noted&lt;/a&gt;, ideas are worth nothing without execution. But what&amp;#8217;s the execution? It&amp;#8217;s when somebody take the idea and materialize it. So it&amp;#8217;s really about people.&lt;/p&gt;

&lt;p&gt;Truth is that in most cases you can&amp;#8217;t get too far alone, so you need a team. And I&amp;#8217;m pretty sure that is the most vital factor of startup&amp;#8217;s success.&lt;/p&gt;
&lt;div id='__ss_2690333' style='width:660px'&gt;&lt;iframe marginheight='0' scrolling='no' src='http://www.slideshare.net/slideshow/embed_code/2690333' marginwidth='0' frameborder='0' height='533' width='660'&gt; &lt;/iframe&gt;&lt;/div&gt;</content>
    <author>
      <name>Kaspars Dancis</name>
      <uri>http://kaspa.rs/about/</uri>
    </author>
  </entry>
  
  <entry>
    <title>iPhone arcade game Punchball is now open-source</title>
    <link href="http://kaspa.rs/2009/12/punchball-is-open-source" />
    <updated>2009-12-04T00:00:00-08:00</updated>
    <id>http://kaspa.rs/2009/12/punchball-is-open-source</id>
    <content type="html">&lt;p&gt;Here’s a good opportunity to see &lt;a href='http://www.cocos2d-iphone.org/'&gt;Cocos2D&lt;/a&gt; iPhone gaming framework in action.&lt;/p&gt;

&lt;p&gt;&lt;img src='/images/2009-12-04-punchball-is-open-source.jpg' alt='Punchball' /&gt;&lt;/p&gt;

&lt;p&gt;Punchball is an original 2D arcade boxing game for iPhone. Technically the two most interesting features are a bit unconventional physics simulation, leveraging &lt;a href='http://code.google.com/p/chipmunk-physics/'&gt;Chimpunk engine&lt;/a&gt; and peer-to-peer multiplayer gaming via Bluetooth, which is simple on the surface, but in practice requires all kinds of tricks for latency compensation.&lt;/p&gt;

&lt;p&gt;You can get Punchball sources from &lt;a href='https://github.com/k7d/punchball'&gt;GitHub&lt;/a&gt; and compile it yourself, or install it directly from &lt;a href='http://itunes.apple.com/WebObjects/MZStore.woa/wa/viewSoftware?id=330550654&amp;amp;mt=8&amp;amp;s=143441'&gt;AppStore&lt;/a&gt;.&lt;/p&gt;</content>
    <author>
      <name>Kaspars Dancis</name>
      <uri>http://kaspa.rs/about/</uri>
    </author>
  </entry>
  
  <entry>
    <title>AppRocket 2.0.0</title>
    <link href="http://kaspa.rs/2009/12/approcket-2-0-0" />
    <updated>2009-12-01T00:00:00-08:00</updated>
    <id>http://kaspa.rs/2009/12/approcket-2-0-0</id>
    <content type="html">&lt;p&gt;&lt;a href='https://github.com/k7d/approcket/wiki'&gt;AppRocket&lt;/a&gt; is an open-source toolkit that enables live synchronization between &lt;a href='http://code.google.com/appengine/'&gt;Google App Engine&lt;/a&gt; datastore and MySQL database. It can be used to migrate existing MySQL-based application to AppEngine, backup/restore AppEngine data as well for building hybrid AppEngine / MySQL applications.&lt;/p&gt;

&lt;p&gt;This AppRocket update brings a bunch of bug-fixes as well as several functional improvements. The biggest improvement is the new multi-threaded engine which enables processing of different entity kinds in parallel. This provides a significant performance boost when your application contains more than one actively updated entity kind.&lt;/p&gt;

&lt;p&gt;There are also few configuration enhancements, such as:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;RECEIVE_EXCLUDE_FIELDS and SEND_EXCLUDE_FIELDS which allow to specify only fields that you want to exclude from replication. Earlier you can only do opposite by listing fields that should be included, which is not always very convenient&lt;/li&gt;

&lt;li&gt;AFTER_SEND which allows to setup a hook function which gets triggered every time an entity is uploaded to App Engine Last but not least, this update has been extensively tested in couple live projects and appears to be stable and rock-solid.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;You can get AppRocket from GitHub: &lt;a href='https://github.com/k7d/approcket'&gt;https://github.com/k7d/approcket&lt;/a&gt;&lt;/p&gt;</content>
    <author>
      <name>Kaspars Dancis</name>
      <uri>http://kaspa.rs/about/</uri>
    </author>
  </entry>
  
</feed>

