<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
  <channel>
    <title>Erik Zaadi</title>
    <link>//erikzaadi.com/</link>
    <description>Recent content on Erik Zaadi</description>
    <generator>Hugo</generator>
    <language>en-us</language>
    <copyright>© erikzaadi.com</copyright>
    <lastBuildDate>Wed, 08 Apr 2026 21:47:22 +0300</lastBuildDate>
    <atom:link href="//erikzaadi.com/index.xml" rel="self" type="application/rss+xml" />
    <item>
      <title>My Kid Didn&#39;t Want to DM, So I Built One</title>
      <link>//erikzaadi.com/2026/04/08/my-kid-didnt-want-to-dm-so-i-built-one/</link>
      <pubDate>Wed, 08 Apr 2026 21:47:22 +0300</pubDate>
      <guid>//erikzaadi.com/2026/04/08/my-kid-didnt-want-to-dm-so-i-built-one/</guid>
      <description>&lt;p&gt;&lt;em&gt;The DM who never gets tired, never says &amp;ldquo;I forgot my notes&amp;rdquo;, and always has a pun ready.&lt;/em&gt;&lt;/p&gt;&#xA;&lt;p&gt;&lt;strong&gt;TL;DR:&lt;/strong&gt; My kid wanted to play D&amp;amp;D as a family but nobody wanted to run the game. So I built &lt;a href=&#34;https://github.com/erikzaadi/dnd-fam-ftw&#34;&gt;dnd-fam-ftw&lt;/a&gt;: a self-hosted, AI-powered Dungeon Master for short, family-friendly adventure nights. POC took under an hour. First session was chaos. We loved it.&lt;/p&gt;&#xA;&lt;hr&gt;&#xA;&lt;h2 id=&#34;the-setup&#34;&gt;The Setup&lt;/h2&gt;&#xA;&lt;p&gt;My kid has been into D&amp;amp;D for a while. Books, dice, the whole deal.&lt;/p&gt;</description>
    </item>
    <item>
      <title>The Rat That Byte Twice</title>
      <link>//erikzaadi.com/2026/03/20/the-rat-that-byte-twice/</link>
      <pubDate>Fri, 20 Mar 2026 10:30:08 +0200</pubDate>
      <guid>//erikzaadi.com/2026/03/20/the-rat-that-byte-twice/</guid>
      <description>&lt;h3 id=&#34;tldr&#34;&gt;TL;DR&lt;/h3&gt;&#xA;&lt;p&gt;A rat ate my fiber optic cable. Technician came, fixed it, sat with us in the safe room during a missile alert, left. Ten minutes later the rat ate it again. Technician happened to be passing by. We improvised cable armor. You can&amp;rsquo;t make this up.&lt;/p&gt;&#xA;&lt;hr&gt;&#xA;&lt;div style=&#34;width: 100%; display: flex; align-items: center; justify-content: center;&#34;&gt;&#xA;    &lt;img style=&#34;box-shadow: 0 15px 20px 5px rgba(0, 0, 0, 0.25);border-radius: 15px; border: solid 1px transparent;display: block; width: 80%; margin: 0.7rem; auto&#34; src=&#34;//erikzaadi.com/images/oh-rats/opti-mystical-rat.png&#34; alt=&#34;Opti-Mystical Rat. Take 2: Connection Lost.&#34; title=&#34;Opti-Mystical Rat. Take 2: Connection Lost.&#34; /&gt;&#xA;&lt;/div&gt;&#xA;&#xA;&lt;p&gt;&lt;em&gt;The Rat That Byte Twice.&lt;/em&gt;&lt;/p&gt;</description>
    </item>
    <item>
      <title>ShelteryPie: A Missile Alert Led Lights</title>
      <link>//erikzaadi.com/2026/03/08/shelterypie-a-missile-alert-led-lights/</link>
      <pubDate>Sun, 08 Mar 2026 14:58:41 +0200</pubDate>
      <guid>//erikzaadi.com/2026/03/08/shelterypie-a-missile-alert-led-lights/</guid>
      <description>&lt;h3 id=&#34;tldr&#34;&gt;TL;DR&lt;/h3&gt;&#xA;&lt;p&gt;Everyone doom-scrolls during missile alerts. I wired an RGB LED to a Raspberry Pi, pointed it at the Pikud HaOref API, and now my family looks at a light instead of their phones. The LED beat the sirens by a few seconds on its first real test. The Pi is named ShelteryPie. &lt;a href=&#34;https://github.com/erikzaadi/pikud&#34;&gt;Code is on GitHub.&lt;/a&gt;&lt;/p&gt;&#xA;&lt;hr&gt;&#xA;&lt;h2 id=&#34;shelterypie-a-missile-alert-led-lights&#34;&gt;ShelteryPie: A Missile Alert Led Lights&lt;/h2&gt;&#xA;&lt;p&gt;&lt;em&gt;Pi-Kud, the Pi that could.&lt;/em&gt;&lt;/p&gt;&#xA;&lt;p&gt;You know the scene.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Auto Resume Claude Code Sessions</title>
      <link>//erikzaadi.com/2026/02/15/auto-resume-claude-code-sessions/</link>
      <pubDate>Sun, 15 Feb 2026 13:34:18 +0200</pubDate>
      <guid>//erikzaadi.com/2026/02/15/auto-resume-claude-code-sessions/</guid>
      <description>&lt;p&gt;I&amp;rsquo;m a big user of Claude Code, their CLI is AMAZONG, you can even paste images of outputs and it&amp;rsquo;ll parse it.&lt;/p&gt;&#xA;&lt;div style=&#34;width: 100%; display: flex; align-items: center; justify-content: center;&#34;&gt;&#xA;    &lt;img style=&#34;box-shadow: 0 15px 20px 5px rgba(0, 0, 0, 0.25);border-radius: 15px; border: solid 1px transparent;display: block; width: 80%; margin: 0.7rem; auto&#34; src=&#34;//erikzaadi.com/images/jcvd-terminal.png&#34; alt=&#34;Claude Van Terminal&#34; title=&#34;Claude Van Terminal&#34; /&gt;&#xA;&lt;/div&gt;&#xA;&#xA;&lt;p&gt;Needless to say, I&amp;rsquo;m a heavy &lt;code&gt;tmux&lt;/code&gt; user, and I usually have several sessions windows and pane open, with plentiful of Claude CLI sessions in place.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Why Penguins Don&#39;t Build Nests in Trees and Why That Matters for AI </title>
      <link>//erikzaadi.com/2026/02/08/penguins-kids-and-ai-sitting-in-a-tree/</link>
      <pubDate>Sun, 08 Feb 2026 12:49:56 +0200</pubDate>
      <guid>//erikzaadi.com/2026/02/08/penguins-kids-and-ai-sitting-in-a-tree/</guid>
      <description>&lt;h2 id=&#34;a-different-kind-of-talk&#34;&gt;A different kind of talk&lt;/h2&gt;&#xA;&lt;p&gt;I recently had the opportunity to speak at my kid&amp;rsquo;s class about AI.&lt;/p&gt;&#xA;&lt;p&gt;It was not a conference talk.&#xA;There were no slides about model architectures or leadership frameworks.&#xA;There were 12 year olds, lots of opinions, and very little patience for fluff.&lt;/p&gt;&#xA;&lt;p&gt;Which, in hindsight, was perfect.&lt;/p&gt;&#xA;&lt;hr&gt;&#xA;&lt;h2 id=&#34;tldr&#34;&gt;TL;DR:&lt;/h2&gt;&#xA;&lt;p&gt;You can find:&lt;/p&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;the full source code &lt;a href=&#34;https://github.com/erikzaadi/gpt-ai-image-lab&#34;&gt;here&lt;/a&gt;&lt;/li&gt;&#xA;&lt;li&gt;the slides from the session &lt;a href=&#34;https://slides.erikzaadi.com/nachshon-ai-and-leadership&#34;&gt;here&lt;/a&gt;&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;p&gt;Feel free to reuse or adapt them.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Putting the AI in TUI: When You Have 43 Minutes and a Commit Stuck in Your Head</title>
      <link>//erikzaadi.com/2025/11/07/putting-the-ai-in-tui-when-you-have-43-minutes-and-a-commit-stuck-in-your-head/</link>
      <pubDate>Fri, 07 Nov 2025 11:26:53 +0200</pubDate>
      <guid>//erikzaadi.com/2025/11/07/putting-the-ai-in-tui-when-you-have-43-minutes-and-a-commit-stuck-in-your-head/</guid>
      <description>&lt;h2 id=&#34;putting-the-ai-in-tui-when-you-have-43-minutes-and-a-commit-stuck-in-your-head&#34;&gt;Putting the AI in TUI: When You Have 43 Minutes and a Commit Stuck in Your Head&lt;/h2&gt;&#xA;&lt;div style=&#34;width: 100%; display: flex; align-items: center; justify-content: center;&#34;&gt;&#xA;    &lt;img style=&#34;box-shadow: 0 15px 20px 5px rgba(0, 0, 0, 0.25);border-radius: 15px; border: solid 1px transparent;display: block; width: 80%; margin: 0.7rem; auto&#34; src=&#34;//erikzaadi.com/images/brew-ai-tui.png&#34; alt=&#34;Brewing code&#34; title=&#34;Brewing code&#34; /&gt;&#xA;&lt;/div&gt;&#xA;&#xA;&lt;p&gt;I don’t get a lot of uninterrupted time these days.&lt;br&gt;&#xA;Between one-on-ones, planning sessions, and enough Slack threads to qualify as a second inbox, “deep work” has become something of a nostalgia act.&lt;/p&gt;</description>
    </item>
    <item>
      <title>From Clippy to Slippy: The Perils and Perks of AI in Management</title>
      <link>//erikzaadi.com/2025/08/17/clippy-to-slippy/</link>
      <pubDate>Sun, 17 Aug 2025 07:51:24 +0300</pubDate>
      <guid>//erikzaadi.com/2025/08/17/clippy-to-slippy/</guid>
      <description>&lt;div style=&#34;width: 100%; display: flex; align-items: center; justify-content: center;&#34;&gt;&#xA;    &lt;img style=&#34;box-shadow: 0 15px 20px 5px rgba(0, 0, 0, 0.25);border-radius: 15px; border: solid 1px transparent;display: block; width: 80%; margin: 0.7rem; auto&#34; src=&#34;//erikzaadi.com/images/clippy-intro.png&#34; alt=&#34;Clippy Intro&#34; title=&#34;Clippy Intro&#34; /&gt;&#xA;&lt;/div&gt;&#xA;&#xA;&lt;p&gt;&lt;em&gt;Remember Clippy? That overly enthusiastic paperclip who just knew you were writing a letter (even if you weren’t) and insisted on helping?&lt;br&gt;&#xA;Fast forward to today, and Clippy’s descendants have gotten a serious upgrade, they now run on large language models and call themselves ‘AI assistants’.&lt;/em&gt;&lt;/p&gt;</description>
    </item>
    <item>
      <title>EM &lt;&gt; PM: A Song of Ice and Fire</title>
      <link>//erikzaadi.com/2025/07/26/em-pm-a-song-of-ice-and-fire/</link>
      <pubDate>Sat, 26 Jul 2025 21:32:44 +0300</pubDate>
      <guid>//erikzaadi.com/2025/07/26/em-pm-a-song-of-ice-and-fire/</guid>
      <description>&lt;p&gt;One builds castles in the sky.&lt;br&gt;&#xA;The other worries if the foundation has continuous integration.&lt;br&gt;&#xA;One dreams of dragons.&lt;br&gt;&#xA;The other estimates customer impact.&lt;/p&gt;&#xA;&lt;p&gt;Welcome to the greatest saga in tech: &lt;strong&gt;Product Manager and Engineering Manager trying to build something together without burning down the roadmap.&lt;/strong&gt;&lt;/p&gt;&#xA;&lt;p&gt;&lt;img src=&#34;//erikzaadi.com/images/empm-roadmap-fine.png&#34; alt=&#34;Mandatory AI Generated Cheezy Image NR 1 - THIS IS FINE&#34;&gt;&lt;/p&gt;&#xA;&lt;p&gt;Over the past 2 quarters, I’ve been lucky to work with Gur Shafriri — my PM, my co-conspirator, my partner-in-shipping. And now, as Gur is away due to a beautiful family milestone (mazal tov, king!), I’m realizing just how much I relied on him.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Markdown My Words! S3 You Later PowerPoint</title>
      <link>//erikzaadi.com/2025/07/10/markdown-my-words-s3-you-later-powerpoint/</link>
      <pubDate>Thu, 10 Jul 2025 14:21:52 +0300</pubDate>
      <guid>//erikzaadi.com/2025/07/10/markdown-my-words-s3-you-later-powerpoint/</guid>
      <description>&lt;h1 id=&#34;markdown-is-life&#34;&gt;Markdown is life&lt;/h1&gt;&#xA;&lt;h2 id=&#34;so-why-not-use-it-for-presentations&#34;&gt;So why not use it for presentations?&lt;/h2&gt;&#xA;&lt;p&gt;I do a fair bit of internal presentations, and like most good things, they’re powered by Markdown, duct tape, and a sprinkle of automation magic.&lt;/p&gt;&#xA;&lt;p&gt;For a long time, I was using &lt;a href=&#34;https://github.com/webpro/reveal-md&#34;&gt;reveal-md&lt;/a&gt; for all my slides. But once that got deprecated, I moved to the absolutely AMAZONG &lt;a href=&#34;https://sli.dev&#34;&gt;Slidev (sli.dev)&lt;/a&gt; project.&lt;/p&gt;&#xA;&lt;p&gt;It&amp;rsquo;s markdown-first, extensible, and works brilliantly with my workflow.&lt;/p&gt;&#xA;&lt;p&gt;Slidev is a simple as separating slides with &lt;code&gt;---&lt;/code&gt; and just good old markdown:&lt;/p&gt;</description>
    </item>
    <item>
      <title>Proudly Unnecessary: A Leadership Tale from the Couch</title>
      <link>//erikzaadi.com/2025/07/06/proudly-unnecessary-a-leadership-tale-from-the-couch/</link>
      <pubDate>Sun, 06 Jul 2025 12:24:25 +0300</pubDate>
      <guid>//erikzaadi.com/2025/07/06/proudly-unnecessary-a-leadership-tale-from-the-couch/</guid>
      <description>&lt;p&gt;There’s an old saying:&lt;/p&gt;&#xA;&lt;blockquote&gt;&#xA;&lt;p&gt;&lt;em&gt;A manager is truly tested not by their presence, but by their absence.&lt;/em&gt;&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&lt;p&gt;Last week, I put that theory to the test. I was &lt;em&gt;down&lt;/em&gt; — tissues, tea, and a full system reboot. No gifs in Slack threads. No PR reviews. No long-winded analogies in meetings, EVEN NO PUNS (!!1).&lt;/p&gt;&#xA;&lt;p&gt;&lt;img src=&#34;//erikzaadi.com/images/5-differences-sick-healthy.png&#34; alt=&#34;Mandatory AI Generated Cheezy Image - Spot 5 differences between me being healthy and not&#34;&gt;&lt;/p&gt;&#xA;&lt;p&gt;And yet, something beautiful happened:&lt;br&gt;&#xA;The team kept building.&lt;/p&gt;</description>
    </item>
    <item>
      <title>LAN Party Guide 2.0: Warsow vs Warfork</title>
      <link>//erikzaadi.com/2025/06/22/lan-party-guide-2.0-warsow-vs-warfork/</link>
      <pubDate>Sun, 22 Jun 2025 22:03:47 +0300</pubDate>
      <guid>//erikzaadi.com/2025/06/22/lan-party-guide-2.0-warsow-vs-warfork/</guid>
      <description>&lt;p&gt;For years, my go-to LAN party game was &lt;strong&gt;Team Fortress 2&lt;/strong&gt; which was pure chaotic fun.&lt;/p&gt;&#xA;&lt;p&gt;&lt;img src=&#34;https://media3.giphy.com/media/v1.Y2lkPTc5MGI3NjExdDdmc3h6YjdqNnRpM2t5eTc3dDJ3c3A5aHh6bjlrbXRsdG45OHNteSZlcD12MV9pbnRlcm5hbF9naWZfYnlfaWQmY3Q9Zw/lbs3JZRLoirw4/giphy.gif&#34; alt=&#34;&#34;&gt;&lt;/p&gt;&#xA;&lt;p&gt;(as seen in my &lt;a href=&#34;//2016/01/09/dummy-guide-to-mac-lan-party-with-team-fortress-2/&#34;&gt;previous lan party guide&lt;/a&gt;)&lt;/p&gt;&#xA;&lt;p&gt;But ever since Apple’s transition to ARM-based processors, TF2 has sadly become a impossible to run natively on modern Macs.&lt;/p&gt;&#xA;&lt;p&gt;Enter: &lt;code&gt;War{sow,fork}&lt;/code&gt;.&lt;/p&gt;&#xA;&lt;p&gt;This post is a quick guide to getting a LAN party running using these two excellent (and free!) arena shooters.&lt;/p&gt;&#xA;&lt;hr&gt;&#xA;&lt;h2 id=&#34;war-what&#34;&gt;War-WHAT?&lt;/h2&gt;&#xA;&lt;p&gt;&lt;a href=&#34;https://warsow.net/&#34;&gt;Warsow&lt;/a&gt; is a fast-paced, cel-shaded, movement-heavy FPS. It’s completely free, runs great on older machines, and plays well with macOS via Rosetta.&lt;/p&gt;</description>
    </item>
    <item>
      <title>The Silver Bullet for Conference Presentations? There Is No Bullet</title>
      <link>//erikzaadi.com/2025/05/04/the-silver-bullet-for-conference-presentations-there-is-no-bullet/</link>
      <pubDate>Sun, 04 May 2025 09:46:39 +0300</pubDate>
      <guid>//erikzaadi.com/2025/05/04/the-silver-bullet-for-conference-presentations-there-is-no-bullet/</guid>
      <description>&lt;h4 id=&#34;ever-sat-through-a-slide-deck-that-felt-like-reading-a-spreadsheet-on-stage&#34;&gt;Ever sat through a slide deck that felt like reading a spreadsheet on stage?&lt;/h4&gt;&#xA;&lt;h3 id=&#34;presentations-are-hard--but-they-dont-have-to-be-painful&#34;&gt;Presentations are hard — but they don’t have to be painful.&lt;/h3&gt;&#xA;&lt;p&gt;You need have the magic schtick that helps you with the value you want to share.&lt;/p&gt;&#xA;&lt;h3 id=&#34;the-problem&#34;&gt;The problem&lt;/h3&gt;&#xA;&lt;p&gt;Most company templates for presentations might be great for sales pitching on zoom,&lt;/p&gt;&#xA;&lt;p&gt;BUT, they just don&amp;rsquo;t work for a stage and crowd.&lt;/p&gt;&#xA;&lt;p&gt;Slides crammed with KPIs and roadmap bullet points might kill on Zoom. On stage? They kill attention.&lt;/p&gt;</description>
    </item>
    <item>
      <title>whoami</title>
      <link>//erikzaadi.com/about/</link>
      <pubDate>Fri, 03 Jan 2025 22:06:43 +0200</pubDate>
      <guid>//erikzaadi.com/about/</guid>
      <description>&lt;img style=&#34;display: block; margin: 0.7rem auto;&#34; src=&#34;//erikzaadi.com/images/avatar-256.png&#34; /&gt;&#xA;&#xA;&lt;blockquote&gt;&#xA;&lt;p&gt;Hello Hungry, I&amp;rsquo;m dad&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&lt;p&gt;Love playing with code, pixels, people, builds and puns&lt;/p&gt;&#xA;&lt;p&gt;Coder, Manager and Dad Pun Alumni at &lt;a href=&#34;https://getport.io&#34;&gt;Port&lt;/a&gt;&lt;/p&gt;&#xA;&lt;p&gt;Enjoy everything from shiny web apps, beautiful APIs to seamless CI integrations.&lt;/p&gt;&#xA;&lt;p&gt;Dad and foremost &lt;em&gt;UBERGEEK&lt;/em&gt;.&lt;/p&gt;&#xA;&lt;p&gt;Passionate about &lt;a href=&#34;http://resume.github.com/?erikzaadi&#34;&gt;Open Source&lt;/a&gt;, always striving to learn something new.&lt;/p&gt;&#xA;&lt;p&gt;Want the long version of how I mix teamwork, tech, and terrible puns?&lt;br&gt;&#xA;I wrote a &lt;a href=&#34;https://github.com/erikzaadi/manager-readme&#34;&gt;Manager README&lt;/a&gt; — basically an instruction manual for working with me.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Onboarding vim&#39;ers</title>
      <link>//erikzaadi.com/2024/11/17/onboarding-vimers/</link>
      <pubDate>Sun, 17 Nov 2024 16:00:24 +0200</pubDate>
      <guid>//erikzaadi.com/2024/11/17/onboarding-vimers/</guid>
      <description>&lt;h2 id=&#34;vim-ftw&#34;&gt;Vim FTW&lt;/h2&gt;&#xA;&lt;p&gt;(Neo)Vim often seems daunting for people to start to work on.&lt;/p&gt;&#xA;&lt;p&gt;The basic out of the box experience with Vim isn&amp;rsquo;t very &lt;code&gt;vi improved&lt;/code&gt; I&amp;rsquo;m afraid.&lt;/p&gt;&#xA;&lt;p&gt;&lt;img src=&#34;https://cdn.thenewstack.io/media/2022/08/0ae25624-exit-vim-the-arrival-way-6n632sipjag61-1024x692.jpg&#34; alt=&#34;&#34;&gt;&lt;/p&gt;&#xA;&lt;h3 id=&#34;but-then-they-see-me-vimin-they-cravin&#34;&gt;But then they see me vim&amp;rsquo;in, they cravin&#39;&lt;/h3&gt;&#xA;&lt;p&gt;Being one of the cool kids with vim, I&amp;rsquo;m often asked how people can get started with vim without all the classic exiting vim memes.&lt;/p&gt;&#xA;&lt;p&gt;&lt;img src=&#34;https://preview.redd.it/seriously-though-how-do-i-exit-vim-v0-mx7dxqljnnl81.png?auto=webp&amp;amp;s=03f895ee50952918687dfdfea03c0bc3af097754&#34; alt=&#34;&#34;&gt;&lt;/p&gt;&#xA;&lt;h2 id=&#34;a-new-hope-arises&#34;&gt;A new hope arises&lt;/h2&gt;&#xA;&lt;p&gt;Recently, I had a chad at work ask me to get him started with vim!&lt;/p&gt;</description>
    </item>
    <item>
      <title>How to Use Zsh and Tmuxp to Speed Up Your Day to Day Workflow</title>
      <link>//erikzaadi.com/2020/02/17/how-to-use-zsh-and-tmuxp-to-speed-up-your-day-to-day-workflow/</link>
      <pubDate>Mon, 17 Feb 2020 18:44:46 +0200</pubDate>
      <guid>//erikzaadi.com/2020/02/17/how-to-use-zsh-and-tmuxp-to-speed-up-your-day-to-day-workflow/</guid>
      <description>&lt;h1 id=&#34;im-a-heavy-terminal-user&#34;&gt;I&amp;rsquo;m a heavy terminal user.&lt;/h1&gt;&#xA;&lt;p&gt;&lt;img src=&#34;https://media.giphy.com/media/W1ecIq4sEofza/giphy.gif&#34; alt=&#34;&#34;&gt;&lt;/p&gt;&#xA;&lt;h2 id=&#34;i-admit-it&#34;&gt;I admit it.&lt;/h2&gt;&#xA;&lt;p&gt;I&amp;rsquo;ve always loved the streamlined workflows of elegant TUI (AKA TEXT USER INTERFACE FTW).&lt;/p&gt;&#xA;&lt;h3 id=&#34;its-one-of-the-things-that-made-me-switch-to-vim-all-those-years-ago&#34;&gt;It&amp;rsquo;s one of the things that made me switch to &lt;code&gt;vim&lt;/code&gt; all those years ago.&lt;/h3&gt;&#xA;&lt;p&gt;In addition, I&amp;rsquo;m addicted to &lt;code&gt;tmux&lt;/code&gt; and &lt;code&gt;zsh&lt;/code&gt;, which I use daily.&lt;/p&gt;&#xA;&lt;h2 id=&#34;anyhuze&#34;&gt;Anyhuze&lt;/h2&gt;&#xA;&lt;p&gt;In my day to day job, I continuously need to switch between several applications that I might work on, some of them in separate repositories, some even in a monorepo (!).&lt;/p&gt;</description>
    </item>
    <item>
      <title>Pull Request Etiquette - A set of simple rules for your code review</title>
      <link>//erikzaadi.com/2019/09/29/pull-request-etiquette-a-set-of-simple-rules-for-your-code-review/</link>
      <pubDate>Sun, 29 Sep 2019 14:11:15 +0300</pubDate>
      <guid>//erikzaadi.com/2019/09/29/pull-request-etiquette-a-set-of-simple-rules-for-your-code-review/</guid>
      <description>&lt;h1 id=&#34;pull-request-etiquette&#34;&gt;Pull Request Etiquette&lt;/h1&gt;&#xA;&lt;p&gt;Pull Requests are by now an industrial standard.&lt;/p&gt;&#xA;&lt;h2 id=&#34;why-should-we-do-code-reviews--pull-requests&#34;&gt;Why should we do code reviews / pull requests?&lt;/h2&gt;&#xA;&lt;h3 id=&#34;focus&#34;&gt;Focus&lt;/h3&gt;&#xA;&lt;p&gt;The committer will be forced to think about how clear and relevant the change is, simply due to the fact that another human being needs to be able to understand &lt;em&gt;WHAT THE DUCK IS GOING ON&lt;/em&gt;.&lt;/p&gt;&#xA;&lt;h3 id=&#34;learning&#34;&gt;Learning&lt;/h3&gt;&#xA;&lt;p&gt;Code review is an amazing opportunity for making both the committer and the reviewer learn.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Life is short, make your CI blazing fast</title>
      <link>//erikzaadi.com/2019/09/29/life-is-short-make-your-ci-blazing-fast/</link>
      <pubDate>Sun, 29 Sep 2019 11:12:38 +0300</pubDate>
      <guid>//erikzaadi.com/2019/09/29/life-is-short-make-your-ci-blazing-fast/</guid>
      <description>&lt;h1 id=&#34;rebase-your-ci&#34;&gt;Rebase your CI&lt;/h1&gt;&#xA;&lt;p&gt;I&amp;rsquo;ve seen A LOT of continuous integration implementations, both while mentoring CI and during my day work.&lt;/p&gt;&#xA;&lt;p&gt;One of the simplest but most important of the &lt;a href=&#34;https://martinfowler.com/articles/continuousIntegration.html&#34;&gt;HOLY 11 CI COMMANDMENTS&lt;/a&gt; is:&lt;/p&gt;&#xA;&lt;blockquote&gt;&#xA;&lt;p&gt;Keep the build fast&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&lt;p&gt;And yet, the top mistake I keep seeing all over:&lt;/p&gt;&#xA;&lt;h3 id=&#34;wasting-time&#34;&gt;Wasting time&lt;/h3&gt;&#xA;&lt;p&gt;&lt;img src=&#34;https://media.giphy.com/media/lcjWzvc9po5Og6eV4V/giphy.gif&#34; alt=&#34;Wasting Time&#34;&gt;&lt;/p&gt;&#xA;&lt;h2 id=&#34;things-we-keep-doing-wrong&#34;&gt;Things we keep doing wrong&lt;/h2&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;Long build times due to lack of simple caching&lt;/li&gt;&#xA;&lt;li&gt;Cumbersome &amp;ldquo;SAFE GATES&amp;rdquo; that involves humans (!)&lt;/li&gt;&#xA;&lt;li&gt;Not paralleling where possible&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;p&gt;And the list goes on and on.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Linting Helm Charts in Travis</title>
      <link>//erikzaadi.com/2019/02/25/linting-helm-charts-in-travis/</link>
      <pubDate>Mon, 25 Feb 2019 21:11:16 +0200</pubDate>
      <guid>//erikzaadi.com/2019/02/25/linting-helm-charts-in-travis/</guid>
      <description>&lt;h2 id=&#34;helm-charts-makes-even-kubernetes-sane-however&#34;&gt;Helm charts makes even kubernetes sane, However&amp;hellip;&lt;/h2&gt;&#xA;&lt;p&gt;&lt;img src=&#34;//erikzaadi.com/images/yaml.jpg&#34; alt=&#34;YAML&#34;&gt;&lt;/p&gt;&#xA;&lt;p&gt;Like any YAML based tooling, it&amp;rsquo;s pretty darn easy to break it.&lt;/p&gt;&#xA;&lt;p&gt;Here&amp;rsquo;s a small snippet of how you can integrate &lt;code&gt;helm lint&lt;/code&gt; to your CI build in &lt;a href=&#34;https://travis.com&#34;&gt;Travis CI&lt;/a&gt; quite seamlessly:&lt;/p&gt;&#xA;&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;&#xA;&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;&#xA;&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt; 1&#xA;&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 2&#xA;&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 3&#xA;&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 4&#xA;&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 5&#xA;&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 6&#xA;&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 7&#xA;&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 8&#xA;&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 9&#xA;&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;10&#xA;&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;11&#xA;&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;12&#xA;&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;13&#xA;&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;14&#xA;&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;15&#xA;&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;16&#xA;&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;17&#xA;&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;18&#xA;&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;19&#xA;&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;20&#xA;&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;21&#xA;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&#xA;&lt;td class=&#34;lntd&#34;&gt;&#xA;&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-yaml&#34; data-lang=&#34;yaml&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;nn&#34;&gt;---&lt;/span&gt;&lt;span class=&#34;w&#34;&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;nt&#34;&gt;sudo&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;:&lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;kc&#34;&gt;false&lt;/span&gt;&lt;span class=&#34;w&#34;&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;nt&#34;&gt;group&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;:&lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;l&#34;&gt;travis_latest&lt;/span&gt;&lt;span class=&#34;w&#34;&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;nt&#34;&gt;jobs&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;:&lt;/span&gt;&lt;span class=&#34;w&#34;&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;w&#34;&gt;  &lt;/span&gt;&lt;span class=&#34;nt&#34;&gt;include&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;:&lt;/span&gt;&lt;span class=&#34;w&#34;&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;w&#34;&gt;    &lt;/span&gt;- &lt;span class=&#34;nt&#34;&gt;name&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;:&lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;l&#34;&gt;Lint&lt;/span&gt;&lt;span class=&#34;w&#34;&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;w&#34;&gt;      &lt;/span&gt;&lt;span class=&#34;nt&#34;&gt;language&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;:&lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;l&#34;&gt;minimal&lt;/span&gt;&lt;span class=&#34;w&#34;&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;w&#34;&gt;      &lt;/span&gt;&lt;span class=&#34;nt&#34;&gt;services&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;:&lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;l&#34;&gt;docker&lt;/span&gt;&lt;span class=&#34;w&#34;&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;w&#34;&gt;      &lt;/span&gt;&lt;span class=&#34;nt&#34;&gt;install&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;:&lt;/span&gt;&lt;span class=&#34;w&#34;&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;w&#34;&gt;        &lt;/span&gt;&lt;span class=&#34;c&#34;&gt;# This spins up our helm and kubectl docker image&lt;/span&gt;&lt;span class=&#34;w&#34;&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;w&#34;&gt;        &lt;/span&gt;- &lt;span class=&#34;l&#34;&gt;docker run -d --name travis-helm -v ~/.kube:/root/.kube -v ${PWD}:/root/helm -e HELM_DIR=/root/helm -w /root/helm dtzar/helm-kubectl:2.12.3 /bin/sh -c &amp;#34;while true; do sleep 1; date; done&amp;#34; &lt;/span&gt;&lt;span class=&#34;w&#34;&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;w&#34;&gt;      &lt;/span&gt;&lt;span class=&#34;nt&#34;&gt;script&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;:&lt;/span&gt;&lt;span class=&#34;w&#34;&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;w&#34;&gt;        &lt;/span&gt;&lt;span class=&#34;c&#34;&gt;# Optional, but needed in most cases&lt;/span&gt;&lt;span class=&#34;w&#34;&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;w&#34;&gt;        &lt;/span&gt;- &lt;span class=&#34;l&#34;&gt;docker exec travis-helm bash -c &amp;#34;helm init --client-only&amp;#34; &lt;/span&gt;&lt;span class=&#34;w&#34;&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;w&#34;&gt;        &lt;/span&gt;&lt;span class=&#34;c&#34;&gt;# El Magico&lt;/span&gt;&lt;span class=&#34;w&#34;&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;w&#34;&gt;        &lt;/span&gt;- &lt;span class=&#34;l&#34;&gt;ls ./**/Chart.yaml | xargs dirname | xargs -I % docker exec travis-helm bash -c &amp;#34;helm lint %&amp;#34; &lt;/span&gt;&lt;span class=&#34;w&#34;&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;w&#34;&gt;        &lt;/span&gt;&lt;span class=&#34;c&#34;&gt;# Bonus: Run any helm/kubectl command&lt;/span&gt;&lt;span class=&#34;w&#34;&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;w&#34;&gt;        &lt;/span&gt;- &lt;span class=&#34;l&#34;&gt;docker exec travis-helm bash -c &amp;#34;kubectl --namespace ${NAMESPACE} wait --for=condition=complete job/${NAMESPACE}-initializer-ftw --timeout=30s&amp;#34;&lt;/span&gt;&lt;span class=&#34;w&#34;&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;w&#34;&gt;      &lt;/span&gt;&lt;span class=&#34;c&#34;&gt;# Yet another bonus: tear down your env, this runs even if the build fails&lt;/span&gt;&lt;span class=&#34;w&#34;&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;w&#34;&gt;      &lt;/span&gt;&lt;span class=&#34;nt&#34;&gt;after_script&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;:&lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;w&#34;&gt;        &lt;/span&gt;- &lt;span class=&#34;l&#34;&gt;docker exec travis-helm bash -c &amp;#34;kubectl delete namespace ${NAMESPACE} --wait=false &amp;amp;&amp;amp; helm delete ${NAMESPACE} --purge&amp;#34;&lt;/span&gt;&lt;span class=&#34;w&#34;&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&#xA;&lt;/div&gt;&#xA;&lt;/div&gt;&lt;h3 id=&#34;kudos-to-david-tesar-for-making-the-helm-kubectl-image&#34;&gt;Kudos to &lt;a href=&#34;https://github.com/dtzar&#34;&gt;David Tesar&lt;/a&gt; for making the &lt;a href=&#34;https://github.com/dtzar/helm-kubectl&#34;&gt;helm-kubectl image&lt;/a&gt;&lt;/h3&gt;</description>
    </item>
    <item>
      <title>The delicate balance between coding and managing</title>
      <link>//erikzaadi.com/2017/12/19/the-delicate-balance-between-coding-and-managing/</link>
      <pubDate>Tue, 19 Dec 2017 09:43:32 +0300</pubDate>
      <guid>//erikzaadi.com/2017/12/19/the-delicate-balance-between-coding-and-managing/</guid>
      <description>&lt;h2 id=&#34;the-swashbuckling-adventure-of-an-evolving-manager&#34;&gt;The swashbuckling adventure of an evolving manager&lt;/h2&gt;&#xA;&lt;p&gt;&lt;img src=&#34;//erikzaadi.com/images/monkey-island-swordfight.gif&#34; alt=&#34;&amp;ldquo;Coding, no, Managing, no Coding&amp;hellip;.&amp;rdquo;&#34;&gt;&lt;/p&gt;&#xA;&lt;p&gt;&lt;strong&gt;TL:DR;&lt;/strong&gt; &lt;em&gt;Scroll to &lt;a href=&#34;#12-lessons-learned-the-hard-way&#34;&gt;bottom &lt;/a&gt; for my 12 takeaway lessons learned&amp;hellip;&lt;/em&gt;&lt;/p&gt;&#xA;&lt;h1 id=&#34;management-here-we-go&#34;&gt;Management here we go&lt;/h1&gt;&#xA;&lt;p&gt;Managing was something I always kept as a career goal. Having said that, at my previous employment, I neglected my management ambitions. I concentrated more on deep diving technically, and leading professionally, less managing. After joining &lt;a href=&#34;https://bigpanda.io&#34;&gt;BigPanda&lt;/a&gt;, I kept on with the technical side, working on whatever I could get my hands on.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Sane Versioning in nodejs</title>
      <link>//erikzaadi.com/2017/12/09/sane-versioning-in-nodejs/</link>
      <pubDate>Sat, 09 Dec 2017 21:00:16 +0200</pubDate>
      <guid>//erikzaadi.com/2017/12/09/sane-versioning-in-nodejs/</guid>
      <description>&lt;h2 id=&#34;nodejs-packaging&#34;&gt;node.js packaging&lt;/h2&gt;&#xA;&lt;p&gt;&lt;a href=&#34;https://nodejs.org&#34;&gt;node.js&lt;/a&gt; and &lt;code&gt;npm&lt;/code&gt; have been through a lot since I started using them.&#xA;From whether or not to commit dependencies (THE HORROR) to git, to slow installations, you name it.&lt;/p&gt;&#xA;&lt;p&gt;One of the most horrific atrocities for me has always been the fact that the version is hardcoded in the file &lt;code&gt;package.json&lt;/code&gt;.&lt;/p&gt;&#xA;&lt;p&gt;&lt;img src=&#34;//erikzaadi.com/images/why-hardcode.jpg&#34; alt=&#34;&amp;lsquo;Whyyyz&amp;rsquo;&#34;&gt;&lt;/p&gt;&#xA;&lt;p&gt;It has always peskered me that it&amp;rsquo;s not simply taken from a git tag, like sane languages do.&lt;/p&gt;</description>
    </item>
    <item>
      <title>TMUX for multilangual cli addicts</title>
      <link>//erikzaadi.com/2017/06/19/tmux-for-multilangual-cli-addicts/</link>
      <pubDate>Mon, 19 Jun 2017 14:12:14 +0300</pubDate>
      <guid>//erikzaadi.com/2017/06/19/tmux-for-multilangual-cli-addicts/</guid>
      <description>&lt;h2 id=&#34;as-you-might-know-tmux-is-awesome&#34;&gt;As you might know, TMUX is awesome.&lt;/h2&gt;&#xA;&lt;h3 id=&#34;alas&#34;&gt;ALAS&lt;/h3&gt;&#xA;&lt;p&gt;There is nothing more frustrating than when you&amp;rsquo;re muscle memory fails you.&lt;/p&gt;&#xA;&lt;p&gt;You&amp;rsquo;re entering the correct key sequence, and your &lt;code&gt;tmux&lt;/code&gt; is simply ignoring you.&lt;/p&gt;&#xA;&lt;p&gt;You enter a state of &lt;strong&gt;CLI ROAD RAGE&lt;/strong&gt;.&lt;/p&gt;&#xA;&lt;p&gt;&lt;img src=&#34;//erikzaadi.com/images/road-rage-phone.gif&#34; alt=&#34;&#34;&gt;&lt;/p&gt;&#xA;&lt;p&gt;You curse the old gods of QWERTY, check your keyboard battery level (&lt;em&gt;/hipster&lt;/em&gt;), gurgle quotes such as:&lt;/p&gt;&#xA;&lt;blockquote&gt;&#xA;&lt;p&gt;That wouldn&amp;rsquo;t happen in linux&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&lt;p&gt;Only to discover a couple of minutes later that your input language was in Swedish.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Make remote tmux sane with a keystroke</title>
      <link>//erikzaadi.com/2017/02/18/make-remote-tmux-sane-with-a-keystroke/</link>
      <pubDate>Sat, 18 Feb 2017 14:58:59 +0200</pubDate>
      <guid>//erikzaadi.com/2017/02/18/make-remote-tmux-sane-with-a-keystroke/</guid>
      <description>&lt;h3 id=&#34;prelude&#34;&gt;Prelude&lt;/h3&gt;&#xA;&lt;p&gt;It&amp;rsquo;s 2 am. You&amp;rsquo;re ssh&amp;rsquo;ing to a server.&lt;/p&gt;&#xA;&lt;p&gt;Naturally you launch &lt;code&gt;tmux&lt;/code&gt;.&lt;/p&gt;&#xA;&lt;p&gt;&lt;img src=&#34;//erikzaadi.com/images/hackerman-time.gif&#34; alt=&#34;&amp;lsquo;hacker time&amp;rsquo;&#34;&gt;&lt;/p&gt;&#xA;&lt;p&gt;You run some &lt;code&gt;tail -f&lt;/code&gt; on some logs, each in it&amp;rsquo;s own pane of course.&lt;/p&gt;&#xA;&lt;p&gt;You try to reproduce something, and then you want to search for it at the logs.&lt;/p&gt;&#xA;&lt;h3 id=&#34;alas&#34;&gt;ALAS&lt;/h3&gt;&#xA;&lt;p&gt;The &lt;code&gt;tmux&lt;/code&gt; defaults for copy mode and status keys are not &lt;code&gt;vi&lt;/code&gt;.&lt;/p&gt;&#xA;&lt;p&gt;&lt;img src=&#34;//erikzaadi.com/images/why.jpg&#34; alt=&#34;&amp;lsquo;Whyyy&amp;rsquo;&#34;&gt;&lt;/p&gt;&#xA;&lt;h3 id=&#34;the-horror&#34;&gt;The horror!&lt;/h3&gt;&#xA;&lt;p&gt;The only thing crappier than that is my memory, because I &lt;em&gt;NEVER&lt;/em&gt; remember the syntax for setting it.&lt;/p&gt;</description>
    </item>
    <item>
      <title>The D in Blog</title>
      <link>//erikzaadi.com/2017/02/08/the-d-in-blog/</link>
      <pubDate>Wed, 08 Feb 2017 08:13:13 +0200</pubDate>
      <guid>//erikzaadi.com/2017/02/08/the-d-in-blog/</guid>
      <description>&lt;h2 id=&#34;humans-make-mistakes&#34;&gt;Humans make mistakes.&lt;/h2&gt;&#xA;&lt;p&gt;My &lt;a href=&#34;//erikzaadi.com/2017/02/07/why-you-should-be-exited-about-the-groovyness-of-jenkins/&#34;&gt;last blog post&lt;/a&gt; was written on a train, just like this blog post.&lt;/p&gt;&#xA;&lt;p&gt;I proof read the post about 4 times to check spelling, grammar and too bad jokes.&lt;/p&gt;&#xA;&lt;p&gt;All seemed legit, so I published the post.&lt;/p&gt;&#xA;&lt;p&gt;Little did I know that all the time I spent on checking the content, I forgot to check the actual title of the blog.&lt;/p&gt;&#xA;&lt;p&gt;&lt;img src=&#34;//erikzaadi.com/images/panda-facepalm.gif&#34; alt=&#34;Panda Facepalm&#34;&gt;&lt;/p&gt;&#xA;&lt;p&gt;I noticed the typo only when the amazong &lt;a href=&#34;http://www.codelord.net&#34;&gt;abyx&lt;/a&gt; mentioned it in a Facebook comment.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Why you should be excited about the groovyness of Jenkins</title>
      <link>//erikzaadi.com/2017/02/07/why-you-should-be-excited-about-the-groovyness-of-jenkins/</link>
      <pubDate>Tue, 07 Feb 2017 08:31:59 +0200</pubDate>
      <guid>//erikzaadi.com/2017/02/07/why-you-should-be-excited-about-the-groovyness-of-jenkins/</guid>
      <description>&lt;h3 id=&#34;prelude&#34;&gt;Prelude&lt;/h3&gt;&#xA;&lt;p&gt;I&amp;rsquo;ve been using &lt;a href=&#34;https://jenkins-ci.org&#34;&gt;Jenkins&lt;/a&gt; since it was called Hudson.&lt;/p&gt;&#xA;&lt;p&gt;With the rise of SaaS services like &lt;a href=&#34;https://travis-ci.com&#34;&gt;Travis&lt;/a&gt;, Jenkins started to feel a tad bit cumbersome.&lt;/p&gt;&#xA;&lt;p&gt;Suddenly it was a burden to manage it your self, from provisioning servers to make sure everything worked.&lt;/p&gt;&#xA;&lt;p&gt;Sure, Travis had it&amp;rsquo;s own caveats, like lacking versions of needed infrastructure versions, long waiting time for builds to be scheduled and slow builds.&lt;/p&gt;&#xA;&lt;p&gt;But hey, it was the new cool thing.&lt;/p&gt;</description>
    </item>
    <item>
      <title>1 conference, 2 talks, 3 lessons learned and a whole lot of stickers</title>
      <link>//erikzaadi.com/2016/12/18/1-conference-2-talks-3-lessons-learned-and-a-whole-lot-of-stickers/</link>
      <pubDate>Sun, 18 Dec 2016 20:32:58 +0200</pubDate>
      <guid>//erikzaadi.com/2016/12/18/1-conference-2-talks-3-lessons-learned-and-a-whole-lot-of-stickers/</guid>
      <description>&lt;p&gt;&lt;em&gt;&lt;strong&gt;TL;DR:&lt;/strong&gt;&lt;/em&gt; &lt;a href=&#34;#presentations&#34;&gt;Actual Presentations&lt;/a&gt;&lt;/p&gt;&#xA;&lt;h1 id=&#34;so-public-speaking&#34;&gt;So public speaking..&lt;/h1&gt;&#xA;&lt;p&gt;I&amp;rsquo;ve never really given public talks.&lt;/p&gt;&#xA;&lt;p&gt;I&amp;rsquo;ve led workshops, with up to 50 attendees (&lt;a href=&#34;https://www.meetup.com/Ansible-Israel/&#34;&gt;Ansible Israel Meetups&lt;/a&gt;), but never spoke at a conference.&lt;/p&gt;&#xA;&lt;h3 id=&#34;giving-it-a-shot&#34;&gt;Giving it a shot&lt;/h3&gt;&#xA;&lt;p&gt;Having been to 3 different &lt;a href=&#34;https://www.devopsdays.org/&#34;&gt;DevOpsDays&lt;/a&gt; conferences, I felt comfortable enough to propose two talks to &lt;a href=&#34;https://www.devopsdays.org/events/2016-telaviv/welcome/&#34;&gt;DevOpsDays Tel Aviv 2016&lt;/a&gt;.&lt;/p&gt;&#xA;&lt;p&gt;One was a 5 minutes ignite, about the similarities between DevOps and Kung Fu, something I&amp;rsquo;ve been tinkering with for over a year, since DevOpsDays Tel Aviv 2015.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Blazing fast zsh with antibody</title>
      <link>//erikzaadi.com/2016/08/24/blazing-fast-zsh-with-antibody/</link>
      <pubDate>Wed, 24 Aug 2016 20:49:33 +0300</pubDate>
      <guid>//erikzaadi.com/2016/08/24/blazing-fast-zsh-with-antibody/</guid>
      <description>&lt;h1 id=&#34;some-facts&#34;&gt;Some facts:&lt;/h1&gt;&#xA;&lt;h2 id=&#34;fact-1&#34;&gt;Fact 1&lt;/h2&gt;&#xA;&lt;p&gt;You love &lt;code&gt;zsh&lt;/code&gt;. You can&amp;rsquo;t really work without it.&lt;/p&gt;&#xA;&lt;h2 id=&#34;fact-2&#34;&gt;Fact 2&lt;/h2&gt;&#xA;&lt;p&gt;It was a while since you gave your dotfiles and shell some love.&lt;/p&gt;&#xA;&lt;h2 id=&#34;fact-3&#34;&gt;Fact 3&lt;/h2&gt;&#xA;&lt;p&gt;New &lt;code&gt;zsh&lt;/code&gt; sessions have been slow for a while, and you keep promising yourself to fix it.&lt;/p&gt;&#xA;&lt;h1 id=&#34;time-for-a-change&#34;&gt;Time for a change!&lt;/h1&gt;&#xA;&lt;p&gt;I&amp;rsquo;ve been using &lt;a href=&#34;http://antigen.sharats.me/&#34;&gt;antigen&lt;/a&gt; for a while now, and I love the syntax.&lt;/p&gt;&#xA;&lt;p&gt;&lt;em&gt;However&lt;/em&gt;, &lt;code&gt;antigen&lt;/code&gt; causes new sessions startup time to really be monstrous.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Sane @hubot help</title>
      <link>//erikzaadi.com/2016/05/08/sane-@hubot-help/</link>
      <pubDate>Sun, 08 May 2016 13:37:12 +0300</pubDate>
      <guid>//erikzaadi.com/2016/05/08/sane-@hubot-help/</guid>
      <description>&lt;h2 id=&#34;everyone-loves-chatops&#34;&gt;Everyone loves ChatOps&lt;/h2&gt;&#xA;&lt;p&gt;It&amp;rsquo;s all the rage lately, in the &lt;em&gt;BOT ALL THE THINGZ&lt;/em&gt; era.&lt;/p&gt;&#xA;&lt;p&gt;I&amp;rsquo;ve been writing ChatBots for a couple of years now, and I&amp;rsquo;ve always used &lt;a href=&#34;https://hubot.github.com&#34;&gt;Hubot&lt;/a&gt;.&lt;/p&gt;&#xA;&lt;p&gt;Hubot worked fine for me when I was using IRC, HipChat and now even Slack.&lt;/p&gt;&#xA;&lt;h3 id=&#34;hubot-has-autogenerated-help&#34;&gt;Hubot has autogenerated help&lt;/h3&gt;&#xA;&lt;p&gt;Which is really cool, as you can do a simple &lt;code&gt;@hubot help&lt;/code&gt; to see the available commands.&lt;/p&gt;&#xA;&lt;h3 id=&#34;however&#34;&gt;However&lt;/h3&gt;&#xA;&lt;p&gt;This can get extremely annoying in ChatOps war rooms.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Migrating from logstash forwarder to beat (filebeat)</title>
      <link>//erikzaadi.com/2016/03/07/migrating-from-logstash-forwarder-to-beat-filebeat/</link>
      <pubDate>Mon, 07 Mar 2016 07:43:55 +0200</pubDate>
      <guid>//erikzaadi.com/2016/03/07/migrating-from-logstash-forwarder-to-beat-filebeat/</guid>
      <description>&lt;h2 id=&#34;logstash-forwarder-did-a-great-job&#34;&gt;Logstash forwarder did a great job&lt;/h2&gt;&#xA;&lt;p&gt;Alas, it had his faults.&lt;/p&gt;&#xA;&lt;p&gt;If you&amp;rsquo;d have push backs from your logstash server(s), the logstash forwarder would enter a frenzy mode, keeping all unreported files open (including file handlers).&lt;/p&gt;&#xA;&lt;p&gt;If you then had a sane log rotating policy, the files would be deleted, but the forwarder would keep the file handles open, causing the disk to fill up.&lt;/p&gt;&#xA;&lt;p&gt;There was a hidden flag called &lt;code&gt;&amp;quot;dead time&amp;quot;&lt;/code&gt; where you could configure how the maximum age of the files that the forwarder would keep open, but that didn&amp;rsquo;t always work either.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Moving from Vundle to Vim-Plug</title>
      <link>//erikzaadi.com/2016/02/11/moving-from-vundle-to-vim-plug/</link>
      <pubDate>Thu, 11 Feb 2016 15:42:44 +0200</pubDate>
      <guid>//erikzaadi.com/2016/02/11/moving-from-vundle-to-vim-plug/</guid>
      <description>&lt;p&gt;I&amp;rsquo;ve been using &lt;a href=&#34;https://github.com/VundleVim/Vundle.vim&#34;&gt;Vundle&lt;/a&gt; to manage my vim plugins for quite a while now, even blogged about &lt;a href=&#34;//erikzaadi.com/2012/03/19/auto-installing-vundle-from-your-vimrc/&#34;&gt;auto installing&lt;/a&gt; Vundle on new machines.&lt;/p&gt;&#xA;&lt;p&gt;Vundle is still great, but I&amp;rsquo;ve been hearing a lot about &lt;a href=&#34;https://github.com/junegunn/vim-plug&#34;&gt;Vim-Plug&lt;/a&gt;, which aims to be better than Vundle.&lt;/p&gt;&#xA;&lt;p&gt;I opened up the &lt;a href=&#34;https://github.com/junegunn/vim-plug/wiki/faq#migrating-from-other-plugin-managers&#34;&gt;Vim-Plug Migration FAQ&lt;/a&gt;, and gave it a try.&lt;/p&gt;&#xA;&lt;p&gt;My initial impression was, WOW, that&amp;rsquo;s fast, and much less clutter in my &lt;code&gt;.vimrc&lt;/code&gt;.&lt;/p&gt;&#xA;&lt;p&gt;No need for manual hacking around auto installing, it&amp;rsquo;s baked in.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Dummy Guide To Mac Lan Party With Team Fortress 2</title>
      <link>//erikzaadi.com/2016/01/09/dummy-guide-to-mac-lan-party-with-team-fortress-2/</link>
      <pubDate>Sat, 09 Jan 2016 21:42:42 +0200</pubDate>
      <guid>//erikzaadi.com/2016/01/09/dummy-guide-to-mac-lan-party-with-team-fortress-2/</guid>
      <description>&lt;p&gt;As always, at &lt;a href=&#34;https://bigpanda.io&#34;&gt;BigPanda&lt;/a&gt;, we&amp;rsquo;re very serious about keeping our geek creds high.&lt;/p&gt;&#xA;&lt;p&gt;So, we decided to throw together a company Lan Party &lt;em&gt;(FTW)&lt;/em&gt;.&lt;/p&gt;&#xA;&lt;p&gt;Our needs were simple:&lt;/p&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;It should work on our Macs (13&amp;quot; MBP Retina)&lt;/li&gt;&#xA;&lt;li&gt;Preferably, should work only using WIFI (Dammit those Thunderbolt =&amp;gt; Lan adapters are expensive)&lt;/li&gt;&#xA;&lt;li&gt;Should not cost anything extra per participant&lt;/li&gt;&#xA;&lt;li&gt;If possible, save the need of a dedicated server&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;p&gt;After some digging around, we decided to give &lt;a href=&#34;https://www.teamfortress.com&#34;&gt;Team Fortress 2&lt;/a&gt; a try, here&amp;rsquo;s the steps we took:&lt;/p&gt;</description>
    </item>
    <item>
      <title>Slides and Public Talks</title>
      <link>//erikzaadi.com/slides/</link>
      <pubDate>Wed, 23 Dec 2015 22:06:43 +0200</pubDate>
      <guid>//erikzaadi.com/slides/</guid>
      <description>&lt;h2 id=&#34;devopsdays-tlv-2024&#34;&gt;DevOpsDays TLV 2024&lt;/h2&gt;&#xA;&lt;h3 id=&#34;managing-tech-debt-like-a-mortgage&#34;&gt;Managing tech debt like a mortgage&lt;/h3&gt;&#xA;&lt;div style=&#34;position: relative; padding-bottom: 56.25%; height: 0; overflow: hidden;&#34;&gt;&#xA;      &lt;iframe allow=&#34;accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share; fullscreen&#34; loading=&#34;eager&#34; referrerpolicy=&#34;strict-origin-when-cross-origin&#34; src=&#34;https://www.youtube.com/embed/T-OY5cZueQU?autoplay=0&amp;amp;controls=1&amp;amp;end=0&amp;amp;loop=0&amp;amp;mute=0&amp;amp;start=0&#34; style=&#34;position: absolute; top: 0; left: 0; width: 100%; height: 100%; border:0;&#34; title=&#34;YouTube video&#34;&gt;&lt;/iframe&gt;&#xA;    &lt;/div&gt;&#xA;&#xA;&lt;hr&gt;&#xA;&lt;h2 id=&#34;reversim-summit-2024&#34;&gt;Reversim Summit 2024&lt;/h2&gt;&#xA;&lt;h3 id=&#34;dry-ing-up-your-cicd-with-git-rebase&#34;&gt;DRY-ing up your CI/CD with Git Rebase&lt;/h3&gt;&#xA;&lt;p&gt;(Hebrew)&lt;/p&gt;&#xA;&lt;div style=&#34;position: relative; padding-bottom: 56.25%; height: 0; overflow: hidden;&#34;&gt;&#xA;      &lt;iframe allow=&#34;accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share; fullscreen&#34; loading=&#34;eager&#34; referrerpolicy=&#34;strict-origin-when-cross-origin&#34; src=&#34;https://www.youtube.com/embed/tanetBVMefc?autoplay=0&amp;amp;controls=1&amp;amp;end=0&amp;amp;loop=0&amp;amp;mute=0&amp;amp;start=0&#34; style=&#34;position: absolute; top: 0; left: 0; width: 100%; height: 100%; border:0;&#34; title=&#34;YouTube video&#34;&gt;&lt;/iframe&gt;&#xA;    &lt;/div&gt;&#xA;&#xA;&lt;p&gt;&lt;a href=&#34;https://gist.github.com/erikzaadi/81ed1b1f08b1ad44e583c6d8be66071c&#34;&gt;Gist&lt;/a&gt; linked at the end of the video.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Linting Ansible YAML in vim</title>
      <link>//erikzaadi.com/2015/11/15/linting-ansible-yaml-in-vim/</link>
      <pubDate>Sun, 15 Nov 2015 16:53:43 +0200</pubDate>
      <guid>//erikzaadi.com/2015/11/15/linting-ansible-yaml-in-vim/</guid>
      <description>&lt;h4 id=&#34;zomg-update1&#34;&gt;ZOMG UPDATE!!1&lt;/h4&gt;&#xA;&lt;p&gt;My pull request for &lt;a href=&#34;https://github.com/scrooloose/syntastic&#34;&gt;syntastic&lt;/a&gt; was &lt;a href=&#34;https://github.com/scrooloose/syntastic/pull/1599#issuecomment-156838042&#34;&gt;merged&lt;/a&gt;!&lt;/p&gt;&#xA;&lt;h3 id=&#34;i-love-ansible-and-one-of-the-reasons-is-yaml&#34;&gt;I love Ansible, and one of the reasons is YAML&amp;hellip;&lt;/h3&gt;&#xA;&lt;p&gt;But there&amp;rsquo;s just so many &lt;a href=&#34;http://docs.ansible.com/ansible/YAMLSyntax.html#gotchas&#34;&gt;YAML gotcha&amp;rsquo;s&lt;/a&gt;.&lt;/p&gt;&#xA;&lt;p&gt;In &lt;code&gt;vim&lt;/code&gt; (Yes, the &lt;strong&gt;mighties&lt;/strong&gt; of editors, &lt;em&gt;that of course you are using right???????&lt;/em&gt;), I&amp;rsquo;m using the excellent &lt;a href=&#34;https://github.com/chase/vim-ansible-yaml&#34;&gt;vim-ansible-yaml&lt;/a&gt; plugin that not only adds syntax highlighting, but also snippets (YAY!).&lt;/p&gt;&#xA;&lt;p&gt;Still though, I&amp;rsquo;ve been bitten more than once with those GOTCHA&amp;rsquo;z, a small escaping here and there.&lt;/p&gt;&#xA;&lt;p&gt;Suddenly, as I was reading through &lt;a href=&#34;http://www.devopsweekly.com/&#34;&gt;DevOps Weekly&lt;/a&gt; when I stumbled across &lt;a href=&#34;https://github.com/omniti-labs/ansible-dk&#34;&gt;ansible-dk&lt;/a&gt;, a kit with various tools for working with Ansible.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Getting parsed Request Bin bodies</title>
      <link>//erikzaadi.com/2015/11/11/getting-parsed-request-bin-bodies/</link>
      <pubDate>Wed, 11 Nov 2015 13:54:56 +0200</pubDate>
      <guid>//erikzaadi.com/2015/11/11/getting-parsed-request-bin-bodies/</guid>
      <description>&lt;p&gt;&lt;strong&gt;TL;DR&lt;/strong&gt;&lt;/p&gt;&#xA;&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;&#xA;&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;&#xA;&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1&#xA;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&#xA;&lt;td class=&#34;lntd&#34;&gt;&#xA;&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;curl -s &lt;span class=&#34;s1&#34;&gt;&amp;#39;http://requestb.in/api/v1/bins/YOUR_BIN_ID/requests&amp;#39;&lt;/span&gt; &lt;span class=&#34;p&#34;&gt;|&lt;/span&gt; jq &lt;span class=&#34;s1&#34;&gt;&amp;#39;.[] | .body&amp;#39;&lt;/span&gt; &lt;span class=&#34;p&#34;&gt;|&lt;/span&gt; node -e &lt;span class=&#34;s1&#34;&gt;&amp;#39;var counter=0;require(&amp;#34;readline&amp;#34;).createInterface({input: process.stdin}).on(&amp;#34;line&amp;#34;, function (line) { require(&amp;#34;fs&amp;#34;).writeFileSync((++counter).toString() + &amp;#34;.json&amp;#34;, JSON.parse(line));});&amp;#39;&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&#xA;&lt;/div&gt;&#xA;&lt;/div&gt;&lt;h2 id=&#34;you-should-be-using-requestbin1&#34;&gt;You should be using &lt;a href=&#34;http://requestb.in/&#34;&gt;RequestBin&lt;/a&gt;!!1&lt;/h2&gt;&#xA;&lt;p&gt;RequestBin is a free service offered by &lt;a href=&#34;https://runscope.com&#34;&gt;RunScope&lt;/a&gt;, where you can register a temporary web endpoint, that&amp;rsquo;ll record anything sent to it.&#xA;It saves you the effort of setting up a &lt;a href=&#34;https://ngrok.com/&#34;&gt;ngrok&lt;/a&gt; and a local endpoint.&lt;/p&gt;&#xA;&lt;p&gt;I was using it to see the results of a 3rd party integration I was working on.&lt;/p&gt;</description>
    </item>
    <item>
      <title>The distributed state of ChatOps</title>
      <link>//erikzaadi.com/2015/10/31/the-distributed-state-of-chatops/</link>
      <pubDate>Sat, 31 Oct 2015 14:54:49 +0200</pubDate>
      <guid>//erikzaadi.com/2015/10/31/the-distributed-state-of-chatops/</guid>
      <description>&lt;h2 id=&#34;hubot-was-epic&#34;&gt;Hubot was EPIC&lt;/h2&gt;&#xA;&lt;p&gt;&lt;a href=&#34;https://hubot.github.com&#34;&gt;Hubot&lt;/a&gt; swept the ChatOps sphere by making it super simple to write your own bot.&lt;/p&gt;&#xA;&lt;p&gt;It had tons of plugins that could integrate to almost anything.&lt;/p&gt;&#xA;&lt;p&gt;Just shoot up a node instance on one of your servers, and BOOM, you&amp;rsquo;re hubot-ized.&lt;/p&gt;&#xA;&lt;p&gt;Suddenly you had a presense in your iRC / Chat that could not only notify you on events, but also take action.&lt;/p&gt;&#xA;&lt;p&gt;Ack that Nagios alert, Chart that usage with Graphite, you name it.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Cheap IOT By Hacking Routers</title>
      <link>//erikzaadi.com/2015/10/27/cheap-iot-by-hacking-routers/</link>
      <pubDate>Tue, 27 Oct 2015 17:48:45 +0200</pubDate>
      <guid>//erikzaadi.com/2015/10/27/cheap-iot-by-hacking-routers/</guid>
      <description>&lt;p&gt;As I &lt;a href=&#34;//erikzaadi.com/2015/03/05/raspberry-pi-powered-door&#34;&gt;previously&lt;/a&gt; blogged about, we have a Raspberry Pi at BigPanda that opens our office door.&lt;/p&gt;&#xA;&lt;p&gt;We even created an Android widget to open the door from the outside, so it&amp;rsquo;ll be as easy as possible.&lt;/p&gt;&#xA;&lt;p&gt;&lt;strong&gt;ALAS&lt;/strong&gt;, this was not enough, &lt;a href=&#34;http://noamsh.com/&#34;&gt;Noam Shemesh&lt;/a&gt; (the mighty) felt that the effort of actually taking out your mobile phone when approching the door is tedious.&lt;/p&gt;&#xA;&lt;p&gt;&lt;em&gt;IOT&lt;/em&gt; to the rescue!&lt;/p&gt;&#xA;&lt;p&gt;We needed to have some kind of sensor that we&amp;rsquo;re approaching the door from the outside, and of course be secure (&lt;em&gt;ish&lt;/em&gt;).&lt;/p&gt;</description>
    </item>
    <item>
      <title>Hush hush now Logstash</title>
      <link>//erikzaadi.com/2015/10/27/hush-hush-now-logstash/</link>
      <pubDate>Tue, 27 Oct 2015 09:13:29 +0200</pubDate>
      <guid>//erikzaadi.com/2015/10/27/hush-hush-now-logstash/</guid>
      <description>&lt;h3 id=&#34;what-do-you-do-when-your-logging-infrastructure-logs-to-much&#34;&gt;What do you do when your logging infrastructure logs to much?&lt;/h3&gt;&#xA;&lt;p&gt;&lt;img src=&#34;//erikzaadi.com/images/yo_dawg_logstash.jpg&#34; alt=&#34;&#34;&gt;&lt;/p&gt;&#xA;&lt;p&gt;Logstash is almost the facto log infratructure tool nowadays.&lt;/p&gt;&#xA;&lt;p&gt;Although scaling it up is a bit &lt;em&gt;interesting&lt;/em&gt; to say the least, Logstash works.&lt;/p&gt;&#xA;&lt;p&gt;As any tool, it has some rough edges you might encounter.&lt;/p&gt;&#xA;&lt;p&gt;We had a problem that Logstash&amp;rsquo;s own logs were being filled up in blazing rates.&lt;/p&gt;&#xA;&lt;p&gt;The messages were mostly non critical warnings of retries etc.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Bye Octopress, Hello Hugo</title>
      <link>//erikzaadi.com/2015/10/25/bye-octopress-hello-hugo/</link>
      <pubDate>Sun, 25 Oct 2015 22:06:43 +0200</pubDate>
      <guid>//erikzaadi.com/2015/10/25/bye-octopress-hello-hugo/</guid>
      <description>&lt;p&gt;After suffering from write block, heavily influenced by octopress super fast load time, I moved this blog to &lt;a href=&#34;https://gohugo.io/&#34;&gt;hugo&lt;/a&gt;.&lt;/p&gt;&#xA;&lt;p&gt;Here&amp;rsquo;s some comparisons:&lt;/p&gt;&#xA;&lt;h3 id=&#34;setting-up&#34;&gt;Setting up:&lt;/h3&gt;&#xA;&lt;p&gt;Octopress:&lt;/p&gt;&#xA;&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;&#xA;&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;&#xA;&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt; 1&#xA;&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 2&#xA;&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 3&#xA;&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 4&#xA;&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 5&#xA;&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 6&#xA;&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 7&#xA;&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 8&#xA;&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 9&#xA;&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;10&#xA;&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;11&#xA;&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;12&#xA;&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;13&#xA;&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;14&#xA;&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;15&#xA;&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;16&#xA;&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;17&#xA;&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;18&#xA;&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;19&#xA;&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;20&#xA;&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;21&#xA;&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;22&#xA;&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;23&#xA;&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;24&#xA;&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;25&#xA;&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;26&#xA;&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;27&#xA;&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;28&#xA;&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;29&#xA;&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;30&#xA;&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;31&#xA;&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;32&#xA;&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;33&#xA;&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;34&#xA;&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;35&#xA;&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;36&#xA;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&#xA;&lt;td class=&#34;lntd&#34;&gt;&#xA;&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;gem install bundler&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;bundle install&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;Fetching gem metadata from https://rubygems.org/...........&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;Fetching version metadata from https://rubygems.org/...&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;Fetching dependency metadata from https://rubygems.org/..&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;Installing rake 0.9.2.2&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;Using RedCloth 4.2.9&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;Installing chunky_png 1.2.5&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;Installing fast-stemmer 1.0.1 with native extensions&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;Installing classifier 1.3.3&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;Installing fssm 0.2.9&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;Installing sass 3.2.9&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;Installing compass 0.12.2&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;Installing directory_watcher 1.4.1&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;Installing haml 3.1.7&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;Installing kramdown 0.13.8&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;Installing liquid 2.3.0&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;Installing syntax 1.0.0&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;Installing maruku 0.6.1&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;Installing posix-spawn 0.3.6 with native extensions&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;Installing yajl-ruby 1.1.0 with native extensions&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;Installing pygments.rb 0.3.4&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;Installing jekyll 0.12.0&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;Installing rack 1.5.2&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;Installing rack-protection 1.5.0&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;Installing rb-fsevent 0.9.1&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;Installing rdiscount 2.0.7.3 with native extensions&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;Installing rubypants 0.2.0&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;Installing sass-globbing 1.0.0&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;Installing tilt 1.3.7&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;Installing sinatra 1.4.2&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;Installing stringex 1.4.0&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;Using bundler 1.10.6&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;Bundle complete! &lt;span class=&#34;m&#34;&gt;15&lt;/span&gt; Gemfile dependencies, &lt;span class=&#34;m&#34;&gt;28&lt;/span&gt; gems now installed.&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;Use &lt;span class=&#34;sb&#34;&gt;`&lt;/span&gt;bundle show &lt;span class=&#34;o&#34;&gt;[&lt;/span&gt;gemname&lt;span class=&#34;o&#34;&gt;]&lt;/span&gt;&lt;span class=&#34;sb&#34;&gt;`&lt;/span&gt; to see where a bundled gem is installed.&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&#xA;&lt;/div&gt;&#xA;&lt;/div&gt;&lt;p&gt;Hugo:&lt;/p&gt;</description>
    </item>
    <item>
      <title>s3cmd is dead, long live s3-cli</title>
      <link>//erikzaadi.com/2015/04/27/s3cmd-is-dead-long-live-s3-cli/</link>
      <pubDate>Mon, 27 Apr 2015 00:00:00 +0000</pubDate>
      <guid>//erikzaadi.com/2015/04/27/s3cmd-is-dead-long-live-s3-cli/</guid>
      <description>&lt;p&gt;For those of you that still use Octopress like me, one of the annoying things is deploying to Amazon S3.&lt;/p&gt;&#xA;&lt;p&gt;I was using &lt;code&gt;s3cmd&lt;/code&gt; which is indeed an awesome utility to sync the rendered blog to S3, however it&amp;rsquo;s slow, it&amp;rsquo;ll take about 5 minutes to deploy my blog, which is not a huge blog.&lt;/p&gt;&#xA;&lt;p&gt;While implementing a quick hack that uploads images to Amazon S3, I stumbeled upon a certain Mr Awesome called &lt;a href=&#34;https://github.com/andrewrk&#34;&gt;Andrew Kelley - @andrewrk&lt;/a&gt;, who&amp;rsquo;s &lt;a href=&#34;https://github.com/andrewrk/node-s3-client&#34;&gt;node s3 client&lt;/a&gt; I used.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Two bots one Slack</title>
      <link>//erikzaadi.com/2015/04/27/two-bots-one-slack/</link>
      <pubDate>Mon, 27 Apr 2015 00:00:00 +0000</pubDate>
      <guid>//erikzaadi.com/2015/04/27/two-bots-one-slack/</guid>
      <description>&lt;p&gt;We started evaluating &lt;a href=&#34;https://slack.com&#34;&gt;Slack&lt;/a&gt; at &lt;a href=&#34;http://bigpanda.io&#34;&gt;BigPanda&lt;/a&gt;, and it is truly great.&lt;/p&gt;&#xA;&lt;p&gt;The signup process was super simple, adding integrations is really fast, and all the apps, web and native feels fresh and fast.&lt;/p&gt;&#xA;&lt;p&gt;Needless to say, one of the first things I did was to hook up on of our &lt;a href=&#34;https://hubot.github.com&#34;&gt;Hubot&lt;/a&gt; instances that controls our door (see &lt;a href=&#34;2015/03/05/raspberry-pi-powered-door/&#34;&gt;previous post&lt;/a&gt;).&lt;/p&gt;&#xA;&lt;p&gt;With our previous not so hip chat, we did a quick hack, creating an Android Widget that calls our Hubot instance (called Bellboy), opening the door.&#xA;&lt;em&gt;Yes, a tad bit cumbersome, but this way we used the existing stack on our Raspberry Pi&lt;/em&gt;.&lt;/p&gt;</description>
    </item>
    <item>
      <title>BigPanda&#39;s Raspberry Pi Powered Geekalicous Door</title>
      <link>//erikzaadi.com/2015/03/05/raspberry-pi-powered-door/</link>
      <pubDate>Thu, 05 Mar 2015 00:00:00 +0000</pubDate>
      <guid>//erikzaadi.com/2015/03/05/raspberry-pi-powered-door/</guid>
      <description>&lt;p&gt;We recently moved to a new shiny office at &lt;a href=&#34;http://bigpanda.io&#34;&gt;BigPanda&lt;/a&gt;.&lt;/p&gt;&#xA;&lt;p&gt;Before moving in, we renovated parts of the office, including the door.&#xA;We got a door with an electronic lock, which usually is opened using a code panel.&lt;/p&gt;&#xA;&lt;p&gt;Alas, we can&amp;rsquo;t have a simple code panel, we&amp;rsquo;re way to cool for that!&lt;/p&gt;&#xA;&lt;p&gt;&lt;img src=&#34;//erikzaadi.com/images/panda-pi/like_a_sir.gif&#34; alt=&#34;Like a sir&#34; title=&#34;Like a sir&#34;&gt;&lt;/p&gt;&#xA;&lt;p&gt;So we decided to hook up our Raspberry Pi to control the door.&lt;/p&gt;&#xA;&lt;p&gt;Here&amp;rsquo;s the Raspberry Pi, all hooked up:&lt;/p&gt;</description>
    </item>
    <item>
      <title>handle proxy 404 in nginx</title>
      <link>//erikzaadi.com/2014/06/23/handle-proxy-404-in-nginx/</link>
      <pubDate>Mon, 23 Jun 2014 00:00:00 +0000</pubDate>
      <guid>//erikzaadi.com/2014/06/23/handle-proxy-404-in-nginx/</guid>
      <description>&lt;p&gt;In our SPA era, when you get a 40x or 500x (Oy vei) error from your proxied backend, you typically want to display a static part of your SPA.&lt;/p&gt;&#xA;&lt;p&gt;To do this, we can usual a small but usefull nugget from nginx:&lt;/p&gt;&#xA;&lt;p&gt;&lt;em&gt;HERE BE DRAGONS&lt;/em&gt;&lt;/p&gt;&#xA;&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;&#xA;&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;&#xA;&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1&#xA;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&#xA;&lt;td class=&#34;lntd&#34;&gt;&#xA;&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-nginx&#34; data-lang=&#34;nginx&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;k&#34;&gt;proxy_intercept_errors&lt;/span&gt; &lt;span class=&#34;no&#34;&gt;on&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;;&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&#xA;&lt;/div&gt;&#xA;&lt;/div&gt;&lt;p&gt;This ensures that if the proxied backend returns an error status, nginx will be the one showing the error page.&lt;/p&gt;&#xA;&lt;p&gt;We need to tell nginx to handle the 404:&lt;/p&gt;</description>
    </item>
    <item>
      <title>Long time no spamming</title>
      <link>//erikzaadi.com/2014/06/23/long-time-no-spamming/</link>
      <pubDate>Mon, 23 Jun 2014 00:00:00 +0000</pubDate>
      <guid>//erikzaadi.com/2014/06/23/long-time-no-spamming/</guid>
      <description>&lt;p&gt;&lt;strong&gt;TL;DR&lt;/strong&gt; - Yet another &amp;lsquo;didn&amp;rsquo;t blog in a while due to &lt;em&gt;ENTER EXCUSES HERE&lt;/em&gt;&amp;rsquo; post..&lt;/p&gt;&#xA;&lt;h4 id=&#34;ive-moved-on&#34;&gt;I&amp;rsquo;ve moved on&lt;/h4&gt;&#xA;&lt;p&gt;I now work at &lt;a href=&#34;http://bigpanda.io&#34;&gt;BigPanda&lt;/a&gt; since March, and until now, I didn&amp;rsquo;t make time to write here..&lt;/p&gt;&#xA;&lt;p&gt;I did get a chance to write a &lt;a href=&#34;http://blog.bigpanda.io/vagrant-devbox/&#34;&gt;blog post&lt;/a&gt; at the BigPanda Blog about how we use &lt;a href=&#34;http://www.vagrantup.com/&#34;&gt;vagrant&lt;/a&gt;, which was fun writing.&lt;/p&gt;&#xA;&lt;p&gt;In the end there are only two reasons I stopped blogging.&lt;/p&gt;&#xA;&lt;ol&gt;&#xA;&lt;li&gt;&#xA;&lt;p&gt;Number one: Refactor Syndrome&lt;/p&gt;</description>
    </item>
    <item>
      <title>Cleaning up Jenkins jobs</title>
      <link>//erikzaadi.com/2013/12/18/cleaning-up-jenkins-jobs/</link>
      <pubDate>Wed, 18 Dec 2013 00:00:00 +0000</pubDate>
      <guid>//erikzaadi.com/2013/12/18/cleaning-up-jenkins-jobs/</guid>
      <description>&lt;h2 id=&#34;jenkins-rules-but&#34;&gt;Jenkins rules, but&amp;hellip;&lt;/h2&gt;&#xA;&lt;p&gt;It&amp;rsquo;s a Java XML consuming monster.&lt;/p&gt;&#xA;&lt;p&gt;Once you get up to a large number of jobs (We are near 300), it gets a bit tough, especially when restarting.&lt;/p&gt;&#xA;&lt;p&gt;So, every once in a while, I cleanup old unused jobs that are left over.&lt;/p&gt;&#xA;&lt;p&gt;&lt;code&gt;delete_non_active_jobs.py&lt;/code&gt;&lt;/p&gt;&#xA;&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;&#xA;&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;&#xA;&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt; 1&#xA;&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 2&#xA;&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 3&#xA;&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 4&#xA;&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 5&#xA;&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 6&#xA;&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 7&#xA;&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 8&#xA;&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 9&#xA;&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;10&#xA;&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;11&#xA;&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;12&#xA;&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;13&#xA;&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;14&#xA;&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;15&#xA;&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;16&#xA;&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;17&#xA;&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;18&#xA;&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;19&#xA;&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;20&#xA;&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;21&#xA;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&#xA;&lt;td class=&#34;lntd&#34;&gt;&#xA;&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-python&#34; data-lang=&#34;python&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;kn&#34;&gt;import&lt;/span&gt; &lt;span class=&#34;nn&#34;&gt;urllib2&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;kn&#34;&gt;import&lt;/span&gt; &lt;span class=&#34;nn&#34;&gt;os&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;kn&#34;&gt;from&lt;/span&gt; &lt;span class=&#34;nn&#34;&gt;shutil&lt;/span&gt; &lt;span class=&#34;kn&#34;&gt;import&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;rmtree&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;k&#34;&gt;def&lt;/span&gt; &lt;span class=&#34;nf&#34;&gt;get_active_jobs&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;():&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;   &lt;span class=&#34;n&#34;&gt;request&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;=&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;urllib2&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;Request&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;s1&#34;&gt;&amp;#39;http://localhost/api/python?tree=jobs[name]&amp;#39;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;)&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;   &lt;span class=&#34;n&#34;&gt;opener&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;=&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;urllib2&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;build_opener&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;()&lt;/span&gt; &#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;   &lt;span class=&#34;n&#34;&gt;json&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;=&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;opener&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;open&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;request&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;)&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;   &lt;span class=&#34;k&#34;&gt;return&lt;/span&gt; &lt;span class=&#34;p&#34;&gt;[&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;job&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;[&lt;/span&gt;&lt;span class=&#34;s1&#34;&gt;&amp;#39;name&amp;#39;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;]&lt;/span&gt; &lt;span class=&#34;k&#34;&gt;for&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;job&lt;/span&gt; &lt;span class=&#34;ow&#34;&gt;in&lt;/span&gt; &lt;span class=&#34;nb&#34;&gt;eval&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;json&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;read&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;())[&lt;/span&gt;&lt;span class=&#34;s1&#34;&gt;&amp;#39;jobs&amp;#39;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;]]&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;k&#34;&gt;def&lt;/span&gt; &lt;span class=&#34;nf&#34;&gt;get_jobs_dir&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;():&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;   &lt;span class=&#34;k&#34;&gt;return&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;os&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;walk&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;s1&#34;&gt;&amp;#39;.&amp;#39;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;)&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;next&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;()[&lt;/span&gt;&lt;span class=&#34;mi&#34;&gt;1&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;]&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;k&#34;&gt;if&lt;/span&gt; &lt;span class=&#34;vm&#34;&gt;__name__&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;==&lt;/span&gt; &lt;span class=&#34;s1&#34;&gt;&amp;#39;__main__&amp;#39;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;:&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;    &lt;span class=&#34;n&#34;&gt;jobs&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;=&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;get_active_jobs&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;()&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;    &lt;span class=&#34;n&#34;&gt;jobs_in_dir&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;=&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;get_jobs_dir&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;()&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;    &lt;span class=&#34;n&#34;&gt;jobs_to_delete&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;=&lt;/span&gt; &lt;span class=&#34;nb&#34;&gt;sorted&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;([&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;job&lt;/span&gt; &lt;span class=&#34;k&#34;&gt;for&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;job&lt;/span&gt; &lt;span class=&#34;ow&#34;&gt;in&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;jobs_in_dir&lt;/span&gt; &lt;span class=&#34;k&#34;&gt;if&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;job&lt;/span&gt; &lt;span class=&#34;ow&#34;&gt;not&lt;/span&gt; &lt;span class=&#34;ow&#34;&gt;in&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;jobs&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;]&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;    &lt;span class=&#34;k&#34;&gt;for&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;job&lt;/span&gt; &lt;span class=&#34;ow&#34;&gt;in&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;jobs_to_delete&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;:&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;        &lt;span class=&#34;nb&#34;&gt;print&lt;/span&gt; &lt;span class=&#34;s2&#34;&gt;&amp;#34;Deleting: &amp;#39;&lt;/span&gt;&lt;span class=&#34;si&#34;&gt;%s&lt;/span&gt;&lt;span class=&#34;s2&#34;&gt;&amp;#39;&amp;#34;&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;%&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;job&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;        &lt;span class=&#34;n&#34;&gt;rmtree&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;os&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;path&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;abspath&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;os&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;path&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;join&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;os&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;curdir&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;job&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;)))&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&#xA;&lt;/div&gt;&#xA;&lt;/div&gt;&lt;p&gt;Delete them allz&#39;&lt;/p&gt;</description>
    </item>
    <item>
      <title>Assign an Application to all desktops in Applescript</title>
      <link>//erikzaadi.com/2013/08/27/assign-an-application-to-all-desktops-in-applescript/</link>
      <pubDate>Tue, 27 Aug 2013 00:00:00 +0000</pubDate>
      <guid>//erikzaadi.com/2013/08/27/assign-an-application-to-all-desktops-in-applescript/</guid>
      <description>&lt;h3 id=&#34;back-to-basics-applescript&#34;&gt;Back to basics, applescript&lt;/h3&gt;&#xA;&lt;p&gt;It&amp;rsquo;s been a while since I wrote applescript.&lt;/p&gt;&#xA;&lt;p&gt;Although the capabilities are truly amazing, I never really connected to the &lt;code&gt;tell&lt;/code&gt; syntax, a bit to verbose for me.&lt;/p&gt;&#xA;&lt;p&gt;Anyhow, I&amp;rsquo;m using &lt;a href=&#34;https://github.com/jigish/slate&#34;&gt;slate&lt;/a&gt; for automagically position apps when I change monitors (amongs other things), and I needed a way to pin certain applications to all desktops when using multiple monitors, or to a specific desktop when using just one monitor.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Return of the Mac</title>
      <link>//erikzaadi.com/2013/08/22/return-of-the-mac/</link>
      <pubDate>Thu, 22 Aug 2013 00:00:00 +0000</pubDate>
      <guid>//erikzaadi.com/2013/08/22/return-of-the-mac/</guid>
      <description>&lt;p&gt;After two wonderful years of Linux, mostly with Ubuntu (with a small visit to Fedora), I had the opportunity to switch to a Mac at work.&#xA;It&amp;rsquo;s an old 2009 MBP inherited by &lt;a href=&#34;http://royr.net&#34;&gt;Vuduchild&lt;/a&gt; who left us lately.&lt;/p&gt;&#xA;&lt;p&gt;At my previous workplace, I had an iMac for about four years, and I&amp;rsquo;m ashamed to admit that about two and a half years out of those four, I was mainly on the dark windows side of the iMacs bootcamp (NEVER AGAIN).&#xA;As for the last year and a half out of those four, I started to use Mac OS exclusivly, fell for git and vim, but still developed mainly DONT.NIET apps.&lt;/p&gt;</description>
    </item>
    <item>
      <title>FDD - Fika Driven Development</title>
      <link>//erikzaadi.com/2013/07/01/fdd-fika-driven-development/</link>
      <pubDate>Mon, 01 Jul 2013 00:00:00 +0000</pubDate>
      <guid>//erikzaadi.com/2013/07/01/fdd-fika-driven-development/</guid>
      <description>&lt;h3 id=&#34;fdd-ftw&#34;&gt;FDD FTW&lt;/h3&gt;&#xA;&lt;p&gt;There are many different type of development methodologies.&#xA;TDD, BDD, what have you.&lt;/p&gt;&#xA;&lt;p&gt;You also got non development centric methodologies such as &lt;a href=&#34;http://en.wikipedia.org/wiki/Pomodoro_Technique&#34;&gt;Pomodoro&lt;/a&gt;, which help you make the most of your time.&lt;/p&gt;&#xA;&lt;p&gt;At our group at work, we have fine tuned a brand new and shiny methodology called:&lt;/p&gt;&#xA;&lt;blockquote&gt;&#xA;&lt;p&gt;&amp;ldquo;FDD&amp;rdquo; - Fika Driven Development&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&lt;p&gt;&lt;a href=&#34;http://www.flickr.com/photos/95976343@N07/9183316801/&#34; title=&#34;20120515_114703 by erikzaadi, on Flickr&#34;&gt;&lt;img src=&#34;http://farm4.staticflickr.com/3694/9183316801_9dd182e6eb.jpg&#34; width=&#34;450&#34; height=&#34;500&#34; alt=&#34;20120515_114703&#34;&gt;&lt;/a&gt;&lt;/p&gt;&#xA;&lt;p&gt;[Fika](&lt;a href=&#34;http://en.wikipedia.org/wiki/Fika_(coffee_break&#34;&gt;http://en.wikipedia.org/wiki/Fika_(coffee_break&lt;/a&gt;)) is a Swedish custom imported by yours truly.&lt;/p&gt;&#xA;&lt;p&gt;Every day, at, it&amp;rsquo;s Fika O&amp;rsquo;clock, usually announced by SHOUTING in ascii in our IRC channel.&lt;/p&gt;</description>
    </item>
    <item>
      <title>nose-rapido - a rapid feedback plugin for nosetests</title>
      <link>//erikzaadi.com/2013/06/23/nose-rapido-a-rapid-feedback-plugin-for-nosetests/</link>
      <pubDate>Sun, 23 Jun 2013 00:00:00 +0000</pubDate>
      <guid>//erikzaadi.com/2013/06/23/nose-rapido-a-rapid-feedback-plugin-for-nosetests/</guid>
      <description>&lt;p&gt;I use a tmux + vim development environment which I find really productive.&#xA;When hacking on python projects, I like to have a tmux window open with nosetests logs, typically using &lt;a href=&#34;https://github.com/lukaszb/nose-watch&#34;&gt;nose-watch&lt;/a&gt;.&lt;/p&gt;&#xA;&lt;p&gt;Every now and then after saving, I&amp;rsquo;d switch to that window to see how the tests are doing.&lt;/p&gt;&#xA;&lt;p&gt;I wanted something a bit more small that would give me immediate feedback in my main window that I use, which is of course the vim window.&#xA;The feedback should on one hand not take up to much screen estate, nor disrupt my vim-fu focus.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Auto Auto Reloading iPython modules</title>
      <link>//erikzaadi.com/2013/03/14/auto-auto-reloading-ipython-modules/</link>
      <pubDate>Thu, 14 Mar 2013 00:00:00 +0000</pubDate>
      <guid>//erikzaadi.com/2013/03/14/auto-auto-reloading-ipython-modules/</guid>
      <description>&lt;p&gt;You all use ipython, it’s an awesome tool.&lt;/p&gt;&#xA;&lt;p&gt;However, it’s kind of annoying to exit and re-enter ipython when you change your python files.&lt;/p&gt;&#xA;&lt;p&gt;There’s an extension built into ipython called autoreload which can be loaded by entering:&lt;/p&gt;&#xA;&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;&#xA;&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;&#xA;&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1&#xA;&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;2&#xA;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&#xA;&lt;td class=&#34;lntd&#34;&gt;&#xA;&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-python&#34; data-lang=&#34;python&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;o&#34;&gt;%&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;load_ext&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;autoreload&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;o&#34;&gt;%&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;autoreload&lt;/span&gt; &lt;span class=&#34;mi&#34;&gt;2&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&#xA;&lt;/div&gt;&#xA;&lt;/div&gt;&lt;p&gt;Now whenever you edit your file, your objects will be updated in ipython without the need to close and reopen ipython.&lt;/p&gt;&#xA;&lt;p&gt;But entering those lines each time you pop open ipython isn’t fun either.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Fast remote editing with Vim</title>
      <link>//erikzaadi.com/2013/03/07/fast-remote-editing-with-vim/</link>
      <pubDate>Thu, 07 Mar 2013 00:00:00 +0000</pubDate>
      <guid>//erikzaadi.com/2013/03/07/fast-remote-editing-with-vim/</guid>
      <description>&lt;h4 id=&#34;updated-bash-script-now-even-more-cool&#34;&gt;&lt;em&gt;UPDATED:&lt;/em&gt; bash script now even more cool!&lt;/h4&gt;&#xA;&lt;p&gt;There&amp;rsquo;s a feature in vim of editing files over scp, built in since vim 7.1 (originially the now baked in &lt;a href=&#34;http://www.vim.org/scripts/script.php?script_id=1075&#34;&gt;netrw&lt;/a&gt; plugin).&lt;/p&gt;&#xA;&lt;p&gt;This feature uses scp to copy a local version of the remote file over scp, edit it with vim, and with each save connect via scp and save it to the remote location.&lt;/p&gt;&#xA;&lt;p&gt;This allows you to edit remote files with your own tailored vim instance (plugin galore!).&lt;/p&gt;</description>
    </item>
    <item>
      <title>Three Amigos One Tmux</title>
      <link>//erikzaadi.com/2012/12/10/three-amigos-one-tmux/</link>
      <pubDate>Mon, 10 Dec 2012 00:00:00 +0000</pubDate>
      <guid>//erikzaadi.com/2012/12/10/three-amigos-one-tmux/</guid>
      <description>&lt;p&gt;&lt;strong&gt;TL;DR:&lt;/strong&gt; &lt;code&gt;telnet gameoflife.erikzaadi.com 1337&lt;/code&gt;&lt;/p&gt;&#xA;&lt;p&gt;This Saturday (8th of December, 2012), was the second &lt;a href=&#34;http://globalday.coderetreat.org/&#34;&gt;Global Coderetreat&lt;/a&gt;, and I was amongst the lucky ones to participate from &lt;a href=&#34;http://coderetreat.co.il&#34;&gt;Tel Aviv&lt;/a&gt;.&lt;/p&gt;&#xA;&lt;p&gt;The event was epic, 30-ish geeks pairing up to 45 minutes of hacking sessions on &lt;a href=&#34;http://en.wikipedia.org/wiki/Conway&#39;s_Game_of_Life&#34;&gt;Conway&amp;rsquo;s Game Of Life&lt;/a&gt;.&lt;/p&gt;&#xA;&lt;p&gt;And that was just in Tel Aviv, about 3500 people worldwide took part in this Geekathon.&lt;/p&gt;&#xA;&lt;p&gt;The last session I teamed up with &lt;a href=&#34;http://www.royr.net/&#34;&gt;Roy Rothenberg&lt;/a&gt; and &lt;a href=&#34;https://twitter.com/pabloklijnjan&#34;&gt;Pablo Klijnjan&lt;/a&gt; (Yes that last name is in Klingon), both my day to day teammates at work.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Installing Bare Boned Ubuntu using the Mini ISO</title>
      <link>//erikzaadi.com/2012/11/11/installing-bare-boned-ubuntu-using-the-mini-iso/</link>
      <pubDate>Sun, 11 Nov 2012 00:00:00 +0000</pubDate>
      <guid>//erikzaadi.com/2012/11/11/installing-bare-boned-ubuntu-using-the-mini-iso/</guid>
      <description>&lt;p&gt;After installing Ubuntu 12.10, I got annoyed by the amount of unneeded software installed, especially the commercial lenses, offering me to buy something for every program I want to launch.&lt;/p&gt;&#xA;&lt;p&gt;I tried Unity for about two weeks, until I decided I have to change to something else.&lt;/p&gt;&#xA;&lt;p&gt;I used Gnome 3 with Fedora for a while before, and I really like the native multiscreen support available, that allows you to have a second monitor that doesn&amp;rsquo;t change when you switch workspace.&#xA;I missed the diagonal workspace switches from Gnome 2 (and Unity), but it was a pleasant desktop.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Unsubscribing to watching all repos in a Github organization</title>
      <link>//erikzaadi.com/2012/10/29/unsubscribing-to-watching-all-repos-in-a-github-organization/</link>
      <pubDate>Mon, 29 Oct 2012 00:00:00 +0000</pubDate>
      <guid>//erikzaadi.com/2012/10/29/unsubscribing-to-watching-all-repos-in-a-github-organization/</guid>
      <description>&lt;p&gt;Github notifications are great, but if you are a part of any organization,&#xA;it quickly get&amp;rsquo;s overrun with repositories that you aren&amp;rsquo;t necessarly active with&amp;rsquo;s notifications, making it hard to filter the important bug reports on you own repos.&lt;/p&gt;&#xA;&lt;p&gt;To unsubscribe to all repositories in an organization, open up &lt;a href=&#34;https://github.com/watching&#34;&gt;your watching page&lt;/a&gt; (Login first of course).&lt;/p&gt;&#xA;&lt;p&gt;Copy the gist below and replace &lt;code&gt;THEORG&lt;/code&gt; with the organization you wish to unwatch it&amp;rsquo;s repositories.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Using Live Reload with Octopress</title>
      <link>//erikzaadi.com/2012/09/16/using-live-reload-with-octopress/</link>
      <pubDate>Sun, 16 Sep 2012 00:00:00 +0000</pubDate>
      <guid>//erikzaadi.com/2012/09/16/using-live-reload-with-octopress/</guid>
      <description>&lt;p&gt;Live Reload is an awesome Mac app and browser extension which reloads your browser automagically when editing a file.&#xA;Needless to save, it&amp;rsquo;s a bliss, never to &lt;code&gt;{CMD,ctrl} + R&lt;/code&gt; again.&lt;/p&gt;&#xA;&lt;p&gt;For those of us who are Mac less, the App is of course not available.&#xA;Ruby to the rescue!&lt;/p&gt;&#xA;&lt;p&gt;Install the LiveReload browser extension, see &lt;a href=&#34;http://feedback.livereload.com/knowledgebase/articles/86242-how-do-i-install-and-use-the-browser-extensions-&#34;&gt;long explanation&lt;/a&gt;.&lt;/p&gt;&#xA;&lt;p&gt;Edit &lt;code&gt;Gemfile&lt;/code&gt; and add the following two lines:&lt;/p&gt;&#xA;&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;&#xA;&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;&#xA;&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1&#xA;&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;2&#xA;&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;3&#xA;&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;4&#xA;&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;5&#xA;&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;6&#xA;&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;7&#xA;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&#xA;&lt;td class=&#34;lntd&#34;&gt;&#xA;&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-ruby&#34; data-lang=&#34;ruby&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;n&#34;&gt;source&lt;/span&gt; &lt;span class=&#34;s2&#34;&gt;&amp;#34;http://rubygems.org&amp;#34;&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;n&#34;&gt;group&lt;/span&gt; &lt;span class=&#34;ss&#34;&gt;:development&lt;/span&gt; &lt;span class=&#34;k&#34;&gt;do&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;  &lt;span class=&#34;o&#34;&gt;...&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;  &lt;span class=&#34;n&#34;&gt;gem&lt;/span&gt; &lt;span class=&#34;s1&#34;&gt;&amp;#39;guard&amp;#39;&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;  &lt;span class=&#34;n&#34;&gt;gem&lt;/span&gt; &lt;span class=&#34;s1&#34;&gt;&amp;#39;guard-livereload&amp;#39;&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;k&#34;&gt;end&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&#xA;&lt;/div&gt;&#xA;&lt;/div&gt;&lt;p&gt;Create a &lt;code&gt;Guardfile&lt;/code&gt; with the following content:&lt;/p&gt;</description>
    </item>
    <item>
      <title>Inheritance within Python Unit Tests</title>
      <link>//erikzaadi.com/2012/09/13/inheritance-within-python-unit-tests/</link>
      <pubDate>Thu, 13 Sep 2012 00:00:00 +0000</pubDate>
      <guid>//erikzaadi.com/2012/09/13/inheritance-within-python-unit-tests/</guid>
      <description>&lt;h4 id=&#34;tldr-grab-the-gist&#34;&gt;&lt;strong&gt;TL;DR&lt;/strong&gt;: &lt;em&gt;&lt;a href=&#34;https://gist.github.com/3731389&#34;&gt;Grab the gist&lt;/a&gt;&lt;/em&gt;&lt;/h4&gt;&#xA;&lt;p&gt;Let&amp;rsquo;s say you have these classes in a python file:&lt;/p&gt;&#xA;&lt;script src=&#34;https://gist.github.com/3731389.js?file=components.py&#34; type=&#34;text/javascript&#34;&gt;&lt;/script&gt;&#xA;&lt;p&gt;And you want to write some simple unit tests for them, typically you&amp;rsquo;d do something like this:&lt;/p&gt;&#xA;&lt;script src=&#34;https://gist.github.com/3731389.js?file=test_components_verbose.py&#34; type=&#34;text/javascript&#34;&gt;&lt;/script&gt;&#xA;&lt;p&gt;running them with &lt;code&gt;nosetests -v&lt;/code&gt; will get you the following result:&lt;/p&gt;&#xA;&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;&#xA;&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;&#xA;&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt; 1&#xA;&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 2&#xA;&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 3&#xA;&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 4&#xA;&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 5&#xA;&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 6&#xA;&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 7&#xA;&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 8&#xA;&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 9&#xA;&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;10&#xA;&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;11&#xA;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&#xA;&lt;td class=&#34;lntd&#34;&gt;&#xA;&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;nosetests -v test_components_verbose&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;user@host:gist-3731389&lt;span class=&#34;p&#34;&gt;|&lt;/span&gt;‹master› ⇒  nosetests -v test_components_verbose.py&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;Test that initialized is set. ... ok&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;Test A class constructor &lt;span class=&#34;nb&#34;&gt;set&lt;/span&gt; something. ... ok&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;Test that initialized is set. ... ok&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;Test B class constructor sets something. ... ok&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;----------------------------------------------------------------------&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;Ran &lt;span class=&#34;m&#34;&gt;4&lt;/span&gt; tests in 0.001s&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;OK&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&#xA;&lt;/div&gt;&#xA;&lt;/div&gt;&lt;p&gt;Although that might seem ok, there&amp;rsquo;s some code duplication here that is really annnoying.&#xA;If &lt;code&gt;ClassA&lt;/code&gt; where to inherit &lt;code&gt;ClassB&lt;/code&gt; this would seem even more over verbose..&lt;/p&gt;</description>
    </item>
    <item>
      <title>One year of Linux</title>
      <link>//erikzaadi.com/2012/08/28/one-year-of-linux/</link>
      <pubDate>Tue, 28 Aug 2012 00:00:00 +0000</pubDate>
      <guid>//erikzaadi.com/2012/08/28/one-year-of-linux/</guid>
      <description>&lt;p&gt;A little more than a year ago, I &lt;a href=&#34;//erikzaadi.com/2011/06/26/times-they-are-a-changin/&#34;&gt;started working&lt;/a&gt; at XIV (IBM).&lt;/p&gt;&#xA;&lt;p&gt;The change was rather dramatic in terms of technologies that I work with.&#xA;I went from being a .NET web developer to a python developer, dealing with a lot if IT and system.&lt;/p&gt;&#xA;&lt;p&gt;Furthermore, I stopped working on a Mac (this is do miss), and have almost not touched windows for the entire year (which I haven&amp;rsquo;t missed at all).&lt;/p&gt;</description>
    </item>
    <item>
      <title>jQuery Compatible JSONP with Nginx</title>
      <link>//erikzaadi.com/2012/07/16/jquery-compatible-jsonp-with-nginx/</link>
      <pubDate>Mon, 16 Jul 2012 00:00:00 +0000</pubDate>
      <guid>//erikzaadi.com/2012/07/16/jquery-compatible-jsonp-with-nginx/</guid>
      <description>&lt;p&gt;I got inspired by &lt;a href=&#34;http://www.gabrielweinberg.com/blog/2011/07/nginx-json-hacks.html&#34;&gt;this awesome article&lt;/a&gt; by Gabriel Weinberg to hack a bit on &lt;a href=&#34;http://nginx.org&#34;&gt;nginx&lt;/a&gt;.&lt;/p&gt;&#xA;&lt;p&gt;It&amp;rsquo;s a great article which I highly recommend to read.&lt;/p&gt;&#xA;&lt;p&gt;The part that specifically interested me was turning JSON into JSONP compatible calls, usable both for proxying remote / local apis that doesn&amp;rsquo;t supply JSONP functionality and for simple to padd local static JSON files.&lt;/p&gt;&#xA;&lt;p&gt;What bothered me though was the fact that the name of the method to pad into the JSON response was hard coded.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Fixing Thunderbird crashes on load and Mutt fails with fetched mail</title>
      <link>//erikzaadi.com/2012/07/08/fixing-thunderbird-crashes-on-load-and-mutt-fails-with-fetched-mail/</link>
      <pubDate>Sun, 08 Jul 2012 00:00:00 +0000</pubDate>
      <guid>//erikzaadi.com/2012/07/08/fixing-thunderbird-crashes-on-load-and-mutt-fails-with-fetched-mail/</guid>
      <description>&lt;p&gt;If you use your unix mail spool/box with any type of fetchmail (ahem fetchnotes), on rare occasions, the mail box might be corrupted, typically missing a single starting character.&lt;/p&gt;&#xA;&lt;p&gt;Thunderbird will fail miserably without any explanations, and Mutt will complain that the mailbox is invalid.&lt;/p&gt;&#xA;&lt;p&gt;Open the mailbox (&lt;code&gt;/var/mail/$USER&lt;/code&gt; usually) in your favorite editor (&lt;code&gt;vim&lt;/code&gt; of course), and have a look at the beginning of the file:&lt;/p&gt;&#xA;&lt;p&gt;It should start like this:&lt;/p&gt;</description>
    </item>
    <item>
      <title>Mocking Python imports</title>
      <link>//erikzaadi.com/2012/07/03/mocking-python-imports/</link>
      <pubDate>Tue, 03 Jul 2012 00:00:00 +0000</pubDate>
      <guid>//erikzaadi.com/2012/07/03/mocking-python-imports/</guid>
      <description>&lt;p&gt;Writing unit tests with Python is a joy, especially with the excellent &lt;a href=&#34;http://www.voidspace.org.uk/python/mock/&#34;&gt;mock&lt;/a&gt; library.&lt;/p&gt;&#xA;&lt;p&gt;You can tweak the language and mock almost anything to your will, making testing even the smallest of units very easy.&lt;/p&gt;&#xA;&lt;p&gt;&lt;strong&gt;HOWEVER&lt;/strong&gt; , mocking imports, when a class / module depends on imports which you might not have on your machine, such as windows modules (oei vei) when you are (and you should be) on a nix machine.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Solarized color scheme for Octopress</title>
      <link>//erikzaadi.com/2012/04/22/solarized-color-scheme-for-octopress/</link>
      <pubDate>Sun, 22 Apr 2012 00:00:00 +0000</pubDate>
      <guid>//erikzaadi.com/2012/04/22/solarized-color-scheme-for-octopress/</guid>
      <description>&lt;h3 id=&#34;created-a--solarized--theme-for-octopress&#34;&gt;Created a  &lt;a href=&#34;http://ethanschoonover.com/solarized&#34;&gt;solarized&lt;/a&gt;  theme for &lt;a href=&#34;http://octopress.org&#34;&gt;octopress&lt;/a&gt;.&lt;/h3&gt;&#xA;&lt;p&gt;Inspired by Ethan Schoonover&amp;rsquo;s &lt;a href=&#34;http://ethanschoonover.com/&#34;&gt;own homepage&lt;/a&gt;.&lt;/p&gt;&#xA;&lt;p&gt;The source is as always &lt;a href=&#34;https://github.com/erikzaadi/solarized-octopress-theme&#34;&gt;on github&lt;/a&gt;.&lt;/p&gt;&#xA;&lt;p&gt;To add this to your own Octopress instance :&lt;/p&gt;&#xA;&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;&#xA;&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;&#xA;&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1&#xA;&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;2&#xA;&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;3&#xA;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&#xA;&lt;td class=&#34;lntd&#34;&gt;&#xA;&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;nb&#34;&gt;cd&lt;/span&gt; /my/awesome/octopress/dir&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;git clone http://github.com/erikzaadi/solarized-octopress-theme .themes/solarized&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;rake install&lt;span class=&#34;o&#34;&gt;[&lt;/span&gt;&lt;span class=&#34;s2&#34;&gt;&amp;#34;solarized&amp;#34;&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;]&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&#xA;&lt;/div&gt;&#xA;&lt;/div&gt;&lt;p&gt;&lt;em&gt;zsh users&lt;/em&gt; : run&lt;/p&gt;&#xA;&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;&#xA;&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;&#xA;&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1&#xA;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&#xA;&lt;td class=&#34;lntd&#34;&gt;&#xA;&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;rake install&lt;span class=&#34;se&#34;&gt;\[&lt;/span&gt;&lt;span class=&#34;s1&#34;&gt;&amp;#39;solarized&amp;#39;&lt;/span&gt;&lt;span class=&#34;se&#34;&gt;\]&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&#xA;&lt;/div&gt;&#xA;&lt;/div&gt;&lt;p&gt;instead of the last command&lt;/p&gt;&#xA;&lt;h3 id=&#34;customize&#34;&gt;Customize&lt;/h3&gt;&#xA;&lt;p&gt;To toggle between light and dark mode, edit &lt;code&gt;sass/custom/_colors.scss&lt;/code&gt; and change &lt;code&gt;$sol&lt;/code&gt; and ``$solarized`:&lt;/p&gt;&#xA;&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;&#xA;&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;&#xA;&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1&#xA;&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;2&#xA;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&#xA;&lt;td class=&#34;lntd&#34;&gt;&#xA;&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-css&#34; data-lang=&#34;css&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;o&#34;&gt;$&lt;/span&gt;&lt;span class=&#34;nt&#34;&gt;sol&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;:&lt;/span&gt; &lt;span class=&#34;nt&#34;&gt;light&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;;&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;//&lt;/span&gt; &lt;span class=&#34;nt&#34;&gt;light&lt;/span&gt; &lt;span class=&#34;nt&#34;&gt;or&lt;/span&gt; &lt;span class=&#34;nt&#34;&gt;dark&lt;/span&gt; &lt;span class=&#34;nt&#34;&gt;-&lt;/span&gt;  &lt;span class=&#34;nt&#34;&gt;Recommended&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;:&lt;/span&gt; &lt;span class=&#34;nt&#34;&gt;set&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;$&lt;/span&gt;&lt;span class=&#34;nt&#34;&gt;solarized&lt;/span&gt;  &lt;span class=&#34;nt&#34;&gt;to&lt;/span&gt; &lt;span class=&#34;nt&#34;&gt;the&lt;/span&gt; &lt;span class=&#34;nt&#34;&gt;opposite&lt;/span&gt; &lt;span class=&#34;nt&#34;&gt;of&lt;/span&gt; &lt;span class=&#34;nt&#34;&gt;this&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;o&#34;&gt;$&lt;/span&gt;&lt;span class=&#34;nt&#34;&gt;solarized&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;:&lt;/span&gt; &lt;span class=&#34;nt&#34;&gt;dark&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;;&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;//&lt;/span&gt; &lt;span class=&#34;nt&#34;&gt;code&lt;/span&gt; &lt;span class=&#34;nt&#34;&gt;syntax&lt;/span&gt; &lt;span class=&#34;nt&#34;&gt;highlighting&lt;/span&gt; &lt;span class=&#34;nt&#34;&gt;theme&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&#xA;&lt;/div&gt;&#xA;&lt;/div&gt;&lt;h3 id=&#34;screenshots&#34;&gt;Screenshots&lt;/h3&gt;&#xA;&lt;p&gt;&lt;img src=&#34;https://github.com/erikzaadi/solarized-octopress-theme/raw/master/images/dark.png&#34; alt=&#34;Dark&#34;&gt;&lt;/p&gt;</description>
    </item>
    <item>
      <title>auto installing vundle from your vimrc</title>
      <link>//erikzaadi.com/2012/03/19/auto-installing-vundle-from-your-vimrc/</link>
      <pubDate>Mon, 19 Mar 2012 00:00:00 +0000</pubDate>
      <guid>//erikzaadi.com/2012/03/19/auto-installing-vundle-from-your-vimrc/</guid>
      <description>&lt;h3 id=&#34;you-should-be-using-vundle&#34;&gt;You should be using vundle&lt;/h3&gt;&#xA;&lt;p&gt;&lt;a href=&#34;https://github.com/VundleVim/Vundle.vim&#34;&gt;Vundle&lt;/a&gt; is a vim plugin manager, ala &lt;a href=&#34;https://github.com/tpope/vim-pathogen/&#34;&gt;pathogen&lt;/a&gt;.&lt;/p&gt;&#xA;&lt;p&gt;Vundle allows you to specify in your &lt;code&gt;vimrc&lt;/code&gt; what vim plugins you wish to load, and it&amp;rsquo;ll automatically download (git clone if possible) and enable vim plugins.&lt;/p&gt;&#xA;&lt;p&gt;Vundle can get a name of a plugin as it appears in the vim plugin directory, a github &lt;code&gt;:user/:repo&lt;/code&gt; style string, and even a full git url.&lt;/p&gt;&#xA;&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;&#xA;&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;&#xA;&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1&#xA;&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;2&#xA;&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;3&#xA;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&#xA;&lt;td class=&#34;lntd&#34;&gt;&#xA;&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;Plugin &lt;span class=&#34;s1&#34;&gt;&amp;#39;Syntastic&amp;#39;&lt;/span&gt; &lt;span class=&#34;s2&#34;&gt;&amp;#34;uber awesome syntax and errors highlighter&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;s2&#34;&gt;Plugin &amp;#39;altercation/vim-colors-solarized&amp;#39; &amp;#34;&lt;/span&gt;T-H-E colorscheme&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;Plugin &lt;span class=&#34;s1&#34;&gt;&amp;#39;https://github.com/tpope/vim-fugitive&amp;#39;&lt;/span&gt; &lt;span class=&#34;s2&#34;&gt;&amp;#34;So awesome, it should be illegal &#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&#xA;&lt;/div&gt;&#xA;&lt;/div&gt;&lt;p&gt;Vundle also updates your vim plugins with a simple command :&lt;/p&gt;</description>
    </item>
    <item>
      <title>The Wedding Dance</title>
      <link>//erikzaadi.com/2012/03/03/the-wedding-dance/</link>
      <pubDate>Sat, 03 Mar 2012 00:00:00 +0000</pubDate>
      <guid>//erikzaadi.com/2012/03/03/the-wedding-dance/</guid>
      <description>&lt;div&#xA;          style=&#34;position: relative; padding-bottom: 56.25%; height: 0; overflow: hidden;&#34;&gt;&#xA;        &lt;iframe&#xA;          src=&#34;https://player.vimeo.com/video/928311837?dnt=0&#34;&#xA;            style=&#34;position: absolute; top: 0; left: 0; width: 100%; height: 100%; border:0;&#34; allow=&#34;fullscreen&#34;&gt;&#xA;        &lt;/iframe&gt;&#xA;      &lt;/div&gt;</description>
    </item>
    <item>
      <title>Blog now hosted on Amazon S3</title>
      <link>//erikzaadi.com/2012/03/02/blog-now-hosted-on-amazon-s3/</link>
      <pubDate>Fri, 02 Mar 2012 00:00:00 +0000</pubDate>
      <guid>//erikzaadi.com/2012/03/02/blog-now-hosted-on-amazon-s3/</guid>
      <description>&lt;p&gt;After migrating my blog from wp to octopress (see &lt;a href=&#34;//erikzaadi.com/2012/02/28/word-to-octo-press/&#34;&gt;previous post&lt;/a&gt;), I started thinking that it might be a waste using a (shared) hosting account just to serve static files.&#xA;Since I use &lt;a href=&#34;http://aws.amazon.com&#34;&gt;Amazon Web Services&lt;/a&gt; a lot, I thought I might give &lt;a href=&#34;http://aws.amazon.com/s3&#34;&gt;Amazon S3&lt;/a&gt; a shot.&lt;/p&gt;&#xA;&lt;p&gt;There&amp;rsquo;s a zillion posts out there of how to make a static site in S3, including for octopress sites, so I won&amp;rsquo;t bother you with repeating the steps here (see the links in the end of the post).&lt;/p&gt;</description>
    </item>
    <item>
      <title>mv {word,octo}press</title>
      <link>//erikzaadi.com/2012/02/28/mv-wordoctopress/</link>
      <pubDate>Tue, 28 Feb 2012 00:00:00 +0000</pubDate>
      <guid>//erikzaadi.com/2012/02/28/mv-wordoctopress/</guid>
      <description>&lt;p&gt;After my wordpress blog was hacked twice, and I got a warning from google that I host malware (!), I decided that enough is enough, time to ditch Wordpress and hope never to see php code again.&lt;/p&gt;&#xA;&lt;p&gt;I managed to resist the urge to roll my own blog engine (&lt;em&gt;haven&amp;rsquo;t we all been there?&lt;/em&gt;), and decided to use &lt;a href=&#34;http://octopress.org&#34;&gt;octopress&lt;/a&gt;.&lt;/p&gt;&#xA;&lt;p&gt;After being victorious over ruby and rvm who thought it&amp;rsquo;d be hilarious to make me go crazy while making &lt;a href=&#34;https://github.com/jugyo/earthquake&#34;&gt;earthquake&lt;/a&gt; work, I thought I might give octopress a shot.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Startup weekend Haifa (2011)</title>
      <link>//erikzaadi.com/2011/11/23/startup-weekend-haifa-2011/</link>
      <pubDate>Wed, 23 Nov 2011 00:00:00 +0000</pubDate>
      <guid>//erikzaadi.com/2011/11/23/startup-weekend-haifa-2011/</guid>
      <description>&lt;p&gt;&lt;img src=&#34;//erikzaadi.com/images/startup-weekend-haifa-logo.png&#34; alt=&#34;&#34;&gt;&lt;/p&gt;&#xA;&lt;p&gt;Last week, a &lt;a href=&#34;http://startupweekend.org/&#34;&gt;Startup Weekend&lt;/a&gt; event took place in &lt;a href=&#34;http://haifa.startupweekend.org/&#34;&gt;Haifa&lt;/a&gt;.&lt;/p&gt;&#xA;&lt;p&gt;Being somewhat of an addict to Startup Weekend, I attended.&lt;/p&gt;&#xA;&lt;p&gt;Although the location was a bit smaller and less equipped than the previous Startup Weekends in &lt;a href=&#34;http://tel-aviv.startupweekend.org/&#34;&gt;Tel-Aviv&lt;/a&gt; (Yaffo), the organizers worked hard to make it a fun and enjoyable experience.&lt;/p&gt;&#xA;&lt;p&gt;I pitched an idea there that didn&amp;rsquo;t get enough votes unfortunately, although I had a lot of positive response from people.&lt;/p&gt;&#xA;&lt;p&gt;I joined a team called VideoChef, with some really great people.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Jenkins on Nginx – Take 2 - Static file handling</title>
      <link>//erikzaadi.com/2011/10/23/jenkins-on-nginx-take-2-static-file-handling/</link>
      <pubDate>Sun, 23 Oct 2011 00:00:00 +0000</pubDate>
      <guid>//erikzaadi.com/2011/10/23/jenkins-on-nginx-take-2-static-file-handling/</guid>
      <description>&lt;p&gt;Updated the &lt;a href=&#34;https://wiki.jenkins-ci.org/display/JENKINS/Running+Hudson+behind+Nginx&#34;&gt;wiki&lt;/a&gt; with a Nginx configuration that handles all the static files for Jenkins, really improves performance.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Jenkins on Nginx - Fixing artifacts downloading problem</title>
      <link>//erikzaadi.com/2011/10/02/jenkins-on-nginx-fixing-artifacts-downloading-problem/</link>
      <pubDate>Sun, 02 Oct 2011 00:00:00 +0000</pubDate>
      <guid>//erikzaadi.com/2011/10/02/jenkins-on-nginx-fixing-artifacts-downloading-problem/</guid>
      <description>&lt;p&gt;For those of you using Nginx to proxy Jenkins, be sure to copy the updated nginx server config from the wiki page &lt;a href=&#34;https://wiki.jenkins-ci.org/display/JENKINS/Running+Hudson+behind+Nginx&#34;&gt;https://wiki.jenkins-ci.org/display/JENKINS/Running+Hudson+behind+Nginx&lt;/a&gt;.&lt;/p&gt;&#xA;&lt;p&gt;I added some proxy buffer specific parameters that fixes artifact downloading..&lt;/p&gt;</description>
    </item>
    <item>
      <title>Connecting Jenkins to self signed certificated servers</title>
      <link>//erikzaadi.com/2011/09/09/connecting-jenkins-to-self-signed-certificated-servers/</link>
      <pubDate>Fri, 09 Sep 2011 00:00:00 +0000</pubDate>
      <guid>//erikzaadi.com/2011/09/09/connecting-jenkins-to-self-signed-certificated-servers/</guid>
      <description>&lt;p&gt;&lt;img src=&#34;//erikzaadi.com/images/unlocked-icon.png&#34; alt=&#34;&#34;&gt;&lt;/p&gt;&#xA;&lt;p&gt;I&amp;rsquo;ve recently needed to connect our Jenkins CI server to several internal servers such as Jira and IRC (Fun post coming soon on Jenkins@IRC..).&lt;/p&gt;&#xA;&lt;p&gt;The problem with these servers are that their SSL certificates are selfsigned.&#xA;This causes Jenkins to fail when connecting to the servers with the following error (Which you can see in the Jenkins log):&lt;/p&gt;&#xA;&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;&#xA;&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;&#xA;&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1&#xA;&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;2&#xA;&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;3&#xA;&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;4&#xA;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&#xA;&lt;td class=&#34;lntd&#34;&gt;&#xA;&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;javax.net.ssl.SSLHandshakeException: sun.security.validator.ValidatorException:&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;PKIX path building failed:&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;sun.security.provider.certpath.SunCertPathBuilderException:&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;unable to find valid certification path to requested target&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&#xA;&lt;/div&gt;&#xA;&lt;/div&gt;&lt;p&gt;To solve the problem, instead of going through Java keysigning hell, download &lt;a href=&#34;http://demos.erikzaadi.com/jenkins/JavaSSL.zip&#34;&gt;JavaSSL.zip&lt;/a&gt;, extract the files and open a command prompt or shell to the extracted folder.&lt;/p&gt;</description>
    </item>
    <item>
      <title>The small things</title>
      <link>//erikzaadi.com/2011/08/04/the-small-things/</link>
      <pubDate>Thu, 04 Aug 2011 00:00:00 +0000</pubDate>
      <guid>//erikzaadi.com/2011/08/04/the-small-things/</guid>
      <description>&lt;p&gt;Lately I&amp;rsquo;ve been going deeper and deeper down the nix rabbit hole at my new work.&lt;/p&gt;&#xA;&lt;p&gt;The deeper I go, the more I undestand what a nix n00b I am.&#xA;I&amp;rsquo;ve had so many OMG/AHA! moments, and it reminds me a bit of the period I (re)discovered the Mac, and when my journey of the open source world began.&lt;/p&gt;&#xA;&lt;p&gt;Here&amp;rsquo;s a small example that&amp;rsquo;ll make anyone with nix experience chuckle, since it&amp;rsquo;s so basic:&lt;/p&gt;</description>
    </item>
    <item>
      <title>Automating Egged Bus Wifi Connection</title>
      <link>//erikzaadi.com/2011/07/18/automating-egged-bus-wifi-connection/</link>
      <pubDate>Mon, 18 Jul 2011 00:00:00 +0000</pubDate>
      <guid>//erikzaadi.com/2011/07/18/automating-egged-bus-wifi-connection/</guid>
      <description>&lt;p&gt;On my commute to work I travel by bus, with wifi.&lt;/p&gt;&#xA;&lt;p&gt;It&amp;rsquo;s one of those wifi&amp;rsquo;s you have to open a browser and click on some license agreement in order to connect.&lt;/p&gt;&#xA;&lt;p&gt;After agreeing, the browser is redirected to a page filled with commercials, earning yet another referral point to the company that set up this wifi.&lt;/p&gt;&#xA;&lt;p&gt;Annoying as it might seem, this is not the end of the world, as you overcoming it by clicking is not that bad.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Making the touchpad work with two finger swipes on ubuntu 10.10 installed on a Lenovo laptop</title>
      <link>//erikzaadi.com/2011/07/11/making-the-touchpad-work-with-two-finger-swipes-on-ubuntu-10-10-installed-on-a-lenovo-laptop/</link>
      <pubDate>Mon, 11 Jul 2011 00:00:00 +0000</pubDate>
      <guid>//erikzaadi.com/2011/07/11/making-the-touchpad-work-with-two-finger-swipes-on-ubuntu-10-10-installed-on-a-lenovo-laptop/</guid>
      <description>&lt;p&gt;Once you&amp;rsquo;ve tried a mac, it&amp;rsquo;s hard to use a touchpad without multitouch capabilities.&lt;/p&gt;&#xA;&lt;p&gt;On Ubuntu 11.04 this should work out of the box, but the script below will allow you to control the settings better than the UI.&lt;/p&gt;&#xA;&lt;p&gt;Save this script somewhere on your disk:&lt;/p&gt;&#xA;&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;&#xA;&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;&#xA;&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1&#xA;&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;2&#xA;&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;3&#xA;&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;4&#xA;&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;5&#xA;&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;6&#xA;&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;7&#xA;&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;8&#xA;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&#xA;&lt;td class=&#34;lntd&#34;&gt;&#xA;&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;cp&#34;&gt;#!/bin/sh&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;sleep &lt;span class=&#34;m&#34;&gt;10&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;xinput --set-prop --type&lt;span class=&#34;o&#34;&gt;=&lt;/span&gt;int --format&lt;span class=&#34;o&#34;&gt;=&lt;/span&gt;&lt;span class=&#34;m&#34;&gt;32&lt;/span&gt; &lt;span class=&#34;s2&#34;&gt;&amp;#34;SynPS/2 Synaptics TouchPad&amp;#34;&lt;/span&gt; &lt;span class=&#34;s2&#34;&gt;&amp;#34;Synaptics Two-Finger Pressure&amp;#34;&lt;/span&gt; &lt;span class=&#34;m&#34;&gt;4&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;xinput --set-prop --type&lt;span class=&#34;o&#34;&gt;=&lt;/span&gt;int --format&lt;span class=&#34;o&#34;&gt;=&lt;/span&gt;&lt;span class=&#34;m&#34;&gt;32&lt;/span&gt; &lt;span class=&#34;s2&#34;&gt;&amp;#34;SynPS/2 Synaptics TouchPad&amp;#34;&lt;/span&gt; &lt;span class=&#34;s2&#34;&gt;&amp;#34;Synaptics Two-Finger Width&amp;#34;&lt;/span&gt; &lt;span class=&#34;m&#34;&gt;8&lt;/span&gt; &lt;span class=&#34;c1&#34;&gt;# Below width 1 finger touch, above width simulate 2 finger touch. - value=pad-pixels&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;xinput --set-prop --type&lt;span class=&#34;o&#34;&gt;=&lt;/span&gt;int --format&lt;span class=&#34;o&#34;&gt;=&lt;/span&gt;&lt;span class=&#34;m&#34;&gt;8&lt;/span&gt; &lt;span class=&#34;s2&#34;&gt;&amp;#34;SynPS/2 Synaptics TouchPad&amp;#34;&lt;/span&gt; &lt;span class=&#34;s2&#34;&gt;&amp;#34;Synaptics Two-Finger Scrolling&amp;#34;&lt;/span&gt; &lt;span class=&#34;m&#34;&gt;1&lt;/span&gt; &lt;span class=&#34;m&#34;&gt;1&lt;/span&gt; &lt;span class=&#34;c1&#34;&gt;# vertical scrolling, horizontal scrolling - values: 0=disable 1=enable&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;xinput --set-prop --type&lt;span class=&#34;o&#34;&gt;=&lt;/span&gt;int --format&lt;span class=&#34;o&#34;&gt;=&lt;/span&gt;&lt;span class=&#34;m&#34;&gt;8&lt;/span&gt; &lt;span class=&#34;s2&#34;&gt;&amp;#34;SynPS/2 Synaptics TouchPad&amp;#34;&lt;/span&gt; &lt;span class=&#34;s2&#34;&gt;&amp;#34;Synaptics Edge Scrolling&amp;#34;&lt;/span&gt; &lt;span class=&#34;m&#34;&gt;0&lt;/span&gt; &lt;span class=&#34;m&#34;&gt;0&lt;/span&gt; &lt;span class=&#34;m&#34;&gt;0&lt;/span&gt; &lt;span class=&#34;c1&#34;&gt;# vertical, horizontal, corner - values: 0=disable 1=enable&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;xinput --set-prop --type&lt;span class=&#34;o&#34;&gt;=&lt;/span&gt;int --format&lt;span class=&#34;o&#34;&gt;=&lt;/span&gt;&lt;span class=&#34;m&#34;&gt;32&lt;/span&gt; &lt;span class=&#34;s2&#34;&gt;&amp;#34;SynPS/2 Synaptics TouchPad&amp;#34;&lt;/span&gt; &lt;span class=&#34;s2&#34;&gt;&amp;#34;Synaptics Jumpy Cursor Threshold&amp;#34;&lt;/span&gt; &lt;span class=&#34;m&#34;&gt;250&lt;/span&gt; &lt;span class=&#34;c1&#34;&gt;# stabilize 2 finger actions - value=pad-pixels&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;xinput --set-prop --type&lt;span class=&#34;o&#34;&gt;=&lt;/span&gt;int --format&lt;span class=&#34;o&#34;&gt;=&lt;/span&gt;&lt;span class=&#34;m&#34;&gt;8&lt;/span&gt; &lt;span class=&#34;s2&#34;&gt;&amp;#34;SynPS/2 Synaptics TouchPad&amp;#34;&lt;/span&gt; &lt;span class=&#34;s2&#34;&gt;&amp;#34;Synaptics Tap Action&amp;#34;&lt;/span&gt; &lt;span class=&#34;m&#34;&gt;0&lt;/span&gt; &lt;span class=&#34;m&#34;&gt;3&lt;/span&gt; &lt;span class=&#34;m&#34;&gt;0&lt;/span&gt; &lt;span class=&#34;m&#34;&gt;0&lt;/span&gt; &lt;span class=&#34;m&#34;&gt;1&lt;/span&gt; &lt;span class=&#34;m&#34;&gt;2&lt;/span&gt; &lt;span class=&#34;m&#34;&gt;0&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&#xA;&lt;/div&gt;&#xA;&lt;/div&gt;&lt;p&gt;Open &lt;code&gt;System&lt;/code&gt; =&amp;gt; &lt;code&gt;Preferences&lt;/code&gt; =&amp;gt; &lt;code&gt;Startup application&lt;/code&gt; and add a new startup item :&lt;/p&gt;</description>
    </item>
    <item>
      <title>Times they are a changin</title>
      <link>//erikzaadi.com/2011/06/26/times-they-are-a-changin/</link>
      <pubDate>Sun, 26 Jun 2011 00:00:00 +0000</pubDate>
      <guid>//erikzaadi.com/2011/06/26/times-they-are-a-changin/</guid>
      <description>&lt;p&gt;&lt;img src=&#34;//erikzaadi.com/images/XMPie-Nov_4_07-Trip-129.jpg&#34; alt=&#34;&#34;&gt;&lt;/p&gt;&#xA;&lt;p&gt;It took over a year for the idea to boil up inside of me until I finally reached the decision.&lt;/p&gt;&#xA;&lt;p&gt;3 1/2 months ago it hit me, I finally understood that I wanted to leave XMPie.&lt;/p&gt;&#xA;&lt;p&gt;Before I started to look elsewhere, I notified my superiors, as I wanted to make sure that someone good would replace me.&lt;/p&gt;&#xA;&lt;p&gt;It saddens me a bit that until now, two days before I leave, we didn&amp;rsquo;t find any adequate recruit to take my place.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Node.js Frontend Fu (node-fe-fu)</title>
      <link>//erikzaadi.com/2011/04/21/node-js-frontend-fu-node-fe-fu/</link>
      <pubDate>Thu, 21 Apr 2011 00:00:00 +0000</pubDate>
      <guid>//erikzaadi.com/2011/04/21/node-js-frontend-fu-node-fe-fu/</guid>
      <description>&lt;p&gt;As you might have noticed from my &lt;a href=&#34;http://erikzaadi.com/2011/04/20/node-js-much-more-then-a-webserver/&#34;&gt;previous post&lt;/a&gt;, My geekadellic franzy about &lt;a href=&#34;http://nodejs.org&#34;&gt;node.js&lt;/a&gt; is reaching new peaks..&lt;/p&gt;&#xA;&lt;p&gt;I&amp;rsquo;ve created a small node.js module to be used not as a web server, but more as an aid for developing frontend applications regardless of the backend technology used.&lt;/p&gt;&#xA;&lt;p&gt;What the module does is:&lt;/p&gt;&#xA;&lt;ol&gt;&#xA;&lt;li&gt;Searches for &lt;a href=&#34;http://lesscss.org&#34;&gt;.less&lt;/a&gt; files, parses them, and saves two copies of the file:&#xA;E.g.&#xA;&lt;code&gt;css/main.less&lt;/code&gt;&#xA;Will be transformed into&#xA;&lt;code&gt;css/main.css&lt;/code&gt;  - parsed less to css&#xA;&lt;code&gt;css/main.min.css&lt;/code&gt;  - parsed less to css and minified&lt;/li&gt;&#xA;&lt;li&gt;Searches for .js files, minifies them:&#xA;E.g.&#xA;&lt;code&gt;js/main.js&lt;/code&gt;&#xA;Will be minified and saved to&#xA;&lt;code&gt;js/main.min.js&lt;/code&gt;&lt;/li&gt;&#xA;&lt;/ol&gt;&#xA;&lt;p&gt;You can choose to search directories recursively, and if you wish to watch the files for changes, triggering a parsing/minification upon each save.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Node.js - Much more than a webserver</title>
      <link>//erikzaadi.com/2011/04/20/node-js-much-more-then-a-webserver/</link>
      <pubDate>Wed, 20 Apr 2011 00:00:00 +0000</pubDate>
      <guid>//erikzaadi.com/2011/04/20/node-js-much-more-then-a-webserver/</guid>
      <description>&lt;p&gt;I&amp;rsquo;ve started to play around with &lt;a href=&#34;http://nodejs.org&#34;&gt;Node.js&lt;/a&gt; lately, and it&amp;rsquo;s amazing.&lt;/p&gt;&#xA;&lt;p&gt;Without to much effort, I hacked up a script that parses my &lt;a href=&#34;http://lesscss.org/&#34;&gt;.less&lt;/a&gt; files to css and minifies them, furthermore, the script minifies my javascripts with &lt;a href=&#34;https://github.com/mishoo/UglifyJS&#34;&gt;uglify-js&lt;/a&gt;.&lt;/p&gt;&#xA;&lt;p&gt;The node js automagically runs when I save a .less/.js file, and notifies me via &lt;a href=&#34;http://growl.info/&#34;&gt;growl&lt;/a&gt; notifications if it&amp;rsquo;s succesful or not..&lt;/p&gt;&#xA;&lt;p&gt;The ease of setting this up, and the fact that it works flawless both on the Mac and Ubuntu blowed me away.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Install script to run asp.net mvc 3 with Razor on nginx at a OpenSuse server</title>
      <link>//erikzaadi.com/2011/03/02/installscripttorunaspdotnetmvc3withrazoronnginxataopensuseserver/</link>
      <pubDate>Wed, 02 Mar 2011 00:00:00 +0000</pubDate>
      <guid>//erikzaadi.com/2011/03/02/installscripttorunaspdotnetmvc3withrazoronnginxataopensuseserver/</guid>
      <description>&lt;p&gt;Well, the title kind of says it all ;)&lt;/p&gt;&#xA;&lt;p&gt;For the git lovers out there clone &lt;a href=&#34;https://github.com/erikzaadi/MonoRazorScripts.git&#34;&gt;https://github.com/erikzaadi/MonoRazorScripts.git&lt;/a&gt;, or simply download the zip from &lt;a href=&#34;https://github.com/erikzaadi/MonoRazorScripts/zipball/master&#34;&gt;https://github.com/erikzaadi/MonoRazorScripts/zipball/master&lt;/a&gt; and unzip it.&lt;/p&gt;&#xA;&lt;p&gt;Then run :&lt;/p&gt;&#xA;&lt;p&gt;&lt;code&gt;sudo sh ./install.sh&lt;/code&gt;&lt;/p&gt;&#xA;&lt;p&gt;And voila, a couple of minutes later, you should be able to access your server via http to get some GUID-alicios Razor driven content!&lt;/p&gt;&#xA;&lt;p&gt;&lt;img src=&#34;//erikzaadi.com/images//Image_thumb1.png&#34; alt=&#34;&#34;&gt;&lt;/p&gt;&#xA;&lt;p&gt;To deploy your application:&lt;/p&gt;&#xA;&lt;ol&gt;&#xA;&lt;li&gt;Delete the directory &lt;em&gt;&amp;quot;/srv/www/monodocs/default&amp;quot;&lt;/em&gt;&lt;/li&gt;&#xA;&lt;li&gt;Copy your application to &lt;em&gt;&amp;quot;/srv/www/monodocs/&amp;quot;&lt;/em&gt; and rename your folder name to &lt;em&gt;&amp;ldquo;default&amp;rdquo;&lt;/em&gt;&lt;/li&gt;&#xA;&lt;li&gt;Copy the file &lt;em&gt;&amp;ldquo;Default.aspx&amp;rdquo;&lt;/em&gt; into the new &lt;em&gt;&amp;ldquo;default&amp;rdquo;&lt;/em&gt; folder&lt;/li&gt;&#xA;&lt;li&gt;Copy the dll files in the folder &lt;em&gt;&amp;quot;/srv/www/monodocs/libs&amp;quot;&lt;/em&gt; into the bin folder of your application&lt;/li&gt;&#xA;&lt;li&gt;If you have the file &lt;em&gt;&amp;ldquo;Microsoft.Web.Infrastructure.dll&amp;rdquo;&lt;/em&gt; in your bin folder, delete it&lt;/li&gt;&#xA;&lt;/ol&gt;&#xA;&lt;p&gt;The source is at : &lt;a href=&#34;https://github.com/erikzaadi/MonoRazorScripts&#34;&gt;https://github.com/erikzaadi/MonoRazorScripts&lt;/a&gt;&lt;/p&gt;</description>
    </item>
    <item>
      <title>You know you are a geek when you have a site for your wedding, and even more when there are easter eggs at the site as well.</title>
      <link>//erikzaadi.com/2011/02/08/youknowyouareageekwhenyouhaveasiteforyourweddingandevenmorewhenthereisaneastereggatthesiteaswell/</link>
      <pubDate>Tue, 08 Feb 2011 00:00:00 +0000</pubDate>
      <guid>//erikzaadi.com/2011/02/08/youknowyouareageekwhenyouhaveasiteforyourweddingandevenmorewhenthereisaneastereggatthesiteaswell/</guid>
      <description>&lt;p&gt;Whoa that was a long title.&lt;/p&gt;&#xA;&lt;p&gt;I&amp;rsquo;ve been rather busy lately with preparations for our wedding, you know, find a location, get a suit, build a website for the wedding, lose the beer belly and such.&lt;/p&gt;&#xA;&lt;p&gt;Oh yea, you caught me, I couldn&amp;rsquo;t resist it.&lt;/p&gt;&#xA;&lt;p&gt;I actually did a full scale cross media campaign for the wedding, with the initial excuse that it would save me and my bride to be some time and effort with counting and verifying the RSVPs of our invitees.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Google Url Shortener Api for .net</title>
      <link>//erikzaadi.com/2011/02/06/googleurlshortenerapifordotnet/</link>
      <pubDate>Sun, 06 Feb 2011 00:00:00 +0000</pubDate>
      <guid>//erikzaadi.com/2011/02/06/googleurlshortenerapifordotnet/</guid>
      <description>&lt;p&gt;I read a short and concise &lt;a href=&#34;http://davidwalsh.name/google-url&#34;&gt;post&lt;/a&gt; by &lt;a href=&#34;http://davidwalsh.name&#34;&gt;David Walsh&lt;/a&gt;, demonstrating a simple php class for using the new Google Url shortener Api.&lt;/p&gt;&#xA;&lt;p&gt;I played around with the code a bit in C#, and voila! A .net version (with some additions).&lt;/p&gt;&#xA;&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;&#xA;&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;&#xA;&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt; 1&#xA;&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 2&#xA;&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 3&#xA;&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 4&#xA;&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 5&#xA;&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 6&#xA;&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 7&#xA;&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 8&#xA;&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 9&#xA;&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;10&#xA;&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;11&#xA;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&#xA;&lt;td class=&#34;lntd&#34;&gt;&#xA;&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-csharp&#34; data-lang=&#34;csharp&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;kt&#34;&gt;var&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;googleShorter&lt;/span&gt; &lt;span class=&#34;p&#34;&gt;=&lt;/span&gt; &lt;span class=&#34;k&#34;&gt;new&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;GoogleUrlApi&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;s&#34;&gt;&amp;#34;PUT_YOUR_LONG_KEY_HERE&amp;#34;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;);&lt;/span&gt;  &#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;  &#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;kt&#34;&gt;var&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;urlToPlayWith&lt;/span&gt; &lt;span class=&#34;p&#34;&gt;=&lt;/span&gt; &lt;span class=&#34;s&#34;&gt;&amp;#34;http://www.google.com&amp;#34;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;;&lt;/span&gt;  &#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;  &#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;kt&#34;&gt;var&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;shortUrl&lt;/span&gt; &lt;span class=&#34;p&#34;&gt;=&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;googleShorter&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;Shorten&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;urlToPlayWith&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;);&lt;/span&gt;  &#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;  &#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;kt&#34;&gt;var&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;longUrl&lt;/span&gt; &lt;span class=&#34;p&#34;&gt;=&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;googleShorter&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;Expand&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;shortUrl&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;);&lt;/span&gt;  &#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;  &#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;kt&#34;&gt;var&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;longUrlDetails&lt;/span&gt; &lt;span class=&#34;p&#34;&gt;=&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;googleShorter&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;ExpandFull&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;shortUrl&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;);&lt;/span&gt;  &#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;  &#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;kt&#34;&gt;var&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;analytics&lt;/span&gt; &lt;span class=&#34;p&#34;&gt;=&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;googleShorter&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;GetAnalytics&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;shortUrl&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;);&lt;/span&gt;  &#xA;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&#xA;&lt;/div&gt;&#xA;&lt;/div&gt;&lt;p&gt;Besides just creating short urls and expanding them, you can also get Analytics information about the shortened urls.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Customer Satisfaction</title>
      <link>//erikzaadi.com/2010/12/28/customersatisfaction/</link>
      <pubDate>Tue, 28 Dec 2010 00:00:00 +0000</pubDate>
      <guid>//erikzaadi.com/2010/12/28/customersatisfaction/</guid>
      <description>&lt;p&gt;Yesterday I delivered a small site to a customer.&lt;/p&gt;&#xA;&lt;p&gt;The site was not to fancy, simple and strait forward in a &amp;ldquo;get the job done&amp;rdquo; kind of way.&lt;/p&gt;&#xA;&lt;p&gt;When I showed it to the customer he literally lit up, and was really enthusiastic about the quality of the site.&lt;/p&gt;&#xA;&lt;p&gt;It was a pleasant surprise, as I didn&amp;rsquo;t really have such high thoughts of the design of the site that I did.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Readability VS Uber Cool One Liners VS Performance</title>
      <link>//erikzaadi.com/2010/12/09/readabilityvsubercoolonelinersvsperformance/</link>
      <pubDate>Thu, 09 Dec 2010 00:00:00 +0000</pubDate>
      <guid>//erikzaadi.com/2010/12/09/readabilityvsubercoolonelinersvsperformance/</guid>
      <description>&lt;h4 id=&#34;given-that-you-need-to-do-a-md5-hash-in-c-which-approach-would-you-take&#34;&gt;Given that you need to do a MD5 hash in C#, which approach would you take?&lt;/h4&gt;&#xA;&lt;h5 id=&#34;a-not-so-readable-but-cool-one-liner&#34;&gt;A not so readable but cool one liner:&lt;/h5&gt;&#xA;&lt;p&gt;Or&lt;/p&gt;&#xA;&lt;h5 id=&#34;a-more-readable-and-performance-wise-approach&#34;&gt;A more readable and performance wise approach?&lt;/h5&gt;&#xA;&lt;p&gt;&lt;strong&gt;[Update:]&lt;/strong&gt; Alex proposed the following, verbose, but as an extension:&lt;/p&gt;&#xA;&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;&#xA;&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;&#xA;&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1&#xA;&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;2&#xA;&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;3&#xA;&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;4&#xA;&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;5&#xA;&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;6&#xA;&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;7&#xA;&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;8&#xA;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&#xA;&lt;td class=&#34;lntd&#34;&gt;&#xA;&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-csharp&#34; data-lang=&#34;csharp&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;kd&#34;&gt;public&lt;/span&gt; &lt;span class=&#34;kd&#34;&gt;static&lt;/span&gt; &lt;span class=&#34;kt&#34;&gt;string&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;CalculateMd5Hash&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;k&#34;&gt;this&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;String&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;input&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;)&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;p&#34;&gt;{&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;    &lt;span class=&#34;k&#34;&gt;return&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;System&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;Security&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;Cryptography&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;MD5&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;        &lt;span class=&#34;p&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;Create&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;()&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;        &lt;span class=&#34;p&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;ComputeHash&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;System&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;Text&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;Encoding&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;Unicode&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;GetBytes&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;input&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;))&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;        &lt;span class=&#34;p&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;Aggregate&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;k&#34;&gt;new&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;StringBuilder&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;(),&lt;/span&gt; &lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;a&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;b&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;)&lt;/span&gt; &lt;span class=&#34;p&#34;&gt;=&amp;gt;&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;a&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;Append&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;b&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;ToString&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;s&#34;&gt;&amp;#34;X2&amp;#34;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;)),&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;a&lt;/span&gt; &lt;span class=&#34;p&#34;&gt;=&amp;gt;&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;a&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;)&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;        &lt;span class=&#34;p&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;ToString&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;();&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;p&#34;&gt;}&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&#xA;&lt;/div&gt;&#xA;&lt;/div&gt;&lt;p&gt;What do you think?&lt;/p&gt;</description>
    </item>
    <item>
      <title>Dynamic Pitfalls</title>
      <link>//erikzaadi.com/2010/11/28/dynamic-pitfalls/</link>
      <pubDate>Sun, 28 Nov 2010 00:00:00 +0000</pubDate>
      <guid>//erikzaadi.com/2010/11/28/dynamic-pitfalls/</guid>
      <description>&lt;p&gt;I&amp;rsquo;m working on an asp.net mvc 3 powered site (for my wedding actually!), where I decided to try out some new technologies I&amp;rsquo;ve been wanting to play with for a while.&lt;/p&gt;&#xA;&lt;p&gt;The first technology is the combination of &lt;a href=&#34;http://msdn.microsoft.com/en-us/data/ef.aspx&#34;&gt;EF 4.0&lt;/a&gt; (AKA Entity Framework), and the new &lt;a href=&#34;http://blogs.msdn.com/b/sqlservercompact/archive/2010/07/07/introducing-sql-server-compact-4-0-the-next-gen-embedded-database-from-microsoft.aspx&#34;&gt;SQL Server Compact 4.0&lt;/a&gt;, which is working nice so far, and hopefully I&amp;rsquo;ll elaborate more in the matter in a future post.&lt;/p&gt;&#xA;&lt;p&gt;The most important thing I wanted to test though was asp.net mvc 3 (RC), running on .NET 4, especially the usages of the &lt;code&gt;dynamic&lt;/code&gt; keyword.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Let’s open source time</title>
      <link>//erikzaadi.com/2010/09/08/letsopensourcetime/</link>
      <pubDate>Wed, 08 Sep 2010 00:00:00 +0000</pubDate>
      <guid>//erikzaadi.com/2010/09/08/letsopensourcetime/</guid>
      <description>&lt;p&gt;Lately I haven&amp;rsquo;t been able to find myself as much time to work on open source as I used to in the past.&lt;/p&gt;&#xA;&lt;p&gt;It annoys the hell out of me, but sometimes work + private life = less time to to hack and contribute..&lt;/p&gt;&#xA;&lt;p&gt;One does have to make a living of course, but I&amp;rsquo;d love to be able to do is to contribute back to open source from within a working environment that truly appreciates open source.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Startup Weekend, Android, Vim, Razor and a bit of Chirpy</title>
      <link>//erikzaadi.com/2010/08/01/startupweekendandroidvimrazorandabitofchirpy/</link>
      <pubDate>Sun, 01 Aug 2010 00:00:00 +0000</pubDate>
      <guid>//erikzaadi.com/2010/08/01/startupweekendandroidvimrazorandabitofchirpy/</guid>
      <description>&lt;p&gt;Whoa, it&amp;rsquo;s been a while since I&amp;rsquo;ve written.&lt;/p&gt;&#xA;&lt;p&gt;A lot of stuff has been going on lately, so this post will be a quick summary..&lt;/p&gt;&#xA;&lt;ol&gt;&#xA;&lt;li&gt;&#xA;&lt;p&gt;Startup Weekend - Tel Aviv&#xA;The second startup weekend in Israel took place in the Peres Peace House, in Yaffo, where Palestinian and Israeli joined forces for a lovely three day hack fest (&lt;a href=&#34;http://tel-aviv.startupweekend.org/&#34;&gt;http://tel-aviv.startupweekend.org/&lt;/a&gt;)&lt;/p&gt;&#xA;&lt;p&gt;I joined a brilliant idea called MovieOke (Karaoke with movies), and really enjoyed working on the project during the startup weekend..&lt;/p&gt;</description>
    </item>
    <item>
      <title>Java Java for a .Niet dev</title>
      <link>//erikzaadi.com/2010/07/04/javajavaforanietdev/</link>
      <pubDate>Sun, 04 Jul 2010 00:00:00 +0000</pubDate>
      <guid>//erikzaadi.com/2010/07/04/javajavaforanietdev/</guid>
      <description>&lt;p&gt;I&amp;rsquo;ve been hacking on a small Android application lately, which exposed me to Java.&lt;/p&gt;&#xA;&lt;p&gt;I&amp;rsquo;ve never really written an entire application in Java before, and the experience is rather interesting.&lt;/p&gt;&#xA;&lt;p&gt;I mainly write in C# for server side code, and although I like to learn other languages, C# still remains my favorite language.&lt;/p&gt;&#xA;&lt;p&gt;Java for me was very similar to C# (and ActionScript too, being yet another ECMA&amp;rsquo;ish language), and writing it was not as annoying as writing c++.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Using Blueprint CSS framework – saving http requests</title>
      <link>//erikzaadi.com/2010/06/24/usingblueprintcssframeworksavinghttprequests/</link>
      <pubDate>Thu, 24 Jun 2010 00:00:00 +0000</pubDate>
      <guid>//erikzaadi.com/2010/06/24/usingblueprintcssframeworksavinghttprequests/</guid>
      <description>&lt;p&gt;I love the &lt;a href=&#34;http://www.blueprintcss.org/&#34;&gt;blueprint&lt;/a&gt; CSS framework, I&amp;rsquo;ve been using it for a while, and it&amp;rsquo;s a very useful time saver.&lt;/p&gt;&#xA;&lt;p&gt;The only thing that bugs me about it&amp;rsquo;s usage is the nagging I keep getting from &lt;a href=&#34;http://developer.yahoo.com/yslow/&#34;&gt;YSlow&lt;/a&gt; and &lt;a href=&#34;http://code.google.com/speed/page-speed/&#34;&gt;PageSpeed&lt;/a&gt; about reducing the amount of http request in the page.&lt;/p&gt;&#xA;&lt;p&gt;Since &lt;a href=&#34;http://www.blueprintcss.org/&#34;&gt;blueprint&lt;/a&gt; CSS uses at least two http requests (one for screen media, the other for print), and as much as four (IE version and show grid image), I thought of a small way to enhance this a bit.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Creating a theme for AtomSite, a quick walkthrough</title>
      <link>//erikzaadi.com/2010/06/20/creatingathemeforatomsiteaquickwalkthrough/</link>
      <pubDate>Sun, 20 Jun 2010 00:00:00 +0000</pubDate>
      <guid>//erikzaadi.com/2010/06/20/creatingathemeforatomsiteaquickwalkthrough/</guid>
      <description>&lt;p&gt;&lt;strong&gt;Prelude&lt;/strong&gt; : Reading through&lt;a href=&#34;http://atomsite.net/info/Themes.xhtml&#34;&gt;&lt;em&gt;http://atomsite.net/info/Themes.xhtml&lt;/em&gt;&lt;/a&gt; might help if anything here is not understood.&lt;/p&gt;&#xA;&lt;p&gt;Small disclaimer: I&amp;rsquo;m under no circumstances a good designer, hence the &amp;ldquo;estetics&amp;rdquo; of the sample..&lt;/p&gt;&#xA;&lt;p&gt;It might be needless to say, but I do recommend having a local copy of &lt;a href=&#34;http://atomsite.net&#34;&gt;AtomSite&lt;/a&gt; available to test the theme until it&amp;rsquo;s mature..&lt;/p&gt;&#xA;&lt;h3 id=&#34;getting-started&#34;&gt;Getting Started:&lt;/h3&gt;&#xA;&lt;p&gt;Let&amp;rsquo;s say we want to create a template called &lt;em&gt;&amp;ldquo;Sample&amp;rdquo;&lt;/em&gt;:&lt;/p&gt;&#xA;&lt;ol&gt;&#xA;&lt;li&gt;&#xA;&lt;p&gt;Create the folder &lt;em&gt;&amp;ldquo;sample&amp;rdquo;&lt;/em&gt; in themes&lt;/p&gt;&#xA;&lt;/li&gt;&#xA;&lt;li&gt;&#xA;&lt;p&gt;Copy the &lt;em&gt;&amp;ldquo;settings.xml&amp;rdquo;&lt;/em&gt; from &lt;em&gt;&amp;ldquo;themes/settings/settings.xml&amp;rdquo;&lt;/em&gt; and rename it to &lt;em&gt;&amp;ldquo;sample.xml&amp;rdquo;&lt;/em&gt;&lt;/p&gt;</description>
    </item>
    <item>
      <title>Moving from Webhost4life to Arvixe</title>
      <link>//erikzaadi.com/2010/05/23/movingfromwebhost4lifetoarvixe/</link>
      <pubDate>Sun, 23 May 2010 00:00:00 +0000</pubDate>
      <guid>//erikzaadi.com/2010/05/23/movingfromwebhost4lifetoarvixe/</guid>
      <description>&lt;p&gt;Webhost4life was my first hosting provider, I joined their service at November 2009.&lt;/p&gt;&#xA;&lt;p&gt;Although their support was… not very technical, and REALLY slow on response time, I was able to solve most problems I had by myself.&lt;/p&gt;&#xA;&lt;p&gt;In the middle of January, they announced that their moving to a new and &lt;em&gt;improved&lt;/em&gt; platform, and they even had this fancy &amp;ldquo;transition kiosk&amp;rdquo; that was suppose to find and resolve all potential migration problems automatically.&lt;/p&gt;</description>
    </item>
    <item>
      <title>AtomSite Themes site</title>
      <link>//erikzaadi.com/2010/05/16/atomsitethemessite/</link>
      <pubDate>Sun, 16 May 2010 00:00:00 +0000</pubDate>
      <guid>//erikzaadi.com/2010/05/16/atomsitethemessite/</guid>
      <description>&lt;p&gt;I&amp;rsquo;ve put together a small site that allows you to preview the custom &lt;a href=&#34;http://atomsite.net&#34;&gt;AtomSite&lt;/a&gt; themes I&amp;rsquo;ve done.&lt;/p&gt;&#xA;&lt;p&gt;Furthermore, you can rate, download and comment the themes at the site, would love some feedback if you liked any theme.&lt;/p&gt;&#xA;&lt;p&gt;&lt;a href=&#34;http://atomsitethemes.erikzaadi.com&#34;&gt;http://atomsitethemes.erikzaadi.com&lt;/a&gt;&lt;/p&gt;&#xA;&lt;p&gt;You&amp;rsquo;ll notice a gray thing on the left :&lt;/p&gt;&#xA;&lt;p&gt;&lt;img src=&#34;//erikzaadi.com/images/ThemeSwitcherSmall5.png&#34; alt=&#34;&#34;&gt;&lt;/p&gt;&#xA;&lt;p&gt;This is the &lt;em&gt;compact&lt;/em&gt; mode of the theme switcher. If you click on the &lt;em&gt;show&lt;/em&gt; button you&amp;rsquo;ll see:&lt;/p&gt;&#xA;&lt;p&gt;&lt;img src=&#34;//erikzaadi.com/images/ThemeSwitcher2.png&#34; alt=&#34;&#34;&gt;&lt;/p&gt;&#xA;&lt;p&gt;This is where you can choose a theme to preview.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Windows Live Writer Workaround For AtomSite Plugin 1.4</title>
      <link>//erikzaadi.com/2010/05/16/windowslivewriterworkaroundforatomsiteplugin14/</link>
      <pubDate>Sun, 16 May 2010 00:00:00 +0000</pubDate>
      <guid>//erikzaadi.com/2010/05/16/windowslivewriterworkaroundforatomsiteplugin14/</guid>
      <description>&lt;p&gt;[This post is a follow up to &lt;a href=&#34;http://erikzaadi.com/blog/2010/04/16/WindowsLiveWriterWorkaroundForAtomSite13.xhtml&#34;&gt;the workaround for AtomSite 1.3&lt;/a&gt;]&lt;/p&gt;&#xA;&lt;p&gt;I&amp;rsquo;ve updated the Windows Live Workaround to the new release of &lt;a href=&#34;http://atomsite.net&#34;&gt;AtomSite&lt;/a&gt; (&lt;a href=&#34;http://atomsite.net/info/Download.xhtml&#34;&gt;1.4&lt;/a&gt;).&lt;/p&gt;&#xA;&lt;p&gt;Thanks to some hierarchical changes made in the new release, deploying the workaround is much easier.&lt;/p&gt;&#xA;&lt;p&gt;The workaround is built as a plug-in, so you can apply it to any &lt;a href=&#34;http://atomsite.net&#34;&gt;AtomSite&lt;/a&gt; deployment without the need for compiling source code.&lt;/p&gt;&#xA;&lt;p&gt;Simply unzip the binaries zip file below to your &lt;a href=&#34;http://atomsite.net&#34;&gt;AtomSite&lt;/a&gt; root, then access &lt;code&gt;http://yourblogAddress/WLWWorkaround&lt;/code&gt;&lt;/p&gt;</description>
    </item>
    <item>
      <title>Windows Live Writer Workaround for AtomSite 1.3</title>
      <link>//erikzaadi.com/2010/04/16/windowslivewriterworkaroundforatomsite13/</link>
      <pubDate>Fri, 16 Apr 2010 00:00:00 +0000</pubDate>
      <guid>//erikzaadi.com/2010/04/16/windowslivewriterworkaroundforatomsite13/</guid>
      <description>&lt;p&gt;[&lt;strong&gt;UPDATE&lt;/strong&gt; - &lt;em&gt;Available for version 1.4 as well, see post&lt;/em&gt; &lt;a href=&#34;http://erikzaadi.com/blog/2010/05/16/WindowsLiveWriterWorkaroundForAtomSitePlugin14.xhtml&#34;&gt;here&lt;/a&gt;]&lt;/p&gt;&#xA;&lt;p&gt;In continuous to an &lt;a href=&#34;http://erikzaadi.com/blog/2009/12/06/BlogMigrationPart4ConnectingWindowsLiveWriterToTheAtomSiteBlog.xhtml&#34;&gt;old series&lt;/a&gt; about migrating from Blogger to &lt;a href=&#34;http://atomsite.net&#34;&gt;AtomSite&lt;/a&gt;, I came up with a workaround/solution that allows you to connect Windows Liver Writer to the &lt;a href=&#34;http://atomsite.net&#34;&gt;AtomSite&lt;/a&gt; blog.&lt;/p&gt;&#xA;&lt;p&gt;I&amp;rsquo;ve been asked a couple of times to supply the solution, so I thought I&amp;rsquo;d publish it here for more easy access:&lt;/p&gt;&#xA;&lt;p&gt;&lt;a href=&#34;http://demos.erikzaadi.com/atomsite/1.3/WLWWorkaround.zip&#34;&gt;WLWWorkaround.zip&lt;/a&gt;&lt;/p&gt;&#xA;&lt;p&gt;Read the included &lt;code&gt;README&lt;/code&gt; file for specific instructions..&lt;/p&gt;&#xA;&lt;p&gt;If you want an easier access to the workaround than clicking in the address mentioned in the &lt;code&gt;README&lt;/code&gt;, you can add the following to your &lt;code&gt;service.config&lt;/code&gt;, I added it `AdminSettingsEntireSite&amp;quot;=&amp;gt;&amp;ldquo;settingsRight&amp;rdquo;&lt;/p&gt;</description>
    </item>
    <item>
      <title>Host Automatic updatable Air applications on Github</title>
      <link>//erikzaadi.com/2010/04/08/hostautomaticupdatableairapplicationsongithub/</link>
      <pubDate>Thu, 08 Apr 2010 00:00:00 +0000</pubDate>
      <guid>//erikzaadi.com/2010/04/08/hostautomaticupdatableairapplicationsongithub/</guid>
      <description>&lt;p&gt;For the impatient, check out the &lt;a href=&#34;http://github.com/downloads/erikzaadi/AirOnGithub/AirOnGithub-v1.0.air&#34;&gt;demo&lt;/a&gt; | &lt;a href=&#34;http://github.com/erikzaadi/AirOnGithub&#34;&gt;source&lt;/a&gt;..&lt;/p&gt;&#xA;&lt;h5 id=&#34;intro&#34;&gt;Intro&lt;/h5&gt;&#xA;&lt;p&gt;Creating desktop applications in &lt;a href=&#34;http://www.adobe.com/products/air/&#34;&gt;Air&lt;/a&gt; with html and JavaScript is a joy for any web oriented developer.&#xA;You get the same environment to work in, &lt;a href=&#34;http://jquery.com&#34;&gt;jQuery&lt;/a&gt; included, and the ability to create desktop based applications fast.&#xA;The only thing problem you encounter is the switch in concept of updating the desktop application with a new version.&#xA;It’s no longer as easy as updating the site, you need to get the user to download the update..&lt;/p&gt;</description>
    </item>
    <item>
      <title>jQAPI Air Application</title>
      <link>//erikzaadi.com/2010/03/20/jqapiairapplication/</link>
      <pubDate>Sat, 20 Mar 2010 00:00:00 +0000</pubDate>
      <guid>//erikzaadi.com/2010/03/20/jqapiairapplication/</guid>
      <description>&lt;p&gt;For the last year and a half I&amp;rsquo;ve been heavily exposed to a lot of open source software.&lt;/p&gt;&#xA;&lt;p&gt;It started out with a small conversation mentioning &lt;a href=&#34;http://jquery.com&#34;&gt;jQuery&lt;/a&gt; (Thanks &lt;a href=&#34;http://blog.getintheloop.eu/&#34;&gt;Tim&lt;/a&gt;!), and since then I&amp;rsquo;ve been amazed by the open source community.&lt;/p&gt;&#xA;&lt;p&gt;The great thing about open source is that you can pay back to the people that created software that you like (Yes, the price is also nice, of course).&lt;/p&gt;&#xA;&lt;p&gt;I&amp;rsquo;ve been using &lt;a href=&#34;http://www.jqapi.com/&#34;&gt;jQAPI&lt;/a&gt; by &lt;a href=&#34;http://mustardamus.com&#34;&gt;Sebastian Senf&lt;/a&gt; (&lt;a href=&#34;http://twitter.com/mustardamus&#34;&gt;@mustardamus&lt;/a&gt;), which is an alternative (and in my personal opinion better) documentation for the jQuery API framework.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Compress Javascript with Google Closure Compiler in Visual Studio (with jQuery support)</title>
      <link>//erikzaadi.com/2010/03/05/compressjavascriptwithgoogleclosurecompilerinvisualstudiowithjquerysupport/</link>
      <pubDate>Fri, 05 Mar 2010 00:00:00 +0000</pubDate>
      <guid>//erikzaadi.com/2010/03/05/compressjavascriptwithgoogleclosurecompilerinvisualstudiowithjquerysupport/</guid>
      <description>&lt;p&gt;&lt;a href=&#34;http://code.google.com/closure/compiler/docs/overview.html&#34;&gt;Google Closure Compiler&lt;/a&gt; is an amazing tool.&#xA;Besides having the best compression rate (and being the official choice of &lt;a href=&#34;http://jquery.com&#34;&gt;jQuery&lt;/a&gt;), it really alters the way you write javascript.&lt;/p&gt;&#xA;&lt;p&gt;When using the &lt;a href=&#34;http://code.google.com/closure/compiler/docs/api-tutorial3.html&#34;&gt;Advanced Optimization&lt;/a&gt; option, it forces you to write more concise code, exposing only what really matters to the global namespace.&lt;/p&gt;&#xA;&lt;p&gt;There&amp;rsquo;s a lot more the be said in that matter, but that&amp;rsquo;s material for a future post about how &lt;a href=&#34;http://code.google.com/closure/compiler/docs/overview.html&#34;&gt;Google Closure Compiler&lt;/a&gt; changed the way I write &lt;a href=&#34;http://jquery.com&#34;&gt;jQuery&lt;/a&gt; plugins.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Update - jQuery Print Element version 1.1 Released</title>
      <link>//erikzaadi.com/2010/02/15/update-jqueryprintelementversion11released/</link>
      <pubDate>Mon, 15 Feb 2010 00:00:00 +0000</pubDate>
      <guid>//erikzaadi.com/2010/02/15/update-jqueryprintelementversion11released/</guid>
      <description>&lt;h3 id=&#34;changelog&#34;&gt;Changelog:&lt;/h3&gt;&#xA;&lt;ol&gt;&#xA;&lt;li&gt;&#xA;&lt;p&gt;Fixed a bug (calculating the base href for embedding css when not using port 80, see &lt;a href=&#34;http://github.com/erikzaadi/jQueryPlugins/issues/closed#issue/6&#34;&gt;issue&lt;/a&gt;).&lt;/p&gt;&#xA;&lt;/li&gt;&#xA;&lt;li&gt;&#xA;&lt;p&gt;Added a small feature, the entire element is cloned, ensuring that all attributes are added to the element in the generated print page (see &lt;a href=&#34;http://github.com/erikzaadi/jQueryPlugins/issues/closed#issue/5&#34;&gt;feature request&lt;/a&gt; ).&lt;/p&gt;&#xA;&lt;/li&gt;&#xA;&lt;/ol&gt;&#xA;&lt;p&gt;Links:&lt;/p&gt;&#xA;&lt;p&gt;&lt;a href=&#34;http://projects.erikzaadi.com/jQueryPlugins/scripts/jquery.printElement.js&#34;&gt;Download&lt;/a&gt; | &lt;a href=&#34;http://projects.erikzaadi.com/jQueryPlugins/scripts/jquery.printElement.min.js&#34;&gt;Download (Minified)&lt;/a&gt; | &lt;a href=&#34;http://projects.erikzaadi.com/jQueryPlugins/jQuery.printElement/&#34;&gt;Documentation&lt;/a&gt; | &lt;a href=&#34;http://github.com/erikzaadi/jQueryPlugins/issues/labels/printElement&#34;&gt;Issues (Report a bug)&lt;/a&gt; | &lt;a href=&#34;http://plugins.jquery.com/project/printElement&#34;&gt;Official jQuery Plugin Page&lt;/a&gt;&lt;/p&gt;&#xA;&lt;p&gt;By the way, all of my jQuery plugins have been tested with&#xA;jQuery 1.4.1..&lt;/p&gt;</description>
    </item>
    <item>
      <title>jQuery 1.4.1 vsdoc (Visual Studio 2008 IntelliSense)</title>
      <link>//erikzaadi.com/2010/02/07/jquery141vsdocvisualstudio2008intellisense/</link>
      <pubDate>Sun, 07 Feb 2010 00:00:00 +0000</pubDate>
      <guid>//erikzaadi.com/2010/02/07/jquery141vsdocvisualstudio2008intellisense/</guid>
      <description>&lt;p&gt; &#xA;For those of you who can&amp;rsquo;t install asp.net mvc 2 rc2, here are the vsdoc files for jQuery 1.4.1 :&lt;/p&gt;&#xA;&lt;p&gt; &#xA;&lt;a href=&#34;http://demos.erikzaadi.com/js/jquery-1.4.1-vsdoc.js&#34;&gt;http://demos.erikzaadi.com/js/jquery-1.4.1-vsdoc.js&lt;/a&gt;&lt;/p&gt;&#xA;&lt;p&gt;&lt;a href=&#34;http://demos.erikzaadi.com/js/jquery-1.4.1.min-vsdoc.js&#34;&gt;http://demos.erikzaadi.com/js/jquery-1.4.1.min-vsdoc.js&lt;/a&gt;&lt;/p&gt;&#xA;&lt;p&gt;The release also includes the vsdoc files for the jQuery validate plugin:&lt;/p&gt;&#xA;&lt;p&gt;&lt;a href=&#34;http://demos.erikzaadi.com/js/jquery.validate-vsdoc.js&#34;&gt;http://demos.erikzaadi.com/js/jquery.validate-vsdoc.js&lt;/a&gt;&lt;/p&gt;&#xA;&lt;p&gt;&lt;a href=&#34;http://demos.erikzaadi.com/js/jquery-1.4.1.min-vsdoc.js&#34;&gt;http://demos.erikzaadi.com/js/jquery-1.4.1.min-vsdoc.js&lt;/a&gt;&lt;/p&gt;&#xA;&lt;p&gt;Enjoy,&lt;/p&gt;&#xA;&lt;p&gt;Erik&lt;/p&gt;</description>
    </item>
    <item>
      <title>Working with Github from within a company firewall</title>
      <link>//erikzaadi.com/2010/01/24/workingwithgithubfromwithinacompanyfirewall/</link>
      <pubDate>Sun, 24 Jan 2010 00:00:00 +0000</pubDate>
      <guid>//erikzaadi.com/2010/01/24/workingwithgithubfromwithinacompanyfirewall/</guid>
      <description>&lt;p&gt;Most companies with somewhat restricted firewall rules typically enables only web traffic using port 80 or 443 (for SSL).&lt;/p&gt;&#xA;&lt;p&gt;Git is communicating with Github using port 22 (or the default 9418), which in my own case was blocked after a while.&lt;/p&gt;&#xA;&lt;p&gt;To keep &lt;em&gt;&amp;ldquo;gittin&amp;rdquo;&lt;/em&gt; from work there are some options.&lt;/p&gt;&#xA;&lt;ol&gt;&#xA;&lt;li&gt;&#xA;&lt;p&gt;Work with pure http access (port 80) &lt;code&gt;git clone http://github.com/username/repository.git&lt;/code&gt;&#xA;This will only give you read only access and is rather slow&lt;/p&gt;</description>
    </item>
    <item>
      <title>Using Mvc user controls from another controller</title>
      <link>//erikzaadi.com/2010/01/09/usingmvcusercontrolsfromanothercontroller/</link>
      <pubDate>Sat, 09 Jan 2010 00:00:00 +0000</pubDate>
      <guid>//erikzaadi.com/2010/01/09/usingmvcusercontrolsfromanothercontroller/</guid>
      <description>&lt;p&gt;I needed to use a user control from a different controllers folder in a view.&lt;/p&gt;&#xA;&lt;p&gt;Should be easy I thought, there’s probably an overload for the Html.RenderPartial that with the controller name.&lt;/p&gt;&#xA;&lt;p&gt;Unfortunately, that’s not the case.&lt;/p&gt;&#xA;&lt;p&gt;If you look at the solution layout below:&lt;/p&gt;&#xA;&lt;p&gt;&lt;img src=&#34;//erikzaadi.com/images/SolutionLayout11.png&#34; alt=&#34;&#34;&gt;&lt;/p&gt;&#xA;&lt;p&gt;I needed to user the &lt;code&gt;OtherControl.ascx&lt;/code&gt; from the Home controllers views.&lt;/p&gt;&#xA;&lt;p&gt;Passing only the user control name to the &lt;code&gt;Html.RenderPartial&lt;/code&gt; won’t work, and you’ll end up with an error like this:&lt;/p&gt;</description>
    </item>
    <item>
      <title>The beauty of the desert</title>
      <link>//erikzaadi.com/2009/12/26/thebeautyofthedesert/</link>
      <pubDate>Sat, 26 Dec 2009 00:00:00 +0000</pubDate>
      <guid>//erikzaadi.com/2009/12/26/thebeautyofthedesert/</guid>
      <description>&lt;p&gt;A bit off topic perhaps, but I have to admit, I love the&#xA;desert..&lt;/p&gt;&#xA;&lt;p&gt;&lt;img src=&#34;//erikzaadi.com/images/231220090032.jpeg&#34; alt=&#34;&#34;&gt;&lt;/p&gt;&#xA;&lt;p&gt;Cheers,&lt;/p&gt;&#xA;&lt;p&gt;Erik&lt;/p&gt;</description>
    </item>
    <item>
      <title>Asp.Net MVC Exception Handling with jQuery</title>
      <link>//erikzaadi.com/2009/12/22/aspdotnetmvcexceptionhandlingwithjquery/</link>
      <pubDate>Tue, 22 Dec 2009 00:00:00 +0000</pubDate>
      <guid>//erikzaadi.com/2009/12/22/aspdotnetmvcexceptionhandlingwithjquery/</guid>
      <description>&lt;p&gt;I stumbled upon this&#xA;excellent post by &lt;a href=&#34;http://2leggedspider.wordpress.com/&#34;&gt;Sumit&lt;/a&gt; : &lt;a href=&#34;http://2leggedspider.wordpress.com/2009/12/22/handling-exceptions-using-jquery-and-asp-net-mvc/&#34;&gt;http://2leggedspider.wordpress.com/2009/12/22/handling-exceptions-using-jquery-and-asp-net-mvc/&lt;/a&gt;&lt;/p&gt;&#xA;&lt;p&gt;I thought the idea was great, but the fact that you need to parse it as JSON bothered me.&lt;/p&gt;&#xA;&lt;p&gt;Since the information needed is only the status code, stack trace and error message, it seemed more appropriate for me to use the existing http response parts that are designed to pass those values.&lt;/p&gt;&#xA;&lt;p&gt;For the impatient:&lt;/p&gt;&#xA;&lt;p&gt;&lt;a href=&#34;http://demos.erikzaadi.com/ErrorsForAjax/&#34;&gt;Demo&lt;/a&gt; | &lt;a href=&#34;http://demos.erikzaadi.com/ErrorsForAjax/Content/Source.zip&#34;&gt;Source&lt;/a&gt;&lt;/p&gt;&#xA;&lt;h3 id=&#34;update-altered-the-code-with-neal-and-colins-feedback&#34;&gt;[Update] Altered the code with &lt;a href=&#34;http://randomcode.net.nz/&#34;&gt;@Neal&lt;/a&gt;, and &lt;a href=&#34;http://colinbowern.com/&#34;&gt;@Colin&lt;/a&gt;&amp;rsquo;s feedback..&lt;/h3&gt;&#xA;&lt;p&gt;I created a filter that inherits the default &lt;code&gt;[HandleError]&lt;/code&gt; Attribute.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Blog Migration – Part – 4 – Connecting Windows Live Writer to the AtomSite blog</title>
      <link>//erikzaadi.com/2009/12/06/blogmigrationpart4connectingwindowslivewritertotheatomsiteblog/</link>
      <pubDate>Sun, 06 Dec 2009 00:00:00 +0000</pubDate>
      <guid>//erikzaadi.com/2009/12/06/blogmigrationpart4connectingwindowslivewritertotheatomsiteblog/</guid>
      <description>&lt;p&gt;Previous Posts : &lt;a href=&#34;http://erikzaadi.com/blog/2009/11/17/BlogMigrationPart1SettingUp.xhtml&#34;&gt;1&lt;/a&gt; | &lt;a href=&#34;http://erikzaadi.com/blog/2009/11/17/BlogMigration-Part2-TemporaryPages.xhtml&#34;&gt;2&lt;/a&gt; | &lt;a href=&#34;http://erikzaadi.com/blog/2009/11/25/BlogMigration-Part3-ExportingFromBloggerToAtomsite.xhtml&#34;&gt;3&lt;/a&gt;&lt;/p&gt;&#xA;&lt;p&gt;This post took me a while to get together, it&amp;rsquo;s actually the first blog post I&amp;rsquo;m writing from Windows Live Writer on this blog..&lt;/p&gt;&#xA;&lt;p&gt;To be able to write and manage posts efficiently, you need to connect with a good desktop program, with offline capabilities such as preview, saving drafts etc.&lt;/p&gt;&#xA;&lt;p&gt;&lt;a href=&#34;http://get.live.com/writer/overview&#34;&gt;Windows Live Writer&lt;/a&gt; is the perfect application for me, as unfortunately I don&amp;rsquo;t get to spend much time on the Mac side of life..&lt;/p&gt;</description>
    </item>
    <item>
      <title>Blog Migration - Part 3 - Exporting Posts From Blogger To Atomsite</title>
      <link>//erikzaadi.com/2009/11/25/blogmigration-part3-exportingfrombloggertoatomsite/</link>
      <pubDate>Wed, 25 Nov 2009 00:00:00 +0000</pubDate>
      <guid>//erikzaadi.com/2009/11/25/blogmigration-part3-exportingfrombloggertoatomsite/</guid>
      <description>&lt;p&gt;Previous Parts : &lt;a href=&#34;http://erikzaadi.com/blog/2009/11/17/BlogMigrationPart1SettingUp.xhtml&#34;&gt;1&lt;/a&gt;, &lt;a href=&#34;http://erikzaadi.com/blog/2009/11/17/BlogMigration-Part2-TemporaryPages.xhtml&#34;&gt;2&lt;/a&gt;&lt;/p&gt;&#xA;&lt;p&gt;Blogger are awesome in many ways, but if there&amp;rsquo;s one feature missing, it&amp;rsquo;s a way to import/export to other blog engines.&lt;/p&gt;&#xA;&lt;p&gt;&lt;a href=&#34;http://en.wikipedia.org/wiki/BlogML&#34;&gt;BlogML&lt;/a&gt; is a standard that several other blog engines are starting to support.&lt;/p&gt;&#xA;&lt;p&gt;&lt;a href=&#34;http://atomsite.net&#34;&gt;AtomSite&lt;/a&gt; supports BlogML integration from version &lt;a href=&#34;http://atomsite.net/blog/2009/09/21/Release13.xhtml&#34;&gt;1.3&lt;/a&gt; (&lt;strong&gt;Note:&lt;/strong&gt; This is not the version shipped in the web platform installer).&lt;/p&gt;&#xA;&lt;h2 id=&#34;i-used-a-superb-tool-called-blogexporter-which-exported-all-of-my-posts-comments-and-tags-from-my-blogger-account-to-a-nice-little-xml-file&#34;&gt;I used a superb tool called &lt;a href=&#34;http://sourceforge.net/projects/blogexporter/&#34;&gt;BlogExporter&lt;/a&gt;, which exported all of my posts, comments and tags from my Blogger account to a nice little XML file.&lt;/h2&gt;&#xA;&lt;p&gt;Unfortunately, this XML file can not be imported as is to AtomSite, it needs a bit of massaging..&lt;/p&gt;</description>
    </item>
    <item>
      <title>Blog Migration - Part 2 - Temporary Pages</title>
      <link>//erikzaadi.com/2009/11/22/blogmigration-part2-temporarypages/</link>
      <pubDate>Sun, 22 Nov 2009 00:00:00 +0000</pubDate>
      <guid>//erikzaadi.com/2009/11/22/blogmigration-part2-temporarypages/</guid>
      <description>&lt;p&gt;Previously : &lt;a href=&#34;http://erikzaadi.com/blog/2009/11/17/BlogMigrationPart1SettingUp.xhtml&#34;&gt;Part 1 - Setting up&lt;/a&gt;&lt;/p&gt;&#xA;&lt;p&gt;After getting my self my little virtual corner on the webospere,  it was time to get some content up before getting all the final sites up.&lt;/p&gt;&#xA;&lt;h3 id=&#34;steps&#34;&gt;Steps:&lt;/h3&gt;&#xA;&lt;ol&gt;&#xA;&lt;li&gt;&amp;ldquo;No 404 for me&amp;rdquo;&lt;/li&gt;&#xA;&lt;/ol&gt;&#xA;&lt;pre&gt;&lt;code&gt;A small &amp;quot;Under construction&amp;quot; [page](http://demos.erikzaadi.com/misc/firstRoot/) ,with a typical 90&#39;s under construction gif look&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;&lt;ol&gt;&#xA;&lt;li&gt;Linking my existing (sub)sites: I added two CNAME records:&lt;/li&gt;&#xA;&lt;/ol&gt;&#xA;&lt;pre&gt;&lt;code&gt;Blogger Account  : http://blogger.erikzaadi.com =&amp;gt;&#xA;http://erikzaadi.blogspot.com&#xA;&#xA;Project Pages : http://projects.erikzaadi.com =&amp;gt;&#xA;http://erikzaadi.github.com&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;&lt;ol&gt;&#xA;&lt;li&gt;Setting up the root of the site:&lt;/li&gt;&#xA;&lt;/ol&gt;&#xA;&lt;pre&gt;&lt;code&gt;I started to throw together a small asp.net mvc project for the [root](http://demos.erikzaadi.com/firstMVCRoot) of the site, both to test the hosting server&#39;s MVC and DB capabilities.  &#xA;&#xA;Besides overdoing the grey gradient theme to death, I think I exaggerated a bit with the fly thing at the [404](http://demos.erikzaadi.com/firstMVCRoot/NonExistingURL) and [ErroraPage](http://demos.erikzaadi.com/firstMVCRoot/Home/ThrowOne).&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;&lt;ol&gt;&#xA;&lt;li&gt;Getting the blog working&lt;/li&gt;&#xA;&lt;/ol&gt;&#xA;&lt;pre&gt;&lt;code&gt;I installed [AtomSite](http://atomsite.net) on http://blog.erikzaadi.com and started playing around a bit with the theme.  &#xA;&#xA;Again, as you can see, I&#39;m still with the grey gradient look (will I ever grow tired of it?).&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;&lt;p&gt;Stick around for the next post, which will be about migrating my blogger posts into the AtomSite powered blog.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Blog Migration - Part 1 - Setting Up Domain and Hosting Server</title>
      <link>//erikzaadi.com/2009/11/17/blogmigrationpart1settingup/</link>
      <pubDate>Tue, 17 Nov 2009 00:00:00 +0000</pubDate>
      <guid>//erikzaadi.com/2009/11/17/blogmigrationpart1settingup/</guid>
      <description>&lt;p&gt;&lt;a href=&#34;http://erikzaadi.com/blog/2009/11/17/BlogMigration-Part2-TemporaryPages.xhtml&#34;&gt;Part 2&lt;/a&gt;&lt;/p&gt;&#xA;&lt;h5 id=&#34;this-is-the-first-part-in-a-series-ill-be-doing-describing&#34;&gt;This is the first part in a series I&amp;rsquo;ll be doing, describing&lt;/h5&gt;&#xA;&lt;p&gt;the process I went through while migrating my &lt;a href=&#34;http://blogger.erikzaadi.com/&#34;&gt;blogger&lt;/a&gt;&#xA;blog to a hosted blog with the &lt;a href=&#34;http://atomsite.net&#34;&gt;atomsite&lt;/a&gt; blog engine.&lt;/p&gt;&#xA;&lt;h5 id=&#34;why-migrate-my-blog-you-ask&#34;&gt;Why migrate my blog you ask?&lt;/h5&gt;&#xA;&lt;p&gt;Well, although Google offers blogger as one of their great free services, I wanted more control, and to have the blog engine in a programming language that I&amp;rsquo;m a bit more fluent with.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Google Analytics.NET</title>
      <link>//erikzaadi.com/2009/10/27/googleanalyticsdotnet/</link>
      <pubDate>Tue, 27 Oct 2009 00:00:00 +0000</pubDate>
      <guid>//erikzaadi.com/2009/10/27/googleanalyticsdotnet/</guid>
      <description>&lt;h4 id=&#34;prelude-skip&#34;&gt;Prelude [skip]&lt;/h4&gt;&#xA;&lt;p&gt;I’ve been using Google Analytics for a while now, both for this blog and my &lt;a href=&#34;http://erikzaadi.github.com&#34;&gt;projects site&lt;/a&gt;, and as many others I think the service is great.&lt;/p&gt;&#xA;&lt;p&gt;While creating my project site, I wanted to make sure that the site had graceful degradation, especially that the site would be accessible without javascript.   &lt;br&gt;&#xA;This introduced a new problem for me, even though visitors with javascript disabled where able to see the site rendered, their visits where not tracked in Google Analytics.&lt;/p&gt;</description>
    </item>
    <item>
      <title>jQuery Console Plug-in</title>
      <link>//erikzaadi.com/2009/10/20/jqueryconsoleplug-in/</link>
      <pubDate>Tue, 20 Oct 2009 00:00:00 +0000</pubDate>
      <guid>//erikzaadi.com/2009/10/20/jqueryconsoleplug-in/</guid>
      <description>&lt;h4 id=&#34;prelude&#34;&gt;&lt;strong&gt;Prelude&lt;/strong&gt;&lt;/h4&gt;&#xA;&lt;p&gt;A typical scenario for me when I start a new web site, is to include JavaScript snippets from previous sites.&lt;/p&gt;&#xA;&lt;p&gt;I usually get to a stage where need to solve problem that think I’ve solved before.   &lt;br&gt;&#xA;Then, after a dark era for about 5 minutes of trying to actually remember when and where the solution is, I copy it to the new site.&lt;/p&gt;&#xA;&lt;p&gt;Each time I keep telling myself that I need to create some kind of template for those typical snippets I always end up adding.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Update - jQuery Print Element Plugin version 1.0 Released</title>
      <link>//erikzaadi.com/2009/10/09/update-jqueryprintelementpluginversion10released/</link>
      <pubDate>Fri, 09 Oct 2009 00:00:00 +0000</pubDate>
      <guid>//erikzaadi.com/2009/10/09/update-jqueryprintelementpluginversion10released/</guid>
      <description>&lt;p&gt;Thanks to &lt;a href=&#34;http://erikzaadi.blogspot.com/2009/07/jquery-print-element-plugin.html?showComment=1250467729294#c5342334733867241109&#34;&gt;John&lt;/a&gt; and &lt;a href=&#34;http://github.com/ungenio&#34;&gt;David&lt;/a&gt; for their contribution and valuable input.&lt;/p&gt;&#xA;&lt;h4&gt;&lt;/h4&gt;&#xA;&lt;p&gt;Version 1.0 has no new groundbreaking features, mostly bug fixes (see &lt;a href=&#34;http://erikzaadi.github.com/jQueryPlugins/2009/10/09/jQuery-Print-Element-Release.html&#34;&gt;changelog&lt;/a&gt;).&lt;/p&gt;&#xA;&lt;p&gt;There’s a new &lt;a href=&#34;http://erikzaadi.github.com/jQueryPlugins/jQuery.printElement/&#34;&gt;documentation page&lt;/a&gt; explaining the available options, and a new &lt;a href=&#34;http://erikzaadi.github.com/jQueryPlugins/jQuery.printElement/Sample&#34;&gt;sample page&lt;/a&gt; as well.&lt;/p&gt;&#xA;&lt;p&gt;As always, any feedback will be much appreciated, either as comments here at the blog, as an issue at the &lt;a href=&#34;http://github.com/erikzaadi/jQueryPlugins/issues/labels/printElement&#34;&gt;issues section&lt;/a&gt;, or a bug report at the official &lt;a href=&#34;http://plugins.jquery.com/project/printElement&#34;&gt;jQuery plugin page&lt;/a&gt;.&lt;/p&gt;&#xA;&lt;p&gt;Enjoy,&lt;/p&gt;&#xA;&lt;p&gt;Erik&lt;/p&gt;</description>
    </item>
    <item>
      <title>Installing Windows 2008 R2 on an iMac (Boot Camp)</title>
      <link>//erikzaadi.com/2009/10/07/installingwindows2008r2onanimacbootcamp/</link>
      <pubDate>Wed, 07 Oct 2009 00:00:00 +0000</pubDate>
      <guid>//erikzaadi.com/2009/10/07/installingwindows2008r2onanimacbootcamp/</guid>
      <description>&lt;p&gt;Skip the prelude and show me the steps!&lt;/p&gt;&#xA;&lt;p&gt;&lt;strong&gt;Prelude:&lt;/strong&gt;&lt;/p&gt;&#xA;&lt;p&gt;I have an amazing iMac at work. unfortunately, I spend most of my time on the Windows side of the Boot Camp, since I develop mostly Windows Based software. This requires quite some tweaks, since I can’t really develop and test properly if I’m not on a server based operating system.&lt;/p&gt;&#xA;&lt;p&gt;I started with XP on the boot camp, but after a short (and annoying) period I understood that I had to install Windows 2003 server.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Trusting http://www.hotlinkfiles.com/</title>
      <link>//erikzaadi.com/2009/10/06/trustinghttpwwwhotlinkfilescom/</link>
      <pubDate>Tue, 06 Oct 2009 00:00:00 +0000</pubDate>
      <guid>//erikzaadi.com/2009/10/06/trustinghttpwwwhotlinkfilescom/</guid>
      <description>&lt;p&gt;Just reconnected to the blog after a small vacation only to see that the entire layout looked awful.&#xA;For some unknown reason, not only did &lt;a href=&#34;http://www.hotlinkfiles.com/&#34;&gt;http://www.hotlinkfiles.com/&lt;/a&gt; block my javascript, images and css files, they deleted my user as well.&lt;/p&gt;&#xA;&lt;p&gt;Oh well, back to the drawing board..&lt;/p&gt;&#xA;&lt;p&gt;Until I’ve resolved the issue, I’ve reverted the blog to the current simple theme..&lt;/p&gt;&#xA;&lt;p&gt;Erik&lt;/p&gt;</description>
    </item>
    <item>
      <title>Connecting to my very well hidden artistic side</title>
      <link>//erikzaadi.com/2009/08/28/connectingtomyverywellhiddenartisticside/</link>
      <pubDate>Fri, 28 Aug 2009 00:00:00 +0000</pubDate>
      <guid>//erikzaadi.com/2009/08/28/connectingtomyverywellhiddenartisticside/</guid>
      <description>&lt;p&gt;As a part of the redesign I’m doing for my &lt;a href=&#34;http://erikzaadi.github.com&#34;&gt;github site&lt;/a&gt;, I wanted to add a comic image of myself (inspired by &lt;a href=&#34;http://twitter.com/addyosmani&#34;&gt;@addyosmani&lt;/a&gt; and &lt;a href=&#34;http://twitter.com/davidwalshblog&#34;&gt;@davidwalshblog&lt;/a&gt;’s great avatars)&lt;/p&gt;&#xA;&lt;p&gt;First, as always, lazy part of me tried some shortcuts.   &lt;br&gt;&#xA;I googled “cartoonize me”, and spent some time with the Simpsonize me without any good results.    &lt;br&gt;&#xA;After a while I found a rather cool site called &lt;a href=&#34;http://www.befunky.com&#34;&gt;befunky&lt;/a&gt;, which allows you to upload an image and do several sorts of effects on it, one being the cartoon effect, which I wanted..&lt;/p&gt;</description>
    </item>
    <item>
      <title>jQuery Late Loader Plugin</title>
      <link>//erikzaadi.com/2009/08/21/jquerylateloaderplugin/</link>
      <pubDate>Fri, 21 Aug 2009 00:00:00 +0000</pubDate>
      <guid>//erikzaadi.com/2009/08/21/jquerylateloaderplugin/</guid>
      <description>&lt;h4 id=&#34;prelude&#34;&gt;&lt;strong&gt;Prelude&lt;/strong&gt;&lt;/h4&gt;&#xA;&lt;p&gt;When enhancing dynamic pages (no matter the server side language behind), &lt;a href=&#34;http://jquery.com&#34;&gt;jQuery&lt;/a&gt; is more than helpful.    &lt;br&gt;&#xA;Especially since there’s loads of &lt;a href=&#34;http://plugins.jquery.com&#34;&gt;jQuery plugins&lt;/a&gt; out there, saving so much time and effort.    &lt;br&gt;&#xA;When using javascripts in reoccurring user controls, controlling the added javascripts and css files from the server language is possible (to prevent duplicate loading), but in many cases adds bloated and hard to maintain code.    &lt;br&gt;&#xA;Keeping the includes only in the markup is easier to maintain (IMHO), however might cause unneeded http requests to your scripts and css files, especially if you have a page with multiple reoccurring user controls.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Github Project Pages</title>
      <link>//erikzaadi.com/2009/08/15/githubprojectpages/</link>
      <pubDate>Sat, 15 Aug 2009 00:00:00 +0000</pubDate>
      <guid>//erikzaadi.com/2009/08/15/githubprojectpages/</guid>
      <description>&lt;h2 id=&#34;prelude-skip&#34;&gt;Prelude (skip)&lt;/h2&gt;&#xA;&lt;p&gt;About two weeks ago I found out about an amazing free service that &lt;a href=&#34;http://github.com&#34;&gt;github&lt;/a&gt; has called github &lt;a href=&#34;http://pages.github.com/&#34;&gt;pages&lt;/a&gt;.    &lt;br&gt;&#xA;This service allows you to host a static web site per public project you have on &lt;a href=&#34;http://github.com&#34;&gt;github&lt;/a&gt;, in addition to a site for your account (E.g. &lt;a href=&#34;http://accountname.github.com&#34;&gt;http://accountname.github.com&lt;/a&gt;).&lt;/p&gt;&#xA;&lt;p&gt;Besides having wizards that create the site for you (although I haven’t used that yet), github offers another very nice feature:   &lt;br&gt;&#xA;Github automatically process submits to the site via &lt;a href=&#34;http://github.com/mojombo/jekyll/tree/master&#34;&gt;Jekyll&lt;/a&gt;, which is a simple yet amazingly efficient static site/blog creator.&lt;/p&gt;</description>
    </item>
    <item>
      <title>ASP.NET MVC 2 Preview 1</title>
      <link>//erikzaadi.com/2009/08/01/aspdotnetmvc2preview1/</link>
      <pubDate>Sat, 01 Aug 2009 00:00:00 +0000</pubDate>
      <guid>//erikzaadi.com/2009/08/01/aspdotnetmvc2preview1/</guid>
      <description>&lt;p&gt;&lt;a href=&#34;http://haacked.com/&#34;&gt;Phil Haack&lt;/a&gt; totally surprised with the announcement of the &lt;a href=&#34;http://haacked.com/archive/2009/07/30/asp.net-mvc-released.aspx&#34;&gt;first preview release of ASP.NET MVC 2.&lt;/a&gt;&lt;/p&gt;&#xA;&lt;p&gt;I’ve been using ASP.NET MVC (1) very since the &lt;a href=&#34;http://weblogs.asp.net/scottgu/archive/2008/05/27/asp-net-mvc-preview-3-release.aspx&#34;&gt;third preview was released&lt;/a&gt; and I’ve really enjoyed the the experience.&lt;/p&gt;&#xA;&lt;p&gt;IMHO, WebForms was never really fitted to the web platform, having a to complicated life cycle, and abusing the POST method in a way it was really not meant to do.&lt;/p&gt;&#xA;&lt;p&gt;I do think WebForms was a great way to get WinForm developers up and doing web development quickly,   &lt;br&gt;&#xA;on the other hand, it grew a generation of Drag and Drop developers that had no idea what a POST really is (I know, I used to be one :D).&lt;/p&gt;</description>
    </item>
    <item>
      <title>jQuery Print Element Plugin</title>
      <link>//erikzaadi.com/2009/07/28/jqueryprintelementplugin/</link>
      <pubDate>Tue, 28 Jul 2009 00:00:00 +0000</pubDate>
      <guid>//erikzaadi.com/2009/07/28/jqueryprintelementplugin/</guid>
      <description>&lt;h5&gt;&lt;/h5&gt;&#xA;&lt;p&gt;&lt;strong&gt;[UPDATE - Version released &lt;a href=&#34;http://erikzaadi.com/blog/2009/10/09/Update-JQueryPrintElementPluginVersion10Released.xhtml&#34;&gt;1.0&lt;/a&gt;]&lt;/strong&gt;&lt;/p&gt;&#xA;&lt;p&gt;Similar to those &lt;a href=&#34;http://erikzaadi.com/blog/2009/07/21/JoyOfWritingUtilities.xhtml&#34;&gt;&amp;ldquo;utilicous&amp;rdquo;&lt;/a&gt; moments are the &amp;ldquo;I got to write a jQuery plugin&#xA;that does this&amp;rdquo; moments..&lt;/p&gt;&#xA;&lt;p&gt;Had one of those a while ago, and the results were the jQuery Print&#xA;Element Plugin.&lt;br&gt;&#xA;For those of you that are not familiar with &lt;a href=&#34;http://jquery.com/&#34;&gt;jQuery&lt;/a&gt;, I mentioned&#xA;it previously in an &lt;a href=&#34;http://erikzaadi.com/blog/2009/05/14/NewBlogLayout.xhtml&#34;&gt;early post&lt;/a&gt;.&lt;/p&gt;&#xA;&lt;h2 id=&#34;so-what-does-this-plug-in-do&#34;&gt;So what does this plug-in do?&lt;/h2&gt;&#xA;&lt;p&gt;Well, as per the title, it sends a jQuery selected element to&#xA;the printer.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Convert Encoding Utility</title>
      <link>//erikzaadi.com/2009/07/24/convertencodingutility/</link>
      <pubDate>Fri, 24 Jul 2009 00:00:00 +0000</pubDate>
      <guid>//erikzaadi.com/2009/07/24/convertencodingutility/</guid>
      <description>&lt;h2 id=&#34;prelude-skip&#34;&gt;Prelude (skip):&lt;/h2&gt;&#xA;&lt;p&gt;I had another one of those &lt;a href=&#34;http://erikzaadi.com/blog/2009/07/21/JoyOfWritingUtilities.xhtml&#34;&gt;&amp;ldquo;utilicous&amp;rdquo;&lt;/a&gt; moments again.&lt;/p&gt;&#xA;&lt;p&gt;I ran into a familiar problem that I&amp;rsquo;ve met before:&lt;/p&gt;&#xA;&lt;p&gt;I had a site written in ANSI encoding (default behavior by&#xA;Visual Studio BTW) , with some localized Hebrew content. The&#xA;default settings if the web site in IIS were indeed ANSI for&#xA;reading the files, and UTF-8 for displaying the files.&lt;/p&gt;&#xA;&lt;p&gt; &#xA;Peaches, everything was working fine..&#xA; &lt;/p&gt;&#xA;&lt;p&gt;Then I had to move the site to a different server..&lt;/p&gt;</description>
    </item>
    <item>
      <title>Joy of writing utilities</title>
      <link>//erikzaadi.com/2009/07/21/joyofwritingutilities/</link>
      <pubDate>Tue, 21 Jul 2009 00:00:00 +0000</pubDate>
      <guid>//erikzaadi.com/2009/07/21/joyofwritingutilities/</guid>
      <description>&lt;p&gt;Every now and then I get to a point where I need to do some repetitious and most likely boring task.   &lt;br&gt;&#xA;This point usually leads to 3 possible options&lt;/p&gt;&#xA;&lt;ol&gt;&#xA;&lt;li&gt;&#xA;&lt;p&gt;I Google for a utility that saves me the time for doing the task automatically.&lt;/p&gt;&#xA;&lt;/li&gt;&#xA;&lt;li&gt;&#xA;&lt;p&gt;I can’t find any workaround, while banging my head, I slowly do the exhausting task.&lt;/p&gt;&#xA;&lt;/li&gt;&#xA;&lt;li&gt;&#xA;&lt;p&gt;I write a small utility that does the task for me.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Is it really worth it?</title>
      <link>//erikzaadi.com/2009/05/31/isitreallyworthit/</link>
      <pubDate>Sun, 31 May 2009 00:00:00 +0000</pubDate>
      <guid>//erikzaadi.com/2009/05/31/isitreallyworthit/</guid>
      <description>&lt;p&gt;Lately I&amp;rsquo;ve been having some serious set downs at my work, a&#xA;certain chain of small and unfortunate events of the kind that&#xA;really leaves you totally without any steam or motivation.&lt;/p&gt;&#xA;&lt;p&gt;&lt;strong&gt;A small prelude:&lt;/strong&gt;&lt;/p&gt;&#xA;&lt;p&gt;I consider myself a very motivated person who puts a lot of effort&#xA;and time into my professional life, and in most cases I enjoy&#xA;giving more than is expected.&lt;/p&gt;&#xA;&lt;p&gt;I started as a technical support in the company I work in, and&#xA;thanks to the open minded people at my company, I moved up to&#xA;R&amp;amp;D after a while, which in my mind was totally amazing.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Personal Web Nostalgy</title>
      <link>//erikzaadi.com/2009/05/16/personalwebnostalgy/</link>
      <pubDate>Sat, 16 May 2009 00:00:00 +0000</pubDate>
      <guid>//erikzaadi.com/2009/05/16/personalwebnostalgy/</guid>
      <description>&lt;p&gt;My fiance happened to googlestubmle upon this site:&lt;/p&gt;&#xA;&lt;p&gt;&lt;a href=&#34;http://my.ort.org.il/rehovot/thing/&#34;&gt;http://my.ort.org.il/rehovot/thing/&lt;/a&gt;&lt;/p&gt;&#xA;&lt;p&gt;It&amp;rsquo;s the first &amp;ldquo;official&amp;rdquo; web site I created back in high school, using FrontPage (!).&lt;/p&gt;&#xA;&lt;p&gt;I find it rather ironic that the &amp;ldquo;It will be ready in a week.&amp;rdquo; status is still there :)&lt;/p&gt;&#xA;&lt;p&gt;Viewing the (hideous) source, you see plenty of unneeded tables, countless in-line styling and javascript..&lt;/p&gt;&#xA;&lt;p&gt;Well, needless to say, IE4 was targeted as the default browser..&lt;/p&gt;&#xA;&lt;p&gt;Here&amp;rsquo;s a small snippet used for achieving a mouseover image swap:&lt;/p&gt;</description>
    </item>
    <item>
      <title>New Blog Layout</title>
      <link>//erikzaadi.com/2009/05/14/newbloglayout/</link>
      <pubDate>Thu, 14 May 2009 00:00:00 +0000</pubDate>
      <guid>//erikzaadi.com/2009/05/14/newbloglayout/</guid>
      <description>&lt;h4 id=&#34;finally-got-my-custom-template-up-and-running&#34;&gt;Finally got my custom template up and running..&lt;/h4&gt;&#xA;&lt;p&gt;Went from this :&lt;/p&gt;&#xA;&lt;p&gt;&lt;img src=&#34;//erikzaadi.com/images/OldLook2.png&#34; alt=&#34;&#34;&gt;&lt;/p&gt;&#xA;&lt;p&gt;To the one you &lt;del&gt;are&lt;/del&gt;[no longer] seeing now..&lt;/p&gt;&#xA;&lt;p&gt;There are a lot of good resources out there about how to customize your blog.&lt;/p&gt;&#xA;&lt;p&gt;Furthermore, there are plenty of nice widgets and templates, saving you both time and effort.&lt;/p&gt;&#xA;&lt;p&gt;Instead of using these prebuilt resources, I wanted to learn a bit more, mainly about the Blogger API&amp;rsquo;s and capabilities, and of course enjoy some jQuery action.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Getting Started with Test Driven Development</title>
      <link>//erikzaadi.com/2009/05/08/gettingstartedwithtestdrivendevelopment/</link>
      <pubDate>Fri, 08 May 2009 00:00:00 +0000</pubDate>
      <guid>//erikzaadi.com/2009/05/08/gettingstartedwithtestdrivendevelopment/</guid>
      <description>&lt;p&gt;I&amp;rsquo;ve been to wanting to learn and use Test Driven Development for quite some time now.&lt;br&gt;&#xA;I&amp;rsquo;ve read tons of blogs, even a really nice free ebook (&lt;a href=&#34;http://www.ytechie.com/&#34;&gt;see here&lt;/a&gt;).&lt;br&gt;&#xA;Unlike other new (to me) frameworks and technologies that I&amp;rsquo;ve been interested in before, I find starting to use and implementing TDD extremely hard.&lt;/p&gt;&#xA;&lt;p&gt;It just didn&amp;rsquo;t feel right.&lt;/p&gt;&#xA;&lt;p&gt;At first I thought, well, this might simply not be my cup of tea, but then it got me thinking, why would that be so?&lt;/p&gt;</description>
    </item>
    <item>
      <title>First post</title>
      <link>//erikzaadi.com/2009/05/06/firstpost/</link>
      <pubDate>Wed, 06 May 2009 00:00:00 +0000</pubDate>
      <guid>//erikzaadi.com/2009/05/06/firstpost/</guid>
      <description>&lt;p&gt;Ok, here goes the first post..&lt;/p&gt;&#xA;&lt;p&gt;My name is Erik, and I&amp;rsquo;ll be blogging about &amp;hellip; well I don&amp;rsquo;t know yet.&lt;br&gt;&#xA;I guess most of my posts will be about programming, and my attempts to becoming a better programmer..&lt;/p&gt;&#xA;&lt;p&gt;One of the thing&amp;rsquo;s I enjoy the most is learning new things that I find helpful.&lt;br&gt;&#xA;Through this blog I hope to be able to share such useful information with you&amp;hellip;&lt;/p&gt;</description>
    </item>
  </channel>
</rss>
