<?xml version="1.0" encoding="UTF-8"?>
<?xml-stylesheet type="text/xsl" media="screen" href="/~d/styles/rss2full.xsl"?><?xml-stylesheet type="text/css" media="screen" href="http://feeds.feedburner.com/~d/styles/itemcontent.css"?><rss 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/" xmlns:creativeCommons="http://backend.userland.com/creativeCommonsRssModule" version="2.0">

<channel>
	<title>rottmann.net</title>
	
	<link>http://rottmann.net</link>
	<description>grandcentrix founder. former the next web editor. open web addict and developer at heart.</description>
	<lastBuildDate>Wed, 15 May 2013 23:58:56 +0000</lastBuildDate>
	<language>en-US</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	
		<atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="self" type="application/rss+xml" href="http://feeds.feedburner.com/www24100net" /><feedburner:info xmlns:feedburner="http://rssnamespace.org/feedburner/ext/1.0" uri="www24100net" /><atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="hub" href="http://pubsubhubbub.appspot.com/" /><creativeCommons:license>http://creativecommons.org/licenses/by-nd/3.0/</creativeCommons:license><image><link>http://creativecommons.org/licenses/by-nd/3.0/</link><url>http://creativecommons.org/images/public/somerights20.gif</url><title>Some Rights Reserved</title></image><feedburner:emailServiceId xmlns:feedburner="http://rssnamespace.org/feedburner/ext/1.0">www24100net</feedburner:emailServiceId><feedburner:feedburnerHostname xmlns:feedburner="http://rssnamespace.org/feedburner/ext/1.0">http://feedburner.google.com</feedburner:feedburnerHostname><item>
		<title>Unable to sign in for Hangouts with Google I/O 2013 Google+ upgrade</title>
		<link>http://rottmann.net/2013/05/unable-to-sign-in-for-hangouts-with-google-io-2013-google-upgrade/</link>
		<comments>http://rottmann.net/2013/05/unable-to-sign-in-for-hangouts-with-google-io-2013-google-upgrade/#comments</comments>
		<pubDate>Wed, 15 May 2013 23:58:56 +0000</pubDate>
		<dc:creator>ralf</dc:creator>
				<category><![CDATA[Google]]></category>

		<guid isPermaLink="false">http://rottmann.net/?p=2934</guid>
		<description><![CDATA[If you are a Google Apps for Businesses customer you might see a red error messaging stating &#8220;Unable to sign in :(&#8221; in the Hangouts sidebar, detailing: &#8220;Hangouts has not been enabled for your account. Please contact your administrator to enable this service.&#8221; To get rid of it, in the classical admin panel to to Settings(...)]]></description>
				<content:encoded><![CDATA[<p>If you are a Google Apps for Businesses customer you might see a red error messaging stating &#8220;Unable to sign in :(&#8221; in the Hangouts sidebar, detailing:</p>
<blockquote><p>&#8220;Hangouts has not been enabled for your account. Please contact your administrator to enable this service.&#8221;</p></blockquote>
<p>To get rid of it, in the classical admin panel to to <strong>Settings &gt; Talk </strong>and activate the feature called &#8220;Enable the new Hangouts for messaging and video calls&#8221;.</p>
<p>The Google+ help might wrongly point you to the Services &gt; Google+ section. I hope this helps others stopping the frustration. If you want to stay in touch, <a href="https://plus.google.com/106658337982640166595/posts" target="_blank">I&#8217;m on Google+</a>.</p>
<div class="AWD_facebook_likebutton"><iframe src="http://www.facebook.com/plugins/like.php?href=http%3A%2F%2Frottmann.net%2F2013%2F05%2Funable-to-sign-in-for-hangouts-with-google-io-2013-google-upgrade%2F&amp;send=0&amp;layout=standard&amp;width=610&amp;show_faces=1&amp;action=like&amp;colorscheme=light&amp;font=arial&amp;height=64&ref=" scrolling="no" frameborder="0" style="border:none; overflow:hidden; width:610px; height:64px;" allowTransparency="true"></iframe></div><p><img src="http://cdn.rottmann.net/wp-content/uploads/2013/05/GoogleIO2013-004.jpg?2bf9ce"></p>]]></content:encoded>
			<wfw:commentRss>http://rottmann.net/2013/05/unable-to-sign-in-for-hangouts-with-google-io-2013-google-upgrade/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Launch iTerm 2 on startup without opening a terminal window</title>
		<link>http://rottmann.net/2013/03/launch-iterm-2-on-startup-without-opening-a-terminal-window/</link>
		<comments>http://rottmann.net/2013/03/launch-iterm-2-on-startup-without-opening-a-terminal-window/#comments</comments>
		<pubDate>Thu, 14 Mar 2013 19:20:27 +0000</pubDate>
		<dc:creator>ralf</dc:creator>
				<category><![CDATA[Quick Tips]]></category>
		<category><![CDATA[iTerm 2]]></category>

		<guid isPermaLink="false">http://rottmann.net/?p=2923</guid>
		<description><![CDATA[iTerm 2 is the best Terminal replacement for Mac OS X. As somebody, spending most of his time on the console, I set up the Hotkey window so it opens fullscreen on my MacBook Air and fills half of the screen in my iMac. Obviously, I added iTerm 2 to the Login Items in Users(...)]]></description>
				<content:encoded><![CDATA[<p><a href="http://www.iterm2.com/" target="_blank">iTerm 2</a> is the best Terminal replacement for Mac OS X.</p>
<p>As somebody, spending most of his time on the console, I set up the Hotkey window so it opens fullscreen on my MacBook Air and fills half of the screen in my iMac. Obviously, I added iTerm 2 to the <em>Login Items</em> in <em>Users &amp; Groups</em> to automatically launch it on startup.</p>
<p>One little thing always bothered me, though: On launch, iTerm 2 automatically opens a terminal window.</p>
<p>This means, whenever I reboot my MacBook Air, I end up having a console window open. Ticking the <em>Hide</em> checkbox in <em>Login Items</em> does not change anything.</p>
<p>Here is, how to prevent this behaviour. It&#8217;s not all that intuitive, so I thought sharing it might help others:</p>
<ol>
<li>Open iTerm 2.</li>
<li>Close all console windows.</li>
<li>Go to <em>Window</em> &gt; <em>Save Window Arrangement</em>.</li>
<li>Name the new arrangement. I named mine &#8220;No Windows&#8221;.</li>
<li>Make sure to set it as the default in <em>Preferences</em> &gt; <em>Arrangements</em>.</li>
<li>Last but not least, in <em>Preferences&#8230;</em> &gt; <em>General</em> under <em>Startup</em> make sure that &#8220;Open default window arrangement&#8221; is the only option checked.</li>
</ol>
<p>That&#8217;s it. The next time iTerm 2 is launched on startup, no annoying window is opened.</p>
<div class="AWD_facebook_likebutton"><iframe src="http://www.facebook.com/plugins/like.php?href=http%3A%2F%2Frottmann.net%2F2013%2F03%2Flaunch-iterm-2-on-startup-without-opening-a-terminal-window%2F&amp;send=0&amp;layout=standard&amp;width=610&amp;show_faces=1&amp;action=like&amp;colorscheme=light&amp;font=arial&amp;height=64&ref=" scrolling="no" frameborder="0" style="border:none; overflow:hidden; width:610px; height:64px;" allowTransparency="true"></iframe></div><p><img src="http://cdn.rottmann.net/wp-content/uploads/2013/03/logo.png?2bf9ce"></p>]]></content:encoded>
			<wfw:commentRss>http://rottmann.net/2013/03/launch-iterm-2-on-startup-without-opening-a-terminal-window/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>How to stop posting public Google+ Communities posts to your profile</title>
		<link>http://rottmann.net/2013/03/how-to-stop-posting-public-google-communities-posts-to-your-profile/</link>
		<comments>http://rottmann.net/2013/03/how-to-stop-posting-public-google-communities-posts-to-your-profile/#comments</comments>
		<pubDate>Wed, 06 Mar 2013 08:18:42 +0000</pubDate>
		<dc:creator>ralf</dc:creator>
				<category><![CDATA[Google]]></category>
		<category><![CDATA[Quick Tips]]></category>
		<category><![CDATA[google]]></category>

		<guid isPermaLink="false">http://rottmann.net/?p=2913</guid>
		<description><![CDATA[I cannot believe I did not know this.

Ever since Google+ Communities became available, people complained about their Community posts automatically popping up on their profiles, too. This has been the default for public Communities. In fact, many Community owners on finding this out killed their public Communities and started over doing private ones.]]></description>
				<content:encoded><![CDATA[<p>I cannot believe I did not know this.</p>
<p>Ever since Google+ Communities became available, people complained about their Community posts automatically popping up on their profiles. This has been the default for <strong>public</strong> Communities. In fact, many Community owners on finding this out killed their public Communities and started over doing private ones.</p>
<p>I just today found out, hinted to by <a tabindex="0" href="https://plus.google.com/u/0/104771776404197897488" target="_top">Bruno Škvorc</a>, that there is a setting allowing you to change the default behavior. Unfortunately, it&#8217;s hidden away at the very bottom of <a href="https://www.google.com/settings/plus" target="_blank">https://www.google.com/settings/plus</a>:</p>
<p><a href="http://cdn.rottmann.net/wp-content/uploads/2013/03/Google%2B-Account-Settings.jpg?2bf9ce" rel="prettyPhoto[2913]"><img class="alignnone size-full wp-image-2915" alt="Google+ - Account Settings" src="http://cdn.rottmann.net/wp-content/uploads/2013/03/Google%2B-Account-Settings.jpg?2bf9ce" width="818" height="95" /></a></p>
<p>I&#8217;d love to see this become</p>
<ul>
<li><span style="line-height: 13px;">a per Community setting</span></li>
<li>more exposed in the Community UI</li>
</ul>
<p>But it&#8217;s good for a start.</p>
<div class="AWD_facebook_likebutton"><iframe src="http://www.facebook.com/plugins/like.php?href=http%3A%2F%2Frottmann.net%2F2013%2F03%2Fhow-to-stop-posting-public-google-communities-posts-to-your-profile%2F&amp;send=0&amp;layout=standard&amp;width=610&amp;show_faces=1&amp;action=like&amp;colorscheme=light&amp;font=arial&amp;height=64&ref=" scrolling="no" frameborder="0" style="border:none; overflow:hidden; width:610px; height:64px;" allowTransparency="true"></iframe></div><p><img src="http://cdn.rottmann.net/wp-content/uploads/2013/03/Google-Plus-Communities.jpg?2bf9ce"></p>]]></content:encoded>
			<wfw:commentRss>http://rottmann.net/2013/03/how-to-stop-posting-public-google-communities-posts-to-your-profile/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Stay hungry, don’t stop learning</title>
		<link>http://rottmann.net/2013/02/stay-hungry-dont-stop-learning/</link>
		<comments>http://rottmann.net/2013/02/stay-hungry-dont-stop-learning/#comments</comments>
		<pubDate>Mon, 11 Feb 2013 19:08:08 +0000</pubDate>
		<dc:creator>ralf</dc:creator>
				<category><![CDATA[Digital Life]]></category>
		<category><![CDATA[attitude]]></category>

		<guid isPermaLink="false">http://rottmann.net/?p=2902</guid>
		<description><![CDATA[If I could only offer one piece of advice to a new web development student, it would be: “don’t worry; we all feel overwhelmed.” I’d then remind him or her that I, too, am still a student, and so are all of my peers. This industry is an incredibly tough one that requires constant continued education throughout your career. You better be okay with this truth.

You’ll never graduate. You’ll never know it all. But, if you love it enough, none of that will matter. In fact, you’ll crave education.]]></description>
				<content:encoded><![CDATA[<p><em>I have shamelessly stolen this <a href="https://tutsplus.com/2012/08/dont-worry-we-all-feel-overwhelmed/" target="_blank">entire post from Jeffrey Way</a>, who is a fantastic teacher over at tuts+ premium. Of course, I asked for his permission and <a href="https://twitter.com/jeffrey_way/status/301038681513414656" target="_blank">got it</a>. I&#8217;ve been working with developers for most of my life and found this so to the point, that I just had to make it available to the rottmann.net audience. Thanks, Jeffrey, for nailing it.</em></p>
<p>If I could only offer one piece of advice to a new web development student, it would be: “don’t worry; we all feel overwhelmed.” I’d then remind him or her that I, too, am still a student, and so are all of my peers. This industry is an incredibly tough one that requires constant continued education throughout your career. You better be okay with this truth.</p>
<blockquote><p>You’ll never graduate. You’ll never know it all. But, if you love it enough, none of that will matter. In fact, you’ll crave education.</p></blockquote>
<p>The standard programming joke is that, Monday-Friday, we go to work and stare at our computers. Then, on the weekend, we do the same thing in our bedrooms, contributing to open source projects. Why? Why do we dedicate precious free time to programming…for free? Well, despite the fact that this surely baffles our employers, there’s lots of reasons why we behave in this way:</p>
<ul>
<li>We feel the need to contribute back to the industry</li>
<li>We crave some level of recognition from our peers</li>
<li>It’s fun</li>
</ul>
<p>All three items above factor into the equation, but the final point, “It’s fun,” is the core reason. Programming is like a puzzle. “Given this data, how can I get to that end-point?” And who doesn’t like a good puzzle or riddle?</p>
<h2>But It’s Too Hard</h2>
<p>Nonetheless, I’m often emailed by students, who either don’t know where to begin, or can’t determine what the next step is.</p>
<blockquote><p>“What should I master next?” they frequently ask.</p></blockquote>
<p>My typical response is to offer a handful of technologies that they should become fluent in. The irony, though, is that “mastery” shouldn’t be in your thinking just yet. That’s not the way it works. You don’t master HTML, and then master CSS, and so on. If only it was that easy!</p>
<p>The reality is that our web development training is similar to an RPG; you slowly level up in each category, as you gain more experience. An “aha” break-through in, say, Ruby or PHP, will frequently trickle down to a comparable break-through in your JavaScript understanding. Or, as another example, once you begin to grok object-oriented programming, you’ll likely find that you can apply the same principle to your CSS as well! These technologies are linked, even if you don’t immediately recognize it.</p>
<blockquote><p>Learning how to develop for the web is a slow process of leveling up.</p></blockquote>
<h2>Imposter Syndrome</h2>
<p>Unfortunately, from time to time, we all feel a bit down on ourselves. We’re surrounded by so much talent; am I falling behind? The truth is that this is a natural reaction – one that most developers feel at some point or another. It even has a name: “Impostor Syndrome.”</p>
<blockquote><p>The impostor syndrome is a psychological phenomenon in which people are unable to internalize their accomplishments. Despite external evidence of their competence, those with the syndrome remain convinced that they are frauds and do not deserve the success they have achieved. Proof of success is dismissed as luck, timing, or as a result of deceiving others into thinking they are more intelligent and competent than they believe themselves to be.<br />
- Wikipedia</p></blockquote>
<p>One could argue that impostor syndrome is a sign of maturity. It ironically takes a considerable amount of education before you realize just how little you actually know. And that’s perfectly okay! Your peers, your teachers, your developer heroes – they’re all still learning new things every day. That’s what makes this industry so exciting. Because it’s still relatively quite young, there’s a vast world of new ideas and techniques at our finger tips. What could be more exciting than that?</p>
<p>So, to return to my one piece of advice: “Don’t worry; we all feel overwhelmed.” The key is to recognize this truth, accept it, and never, never… ever, stop.</p>
<blockquote><p>I’ve missed more than 9000 shots in my career. I’ve lost almost 300 games. 26 times, I’ve been trusted to take the game winning shot and missed. I’ve failed over and over and over again in my life. And that is why I succeed.”<br />
- Michael Jordan</p></blockquote>
<p style="text-align: right;"><a href="https://tutsplus.com/2012/08/dont-worry-we-all-feel-overwhelmed/" target="_blank">Source</a></p>
<div class="AWD_facebook_likebutton"><iframe src="http://www.facebook.com/plugins/like.php?href=http%3A%2F%2Frottmann.net%2F2013%2F02%2Fstay-hungry-dont-stop-learning%2F&amp;send=0&amp;layout=standard&amp;width=610&amp;show_faces=1&amp;action=like&amp;colorscheme=light&amp;font=arial&amp;height=64&ref=" scrolling="no" frameborder="0" style="border:none; overflow:hidden; width:610px; height:64px;" allowTransparency="true"></iframe></div><p><img src="http://cdn.rottmann.net/wp-content/uploads/2013/02/childrens-day-learn-696.jpg?2bf9ce"></p>]]></content:encoded>
			<wfw:commentRss>http://rottmann.net/2013/02/stay-hungry-dont-stop-learning/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Setting up Scalr with Ubuntu 12.04 Server and Predis</title>
		<link>http://rottmann.net/2013/02/setting-up-scalr-with-ubuntu-12-04-server-and-predis/</link>
		<comments>http://rottmann.net/2013/02/setting-up-scalr-with-ubuntu-12-04-server-and-predis/#comments</comments>
		<pubDate>Fri, 08 Feb 2013 19:51:36 +0000</pubDate>
		<dc:creator>ralf</dc:creator>
				<category><![CDATA[Tutorials]]></category>
		<category><![CDATA[cloud computing]]></category>
		<category><![CDATA[scalr]]></category>

		<guid isPermaLink="false">http://rottmann.net/?p=2889</guid>
		<description><![CDATA[Part of my work at acceleract is to build highly scalable web applications – mostly driving RESTful APIs for mobile clients these days. The infrastructure powering these scalable PHP applications can get quite complex. For example, for a current client I&#8217;m running two load balancers which dispatch traffic to four app servers each using a(...)]]></description>
				<content:encoded><![CDATA[<p>Part of my work at <a href="http://acceleract.com" target="_blank">acceleract</a> is to build highly scalable web applications – mostly driving RESTful APIs for mobile clients these days.</p>
<p>The infrastructure powering these scalable PHP applications can get quite complex. For example, for a current client I&#8217;m running two load balancers which dispatch traffic to four app servers each using a powerful master-slave MySQL cluster and four master-slave Redis Key/Value stores for fast delivery of in-memory hashes. For all of this, I currently mostly use Ubuntu 12.04 server.</p>
<p>Naturally, I&#8217;m leveraging Amazon EC2, a very reliable, advanced PaaS (Platform-as-a-Service) provider for my infrastructure needs. While Amazon does a great job virtualizing all sorts of servers, the Cloud Management capabilities it offers are somewhat limited.</p>
<p>Therefore I recently took a deeper look into <a href="http://www.scalr.com" target="_blank">Scalr</a>.</p>
<p>Scalr is a modern, fully open sourced Cloud Management solution that simplifies the art of setting up multi-tiered infrastructures and provides great means for auto-scaling. Exactly what my clients need.</p>
<p>I ran into some subtle issues and specialities on my journey with Scalr and thought, I might give back some of the findings to the community for others to save some time.</p>
<p>Here is the target setup I wanted to achieve:</p>
<ul>
<li>Ubuntu 12.04 64bit with Amazon EBS storage</li>
<li>Daniele Alessandri&#8217;s fantastic <a href="https://github.com/nrk/predis" target="_blank">Predis PHP client library</a> installed</li>
<li>Increased PHP &lt;&gt; Redis performance via the <a href="https://github.com/nrk/phpiredis" target="_blank">phpiredis.so</a> extension</li>
<li>Automated installation of libhiredis compiled from <a href="https://github.com/redis/hiredis" target="_blank">its source</a></li>
<li>Seamless, GitHub based deployment of the PHP application</li>
</ul>
<p>Turns out, all of this can be achieved with Scalr, but it requires some scripting and setup. Here is the step by step guide. I assume, that you do understand the basics of the Scalr Control Panel.</p>
<p>First we need to add some scripts.</p>
<h3>Cleaning /var/www</h3>
<p>Unfortunately, the way Scalr set up its built-in scripts, a deployment configured via the Deployments tab of a Role fails, if the target directory is not empty. Ubuntu moves an <em>index.html</em> and <em>phpinfo.php</em> file into <em>/var/www</em> – which causes Scalr deployment to fail complaining about a non-empty directory.</p>
<p>So the first thing you should do is add a script that cleans <em>/var/www</em>:</p>
<script src="https://gist.github.com/4741421.js"></script><noscript><p>View the code on <a href="https://gist.github.com/4741421">Gist</a>.</p></noscript>
<p>Attach this to the <strong>HostInit</strong> event and give it an <em>execution order</em> of <em>20</em>. Important: Make sure you set <em>Where</em> to <em>&#8220;That instance only&#8221;</em>, otherwise it&#8217;ll run on <strong>all</strong> instances whenever it gets triggered on a <strong>single</strong> instance. (I know, this bit sounds a bit confusing and believe me, I fell for it, too&#8230;)</p>
<h2>Modifying PHP&#8217;s include_path</h2>
<p>The default PHP distribution that ships with Ubuntu sets no <em>include_path</em>. PHP&#8217;s default (<em>/usr/share/php</em>) kicks in which is not ideal, as Ubuntu uses <em>/usr/share/php5</em> instead.</p>
<p>Create another script to add the <em>include_path</em> directive to <em>php.ini</em>:</p>
<script src="https://gist.github.com/4741446.js"></script><noscript><p>View the code on <a href="https://gist.github.com/4741446">Gist</a>.</p></noscript>
<p>Again, add this to the <strong>HostInit</strong> event and set the <em>execution_order</em> to <em>10</em>.</p>
<h3>Installing libhiredis, Predis and phpiredis</h3>
<p>Finally, we are all set to install the Redis libraries, PHP extensions and configure everything.</p>
<p>Add the following script</p>
<script src="https://gist.github.com/4741458.js"></script><noscript><p>View the code on <a href="https://gist.github.com/4741458">Gist</a>.</p></noscript>
<p>and add it to the <strong>HostUp</strong> event.</p>
<h2>You&#8217;re all set.</h2>
<p>That&#8217;s it. Launch your Farm and you should get a perfectly configured app server with the phpiredis extension ready to go and Predis available in the adjusted include path.</p>
<p>Hope this might help some Scalr fans out there.</p>
<div class="AWD_facebook_likebutton"><iframe src="http://www.facebook.com/plugins/like.php?href=http%3A%2F%2Frottmann.net%2F2013%2F02%2Fsetting-up-scalr-with-ubuntu-12-04-server-and-predis%2F&amp;send=0&amp;layout=standard&amp;width=610&amp;show_faces=1&amp;action=like&amp;colorscheme=light&amp;font=arial&amp;height=64&ref=" scrolling="no" frameborder="0" style="border:none; overflow:hidden; width:610px; height:64px;" allowTransparency="true"></iframe></div><p><img src="http://cdn.rottmann.net/wp-content/uploads/2013/02/Scalr_Logo.png?2bf9ce"></p>]]></content:encoded>
			<wfw:commentRss>http://rottmann.net/2013/02/setting-up-scalr-with-ubuntu-12-04-server-and-predis/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Setting Gmail as default mailto link handler in Chrome 24+</title>
		<link>http://rottmann.net/2013/01/gmail-mailto-link-handler-chrome/</link>
		<comments>http://rottmann.net/2013/01/gmail-mailto-link-handler-chrome/#comments</comments>
		<pubDate>Sat, 26 Jan 2013 11:27:13 +0000</pubDate>
		<dc:creator>ralf</dc:creator>
				<category><![CDATA[Quick Tips]]></category>
		<category><![CDATA[chrome]]></category>
		<category><![CDATA[gmail]]></category>

		<guid isPermaLink="false">http://rottmann.net/?p=2880</guid>
		<description><![CDATA[I&#8217;m a Gmail addict. We run our company email on it. All my personal mail has been based on it for years. Lately, I got annoyed that whenever clicking a mailto: link anywhere on the Web, Apple Mail launched. Now, Apple Mail likely is the worst email client ever written and – frankly – using(...)]]></description>
				<content:encoded><![CDATA[<p>I&#8217;m a Gmail addict. We run our company email on it. All my personal mail has been based on it for years. Lately, I got annoyed that whenever clicking a mailto: link anywhere on the Web, Apple Mail launched.</p>
<p>Now, Apple Mail likely is the worst email client ever written and – frankly – using Gmail with anything else than the Web based interface is just plain stupid from a productivity standpoint, so I really had to force my Mac to open mailto: links in Google Chrome.</p>
<p>Googling the problem returned lots of results telling me I should go to <strong>Settings &gt; Show advanced settings&#8230; &gt; Content settings&#8230; &gt; Manage handlers&#8230;</strong> and set up the mailto: handler there. Unfortunately, as of my current Google Chrome version 24.0.1312.56, the settings for handling mail simply aren&#8217;t available. Whether it&#8217;s a bug or by design, I can&#8217;t tell.</p>
<p>Here is how you bring it back anyway:</p>
<ul>
<li><span style="line-height: 13px;">Launch Gmail in a new tab or make Gmail the active tab.</span></li>
<li>With the tab active, launch Chrome&#8217;s JavaScript console by entering <strong>Cmd+Alt+J</strong>.</li>
</ul>
<p>In the JavaScript console, paste the following code and hit Enter:</p>
<script src="https://gist.github.com/4641786.js"></script><noscript><p>View the code on <a href="https://gist.github.com/4641786">Gist</a>.</p></noscript>
<p>Notice, in the address bar, next to the bookmark icon (star), the protocol handler icon appears. Click it and set Gmail as your handler for mailto: handler. When you navigate to the handlers settings, you&#8217;ll also see the setting just came back.</p>
<p>I hope this helps! Want to stay in touch? Follow me on <a href="https://plus.google.com/106658337982640166595/posts" target="_blank">Google+</a> and <a href="http://twitter.com/ralf" target="_blank">Twitter</a>.</p>
<div class="AWD_facebook_likebutton"><iframe src="http://www.facebook.com/plugins/like.php?href=http%3A%2F%2Frottmann.net%2F2013%2F01%2Fgmail-mailto-link-handler-chrome%2F&amp;send=0&amp;layout=standard&amp;width=610&amp;show_faces=1&amp;action=like&amp;colorscheme=light&amp;font=arial&amp;height=64&ref=" scrolling="no" frameborder="0" style="border:none; overflow:hidden; width:610px; height:64px;" allowTransparency="true"></iframe></div><p><img src="http://cdn.rottmann.net/wp-content/uploads/2013/01/google_chrome_by_haveapk.png?2bf9ce"></p>]]></content:encoded>
			<wfw:commentRss>http://rottmann.net/2013/01/gmail-mailto-link-handler-chrome/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
		<item>
		<title>Setting up Slim PHP Framework with Twig templating</title>
		<link>http://rottmann.net/2013/01/setting-up-slim-php-framework-with-twig-templating/</link>
		<comments>http://rottmann.net/2013/01/setting-up-slim-php-framework-with-twig-templating/#comments</comments>
		<pubDate>Thu, 17 Jan 2013 19:33:53 +0000</pubDate>
		<dc:creator>ralf</dc:creator>
				<category><![CDATA[Coding]]></category>
		<category><![CDATA[php]]></category>
		<category><![CDATA[slim]]></category>
		<category><![CDATA[twig]]></category>

		<guid isPermaLink="false">http://rottmann.net/?p=2871</guid>
		<description><![CDATA[Recently, I migrated one of my Facebook Canvas apps to the Slim Framework and Twig templating. Unfortunately, the Slim documentation is&#8230; very slim&#8230; so I ran into some trouble with the paths and how to include everything to make it work. Most of the suggested solutions I found via Google where either outdated or not(...)]]></description>
				<content:encoded><![CDATA[<p>Recently, I migrated one of my Facebook Canvas apps to the <a href="http://www.slimframework.com/" target="_blank">Slim Framework</a> and <a href="http://twig.sensiolabs.org/" target="_blank">Twig templating</a>.</p>
<p>Unfortunately, the Slim documentation is&#8230; very slim&#8230; so I ran into some trouble with the paths and how to include everything to make it work. Most of the suggested solutions I found via Google where either outdated or not working.</p>
<p>To save you the hassle, here is how I made it work.</p>
<p>Let&#8217;s start with precise version info for what I&#8217;ve used:</p>
<ul>
<li>Slim 2.2.0 <a href="https://github.com/codeguy/Slim/tree/master/Slim" target="_blank">from GitHub</a>.</li>
<li>Slim Extras <a href="https://github.com/codeguy/Slim-Extras" target="_blank">from GitHub</a>. Too bad, there&#8217;s no version info on those. When I downloaded the extras, the latest commit was dated January 7th, 2013 on the master branch.</li>
<li>Twig 1.12.2 <a href="https://github.com/fabpot/Twig" target="_blank">from GitHub</a>.</li>
<li>PHP 5.4.4.</li>
</ul>
<p>Next: Folder structure.</p>
<ul>
<li>I moved the <strong>Slim</strong> folder (and only the Slim folder) into my project&#8217;s root.</li>
<li>Inside the <strong>Slim</strong> folder I manually created an <strong>Extras</strong> folder.</li>
<li>I moved the <strong>Views</strong> folder (and only the Views folder) from the Slim Extras inside this manually created <strong>Extras</strong> folder.</li>
<li>I moved the <strong>Twig</strong> folder (and only the Twig folder) into the project root. The <strong>Twig</strong> folder is located inside the <strong>lib</strong> folder when you download Twig from GitHub.</li>
<li>I manually created a <strong>templates</strong> folder inside the project root.</li>
</ul>
<p>Next: Code.</p>
<ul>
<li>Find <strong>Twig.php</strong> inside <strong>Slim/Extras/</strong> and change <strong>public static $twigDirectory = &#8220;&#8221;;</strong> to <strong>public static $twigDirectory = &#8220;Twig&#8221;;</strong></li>
<li>Make sure, you also move <strong>.htaccess</strong> from the Slim bundle to your web server. Sometimes it&#8217;s hidden and you might miss this step. Depending on your hosting provider, you might have to change the <strong>RewriteBase</strong> inside <strong>.htaccess</strong>. The default worked fine for me.</li>
</ul>
<p>Finally, here&#8217;s how I had to initialize Slim, the Extras and Twig:</p>
<script src="https://gist.github.com/4558698.js"></script><noscript><p>View the code on <a href="https://gist.github.com/4558698">Gist</a>.</p></noscript>
<p>With all of the above done, I was able to seamlessly use Twig&#8217;s template engine via the Slim framework as in the following example:</p>
<script src="https://gist.github.com/4558889.js"></script><noscript><p>View the code on <a href="https://gist.github.com/4558889">Gist</a>.</p></noscript>
<p>Hope this helps and good luck!</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<div class="AWD_facebook_likebutton"><iframe src="http://www.facebook.com/plugins/like.php?href=http%3A%2F%2Frottmann.net%2F2013%2F01%2Fsetting-up-slim-php-framework-with-twig-templating%2F&amp;send=0&amp;layout=standard&amp;width=610&amp;show_faces=1&amp;action=like&amp;colorscheme=light&amp;font=arial&amp;height=64&ref=" scrolling="no" frameborder="0" style="border:none; overflow:hidden; width:610px; height:64px;" allowTransparency="true"></iframe></div><p><img src="http://cdn.rottmann.net/wp-content/uploads/2013/01/Introduction-to-PHP.jpg?2bf9ce"></p>]]></content:encoded>
			<wfw:commentRss>http://rottmann.net/2013/01/setting-up-slim-php-framework-with-twig-templating/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title />
		<link>http://rottmann.net/2013/01/2850/</link>
		<comments>http://rottmann.net/2013/01/2850/#comments</comments>
		<pubDate>Tue, 15 Jan 2013 20:42:06 +0000</pubDate>
		<dc:creator>ralf</dc:creator>
				<category><![CDATA[Opinion]]></category>
		<category><![CDATA[Android]]></category>
		<category><![CDATA[ios]]></category>

		<guid isPermaLink="false">http://rottmann.net/?p=2850</guid>
		<description><![CDATA[Drafting a follow up article to my iPhone 5 to Nexus 4 switch. Working title: What should Apple do?]]></description>
				<content:encoded><![CDATA[<p>Drafting a follow up article to my <a title="An iPhone lover’s confession: I switched to the Nexus 4. Completely." href="http://rottmann.net/2013/01/an-iphone-lovers-confession-i-switched-to-the-nexus-4-completely/">iPhone 5 to Nexus 4</a> switch. Working title: What should Apple do?</p>
<div class="AWD_facebook_likebutton"><iframe src="http://www.facebook.com/plugins/like.php?href=http%3A%2F%2Frottmann.net%2F2013%2F01%2F2850%2F&amp;send=0&amp;layout=standard&amp;width=610&amp;show_faces=1&amp;action=like&amp;colorscheme=light&amp;font=arial&amp;height=64&ref=" scrolling="no" frameborder="0" style="border:none; overflow:hidden; width:610px; height:64px;" allowTransparency="true"></iframe></div>]]></content:encoded>
			<wfw:commentRss>http://rottmann.net/2013/01/2850/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Using instant Gmail aliases to track sources of inbox spam</title>
		<link>http://rottmann.net/2013/01/using-instant-gmail-aliases-to-track-sources-of-inbox-spam/</link>
		<comments>http://rottmann.net/2013/01/using-instant-gmail-aliases-to-track-sources-of-inbox-spam/#comments</comments>
		<pubDate>Tue, 15 Jan 2013 12:29:58 +0000</pubDate>
		<dc:creator>ralf</dc:creator>
				<category><![CDATA[Quick Tips]]></category>
		<category><![CDATA[gmail]]></category>
		<category><![CDATA[google]]></category>

		<guid isPermaLink="false">http://rottmann.net/?p=2834</guid>
		<description><![CDATA[It is a surprisingly little known fact that Gmail and Google Apps for Businesses customers can use instant aliases to better track potential spam mail originating from singing up for (free) services. You &#8220;create&#8221; an instant alias by adding a +alias to your username. For example, if your email address is bill.gates@gmail.com, you could use bill.gates+freeby@gmail.com when(...)]]></description>
				<content:encoded><![CDATA[<p>It is a surprisingly little known fact that Gmail and Google Apps for Businesses customers can use <strong>instant aliases</strong> to better track potential spam mail originating from singing up for (free) services.</p>
<p>You &#8220;create&#8221; an instant alias by adding a <em>+alias</em> to your username.</p>
<p>For example, if your email address is <strong>bill.gates@gmail.com</strong>, you could use <strong>bill.gates+freeby@gmail.com</strong> when signing up for the shiny new freeby service.</p>
<p>This way, the next time you receive an unsolicited newsletter caused by signing up to this service, the sent to field will reveal its source!</p>
<p>Instant aliases work with all Gmail and Google Apps for Businesses accounts and require no prior setup. I&#8217;m using them all the time and they&#8217;ve helped me greatly to separate services which I can trust with my <strong>real</strong> email address from those, that hand them to spammers.</p>
<p>&nbsp;</p>
<div class="AWD_facebook_likebutton"><iframe src="http://www.facebook.com/plugins/like.php?href=http%3A%2F%2Frottmann.net%2F2013%2F01%2Fusing-instant-gmail-aliases-to-track-sources-of-inbox-spam%2F&amp;send=0&amp;layout=standard&amp;width=610&amp;show_faces=1&amp;action=like&amp;colorscheme=light&amp;font=arial&amp;height=64&ref=" scrolling="no" frameborder="0" style="border:none; overflow:hidden; width:610px; height:64px;" allowTransparency="true"></iframe></div><p><img src="http://cdn.rottmann.net/wp-content/uploads/2013/01/JESS3_Gmail_Makingof-11.jpeg?2bf9ce"></p>]]></content:encoded>
			<wfw:commentRss>http://rottmann.net/2013/01/using-instant-gmail-aliases-to-track-sources-of-inbox-spam/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title />
		<link>http://rottmann.net/2013/01/2741/</link>
		<comments>http://rottmann.net/2013/01/2741/#comments</comments>
		<pubDate>Sat, 12 Jan 2013 19:48:37 +0000</pubDate>
		<dc:creator>ralf</dc:creator>
				<category><![CDATA[rottmann.net]]></category>
		<category><![CDATA[maintenance]]></category>

		<guid isPermaLink="false">http://www.rottmann.net/?p=2741</guid>
		<description><![CDATA[While the redesign has almost been completed, I&#8217;ve started moving files over to the Rackspace CDN. You might see ocasional issues with styles, images and other assets. In the future, rottmann.net will load much more speedy, though and not go down under heavy load anymore.]]></description>
				<content:encoded><![CDATA[<p>While the redesign has almost been completed, I&#8217;ve started moving files over to the Rackspace CDN. You might see ocasional issues with styles, images and other assets. In the future, rottmann.net will load much more speedy, though and not go down under heavy load anymore.</p>
<div class="AWD_facebook_likebutton"><iframe src="http://www.facebook.com/plugins/like.php?href=http%3A%2F%2Frottmann.net%2F2013%2F01%2F2741%2F&amp;send=0&amp;layout=standard&amp;width=610&amp;show_faces=1&amp;action=like&amp;colorscheme=light&amp;font=arial&amp;height=64&ref=" scrolling="no" frameborder="0" style="border:none; overflow:hidden; width:610px; height:64px;" allowTransparency="true"></iframe></div>]]></content:encoded>
			<wfw:commentRss>http://rottmann.net/2013/01/2741/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss><!-- Performance optimized by W3 Total Cache. Learn more: http://www.w3-edge.com/wordpress-plugins/

Page Caching using disk: basic
Database Caching 42/60 queries in 0.008 seconds using disk: basic
Object Caching 1520/1789 objects using disk: basic
Content Delivery Network via Rackspace Cloud Files: cdn.rottmann.net

 Served from: rottmann.net @ 2013-05-16 00:10:25 by W3 Total Cache -->
