<?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>klauskomenda.com</title>
	<atom:link href="http://www.klauskomenda.com/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.klauskomenda.com</link>
	<description>Just another WordPress weblog</description>
	<lastBuildDate>Sun, 04 Jul 2010 01:58:53 +0000</lastBuildDate>
	<generator>http://wordpress.org/?v=2.9.2</generator>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
			<item>
		<title>Custom Guitars from Sweetwood Guitar Company</title>
		<link>http://www.klauskomenda.com/archives/2009/11/21/custom-guitars-from-sweetwood-guitar-company/</link>
		<comments>http://www.klauskomenda.com/archives/2009/11/21/custom-guitars-from-sweetwood-guitar-company/#comments</comments>
		<pubDate>Sat, 21 Nov 2009 22:39:14 +0000</pubDate>
		<dc:creator>Klaus</dc:creator>
				<category><![CDATA[Guitar]]></category>
		<category><![CDATA[Music]]></category>

		<guid isPermaLink="false">http://www.klauskomenda.com/?p=803</guid>
		<description><![CDATA[Sometimes, and by pure chance, one bumps into some interesting people. At some guitar shop in San Jose, I happened to bump into Glenn, owner of <a href="http://sweetwoodguitars.com/">Sweetwood Guitar Company</a>, a great guy who knows his craft of building custom guitars.]]></description>
			<content:encoded><![CDATA[<p>A little while ago I had some issues with my <a href="/photos/album/72157604183048136/photo/2349712544/My-Guitars-Washburn-EA20SDL.html">Washburn Electric Acoustic</a>. At the second visit to Guitar Center in San Jose, I happened to meet Glenn, owner of <a href="http://sweetwoodguitars.com/">Sweetwood Guitar Company</a>. He immediately offered his help, which I found really great. In the end, because Guitar Center guys apparently did not have the knowledge, I had to take him up on his offer.</p>
<p><img src="/wp-content/uploads/2009/11/tobacco400.jpg" alt="One of Glenns guitars, model Comet" width="293"  class="img-left" />I went to see Glenn at his shop, where he not only was able to fix my issue right away, he also showed me some of his models and told me a little bit about the business. &#8220;It takes me about 25 hours for one guitar&#8221;, he told me, which is, given the fact that if you look at the fine quality, does not sound that much. He uses a CNC lathe for cutting the exact form and shape out of the wood and, after assembling the neck etc., he sends the baby off to LA for finishing.</p>
<p>On his website, you can check out his current <a href="http://sweetwoodguitars.com/guitars.cfm">guitar models</a> as well as his <a href="http://sweetwoodguitars.com/amps.cfm">amp models</a>. In addition to that, Glenn also offers various other <a href="http://sweetwoodguitars.com/services.cfm">guitar and amp-related services</a>. You can also check out <a href="http://www.youtube.com/watch?v=wRHyXJc77II">his</a> <a href="http://www.youtube.com/watch?v=-gvnfTXnHGc">videos</a> on YouTube to see that not only can he build these things, but is also quite the master on the fretboard.</p>
<p>Making use of the web, Glenn can also be found on <a href="http://www.facebook.com/pages/Sweetwood-Guitars/124543586565">Facebook</a> and he will also have a stand at <a href="http://www.namm.org/thenammshow/2010">The 2010 NAMM Show</a>, January 14-17 in <a href="http://en.wikipedia.org/wiki/Anaheim" class="geolinkr">Anaheim, California</a>. Should you make your way there, definitely pay him a visit and check out his work. It is really great and made with real passion for guitars and music.  </p>
]]></content:encoded>
			<wfw:commentRss>http://www.klauskomenda.com/archives/2009/11/21/custom-guitars-from-sweetwood-guitar-company/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>First Steps with YUI3</title>
		<link>http://www.klauskomenda.com/archives/2009/07/20/first-steps-with-yui3/</link>
		<comments>http://www.klauskomenda.com/archives/2009/07/20/first-steps-with-yui3/#comments</comments>
		<pubDate>Mon, 20 Jul 2009 19:03:40 +0000</pubDate>
		<dc:creator>Klaus</dc:creator>
				<category><![CDATA[Coding]]></category>
		<category><![CDATA[Web]]></category>

		<guid isPermaLink="false">http://www.klauskomenda.com/?p=781</guid>
		<description><![CDATA[YUI3 moved from "Preview Release" to "Beta" a few weeks ago. So I figured, this is a good time now to play around with it and see what my colleagues on the other side of the wall came up with.]]></description>
			<content:encoded><![CDATA[<p>I have used <a href="http://developer.yahoo.com/yui/">YUI2</a> quite extensively since I joined Yahoo! in May 2007. Before that I did not really have much experience with any JavaScript library, I had played around with <a href="http://script.aculo.us/">script.aculo.us</a> and <a href="http://jquery.com/">jQuery</a> a little bit, but that was all, pretty much. Because here at Yahoo! we, naturally, use YUI in all our projects, I had to dive in and learn how to use it. After a bit of a rough start, figuring out the basics, I started to like YUI2. The reasons why were the modular approach, the good API documentation and, to me, the general way of how to use certain functions seemed pretty logical to me. Now, with the <a href="http://developer.yahoo.com/yui/3">new 3-series</a> coming out, I was curious about what changed, what improved and what to learn in order to use the next generation of the library.</p>
<h2>A few major differences</h2>
<p>I am not going to go into all the things that are different between YUI2 and YUI3, this is beyond the scope of this post. There is already lots of documentation on <abbr title="Yahoo! Developer Network"><a href="http://developer.yahoo.com/yui/3">YDN</a></abbr> and a <a href="http://developer.yahoo.com/yui/theater/desai-yui3.html">very good video</a> covering lots of questions like &#8220;So whats different?&#8221;. Just a few key things to note:</p>
<ul>
<li>YUI3 is majorly different to YUI2. It is basically a new library and thus also, in a lot of ways, works completely different than its predecessor.</li>
<li>To avoid conflicts between the two libraries, the global YAHOO object (used in YUI2) is now YUI. This also allows to have both YUI2 and YUI3 on the same page.</li>
<li>Every piece of code you write needs to be wrapped in the following statement: <code>YUI().use([YUI3 modules I want to use], function (Y) { ...my code here... } );</code>This, in theory, makes creating namespaces, like we did in YUI2, unnecessary.</li>
</ul>
<h2>A Simple Example: JavaScript Countdown</h2>
<p>Just to play around with it and start with a pretty basic example, I wanted to do a countdown in JavaScript. How would I do that using YUI3?</p>
<h3>Step by Step</h3>
<p>The following steps would need to get executed in order to make this example work:</p>
<ol>
<li>Put basic markup on the page, which marks the start time of the countdown, e.g. 30 minutes and 0 seconds.</li>
<li>Have one function, <span class="code">decreaseSeconds</span> that decreases the seconds and call this function every second (or 1000 milliseconds).</li>
<li>If the seconds counter reaches 0, decrease the minutes using <span class="code">decreaseMinutes</span>.</li>
<li>Stop the timer if minutes and seconds reach 0.</li>
</ol>
<h3>Basic Markup</h3>
<p>As said, the markup on the page already serves as the start time for the countdown and is pretty simple:</p>
<pre><code >&lt;div id="countdown"&gt;
        &lt;span id="min"&gt;30&lt;/span&gt;:&lt;span id="sec"&gt;00&lt;/span&gt;
&lt;/div&gt;</code></pre>
<h3>Putting YUI3 on the page</h3>
<p>In order to put YUI3 on the page, we need to include the YUI Global Object:</p>
<pre><code>&lt;script src="http://yui.yahooapis.com/3.0.0b1/build/yui/yui-min.js" type="text/javascript"&gt;&lt;/script&gt; </code></pre>
<p>And just to verify this is working, we will add some debugging code on the page:</p>
<pre><code>YUI().use("node", function (Y) {
    alert("YUI3 is here!");
});</code></pre>
<p>Just a few words on this. The first argument of the <span class="code">use</span> function, in this case &#8220;node&#8221;, tells the YUI instance which modules to load. As it will turn out later, the <a href="http://developer.yahoo.com/yui/3/node/">node module</a>, together with the functionality that the YUI global object provides, are enough to make this example work. The last argument here is a callback function, which has the YUI instance as an argument. In this function is where your code lives and has access to the YUI3 instance and modules, if loaded in. More on this in the documentation.</p>
<p>So we got the <a href="/lab/yui3/countdown/basics.html">basics</a> covered, YUI3 is on the page and we can move on to the program logic.</p>
<h3>Setting up variables and functions</h3>
<p>First I am going to set up some variables that I am going to need throughout the code:</p>
<pre><code>var minutes = Y.get("#min"),
    seconds = Y.get("#sec"),
    timer,
    liftOff = false;</code></pre>
<p>As you can see here, YUI3 gives you the ability to access a DOM element using CSS selectors out of the box. <span class="code">Y.get(&#8220;#min&#8221;)</span> returns a node (in YUI3 terms) which wraps the underlying DOM object. But be aware that this object here is <em>not</em> the DOM object itself, which is different to what <span class="code">YAHOO.util.Dom.get(&#8220;min&#8221;)</span> would do. </p>
<p>We will also set up the <span class="code">decreaseSeconds</span> function and the timer:</p>
<pre><code>function decreaseSeconds() {
    // get current seconds value
    var secs = seconds.get("innerHTML");

    if (secs === "00") {
        // move to 59
        secs = 59;
        decreaseMinutes();
    } else {
        secs--;
        if (secs &lt; 10) {
            secs = "0" + secs;
        }
    }

    if (!liftOff) {
        seconds.set("innerHTML", secs);
    }
}

timer = Y.later(1000, null, decreaseSeconds, [], true);</code></pre>
<p>Instead of talking about the program logic, which should be pretty straight forward, I would like to highlight YUI3 specific things here:</p>
<ul>
<li>Setting up the timer using <span class="code">Y.later</span> is pretty easy and comparable to <span class="code">YAHOO.later</span> in YUI2.</li>
<li>As the node returned by <span class="code">Y.get</span> is not the DOM node, doing something like <span class="code">seconds.innerHTML</span> does not work. In fact, it will return &#8216;undefined&#8217;. If you do a <span class="code">console.dir(seconds)</span> you will discover that this does not look like a DOM object at all, but is, as stated above, a YUI node instance wrapping the DOM element with id=&#8221;sec&#8221;. So instead of doing <span class="code">.innerHTML</span>, we need to use <span class="code">seconds.get(&#8220;innerHTML&#8221;)</span> to access the content between the opening and closing tag.</li>
<li>Likewise, to set content using innerHTML, we need to do <span class="code">seconds.set(&#8220;innerHTML&#8221;, secs)</span>.</li>
</ul>
<p>This is something to get used to at first. Because in YUI2, people (including me) were used to have the actual DOM object at hand and perform native DOM operations on it. <del>This is not possible anymore with YUI3</del>. It is still possible to access the underlying DOM objects, see <a href="/archives/2009/07/20/first-steps-with-yui3/#comment-22211">Luke&#8217;s comment</a>.</p>
<p>After <a href="/lab/yui3/countdown/vars_and_funct.html">setting this up</a>, we can move on to adding the functionality for decreasing the minutes and making the countdown work.</p>
<h3>Making it work</h3>
<p>Here is the code and logic for decreasing the minutes and canceling the timer if 0 is reached:</p>
<pre><code>function decreaseMinutes() {
    var mins = minutes.get("innerHTML");

    if (mins &gt; 0) {
        mins--;
        if (mins &lt; 10) {
            mins = "0" + mins;
        }
        minutes.set("innerHTML", mins);
    } else {
        timer.cancel();
        liftOff = true;
    }
}</code></pre>
<p>Pretty straight forward and also uses the wrapper methods to access DOM functionality. <a href="/lab/yui3/countdown/almost_there.html">It works now</a>, but we are not quite finished yet.</p>
<h3>Modularizing</h3>
<p>As you can see, all the code is currently inline on the page and gets executed as soon as the page loads. This is suboptimal. What I used to do using YUI2 is creating a module specific namespace and then call a public method (made available through the use of the Module Pattern) on the page that needed that functionality. So for this the module would be, e.g.:</p>
<pre><code>YAHOO.Klaus.Countdown = function () {
    ... my code ...
    return {
         init: init
    };
}();</code></pre>
<p>And then, on whatever page I want to use it, do:</p>
<pre><code>YAHOO.Klaus.Countdown.init();</code></pre>
<p>I was curious how to achieve something like this in YUI3. </p>
<p>I came up with a solution but I am not sure if this is the suggested way of doing this. I hope it is, as I couldn&#8217;t find a different way of doing it. The secret is to add the &#8220;module&#8221; you created as a module to YUI3, like:</p>
<pre><code>Y.add("Klaus.Countdown", init);</code></pre>
<p>The second argument is a function name to be executed when the module is being invoked used the <span class="code">use()</span> function.</p>
<p>So what is left to do is saving the countdown code to a separate file and then call the module from within a script block on the page:</p>
<pre><code>&lt;script type="text/javascript"&gt;
    YUI().use("Klaus.Countdown");
&lt;/script&gt;</code></pre>
<p>So we are done and hopefully happy with our <a href="/lab/yui3/countdown/countdown.html">first steps</a> in YUI3. </p>
<h2>Conclusion</h2>
<p>I have deliberately chosen a simple example to start with to avoid frustrations coming out of having to learn and getting used to too many things at once. Like with every new piece of software, getting started &#8220;somehow&#8221; in the first place is critical and finding out how to achieve things without running into too many roadblocks at once. How easy or hard it is to use YUI3, I have yet to determine when probably facing more complex examples, but I believe this simple examples gives a sneak peak into what awaits at the end of the line.</p>
<h2>Resources</h2>
<ul>
<li><a href="http://developer.yahoo.com/yui/3/">YUI3 on YDN</a></li>
<li><a href="http://developer.yahoo.com/yui/3/api/">YU3 API Doc</a></li>
<li><a href="http://yuiblog.com/">YUI Blog</a></li>
<li><a href="http://www.fatcow.com/edu/first-steps-with-yui3-be/">Belorussian translation of this article</a> kindly provided by Patricia Clausnitzer and <a href="http://www.fatcow.com/">http://www.fatcow.com/</a></li>
</ul>
]]></content:encoded>
			<wfw:commentRss>http://www.klauskomenda.com/archives/2009/07/20/first-steps-with-yui3/feed/</wfw:commentRss>
		<slash:comments>7</slash:comments>
		</item>
		<item>
		<title>Book Review: Object-Oriented JavaScript</title>
		<link>http://www.klauskomenda.com/archives/2009/04/25/book-review-object-oriented-javascript/</link>
		<comments>http://www.klauskomenda.com/archives/2009/04/25/book-review-object-oriented-javascript/#comments</comments>
		<pubDate>Sat, 25 Apr 2009 16:07:34 +0000</pubDate>
		<dc:creator>Klaus</dc:creator>
				<category><![CDATA[Coding]]></category>
		<category><![CDATA[Programming]]></category>
		<category><![CDATA[Web]]></category>

		<guid isPermaLink="false">http://www.klauskomenda.com/?p=752</guid>
		<description><![CDATA[If you ever wanted a JavaScript book that talks about intermediate to advanced, cutting-edge and state-of-the-art techniques, this is the one. Your newly acquired knowledge might also get you nice looks from all the ladies at the next YUI party. Who knows.]]></description>
			<content:encoded><![CDATA[<p><a href="http://www.packtpub.com/object-oriented-javascript-applications-libraries/book/mid/030309lf8ofn"><img src="/wp-content/uploads/2009/03/oo_js_cover.jpg" width="235" height="298" class="img-right" /></a>It has been a while since the late nineties in which JavaScript was (ab)used in a very hacky way, i.e. having to work around browser vendor proprietary code (Internet Explorer and Netscape) and, because it provided such a nice variation to otherwise static pages, adding the most useless features to a webpage. Anyone remember the snowflakes following the mouse cursor? Quite some time passed since then and thankfully, JavaScript grew out of puberty and has, in recent years, reached a quite significant stage of adulthood.</p>
<p>Stoyan Stefanov, a colleague of mine at <a href="http://yahoo.com">Yahoo!</a>, recently published <a href="http://www.packtpub.com/object-oriented-javascript-applications-libraries/book/mid/030309lf8ofn">Object-Oriented JavaScript</a>. Personally, the book about JavaScript I was waiting for. A while back, I read and reviewed Jeremy Keith&#8217;s <a href="/library/jeremy-keith/dom-scripting-web-design-with-javascript-and-the-document-object-model/">DOM Scripting</a>, which is the perfect introduction as to how developers should use JavaScript these days in a browser environment. Progressive Enhancement was one of the key concepts in there. So after getting the basics covered, my expectation was that Stoyan&#8217;s book provides me with supporting material for intermediate to advanced JavaScript programming tasks. Does it deliver? We will come to that very shortly.</p>
<h2>Contents</h2>
<p>Chapters 1 to 4 in his book cover a brief history about JavaScript and the basic elements of the language, like variables, primitive data types, conditions and loops as well as functions and objects. The latter already have their specialties in JavaScript and Stoyan explains those special characteristics. </p>
<p>Chapters 5 and 6 are devoted to prototype and how inheritance works in JavaScript, a very essential thing to cover when we are talking about advanced techniques. </p>
<p>Chapter 7 talks about what readers of DOM Scripting might still remember, namely how JavaScript can be used to access and manipulate specific elements in the DOM. The author also takes a look at Events and the ever popular XMLHttpRequest.</p>
<p>And finally, the highlight comes last, Chapter 8 deals with what hardcore programmers were waiting for: Coding and Design Patterns. <a href="/code/javascript-programming-patterns/">Having done a little research about this myself</a>, I found it great that Stoyan documents concepts that have become good practice in the JavaScript world, like namespacing and creating public and private properties and methods. In the design patterns part, he talks about Singletons amongst various other patterns at the programmers disposal. </p>
<p>The book closes with a quite comprehensive appendix, which includes listing reserved words, referencing built-in functions and objects and regular expressions in JavaScript. </p>
<h2>Rating and Reasoning</h2>
<h3 title="My Rating: 9 out of 10" class="rating rating-level-9">My Rating: 9 out of 10</h3>
<p>Even though it states that &#8220;no prior JavaScript knowledge is required&#8221;, I would say that is a bit of an understatement. If DOM Scripting was your first JavaScript book then I would put the following equation on the board: DOM Scripting + experience with these techniques in The Real World (meaning on actual live projects) = ready for Object-Oriented JavaScript. Don&#8217;t get me wrong, Stoyan covers the basics (variables, conditions etc.) in the first few chapters, but after that, the learning curve gets pretty steep and I believe it is safe to say, without <em>any</em> prior knowledge, you will put this book back on the shelf, left frustrated. </p>
<p>I have worked on a couple of minor web projects before <a href="http://uk.yahoo.com">Yahoo! Europe</a> hired me in May 2007, so to this date, I believe I was able to acquire some experience when it comes to using JavaScript on high-scale websites. From my perspective, the first couple of chapters was a nice refresh on the topic, but only then, in Chapters 5 to 8, things got interesting with bits and pieces in there that helped me closing some knowledge gaps about certain concepts, which is really great. This, again, supports my feeling that this book is not meant for <em>every</em> JavaScript developer out there, independent of whether it is a newbie or an advanced developer. I feel that people with probably a couple of years experience might get more out of it than someone who just delved into JavaScript a month ago. </p>
<p>It is difficult to come up with concrete examples to explain this, and this observation is highly subjective of course, but I feel that the way the book is done and written, it feels a lot &#8220;drier&#8221; and less &#8220;exciting&#8221; to read compared to DOM Scripting. Which, again, if this targets JavaScript beginners, should not be the case. But I believe the more complex the material gets, the harder the job becomes of having to thrill and excite the reader. </p>
<p>What I really like about the book is that basically all the examples Stoyan gives, you can type into the Firebug console right away to try out for yourself. As I am a believer that you learn new skills most effectively by actually <em>doing</em> something and play with it, I am pretty sure this is a good way of imparting knowledge. </p>
<h2>Conclusion</h2>
<p>If you are a Web Developer with several years of experience on the job and with JavaScript and you want to move your knowledge level up a notch or two, this book is for you. If you want to play with the cool kids, then <a href="http://www.packtpub.com/object-oriented-javascript-applications-libraries/book/mid/030309lf8ofn">get this book</a>. If you are more or less new to the JavaScript world, you might want to consider starting with DOM Scripting first and getting experience using those techniques on real world projects, before diving into the advanced concepts discussed in Object-Oriented JavaScript.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.klauskomenda.com/archives/2009/04/25/book-review-object-oriented-javascript/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Vienna City Half Marathon, Take Two</title>
		<link>http://www.klauskomenda.com/archives/2009/04/20/vienna-city-half-marathon-take-two/</link>
		<comments>http://www.klauskomenda.com/archives/2009/04/20/vienna-city-half-marathon-take-two/#comments</comments>
		<pubDate>Mon, 20 Apr 2009 06:48:43 +0000</pubDate>
		<dc:creator>Klaus</dc:creator>
				<category><![CDATA[Life in General]]></category>

		<guid isPermaLink="false">http://www.klauskomenda.com/?p=765</guid>
		<description><![CDATA[I had not trained nearly enough for me to expect a new personal record after my first personal half marathon experience last year. But with enough willpower and excitement, it seems that, again, your body is capable of more than you think.]]></description>
			<content:encoded><![CDATA[<p><a href="/archives/2008/04/29/running-the-half-marathon-in-vienna/">My first half marathon experience in Vienna last year</a> was just overwhelmingly great. So only a few months later, in August 2008 in fact, I decided that, no matter what, I want to do it again. <a href="/archives/2008/11/21/first-days-in-the-new-world/">Moving to California</a> and with all the things you have to get done when moving countries and continents, was very time consuming so I did not have as much time as I wanted to train for this event. I was wishing for a new personal record (last year I did the 21,1 km in 2:03:02), but considering the lack of training and that I was still suffering from jet-lag on race day, was not expecting much.</p>
<p><img src="http://www.klauskomenda.com/wp-content/uploads/2009/04/1240137796042_4.jpg" alt="Start at Reichsbrücke, &copy; apa" title="Start at Reichsbrücke, &copy; apa" class="img-left" style="+width: 293px"/>I was not prepared enough, so I thought, but came race day, I decided to change my strategy. The weather was just as great as last year, with blue and sunny skies all day. Almost too warm for running. And with almost 30,000 other runners at the starting line, I decided that I will try to stay under 2 hours. If I can keep the pace (which would be 5:41 min/km on average), that&#8217;s great, if I can&#8217;t do it, I will just slow down and just be there for the experience.</p>
<p>Looking back at the run, I believe I started slightly too quick. To be on the safe side, I was trying to keep my pace between 5:15 and 5:30, because you lose a little bit of time at the refreshment points and I knew that just after 11 km, there is a very long (about 5 km) stretch from <a href="http://en.wikipedia.org/wiki/Ringstra%C3%9Fe">Ringstraße</a> to <a href="http://en.wikipedia.org/wiki/Sch%C3%B6nbrunn_Palace">Schönbrunn Palace</a>, which is also slightly uphill, completely in the sun. I knew this from the year before, this is the most tedious part of the half marathon. I had to slow down a bit and push myself through that part of the race. But slowing down there was not a big deal, because by the time I got there, I had established a lead (in relation to my goal to stay under 2 hours) of over 4 minutes. I literally checked my pace about every minute to make sure I am still on track.</p>
<p>Thankfully, after that uphill part, there is a turn that takes the runners back along Mariahilfer Straße (which is then slightly downhill) to the Ringstraße and to the finish line at <a href="http://en.wikipedia.org/wiki/Heldenplatz">Heldenplatz</a>. By then, I couldn&#8217;t keep my original pace I started off with and the last couple of kilometres were more a matter of willpower than anything else. But finally, I made it to the finish line, hit the stop button on my watch and it showed me what I wanted to see: Under two hours. 01:55:50. Mission accomplished.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.klauskomenda.com/archives/2009/04/20/vienna-city-half-marathon-take-two/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Buying a Car in the US</title>
		<link>http://www.klauskomenda.com/archives/2009/04/12/buying-a-car-in-the-us/</link>
		<comments>http://www.klauskomenda.com/archives/2009/04/12/buying-a-car-in-the-us/#comments</comments>
		<pubDate>Sun, 12 Apr 2009 04:56:30 +0000</pubDate>
		<dc:creator>Klaus</dc:creator>
				<category><![CDATA[California]]></category>
		<category><![CDATA[Cars]]></category>

		<guid isPermaLink="false">http://www.klauskomenda.com/?p=759</guid>
		<description><![CDATA[After getting my California Drivers License mid March, I had to go through the process of shopping for a car just recently. I would like to share my experiences with that and what I did in terms of research and preparation. Maybe this is useful to one or two people out there.]]></description>
			<content:encoded><![CDATA[<p>Buying a car, no matter in what country you are in, is always both exciting and tedious/exhausting at the same time. At least for me. Some people are probably waking up one day and decide that they want a new car and on the next day they sign a contract somewhere. I can&#8217;t do that. I am a thinker and planner and especially when it comes to monetary-heavy transactions like buying a car, I not only think twice, but probably a third, fourth and fifth time about it. So it all can become very time consuming but with regards to <a href="/photos/album/72157616649391766/My-Germerican-Car.html">that car I just recently bought in the US</a>, I can say that preparing and doing research certainly paid off in the end.</p>
<h2>No Car? No Way!</h2>
<p>When I moved to Sunnyvale end of January 2009, I already knew that I had to get my US drivers license and then a car in the foreseeable future. Living out here in the South Bay, without a car is&#8230;doable, yes, don&#8217;t get me wrong. It just takes ages to go somewhere on public transport. You will get where you want to eventually, but it just takes looooonger. A rough estimate I came up with was that it takes about three times longer to take public transportation over here than doing the same using a car. But that is not supported by any evidence, just a guess on my end. </p>
<p>I had to go through the written and practice test at the <a href="http://dmv.ca.gov/">DMV</a>, which was not a problem after studying the <a href="http://dmv.ca.gov/pubs/hdbk/driver_handbook_toc.htm">DMV handbook</a> (<a href="http://dmv.ca.gov/pubs/dl600.pdf">PDF version</a>) and keeping the pitfalls in mind. And after that, I had to think about which car to get and making up my mind about it.</p>
<p>I have a soft spot for German cars, I have to admit. I have had two cars before in Austria, both of them were <a href="http://en.wikipedia.org/wiki/Volkswagen_Golf">VW Golf</a>s (a 1996 in black, and a 2003 in silver), very popular and reliable. But this time I decided that I would like to go with something more sporty. In the end I decided to go with a coupe by <a href="http://en.wikipedia.org/wiki/BMW">BMW</a>. After thinking about the financial impact, I went for a certified pre-owned car from a dealer instead of a e.g. leasing a new one. Also because the whole leasing process is, in general, pretty confusing (at least to me) and so I feared that they might put in some additional hidden fees into the leasing rate that might in the end increase the financial burden.</p>
<p>Buying a car from a dealership and not from a private party was also a decision I made, simply because the risk of getting a not-well-maintained car with some hidden defects is higher buying from a private party than from a dealer. Besides, buying a certified pre-owned vehicle means it comes with original manufacturer warranty, which is another big plus in my mind. Of course, you pay more for that warranty but to me it seemed worth it. </p>
<h2>Research</h2>
<p>So once I had figured out the model I was looking for, I did some research to see which dealers had one in their inventory. I ended up with finding three dealers (two of the cars were black, one was silver). I visited all three and test-drove the vehicles. Actually I only test-drove two, because at the third dealership they either were unable to find the car on their lot or it was already sold. Whatever.</p>
<p>After doing that, Internet research came into play, because I wanted to be prepared for the negotiation phase. <a href="http://www.edmunds.com/">Edmunds.com</a> was a <em>very</em> helpful resource for that. Apart from <a href="http://www.edmunds.com/car-advice.html">various guides</a>, articles about the car market and tips about buying a car, it also lets you calculate what they call <a href="http://www.edmunds.com/tmv/index.html">TMV</a> (True Market Value) of a used car, based on color, mileage, extras and condition. This is very helpful as you can take this amount as a basis for the negotiation phase. </p>
<h2>Negotiating</h2>
<p>In the end I ended up with a choice between two similar vehicles, black and silver with more or less the same sticker price set. I started by calling dealer A and naming essentially the TMV provided by Edmunds.com <em>minus</em> about a thousand dollars. I was not really expecting from them to meet that offer, but rather drop their sticker price. So they did, by about 300 Dollars. With that in mind, I hung up, saying I have to think about it and called dealer B, doing essentially the same. They dropped the price as well, by about the same amount. Then I repeated the procedure, getting back to dealer A, naming an amount slightly higher than my first offer to dealer A, saying that the other dealer offered me this and asking if they could match it. They would then drop the price again.</p>
<p>After going back and forth a couple of times, at some point you feel that it probably does not go down any further. In the end, the offers from both dealers where pretty similar and actually a couple of hundred dollars below the actually TMV I had from Edmunds.com. I finally based my decision on how I was treated by the sales person and so I went for the black car and felt that, based on the numbers, I got a pretty good deal. I am pretty sure that, if I had gone for an American car, I could have lowered the price even more, essentially getting a bargain. But, to be honest, when talking about new cars, I have to say &#8220;No, thanks.&#8221; to American. Sorry.</p>
<p>Of course when we talk about good old American <a href="http://en.wikipedia.org/wiki/Muscle_car">muscle cars</a>, like Scott&#8217;s (a colleague at Yahoo!) <a href="http://www.flickr.com/photos/14828909@N00/2421354670/">1967 Pontiac Firebird</a>, now that is a different story <img src='http://www.klauskomenda.com/wp-includes/images/smilies/icon_smile.gif' alt=':-)' class='wp-smiley' /> </p>
<h2>Conclusion</h2>
<p>I picked up the car over the weekend and again, I was treated very nicely by the sales person. I was in contact with many car salespeople during the last couple of weeks, some of them were very aggressive and would like you to sign a contract right away after the test-drive. And I have to say that most of them live up to the stereotype, wearing silver or gold jewelry (necklace, ring, watch), having kind of a slimy attitude and saying things like &#8220;You look good in that car.&#8221; No way. Really? That sales person I finally ended up doing the deal with did not do any of that and I felt this should be rewarded by giving her the deal.</p>
<p>Below I have put together a couple of links to resources on Edmunds.com and elsewhere that I found helpful doing this &#8220;Buying a Car in the US&#8221; project:</p>
<ul>
<li><a href="http://www.edmunds.com/advice/buying/articles/101308/article.html">Edmunds.com&#8217;s TMV: The Magic Number</a></li>
<li><a href="http://www.edmunds.com/advice/buying/articles/45310/article.html">How to Get a Used Car Bargain</a></li>
<li><a href="http://www.edmunds.com/advice/strategies/articles/45993/article.html">Negotiating 101</a></li>
<li><a href="http://www.edmunds.com/advice/buying/articles/78387/article.html">10 Steps to Buying a Used Car</a></li>
<li><a href="http://www.edmunds.com/advice/buying/articles/42962/article.html">Confessions of a Car Salesman</a>: This is a multipage-long article about the experiences of a journalist who worked undercover at two different car dealerships. Very worth the read with some quite amusing parts.</li>
<li><a href="http://www.edmunds.com/advice/buying/articles/48118/article.html">Vehicle History Report: Your Key to a Good Used Car</a></li>
</ul>
<p>Also, for people preparing for the written test at the DMV, I found the following sample tests useful for practicing. Some of them offer up to 20 free questions, some only 5, but it is good to mix and match to be prepared for most questions which eventually might come up:</p>
<ul>
<li><a href="http://dmv.ca.gov/pubs/interactive/tdrive/exam.htm">Samples of Driver Written Tests at dmv.ca.gov</a></li>
<li><a href="http://www.esampletest.com/">DMV Sample Test at esampletest.com</a></li>
<li><a href="http://www.dmv.org/ca-california/practice-tests.php">California DMV Practice tests at dmv.org</a></li>
</ul>
]]></content:encoded>
			<wfw:commentRss>http://www.klauskomenda.com/archives/2009/04/12/buying-a-car-in-the-us/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Resurrection</title>
		<link>http://www.klauskomenda.com/archives/2009/03/07/resurrection/</link>
		<comments>http://www.klauskomenda.com/archives/2009/03/07/resurrection/#comments</comments>
		<pubDate>Sat, 07 Mar 2009 07:00:27 +0000</pubDate>
		<dc:creator>Klaus</dc:creator>
				<category><![CDATA[California]]></category>
		<category><![CDATA[Life in General]]></category>

		<guid isPermaLink="false">http://www.klauskomenda.com/?p=749</guid>
		<description><![CDATA[I have to disappoint you guys, I am not dead yet :-). The whole moving thing just took and still takes more time out of my spare days than I had anticipated. But don't you worry. I'll be back™ soon to provide some updates to this very space.]]></description>
			<content:encoded><![CDATA[<p>Initially I was under the oh so wrong impression that moving to <a href="http://en.wikipedia.org/wiki/Sunnyvale,_California">Sunnyvale</a> from San Francisco, and closer to the <a href="http://www.yahoo.com/">Yahoo!</a> office, would be a piece of cake. How could I have ever underestimated this undertaking? I have no idea, but I obviously did. </p>
<p>So what happened in those last two months without anything happening on <a href="/">my blog</a> or <a href="http://www.flickr.com/photos/commander_klaus">my Flickr stream</a> for that matter? </p>
<p>First, I came back from celebrating Christmas and New Year&#8217;s in my home town <a href="http://en.wikipedia.org/wiki/Vienna">Vienna</a> (which, so I learned, <a href="http://allinthehead.com/">Mr Drew</a> <a href="http://www.flickr.com/photos/drewm/sets/72157613801399344/">paid a visit to just recently</a>) together with my family and close friends. Even though it was only for just more than a week, it was totally worth it to get back and spend the holidays with my loved ones. </p>
<p>The time between coming back to California and moving to Sunnyvale Jan 20 is a total blur. I commuted for at least 2 hours a day, that&#8217;s for sure, cause I was still taking the Yahoo! shuttle service from SF to Sunnyvale. I worked, so that&#8217;s obvious as well. Apart from that, I don&#8217;t remember much. Drinking? Drugs? Other forms of intoxication? Who knows&#8230;</p>
<p>January 20 was the big day. I moved out of <a href="http://cindyli.com/">my friend Cindy</a>&#8217;s place (and I can&#8217;t thank her enough for letting me stay there for so long) and to my own place in Sunnyvale. Let me state that I love San Francisco and would the office be there, I would have loved to find an apartment there. But I am a bit allergic to commutes that take more than 45 minutes a day. I know, I am probably spoiled, but that&#8217;s just how I feel. So I moved closer to the office and my commute time is now&mdash;even though I have to take a public bus until I have my US drivers license sorted&mdash;cut down to about 40 minutes. Door to desk. That&#8217;s more my liking.</p>
<p>Because my apartment came unfurnished, like so many places around here, I had to play the &#8220;plan-and-get-furniture&#8221; game. And I am still playing it, cause I am far from done with getting all the things I need, but I got the bare necessities covered for now. The rest can wait until I don&#8217;t have to rely on public transport any longer. Thankfully, <a href="http://www.ikea.com/us/en/">my beloved Swedish furniture store</a> is in <a href="http://en.wikipedia.org/wiki/Palo_Alto">Palo Alto</a>, so not that far away.</p>
<p>Work is good and pretty busy recently, not least because we have <a href="http://en.wikipedia.org/wiki/Carol_Bartz">a new CEO</a> and things are being reorganized. But in economic times like this, more work is certainly better than out of work. </p>
<p>What else&#8230;let me think. Ah yeah: some of you guys might remember that I did <a href="/archives/2008/04/29/running-the-half-marathon-in-vienna/">my first half marathon</a> last year in April. It was such an amazing experience that, a few months later, I decided that no matter what, I want to do it again the following year. <a href="http://www.vienna-marathon.com/?lang=en">So I am doing it again this year</a>, which means I am going to Vienna to visit my parents and participating in the race mid April. Exciting. I will most likely not be able to beat my personal record, because I don&#8217;t have enough time this year to train as much as I want to, but I don&#8217;t care. This time, the experience counts, not the time.<br />
Oh yeah, whilst I was at it&#8230;I also signed up for <a href="http://www.runsfm.com/events/1sthalf.html">another half marathon</a>, which is probably a little closer to where I live currently. <a href="http://ironfeathers.ca/">Derek</a> is still gonna laugh at me, but I don&#8217;t care <img src='http://www.klauskomenda.com/wp-includes/images/smilies/icon_wink.gif' alt=';-)' class='wp-smiley' /> </p>
<p>That&#8217;s about it, in a nutshell. The next couple of weeks will (apart from working at Yahoo!) consist of some more running, getting my US drivers license sorted, getting a car and some more pieces of furniture. I also have a couple of web development related tasks on my list and some ideas for articles which I hope I can also get to fairly soon-ish.</p>
<p>Until next time.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.klauskomenda.com/archives/2009/03/07/resurrection/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>CSS Reviewr</title>
		<link>http://www.klauskomenda.com/archives/2008/12/20/css-reviewr/</link>
		<comments>http://www.klauskomenda.com/archives/2008/12/20/css-reviewr/#comments</comments>
		<pubDate>Sat, 20 Dec 2008 20:17:58 +0000</pubDate>
		<dc:creator>Klaus</dc:creator>
				<category><![CDATA[Coding]]></category>
		<category><![CDATA[Performance]]></category>
		<category><![CDATA[Web]]></category>

		<guid isPermaLink="false">http://www.klauskomenda.com/?p=740</guid>
		<description><![CDATA[Check your CSS code against certain standards and best practices. Brought to you by Santa Klaus. Merry Christmas. ]]></description>
			<content:encoded><![CDATA[<p>There is <a href="http://www.jslint.com/">JSLint</a> for JavaScript, <a href="http://pear.php.net/package/PHP_CodeSniffer">PHP_CodeSniffer</a> for PHP&#8230;why not have some sort of code checking tool for CSS? Based on the outcome of several code reviews we had at <a href="http://uk.yahoo.com/">Yahoo! Europe</a>, I thought that it would come in handy having a tool that would catch findings automatically. So over the last couple of months I was working on such a tool and called it <a href="http://www.klauskomenda.com/tools/cssreviewr/">CSS Reviewr</a>.</p>
<p><a href="http://www.klauskomenda.com/tools/cssreviewr/"><img alt="Try out CSS Reviewr" src="http://www.klauskomenda.com/wp-content/uploads/2008/12/cssreviewr_logo.gif" alt="" width="291" height="50" class="img-right" /></a>It is quite similar to a couple of tools that are already out there. JSLint looks for issues in JavaScript code and checks for adherence to a certain set of code standards. PHP_CodeSniffer, a <a href="http://pear.php.net/">PEAR</a> package, provides similar functionality for PHP files (but is also able to check JavaScript and CSS). Then there is <a href="http://csstidy.sourceforge.net/">CSSTidy</a>, a parser and optimiser for CSS, which e.g. compresses hex values for color declarations and provides different levels of minification (removing comments, whitespace etc.). </p>
<p>Essentially, what I wanted to achieve with CSS Reviewr is to not only point out issues in the code based on the experiences and the reviews we conducted at work, but also to provide explanatory text for each finding (much like how the <a href="http://validator.w3.org/">W3C Validator</a> does it for HTML). In one or two sentences, I wanted to explain why this is an issue and how it can be resolved. From my perspective, this is ideal for a developer who might not be familiar with a certain best practice or convention. By reading the explanation and maybe following a link to a page that provides more details, it has a certain learning effect to it. </p>
<p>CSS Reviewr, as it is stated on the page, is <em>not</em> a validator. It is encouraged to run your code through the <a href="http://jigsaw.w3.org/css-validator/">W3C CSS Validator</a> first, before checking it using CSS Reviewr.</p>
<p>Last, but not least, I would like to thank the real brain behind this: <a href="http://samriley.net/">Sam Riley</a>. I had the pleasure of working with him on <a href="http://answers.yahoo.com/">Yahoo! Answers</a> and I was and am still really impressed by his sheer endless knowledge of the ins and outs of CSS. Knowing that I would not be able to just turn to the side and ask him whenever I have a question related to CSS (because I relocated from London to California), I wrote this tool also to store his CSS knowledge somewhere for myself, so I could still use it here in the US <img src='http://www.klauskomenda.com/wp-includes/images/smilies/icon_wink.gif' alt=';-)' class='wp-smiley' />  So a big thanks to Sam!. Also thanks to <a href="http://www.evalotta.net/">Eva-Lotta</a>, who kindly offered to do some visual design work for this in her spare time. </p>
<p>The tool is in beta right now and I have already identified <a href="http://www.klauskomenda.com/tools/cssreviewr/package/BUGS">some bugs</a> myself that I need to fix at some point, providing I find time for this. Getting some early feedback from colleagues, I have also received the following feature requests:</p>
<ul>
<li>Indentation check (selectable option)</li>
<li>Check (background) images used in the code are akamized/on a content delivery network (CDN)</li>
<li>Fonts should not use uppercase characters (e.g &#8220;Arial&#8221; should be &#8220;arial&#8221;)</li>
<li>Limit the amount of errors shown to 50 to prevent browser (FF2) from crashing. Add something like: &#8220;More than 50 issues found. Fix the issues above first before checking your code again.&#8221;</li>
<li>Having a &#8216;Do it!&#8217; button by each issue to make the suggested modification to the code, and then have a textarea at the bottom where you could copy out the fixed version</li>
</ul>
<p>Suggestions, bug reports and all kinds of feedback welcome. Just leave a comment below. Thanks and happy holidays!</p>
]]></content:encoded>
			<wfw:commentRss>http://www.klauskomenda.com/archives/2008/12/20/css-reviewr/feed/</wfw:commentRss>
		<slash:comments>4</slash:comments>
		</item>
		<item>
		<title>Location Based Services &#8211; my book on Amazon</title>
		<link>http://www.klauskomenda.com/archives/2008/12/13/location-based-services-my-book-on-amazon/</link>
		<comments>http://www.klauskomenda.com/archives/2008/12/13/location-based-services-my-book-on-amazon/#comments</comments>
		<pubDate>Sat, 13 Dec 2008 22:22:36 +0000</pubDate>
		<dc:creator>Klaus</dc:creator>
				<category><![CDATA[Life in General]]></category>
		<category><![CDATA[Mobile]]></category>
		<category><![CDATA[Programming]]></category>

		<guid isPermaLink="false">http://www.klauskomenda.com/?p=728</guid>
		<description><![CDATA[Seeing your work published and being available on Amazon.com is something you don't really think about when writing your diploma thesis. But somehow it happened that my work about Location Based Services is now available on Amerca's largest online retailer website. I am stunned.]]></description>
			<content:encoded><![CDATA[<p>I graduated from <a href="http://www.en.fhv.at/">University</a> in 2006 in Austria and wrote my diploma thesis on <a href="http://en.wikipedia.org/wiki/Location_Based_Services">Location Based Services</a>. I talked about the foundations and technologies that need to be in place in order to provide such a service to users of cell phones and mobile devices. To round it up, I developed a prototype for a Location Based Service (a restaurant guide) in <a href="http://en.wikipedia.org/wiki/J2me">J2ME</a> as well as a corresponding website. </p>
<p><a href="http://www.amazon.de/Location-Based-Services-Beispiel-Lokalf%C3%BChrers/dp/363910109X/ref=sr_1_1?ie=UTF8&#038;s=books&#038;qid=1229204521&#038;sr=8-1"><img src="http://www.klauskomenda.com/wp-content/uploads/2008/12/lbs_book_cover.gif" alt="" class="img-right" /></a>The application on the mobile phone would give you a list of restaurants, bars, cafes etc. in your proximity, as well as details about their type of cuisine, opening hours, price range etc. and how other people have rated that particular place. Based on whatever the occasion was&mdash;whether you are planning a relaxed dine-out with your family or having a more intoxicated night with friends&mdash;the tool would recommend you the best place in your area.</p>
<p>While I was working on the prototype, writing my thesis and then putting the layout together in <a href="http://www.adobe.com/de/products/indesign/">InDesign</a>, I wasn&#8217;t thinking that a publisher would ever get interested in my work. </p>
<p>But the less you expect something, the happier you are when it actually happens. About 2 months ago I received an email from <a href="http://www.vdm-verlag.de/">VDM Verlag</a> in Germany saying that they found my thesis in the library of the university and would be interested in publishing it. &#8220;How awesome is that!&#8221;, was about the reaction I had. After putting all the required details about the book into their online system and reformatting a few things to fit their requirements, I got the confirmation that everything looks good and it is off to the printers.</p>
<p>And now, just in time for Christmas <img src='http://www.klauskomenda.com/wp-includes/images/smilies/icon_smile.gif' alt=':-)' class='wp-smiley' /> , I am happy to see my book being available on <a href="http://www.amazon.com/Location-Based-Services-Beispiel-Lokalf%C3%BChrers/dp/363910109X/ref=sr_1_1?ie=UTF8&#038;s=books&#038;qid=1229204532&#038;sr=8-1">Amazon.com</a> and <a href="http://www.amazon.de/Location-Based-Services-Beispiel-Lokalf%C3%BChrers/dp/363910109X/ref=sr_1_1?ie=UTF8&#038;s=books&#038;qid=1229204521&#038;sr=8-1">Amazon.de</a>. It is in German, so sorry to my non-German-speaking friends. I will most likely never reach the author status of my colleague <a href="http://www.wait-till-i.com/">Christian Heilmann</a>, who wrote <a href="http://www.amazon.com/s/ref=nb_ss_b?url=search-alias%3Dstripbooks&#038;field-keywords=christian+heilmann&#038;x=0&#038;y=0">about 167 books about web development related topics</a>, but I am very happy to see this and it makes me feel proud to see that all the work I put in at that time is now available to a wider audience. It is a really great feeling and I feel very content how it all turned out.</p>
<p>I would like to take this opportunity to thank <a href="http://www2.staff.fh-vorarlberg.ac.at/~kw/">Karl-Heinz Weidmann</a>, who was my thesis advisor, and <a href="http://www.linkedin.com/pub/1/b79/615">Werner Flatz</a>, who I worked together with during the development of my application.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.klauskomenda.com/archives/2008/12/13/location-based-services-my-book-on-amazon/feed/</wfw:commentRss>
		<slash:comments>10</slash:comments>
		</item>
		<item>
		<title>First Days in the New World</title>
		<link>http://www.klauskomenda.com/archives/2008/11/21/first-days-in-the-new-world/</link>
		<comments>http://www.klauskomenda.com/archives/2008/11/21/first-days-in-the-new-world/#comments</comments>
		<pubDate>Fri, 21 Nov 2008 04:03:10 +0000</pubDate>
		<dc:creator>Klaus</dc:creator>
				<category><![CDATA[Job]]></category>
		<category><![CDATA[Life in General]]></category>
		<category><![CDATA[Travel]]></category>

		<guid isPermaLink="false">http://www.klauskomenda.com/?p=702</guid>
		<description><![CDATA[I boarded a plane in Vienna last week Wednesday and about 15 hours later, with a layover in Munich, California gave me a warm welcome.]]></description>
			<content:encoded><![CDATA[<p>My bags were packed, I got my visa and my passport in my pocket. And so I jumped on a plane on November 12 to go to San Francisco via Munich. I have been over here for a little bit over a week now  in total and I am glad to say: I like it. I like it a lot. </p>
<p>Until I have figured out where I would want to live here in California, whether in <a href="http://en.wikipedia.org/wiki/San_francisco">San Francisco</a> or closer to the <a href="http://www.yahoo.com/">Yahoo!</a> office in <a href="http://en.wikipedia.org/wiki/Sunnyvale,_California">Sunnyvale</a> (although I am currently leaning more towards the latter), I am lucky to have a friend like <a href="http://cindyli.com/">Cindy</a> who lets me crash at her place for now. Thanksgiving is coming up and I am the one who has to be thankful for that. Also, because of her, I was able to meet up with some nice people like <a href="http://mariannemasculino.com/">Marianne</a>, <a href="http://www.focalcurve.com/">Craig</a> and <a href="http://www.deltatangobravo.com/">Daniel</a>. I was also able to catch up with my Web Developer mates from London: <a href="http://www.i-marco.nl/weblog/">Marco</a> and <a href="http://ben-ward.co.uk/">Ben</a>. And because of Cindy&#8217;s status as a web celebrity, one needs to be prepared to do a lot of partying, like Marianne&#8217;s birthday at <a href="http://www.foreigncinema.com/home.html">Foreign Cinema</a>, Ben&#8217;s housewarming party&hellip;wow, I am already partied out and could use some relax time. </p>
<p>But that&#8217;s not happening. I had my first day at Yahoo! last Monday and had to go through New Hire Orientation&mdash;although I am technically not a new hire. But anyways. Also got a new MacBook Pro, which is nice.</p>
<p>If you guys are curious, I am gonna be working on the new <a href="http://profiles.yahoo.com/">Universal Profile</a>, which was redone and a beta version launched just recently. </p>
<p>As stated above, I really like it so far. The weather is nice (apart from today, where it is a bit cloudy), the people I have met so far were all nice and welcoming. San Francisco as a city is, by far, not as busy as London, much more spacious and with its location at the Pacific, it makes it a place you just have to like. </p>
<p>The only thing I pretty much hate right now is the commute from San Fran to Sunnyvale, which takes about 1 to 1.5 hours one way. Yahoo! provides <a href="http://www.bauerslimousine.com/">a shuttle service</a> from San Francisco and back, equipped with nice leather seats and even WiFi. All nice, but I still consider these 2 to 3 hours every day pretty much wasted. Which is why I am more leaning towards finding a place closer to the office, in Sunnyvale or Palo Alto. I will think about that during the next couple of weeks. </p>
<p>To sum it up: All good here in California. I like it here and, most of all, I am enjoying it.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.klauskomenda.com/archives/2008/11/21/first-days-in-the-new-world/feed/</wfw:commentRss>
		<slash:comments>5</slash:comments>
		</item>
		<item>
		<title>WordPress Plugin: Shrinkr</title>
		<link>http://www.klauskomenda.com/archives/2008/10/22/wordpress-plugin-shrinkr/</link>
		<comments>http://www.klauskomenda.com/archives/2008/10/22/wordpress-plugin-shrinkr/#comments</comments>
		<pubDate>Wed, 22 Oct 2008 19:55:20 +0000</pubDate>
		<dc:creator>Klaus</dc:creator>
				<category><![CDATA[Coding]]></category>
		<category><![CDATA[Performance]]></category>
		<category><![CDATA[Web]]></category>

		<guid isPermaLink="false">http://www.klauskomenda.com/?p=683</guid>
		<description><![CDATA["More power!", as Tim Taylor from the TV sitcom "Home Improvement" would say. Don't we all want more power, more performance from our web sites? I was working on a WordPress plugin that enables you to bump up the speed of your site by minification of your CSS and JavaScript files. And now finally found time to release it.]]></description>
			<content:encoded><![CDATA[<p>With higher expectations, both in terms of design and interaction of websites, which are more like web applications these days, the amount and size of JavaScript and CSS files used have increased dramatically during the last couple of years. Ajax, Drag &amp; Drop, Animation&#8230;if your site doesn&#8217;t keep up with the latest trend, you might be left out. But bigger file sizes (and more files) also mean more HTTP requests and having to download more data from the server over an Internet connection, which means slower loading of the page. <a href="http://www.klauskomenda.com/code/wordpress-plugin-shrinkr/">Shrinkr</a> helps you to tackle that problem.</p>
<h2>Description</h2>
<p>Shrinkr does two things:</p>
<ol>
<li>It reduces the file-size of your CSS and JavaScript files through <a href="http://en.wikipedia.org/wiki/Minify">minification</a>, i.e. stripping out unnecessary content like white-space and comments</li>
<li>It then takes those files and concatenates them into one single CSS and one single JavaScript file</li>
<li>Those files are then getting stored as css-min-[timestamp].css and js-min-[timestamp].js on your server. The reason for the timestamp is that whenever Shrinkr creates a new file, it is ensured that a user agent doesn&#8217;t still use a cached version of the previous files but, because the name of the file has changed, retrieves the latest version from the server</li>
</ol>
<p>The first measure reduces the file-size by stripping out things from files that are not needed by the browser in order to interpret them. Whitespace and comments are for developers, not for the browser. They can safely be removed, which reduces the file-size and thus the consumption of bandwidth.</p>
<p>In the <a href="http://developer.yahoo.com/performance/rules.html">Yahoo! Exceptional Performance Rules</a>, it says that one should aim to <a href="http://developer.yahoo.com/performance/rules.html#num_http">reduce the number of HTTP requests</a> in order to make a page load as fast as possible. Shrinkr does that by concatenating all the files into one single file (one for CSS and one for JS). So instead of having 10 CSS files, you will end up having only one.</p>
<p>Shrinkr also adds an action to wp_head and wp_footer in order to tell WordPress to include those files upon page load in the appropriate section of the page. <a href="http://developer.yahoo.com/performance/rules.html#css_top">CSS files should be included in the head of the page</a>, <a href="http://developer.yahoo.com/performance/rules.html#js_bottom">JS at the very bottom</a> as per the Yahoo! Exceptional Performance Rules. </p>
<p>Because of the fact that you will end up having all your CSS and JavaScript in one file and on one line (because all the carriage returns etc. have been stripped out), it makes debugging kind of difficult. For that reason, you should only activate that plugin on the live version of your site and keep the files separated on your development box.</p>
<p>Further details about the plugin can be found on the <a href="http://www.klauskomenda.com/code/wordpress-plugin-shrinkr/">Shrinkr plugin page</a>. It would be great if you could try it out and give me feedback, either by leaving a comment here or using the <a href="/contact/">contact form</a>. Thanks!</p>
<h2>Resources</h2>
<ul>
<li><a href="http://developer.yahoo.com/performance/rules.html">Best Practices for Speeding Up Your Web Site</a></li>
<li><a href="http://developer.yahoo.com/yui/compressor/">Yahoo! UI Library: YUI Compressor</a></li>
<li><a href="http://www.crockford.com/javascript/jsmin.html">JSMIN, The JavaScript Minifier</a></li>
<li><a href="http://code.google.com/p/minify/">Minify!</a></li>
</ul>
]]></content:encoded>
			<wfw:commentRss>http://www.klauskomenda.com/archives/2008/10/22/wordpress-plugin-shrinkr/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
	</channel>
</rss>
