<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
  <channel>
    <title>Shami&#39;s Blog</title>
    <link>/</link>
    <description>Recent content on Shami&#39;s Blog</description>
    <generator>Hugo -- gohugo.io</generator>
    <language>en</language>
    <lastBuildDate>Thu, 28 May 2026 09:56:28 +0300</lastBuildDate><atom:link href="/index.xml" rel="self" type="application/rss+xml" />
    <item>
      <title>Development Environments With Podman</title>
      <link>/2026/05/development-environments-with-podman/</link>
      <pubDate>Thu, 28 May 2026 09:56:28 +0300</pubDate>
      
      <guid>/2026/05/development-environments-with-podman/</guid>
      <description>&lt;p&gt;I switched to NixOS a while back. Then I tried to learn Rust. Turns out, Rust does not play nicely with Nix. So the journey of finding an alternative began.&lt;/p&gt;</description>
    </item>
    
    <item>
      <title>Forgejo Rootless Install with Podman and Ubuntu 24.04</title>
      <link>/2025/10/forgejo-rootless-install-with-podman-and-ubuntu-24.04/</link>
      <pubDate>Sat, 25 Oct 2025 05:23:25 +0300</pubDate>
      
      <guid>/2025/10/forgejo-rootless-install-with-podman-and-ubuntu-24.04/</guid>
      <description>&lt;p&gt;I have recently switched from &lt;a href=&#34;https://www.docker.com&#34; target=&#34;_blank&#34; rel=&#34;noopener&#34;&gt;Docker&lt;/a&gt; to &lt;a href=&#34;https://podman.io/&#34; target=&#34;_blank&#34; rel=&#34;noopener&#34;&gt;Podman&lt;/a&gt;, mostly because Podman&amp;rsquo;s integration with SystemD feels better to me than Docker Compose, especially with &lt;a href=&#34;https://docs.podman.io/en/latest/markdown/podman-quadlet.1.html&#34; target=&#34;_blank&#34; rel=&#34;noopener&#34;&gt;podman-quadlet&lt;/a&gt;. Setting up rootless &lt;a href=&#34;https://forgejo.org/&#34; target=&#34;_blank&#34; rel=&#34;noopener&#34;&gt;Forgejo&lt;/a&gt; with Podman took some time figuring out so I decided to document it here.&lt;/p&gt;</description>
    </item>
    
    <item>
      <title>Fix external display turning off when closing laptop lid with KDE and Wayland</title>
      <link>/2025/03/fix-external-display-turning-off-when-closing-laptop-lid-with-kde-and-wayland/</link>
      <pubDate>Wed, 26 Mar 2025 08:47:06 -0400</pubDate>
      
      <guid>/2025/03/fix-external-display-turning-off-when-closing-laptop-lid-with-kde-and-wayland/</guid>
      <description>&lt;p&gt;I&amp;rsquo;ve been using NixOS with KDE Plasma 6.2 and Wayland lately, one weird issue I was running into was not being able to close the laptop lid when I connected to my thunderbolt dock.&lt;/p&gt;</description>
    </item>
    
    <item>
      <title>Templating SSH Client Configuration</title>
      <link>/2024/08/templating-ssh-client-configuration/</link>
      <pubDate>Sat, 17 Aug 2024 09:47:06 -0400</pubDate>
      
      <guid>/2024/08/templating-ssh-client-configuration/</guid>
      <description>&lt;p&gt;&lt;strong&gt;Note&lt;/strong&gt;: When I first got the idea for this I used &lt;a href=&#34;https://gomplate.ca/&#34; target=&#34;_blank&#34; rel=&#34;noopener&#34;&gt;gomplate&lt;/a&gt;, then I realized my dotfile manager of choice, &lt;a href=&#34;https://www.chezmoi.io/&#34; target=&#34;_blank&#34; rel=&#34;noopener&#34;&gt;chezmoi&lt;/a&gt; is better suited for my usecase. I have dumped the files I created in this &lt;a href=&#34;https://gist.github.com/mohshami/ea88c2ba63d13ac928501208fe9da3a5&#34; target=&#34;_blank&#34; rel=&#34;noopener&#34;&gt;gist&lt;/a&gt; just in case someone finds them useful.&lt;/p&gt;</description>
    </item>
    
    <item>
      <title>Using SSH ProxyJump only when necessary</title>
      <link>/2024/08/using-ssh-proxyjump-only-when-necessary/</link>
      <pubDate>Thu, 15 Aug 2024 08:47:06 -0400</pubDate>
      
      <guid>/2024/08/using-ssh-proxyjump-only-when-necessary/</guid>
      <description>&lt;p&gt;&lt;strong&gt;Edit&lt;/strong&gt;: Used &lt;code&gt;grep -F&lt;/code&gt; instead of &lt;code&gt;fgrep&lt;/code&gt;&lt;/p&gt;
&lt;p&gt;One thing I&amp;rsquo;ve wanted to do for the longest time was to be able to use SSH with an alias and have ssh choose the bastion host automatically.&lt;/p&gt;
&lt;p&gt;&lt;a href=&#34;https://mike.place/2017/ssh-match/&#34; target=&#34;_blank&#34; rel=&#34;noopener&#34;&gt;This trick&lt;/a&gt; was ok at first, but I wanted something more flexible and I came up with the following:&lt;/p&gt;</description>
    </item>
    
    <item>
      <title>Update system time with HTTP</title>
      <link>/2023/08/update-system-time-with-http/</link>
      <pubDate>Mon, 21 Aug 2023 03:56:10 -0400</pubDate>
      
      <guid>/2023/08/update-system-time-with-http/</guid>
      <description>The other day I needed to update the time on a server that didn&amp;rsquo;t have access to any NTP servers. It was a server located in a locked down network with only HTTP/HTTPS access to the internet. I found the following command that allowed me to update the time/date through HTTP
1date -s &amp;#34;$(curl -s --head http://google.com | grep ^Date: | sed &amp;#39;s/Date: //g&amp;#39;)&amp;#34; </description>
    </item>
    
    <item>
      <title>Expand a Zpool</title>
      <link>/2021/09/expand-a-zpool/</link>
      <pubDate>Wed, 01 Sep 2021 05:46:21 -0400</pubDate>
      
      <guid>/2021/09/expand-a-zpool/</guid>
      <description>Block storage volumes are very useful, they give me an easy way of getting ZFS on Ubuntu virtual servers or getting extra storage on FreeBSD. Just attach a volume and create a zpool.
Today one of my volumes ran out of space. So I logged in to my cloud provider and expanded it. Then to expand the zpool I ran the following command
1# zpool online -e ZPOOL_NAME DEVICE 2zpool online -e tank da1 </description>
    </item>
    
    <item>
      <title>Maintenance Pages With HAProxy</title>
      <link>/2021/07/maintenance-pages-with-haproxy/</link>
      <pubDate>Mon, 26 Jul 2021 03:00:12 -0400</pubDate>
      
      <guid>/2021/07/maintenance-pages-with-haproxy/</guid>
      <description>&lt;p&gt;&lt;strong&gt;Edit: 31/7/2021:&lt;/strong&gt; Add content for maintenance pages.&lt;/p&gt;
&lt;p&gt;I currently work with a group of very smart individuals and I learn a lot from them on almost daily basis. One thing they have done which I found cool was using &lt;a href=&#34;https://www.terraform.io/&#34; target=&#34;_blank&#34; rel=&#34;noopener&#34;&gt;Terraform&lt;/a&gt; to configure the &lt;a href=&#34;https://aws.amazon.com/elasticloadbalancing/application-load-balancer/&#34; target=&#34;_blank&#34; rel=&#34;noopener&#34;&gt;AWS Application Load Balancer&lt;/a&gt; to display the notice during maintenance windows.&lt;/p&gt;</description>
    </item>
    
    <item>
      <title>HOWTO - Build a Keycloak/Ubuntu/MariaDB Cluster Without Multicast UDP</title>
      <link>/2021/07/howto-build-a-keycloak/ubuntu/mariadb-cluster-without-multicast-udp/</link>
      <pubDate>Sun, 25 Jul 2021 00:05:55 -0400</pubDate>
      
      <guid>/2021/07/howto-build-a-keycloak/ubuntu/mariadb-cluster-without-multicast-udp/</guid>
      <description>&lt;p&gt;I&amp;rsquo;ve been trying to learn more about Keycloak lately but two things kept frustrating me; a lot of the information available online doesn&amp;rsquo;t work and cloud providers blocking &lt;a href=&#34;https://en.wikipedia.org/wiki/Multicast&#34; target=&#34;_blank&#34; rel=&#34;noopener&#34;&gt;multicast UDP&lt;/a&gt;. I lost my notes once too many and decided to document the whole process here for future reference. I used &lt;code&gt;jboss-cli.sh&lt;/code&gt; to edit &lt;code&gt;standalone-ha.xml&lt;/code&gt; to make it easier to automate with configuration managers. So lets begin.&lt;/p&gt;</description>
    </item>
    
    <item>
      <title>Letsencrypt Pre-renew Hooks</title>
      <link>/2021/07/letsencrypt-pre-renew-hooks/</link>
      <pubDate>Sat, 17 Jul 2021 15:39:18 -0400</pubDate>
      
      <guid>/2021/07/letsencrypt-pre-renew-hooks/</guid>
      <description>&lt;p&gt;&lt;a href=&#34;https://github.com/hlandau/acmetool&#34; target=&#34;_blank&#34; rel=&#34;noopener&#34;&gt;Acmetool&lt;/a&gt; used to be my go-to tool for LetsEncrypt. It was quick and simple to set up. As a user, my favorite part of the &lt;a href=&#34;https://golang.org/&#34; target=&#34;_blank&#34; rel=&#34;noopener&#34;&gt;Golang&lt;/a&gt; ecosystem is that binary files are statically linked. You don&amp;rsquo;t have to fiddle with any dependencies. But even though Acmetool is still getting occasional updates the last release is from 2018 and I prefer to stick to releases. There were times when Acmetool would not work behind Cloudflare and I would have to temporarily disable Cloudflare proxying to be able to generate certificates.&lt;/p&gt;</description>
    </item>
    
    <item>
      <title>HOWTO - Letsencrypt Certificates for pfSense</title>
      <link>/2021/07/howto-letsencrypt-certificates-for-pfsense/</link>
      <pubDate>Sat, 17 Jul 2021 13:38:58 -0400</pubDate>
      
      <guid>/2021/07/howto-letsencrypt-certificates-for-pfsense/</guid>
      <description>&lt;p&gt;I recently helped a friend set up pfSense as a VPN server/firewall for his colocated rack. We wanted SSH and the web configurator to be accessible from a set of static IPs.&lt;/p&gt;</description>
    </item>
    
    <item>
      <title>HOWTO - Letsencrypt Certificates for localhost</title>
      <link>/2021/07/howto-letsencrypt-certificates-for-localhost/</link>
      <pubDate>Mon, 12 Jul 2021 21:45:25 -0400</pubDate>
      
      <guid>/2021/07/howto-letsencrypt-certificates-for-localhost/</guid>
      <description>&lt;p&gt;A few days ago I discovered &lt;a href=&#34;http://readme.localtest.me/&#34; target=&#34;_blank&#34; rel=&#34;noopener&#34;&gt;*.localtest.me&lt;/a&gt; which is a neat service that allows you to access localhost with multiple hostnames allowing the creation of multiple development sites without having to use &lt;code&gt;http://localhost/(site1|site2|site3)&lt;/code&gt;. We all know that has some difficulties when it comes to moving those sites to production. Not all CMS&amp;rsquo;s and frameworks support an easy migration.&lt;/p&gt;</description>
    </item>
    
    <item>
      <title>Generate Keycloak Access Tokens with Curl</title>
      <link>/2021/07/generate-keycloak-access-tokens-with-curl/</link>
      <pubDate>Fri, 09 Jul 2021 14:42:39 -0400</pubDate>
      
      <guid>/2021/07/generate-keycloak-access-tokens-with-curl/</guid>
      <description>&lt;p&gt;I&amp;rsquo;ve been working more with &lt;a href=&#34;https://www.keycloak.org/&#34; target=&#34;_blank&#34; rel=&#34;noopener&#34;&gt;Keycloak&lt;/a&gt; lately and I&amp;rsquo;m loving it. But one thing I wanted to do while testing is to generate access tokens easily. Today I wrote a small wrapper script and thought I should share.&lt;/p&gt;</description>
    </item>
    
    <item>
      <title>Logstash Hanging When Rebooting Ubuntu</title>
      <link>/2021/06/logstash-hanging-when-rebooting-ubuntu/</link>
      <pubDate>Thu, 24 Jun 2021 10:02:48 -0400</pubDate>
      
      <guid>/2021/06/logstash-hanging-when-rebooting-ubuntu/</guid>
      <description>&lt;p&gt;&lt;strong&gt;Edit: 31/7/2022:&lt;/strong&gt; I&amp;rsquo;m currently migrating all my logstash configurations to &lt;a href=&#34;https://vector.dev&#34; target=&#34;_blank&#34; rel=&#34;noopener&#34;&gt;Vector&lt;/a&gt;, it has been much kinder to me than Logstash has ever been.&lt;/p&gt;
&lt;p&gt;I maintain an ELK server running on Ubuntu 20.04 for testing. One issue I have faced is the Logstash service hanging on reboot. The server would not reboot and I end up having to power cycle.&lt;/p&gt;</description>
    </item>
    
    <item>
      <title>Detect if your Script is Running in CRON</title>
      <link>/2021/06/detect-if-your-script-is-running-in-cron/</link>
      <pubDate>Mon, 21 Jun 2021 02:38:24 -0400</pubDate>
      
      <guid>/2021/06/detect-if-your-script-is-running-in-cron/</guid>
      <description>&lt;p&gt;In my &lt;a href=&#34;/2021/06/back-up-multiple-servers-with-zxfer/&#34;&gt;previous post&lt;/a&gt; I discussed how I use a wrapper script to back up a fleet of servers.&lt;/p&gt;</description>
    </item>
    
    <item>
      <title>Back Up Multiple Servers With zxfer</title>
      <link>/2021/06/back-up-multiple-servers-with-zxfer/</link>
      <pubDate>Mon, 21 Jun 2021 00:55:53 -0400</pubDate>
      
      <guid>/2021/06/back-up-multiple-servers-with-zxfer/</guid>
      <description>&lt;p&gt;ZFS has been one of my favorite tools since I discovered it in 2014. I can&amp;rsquo;t count how many times it has saved me from disasters. I&amp;rsquo;ve even had systems that wouldn&amp;rsquo;t boot but still managed to recover data from them with a rescue disk.&lt;/p&gt;</description>
    </item>
    
    <item>
      <title>Get A List of EC2 Instances And The AMIs Used to Launch Them</title>
      <link>/2021/06/get-a-list-of-ec2-instances-and-the-amis-used-to-launch-them/</link>
      <pubDate>Sat, 12 Jun 2021 03:19:40 -0400</pubDate>
      
      <guid>/2021/06/get-a-list-of-ec2-instances-and-the-amis-used-to-launch-them/</guid>
      <description>&lt;p&gt;I was recently tasked with auditing the AMIs we are currently using for our AWS account. I could have just checked all machines but thought jq might be a better way to do it, and it actually is.&lt;/p&gt;</description>
    </item>
    
    <item>
      <title>Using Dynamic DNS with pf, iptables, and gomplate</title>
      <link>/2021/06/using-dynamic-dns-with-pf-iptables-and-gomplate/</link>
      <pubDate>Sun, 06 Jun 2021 03:00:41 -0400</pubDate>
      
      <guid>/2021/06/using-dynamic-dns-with-pf-iptables-and-gomplate/</guid>
      <description>&lt;p&gt;It is always better to tighten the firewall configuration on your servers. Limiting SSH connections from a defined list of IP addresses greatly reduces the attack surface as well as load; the firewall is much more efficient at blocking connections than sshd. The best approach is to have a static IP or connect through a bastion host which is protected via a VPN. But sometimes that is not feasible.&lt;/p&gt;</description>
    </item>
    
    <item>
      <title>Why You Shouldn&#39;t Use the Windows 10 SSH Agent</title>
      <link>/2021/06/why-you-shouldnt-use-the-windows-10-ssh-agent/</link>
      <pubDate>Fri, 04 Jun 2021 02:14:45 -0400</pubDate>
      
      <guid>/2021/06/why-you-shouldnt-use-the-windows-10-ssh-agent/</guid>
      <description>&lt;p&gt;I have recently switched to using &lt;a href=&#34;https://www.sublimemerge.com/&#34; target=&#34;_blank&#34; rel=&#34;noopener&#34;&gt;Sublime Merge&lt;/a&gt; as my Git client. I know other clients have the same features but for me Sublime Merge is just a pleasure to use.&lt;/p&gt;</description>
    </item>
    
    <item>
      <title>Simulate Pressing the Reset Button</title>
      <link>/2021/06/simulate-pressing-the-reset-button/</link>
      <pubDate>Thu, 03 Jun 2021 00:12:14 -0400</pubDate>
      
      <guid>/2021/06/simulate-pressing-the-reset-button/</guid>
      <description>&lt;p&gt;We&amp;rsquo;ve all been there, something gets stuck and there is no way to fix it except for a reboot, but even rebooting through SSH isn&amp;rsquo;t working and you don&amp;rsquo;t have physical access to the server or an out-of-bound way to power cycle. This has mostly bit me while working on NFS but there has been other cases. Adding it here for reference.&lt;/p&gt;</description>
    </item>
    
    <item>
      <title>Writing Reusable Terraform Code, Part 3</title>
      <link>/2021/06/writing-reusable-terraform-code-part-3/</link>
      <pubDate>Wed, 02 Jun 2021 22:50:01 -0400</pubDate>
      
      <guid>/2021/06/writing-reusable-terraform-code-part-3/</guid>
      <description>&lt;p&gt;In &lt;a href=&#34;/2021/05/writing-reusable-terraform-code-part-1/&#34;&gt;part 1&lt;/a&gt; and &lt;a href=&#34;/2021/05/writing-reusable-terraform-code-part-2/&#34;&gt;part 2&lt;/a&gt; I briefly talked about modules and workspaces. This time I will take things a bit further.&lt;/p&gt;</description>
    </item>
    
    <item>
      <title>Writing Reusable Terraform Code, Part 2</title>
      <link>/2021/05/writing-reusable-terraform-code-part-2/</link>
      <pubDate>Thu, 20 May 2021 23:01:27 -0400</pubDate>
      
      <guid>/2021/05/writing-reusable-terraform-code-part-2/</guid>
      <description>&lt;p&gt;In &lt;a href=&#34;/2021/05/writing-reusable-terraform-code-part-1/&#34;&gt;part 1&lt;/a&gt;, I talked about modules and how they are the first step into reducing duplicate resources. Here I will talk about &lt;a href=&#34;https://www.terraform.io/docs/language/state/workspaces.html&#34; target=&#34;_blank&#34; rel=&#34;noopener&#34;&gt;workspaces&lt;/a&gt;.&lt;/p&gt;</description>
    </item>
    
    <item>
      <title>Writing Reusable Terraform Code, Part 1</title>
      <link>/2021/05/writing-reusable-terraform-code-part-1/</link>
      <pubDate>Thu, 20 May 2021 22:28:45 -0400</pubDate>
      
      <guid>/2021/05/writing-reusable-terraform-code-part-1/</guid>
      <description>&lt;p&gt;I&amp;rsquo;m fairly new to Terraform, yes I have been using it for the past 2 or 3 years, but my use-case was quite simple; Create a few servers in &lt;a href=&#34;https://www.digitalocean.com/&#34; target=&#34;_blank&#34; rel=&#34;noopener&#34;&gt;DigitalOcean&lt;/a&gt; or &lt;a href=&#34;https://www.hetzner.com/&#34; target=&#34;_blank&#34; rel=&#34;noopener&#34;&gt;Hetzner&lt;/a&gt;, install a web stack, and use the outputs to update the load balancer and the firewall.&lt;/p&gt;</description>
    </item>
    
    <item>
      <title>Bettering Myself</title>
      <link>/2021/05/bettering-myself/</link>
      <pubDate>Fri, 07 May 2021 10:39:33 -0400</pubDate>
      
      <guid>/2021/05/bettering-myself/</guid>
      <description>&lt;p&gt;It&amp;rsquo;s been a long time since I have added anything to my blog; I wanted to update my site to use the newer version of &lt;a href=&#34;https://gohugo.io/&#34; target=&#34;_blank&#34; rel=&#34;noopener&#34;&gt;Hugo&lt;/a&gt;. I also wanted to update the theme to remove some of the older componets and disable &lt;a href=&#34;https://disqus.com&#34; target=&#34;_blank&#34; rel=&#34;noopener&#34;&gt;Disqus&lt;/a&gt;. One of the things I wanted to do is to use &lt;a href=&#34;https://parceljs.org/&#34; target=&#34;_blank&#34; rel=&#34;noopener&#34;&gt;Parcel&lt;/a&gt; to learn how it works. I got halfway through the HTML and then real life got in the way. For some reason I kept delaying adding new content because I thought updating the theme to the newest Hugo version would take a long time.&lt;/p&gt;</description>
    </item>
    
    <item>
      <title>Adding a Form to Your Static Site</title>
      <link>/2018/03/adding-a-form-to-your-static-site/</link>
      <pubDate>Fri, 09 Mar 2018 22:54:22 +0200</pubDate>
      
      <guid>/2018/03/adding-a-form-to-your-static-site/</guid>
      <description>&lt;p&gt;I&amp;rsquo;ve become a big fan of &lt;a href=&#34;https://www.staticgen.com/&#34; target=&#34;_blank&#34; rel=&#34;noopener&#34;&gt;static site generators&lt;/a&gt; lately, especially &lt;a href=&#34;http://gohugo.io/&#34; target=&#34;_blank&#34; rel=&#34;noopener&#34;&gt;Hugo&lt;/a&gt;. It&amp;rsquo;s true, static site generators are not for everybody, but most websites on the Internet can be easily implemented as static sites. Also, static sites are great for those websites that you can&amp;rsquo;t regularly maintain, they are secure, fast, and very easy to set up. Take this blog for example, I don&amp;rsquo;t have much time to maintain and apply security patches so having it set up as HTML is perfect for me.&lt;/p&gt;</description>
    </item>
    
    <item>
      <title>Running Older PHP Versions on FreeBSD 11</title>
      <link>/2018/02/running-older-php-versions-on-freebsd-11/</link>
      <pubDate>Mon, 19 Feb 2018 08:51:21 +0200</pubDate>
      
      <guid>/2018/02/running-older-php-versions-on-freebsd-11/</guid>
      <description>&lt;p&gt;Why? You might ask yourself. Isn&amp;rsquo;t it just better to upgrade the web application and save yourself the trouble of all the security issues? True, but sometimes it&amp;rsquo;s just not possible or feasible. The other day I helped a friend of mine migreate from a VPS he got in 2008 to a brand new FreeBSD 11 droplet on &lt;a href=&#34;https://www.digitalocean.com&#34; target=&#34;_blank&#34; rel=&#34;noopener&#34;&gt;DigitalOcean&lt;/a&gt;. His customer has still not updated their site, and they were paying the same rate they&amp;rsquo;ve been paying since 2008. So it was better and cheaper to move them to a new VPS even though we kept the same code. At least the OS and all other components in the stack were updated.&lt;/p&gt;</description>
    </item>
    
    <item>
      <title>Faster TLS Deployment With Acmetool</title>
      <link>/2018/02/faster-tls-deployment-with-acmetool/</link>
      <pubDate>Mon, 19 Feb 2018 01:04:23 +0200</pubDate>
      
      <guid>/2018/02/faster-tls-deployment-with-acmetool/</guid>
      <description>&lt;p&gt;So lately I&amp;rsquo;ve been using &lt;a href=&#34;https://www.ansible.com/&#34; target=&#34;_blank&#34; rel=&#34;noopener&#34;&gt;Ansible&lt;/a&gt; to manage and bootstrap my servers. I prefer the configuration management part in &lt;a href=&#34;https://saltstack.com&#34; target=&#34;_blank&#34; rel=&#34;noopener&#34;&gt;Salt&lt;/a&gt; but orchestration has been much cleaner with Ansible for me. I might take another look at Salt later on but for the time being I run everything on Ansible.&lt;/p&gt;</description>
    </item>
    
    <item>
      <title>Getting Smtp Working With edX Devstack</title>
      <link>/2017/11/getting-smtp-working-with-edx-devstack/</link>
      <pubDate>Wed, 22 Nov 2017 11:50:09 +0200</pubDate>
      
      <guid>/2017/11/getting-smtp-working-with-edx-devstack/</guid>
      <description>&lt;p&gt;Lately I&amp;rsquo;ve been tinkering with &lt;a href=&#34;https://open.edx.org/&#34; target=&#34;_blank&#34; rel=&#34;noopener&#34;&gt;Open edX&lt;/a&gt; at work for a project we&amp;rsquo;re working on. The customer needed a specific workflow which required emails and all the parameters I found didn&amp;rsquo;t help. But finally I found the solution &lt;a href=&#34;http://learning.perpetualny.com/blog/reliable-email-on-open-edx&#34; target=&#34;_blank&#34; rel=&#34;noopener&#34;&gt;here&lt;/a&gt;&lt;/p&gt;</description>
    </item>
    
    <item>
      <title>Go Get Error With Babun Shell</title>
      <link>/2017/11/go-get-error-with-babun-shell/</link>
      <pubDate>Tue, 21 Nov 2017 15:11:55 +0200</pubDate>
      
      <guid>/2017/11/go-get-error-with-babun-shell/</guid>
      <description>&lt;p&gt;Quick one here, if you run into the following error when trying to download a go package using &lt;a href=&#34;http://babun.github.io/&#34; target=&#34;_blank&#34; rel=&#34;noopener&#34;&gt;Babun&lt;/a&gt;&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; style=&#34;color:#f8f8f2;background-color:#282a36;-moz-tab-size:4;-o-tab-size:4;tab-size:4;&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span style=&#34;white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f&#34;&gt;1&lt;/span&gt;&lt;span&gt;go get -u -v github.com/cosiner/argv
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span style=&#34;white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f&#34;&gt;2&lt;/span&gt;&lt;span&gt;github.com/cosiner/argv &lt;span style=&#34;color:#ff79c6&#34;&gt;(&lt;/span&gt;download&lt;span style=&#34;color:#ff79c6&#34;&gt;)&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span style=&#34;white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f&#34;&gt;3&lt;/span&gt;&lt;span&gt;&lt;span style=&#34;color:#6272a4&#34;&gt;# cd .; git clone https://github.com/cosiner/argv C:\Users\Mohammad Al-Shami\go\src\github.com\cosiner\argv&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span style=&#34;white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f&#34;&gt;4&lt;/span&gt;&lt;span&gt;Cloning into &lt;span style=&#34;color:#f1fa8c&#34;&gt;&amp;#39;C:\Users\Mohammad Al-Shami\go\src\github.com\cosiner\argv&amp;#39;&lt;/span&gt;...
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span style=&#34;white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f&#34;&gt;5&lt;/span&gt;&lt;span&gt;fatal: Invalid path &lt;span style=&#34;color:#f1fa8c&#34;&gt;&amp;#39;/cygdrive/c/Users/Mohammad Al-Shami/Desktop/go/C:\Users\Mohammad Al-Shami\go\src\github.com\cosiner\argv&amp;#39;&lt;/span&gt;: No such file or directory
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span style=&#34;white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f&#34;&gt;6&lt;/span&gt;&lt;span&gt;package github.com/cosiner/argv: &lt;span style=&#34;color:#8be9fd;font-style:italic&#34;&gt;exit&lt;/span&gt; status &lt;span style=&#34;color:#bd93f9&#34;&gt;128&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;</description>
    </item>
    
    <item>
      <title>Installing Edx on Ubuntu Xenial</title>
      <link>/2017/11/installing-edx-on-ubuntu-xenial/</link>
      <pubDate>Mon, 06 Nov 2017 12:10:12 +0200</pubDate>
      
      <guid>/2017/11/installing-edx-on-ubuntu-xenial/</guid>
      <description>&lt;p&gt;So I&amp;rsquo;ve been tasked with installing the &lt;a href=&#34;https://open.edx.org/&#34; target=&#34;_blank&#34; rel=&#34;noopener&#34;&gt;Open edX&lt;/a&gt; devstack for work to do some testing. The current documentation is very lacking and it&amp;rsquo;s been an ordeal. I decided to summerize the process as a reference.&lt;/p&gt;</description>
    </item>
    
    <item>
      <title>Bad Gateway With Nginx, PHP, and Oracle</title>
      <link>/2017/10/bad-gateway-with-nginx-php-and-oracle/</link>
      <pubDate>Thu, 26 Oct 2017 14:25:50 +0300</pubDate>
      
      <guid>/2017/10/bad-gateway-with-nginx-php-and-oracle/</guid>
      <description>&lt;p&gt;So I got a call from one of our developers telling me one of our Moodle development sites was not working. This particular Moodle instance was configured to use an Oracle backend since that&amp;rsquo;s what the customer has. Upon checking I got a &amp;ldquo;Bad Gateway&amp;rdquo; error.&lt;/p&gt;</description>
    </item>
    
    <item>
      <title>Automating Hugo Deployments With Webhooks, Bitbucket, and CloudFlare</title>
      <link>/2017/09/automating-hugo-deployments-with-webhooks-bitbucket-and-cloudflare/</link>
      <pubDate>Thu, 14 Sep 2017 17:22:23 +0300</pubDate>
      
      <guid>/2017/09/automating-hugo-deployments-with-webhooks-bitbucket-and-cloudflare/</guid>
      <description>&lt;p&gt;I&amp;rsquo;ve been using &lt;a href=&#34;http://gohugo.io/&#34; target=&#34;_blank&#34; rel=&#34;noopener&#34;&gt;Hugo&lt;/a&gt; for a while now and love it. I don&amp;rsquo;t update my blog much and with Hugo I don&amp;rsquo;t need to spend more time updating the CMS than actually blogging. The markdown files are hosted at &lt;a href=&#34;https://bitbucket.org/&#34; target=&#34;_blank&#34; rel=&#34;noopener&#34;&gt;BitBucket&lt;/a&gt; along with my other code and I use &lt;a href=&#34;https://www.cloudflare.com/&#34; target=&#34;_blank&#34; rel=&#34;noopener&#34;&gt;CloudFlare&lt;/a&gt; for protection as well as a CDN.&lt;/p&gt;</description>
    </item>
    
    <item>
      <title>Babun SSH/Git With TinyWall</title>
      <link>/2017/09/babun-ssh/git-with-tinywall/</link>
      <pubDate>Wed, 06 Sep 2017 16:17:20 +0300</pubDate>
      
      <guid>/2017/09/babun-ssh/git-with-tinywall/</guid>
      <description>&lt;p&gt;I was thinking of a way to make my laptop a bit more secure and started looking into alternative firewalls for Windows. I came across &lt;a href=&#34;https://tinywall.pados.hu/&#34; target=&#34;_blank&#34; rel=&#34;noopener&#34;&gt;TinyWall&lt;/a&gt; which is an alternative front end to the Windows firewall so it&amp;rsquo;s not as intrusive as the other options. Everything was working well till I tried to pull a git repository from &lt;a href=&#34;http://babun.github.io/&#34; target=&#34;_blank&#34; rel=&#34;noopener&#34;&gt;Babun&lt;/a&gt; and I got an the following error&lt;/p&gt;</description>
    </item>
    
    <item>
      <title>Nvidia Drivers On Headless Ubuntu Server 16.04</title>
      <link>/2017/06/nvidia-drivers-on-headless-ubuntu-server-16.04/</link>
      <pubDate>Thu, 22 Jun 2017 11:10:25 +0300</pubDate>
      
      <guid>/2017/06/nvidia-drivers-on-headless-ubuntu-server-16.04/</guid>
      <description>&lt;p&gt;I wanted to do some GPU processing using a virtual machine running inside &lt;a href=&#34;https://lime-technology.com/&#34; target=&#34;_blank&#34; rel=&#34;noopener&#34;&gt;unRAID&lt;/a&gt;. First I tried Windows and it worked, but I read that running the code inside Ubuntu 16.04 would be more efficient.&lt;/p&gt;</description>
    </item>
    
    <item>
      <title>Disable Google Analytics While Running Hugo Test Server</title>
      <link>/2017/04/disable-google-analytics-while-running-hugo-test-server/</link>
      <pubDate>Mon, 24 Apr 2017 13:42:39 +0300</pubDate>
      
      <guid>/2017/04/disable-google-analytics-while-running-hugo-test-server/</guid>
      <description>&lt;p&gt;So while I was writing my previous post I realized that Google Analytics was being called from the localhost server. I also had lots of grief with Disqus back when I migrated to Hexo; It filled my account with posts related to localhost. I wonder why Disqus built it this way.&lt;/p&gt;
&lt;p&gt;I hard-coded the Disqus URL in my theme (Both Hexo and Hugo) but then realized I can&amp;rsquo;t do the same for Google Analytics. I needed a way to disable it altogether. The &lt;a href=&#34;https://discuss.gohugo.io/t/how-to-check-if-the-site-is-on-localhost/1490/5&#34; target=&#34;_blank&#34; rel=&#34;noopener&#34;&gt;fix&lt;/a&gt; turned out to be quite simple.&lt;/p&gt;</description>
    </item>
    
    <item>
      <title>Adding Oracle Support PHP On Ubuntu Xenial</title>
      <link>/2017/04/adding-oracle-support-php-on-ubuntu-xenial/</link>
      <pubDate>Mon, 24 Apr 2017 11:29:10 +0300</pubDate>
      
      <guid>/2017/04/adding-oracle-support-php-on-ubuntu-xenial/</guid>
      <description>&lt;p&gt;I&amp;rsquo;ve been recently asked to enable a web server running to PHP to connect to an Oracle database for a client. Sadly this doesn&amp;rsquo;t work natively on FreeBSD so I&amp;rsquo;m documenting how I managed to do it on Ubuntu Xenial. This was inspired by &lt;a href=&#34;https://www.syahzul.com/2016/04/06/how-to-install-oci8-on-ubuntu-14-04-and-php-5-6/&#34; target=&#34;_blank&#34; rel=&#34;noopener&#34;&gt;this post&lt;/a&gt; and &lt;a href=&#34;http://www.gilfillan.space/2016/04/24/install-oracle-instant-client-1604/&#34; target=&#34;_blank&#34; rel=&#34;noopener&#34;&gt;this post&lt;/a&gt;.&lt;/p&gt;</description>
    </item>
    
    <item>
      <title>Ordering Select Options With Javascript</title>
      <link>/2017/04/ordering-select-options-with-javascript/</link>
      <pubDate>Sun, 23 Apr 2017 08:15:09 +0300</pubDate>
      
      <guid>/2017/04/ordering-select-options-with-javascript/</guid>
      <description>&lt;p&gt;I&amp;rsquo;ve been building trivial web pages for automating tasks for years, but one of things that bothered me the most was having to manually order the OPTIONSs inside SELECTs. I don&amp;rsquo;t remember where I got the code from but just wanted to share&lt;/p&gt;</description>
    </item>
    
    <item>
      <title>Use Just What You Need Out Of Bootstrap And Similar Frameworks</title>
      <link>/2017/04/use-just-what-you-need-out-of-bootstrap-and-similar-frameworks/</link>
      <pubDate>Fri, 21 Apr 2017 13:56:17 +0300</pubDate>
      
      <guid>/2017/04/use-just-what-you-need-out-of-bootstrap-and-similar-frameworks/</guid>
      <description>&lt;p&gt;If you know me, you&amp;rsquo;ll know I&amp;rsquo;m obsessed with speed. I like websites that are light and load quickly. At first I used &lt;a href=&#34;https://wordpress.org/&#34; target=&#34;_blank&#34; rel=&#34;noopener&#34;&gt;WordPress&lt;/a&gt; because I knew how to optimize it and make it load quickly. I also used the &lt;a href=&#34;https://generatepress.com/&#34; target=&#34;_blank&#34; rel=&#34;noopener&#34;&gt;GeneratePress&lt;/a&gt; theme because I loved how quickly it loaded. You can read &lt;a href=&#34;/2016/06/welcome-to-my-new-blog/&#34;&gt;this post&lt;/a&gt; to see why I migrated away.&lt;/p&gt;
&lt;p&gt;Ghost introduced me to &lt;a href=&#34;https://en.wikipedia.org/wiki/Markdown&#34; target=&#34;_blank&#34; rel=&#34;noopener&#34;&gt;Markdown&lt;/a&gt; and I could never look back, but since I didn&amp;rsquo;t find any themes that I liked and the fact that Ghost looked as if it hadn&amp;rsquo;t been maintained in a while lead me to look for alternatives.&lt;/p&gt;</description>
    </item>
    
    <item>
      <title>Cropped Pagination Controls With Hugo</title>
      <link>/2017/04/cropped-pagination-controls-with-hugo/</link>
      <pubDate>Tue, 11 Apr 2017 14:57:12 +0300</pubDate>
      
      <guid>/2017/04/cropped-pagination-controls-with-hugo/</guid>
      <description>&lt;p&gt;I&amp;rsquo;m currently in the middle of migrating my blog (yet again) from &lt;a href=&#34;https://hexo.io/&#34; target=&#34;_blank&#34; rel=&#34;noopener&#34;&gt;Hexo&lt;/a&gt; to &lt;a href=&#34;https://gohugo.io/&#34; target=&#34;_blank&#34; rel=&#34;noopener&#34;&gt;Hugo&lt;/a&gt;. Hexo is nice but I&amp;rsquo;m learning some HTML/CSS and decided to give Hugo a try and I liked the following about it&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;Setting it up is just a matter of downloading a single EXE file and adding it to PATH, as opposed to having to install NodeJS, then Hexo&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;a href=&#34;https://gohugo.io/extras/shortcodes/&#34; target=&#34;_blank&#34; rel=&#34;noopener&#34;&gt;Shortcodes&lt;/a&gt; are part of the theme, not a plugin&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Go themes are close enough to Jinja2 which I have been using for a couple of years now with Salt and Ansible&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;In general, Hugo is easier to maintain in git as the whole folder can be tracked, whereas with Hexo, the node_modules folder needs to be in .gitignore&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Hugo supports multiple categories per post, whereas Hexo doesn&amp;rsquo;t&lt;/p&gt;
&lt;/li&gt;
&lt;/ul&gt;</description>
    </item>
    
    <item>
      <title>Allowing Read-Only Access To A Git Repository Via HTTP</title>
      <link>/2017/04/allowing-read-only-access-to-a-git-repository-via-http/</link>
      <pubDate>Sun, 02 Apr 2017 00:00:00 +0000</pubDate>
      
      <guid>/2017/04/allowing-read-only-access-to-a-git-repository-via-http/</guid>
      <description>&lt;p&gt;Today I thought about a way to easily distribute an &lt;a href=&#34;https://www.ansible.com/&#34; target=&#34;_blank&#34; rel=&#34;noopener&#34;&gt;Ansible&lt;/a&gt; playbook. I thought about having a tgz file somewhere but I wanted read only access through HTTP in case I wanted to update clients that have already downloaded the content.&lt;/p&gt;
&lt;p&gt;The easiest solution I have found was using &lt;a href=&#34;https://git.zx2c4.com/cgit/about/&#34; target=&#34;_blank&#34; rel=&#34;noopener&#34;&gt;cgit&lt;/a&gt;. Simply run it with &lt;a href=&#34;https://www.nginx.com&#34; target=&#34;_blank&#34; rel=&#34;noopener&#34;&gt;nginx&lt;/a&gt; and &lt;a href=&#34;https://github.com/gnosek/fcgiwrap&#34; target=&#34;_blank&#34; rel=&#34;noopener&#34;&gt;fcgiwrap&lt;/a&gt;.&lt;/p&gt;</description>
    </item>
    
    <item>
      <title>Hexo Deploy With Babun</title>
      <link>/2017/03/hexo-deploy-with-babun/</link>
      <pubDate>Tue, 28 Mar 2017 00:00:00 +0000</pubDate>
      
      <guid>/2017/03/hexo-deploy-with-babun/</guid>
      <description>&lt;p&gt;I have recently switched to &lt;a href=&#34;http://babun.github.io/&#34; target=&#34;_blank&#34; rel=&#34;noopener&#34;&gt;Babun&lt;/a&gt;. It&amp;rsquo;s, IMHO, the best Windows shell so far. Combine it with &lt;a href=&#34;http://www.nurgo-software.com/products/tidytabs&#34; target=&#34;_blank&#34; rel=&#34;noopener&#34;&gt;TidyTabs&lt;/a&gt; and you have a very nice solution. But I was unable to get hexo deployment to work well with it so I had to use git bash. git bash would show a popup asking for my SSH key password while Babun wouldn&amp;rsquo;t.&lt;/p&gt;
&lt;p&gt;I found the solution &lt;a href=&#34;https://github.com/babun/babun/issues/290&#34; target=&#34;_blank&#34; rel=&#34;noopener&#34;&gt;here&lt;/a&gt;, just enable the SSH-agent plugin in zsh&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; style=&#34;color:#f8f8f2;background-color:#282a36;-moz-tab-size:4;-o-tab-size:4;tab-size:4;&#34;&gt;&lt;code class=&#34;language-css&#34; data-lang=&#34;css&#34;&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span style=&#34;white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f&#34;&gt;1&lt;/span&gt;&lt;span&gt;# &lt;span style=&#34;color:#ff79c6&#34;&gt;~/&lt;/span&gt;.&lt;span style=&#34;color:#50fa7b&#34;&gt;zshrc&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span style=&#34;white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f&#34;&gt;2&lt;/span&gt;&lt;span&gt;&lt;span style=&#34;color:#ff79c6&#34;&gt;plugins&lt;/span&gt;&lt;span style=&#34;color:#ff79c6&#34;&gt;=(&lt;/span&gt;&lt;span style=&#34;color:#ff79c6&#34;&gt;git&lt;/span&gt;&lt;span style=&#34;color:#ff79c6&#34;&gt;,&lt;/span&gt; &lt;span style=&#34;color:#ff79c6&#34;&gt;ssh-agent&lt;/span&gt;&lt;span style=&#34;color:#ff79c6&#34;&gt;)&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;You will just be prompted for the password of your SSH key when you start Babun.&lt;/p&gt;</description>
    </item>
    
    <item>
      <title>No Output From Drush</title>
      <link>/2017/03/no-output-from-drush/</link>
      <pubDate>Thu, 16 Mar 2017 00:00:00 +0000</pubDate>
      
      <guid>/2017/03/no-output-from-drush/</guid>
      <description>&lt;p&gt;A while back &lt;a href=&#34;https://github.com/drush-ops/drush&#34; target=&#34;_blank&#34; rel=&#34;noopener&#34;&gt;Drush&lt;/a&gt; stopped working on my servers and it would just return without doing anything. Today I decided to finally debug the issue. Turns out the FreeBSD port just fetches the &lt;a href=&#34;http://php.net/manual/en/phar.using.intro.php&#34; target=&#34;_blank&#34; rel=&#34;noopener&#34;&gt;Phar&lt;/a&gt; archive and installs it.&lt;/p&gt;
&lt;p&gt;After digging around I found the &lt;a href=&#34;http://stackoverflow.com/questions/19925526/using-cli-to-use-phar-file-not-working&#34; target=&#34;_blank&#34; rel=&#34;noopener&#34;&gt;following post&lt;/a&gt; which says that &lt;a href=&#34;https://suhosin.org/stories/index.html&#34; target=&#34;_blank&#34; rel=&#34;noopener&#34;&gt;Suhosin&lt;/a&gt; blocks Phar file execution. The fix turned out to be quite simple; Just edit the Suhosin ini file (in FreeBSD it&amp;rsquo;s /usr/local/etc/php/ext-30-suhosin.ini) and add the following after the &amp;ldquo;extension&amp;rdquo; line:&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; style=&#34;color:#f8f8f2;background-color:#282a36;-moz-tab-size:4;-o-tab-size:4;tab-size:4;&#34;&gt;&lt;code class=&#34;language-plaintext&#34; data-lang=&#34;plaintext&#34;&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span style=&#34;white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f&#34;&gt;1&lt;/span&gt;&lt;span&gt;suhosin.executor.include.whitelist = phar
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;And you’re back in business :)&lt;/p&gt;</description>
    </item>
    
    <item>
      <title>New Domain, Same Great Content</title>
      <link>/2016/11/new-domain-same-great-content/</link>
      <pubDate>Wed, 23 Nov 2016 10:21:45 +0000</pubDate>
      
      <guid>/2016/11/new-domain-same-great-content/</guid>
      <description>&lt;p&gt;I&amp;rsquo;ve been wanting to get shami.blog ever since the generic TLDs have been introduced.&lt;/p&gt;
&lt;p&gt;Now I finally have it, welcome to the new domain :).&lt;/p&gt;</description>
    </item>
    
    <item>
      <title>XBOX LIVE With pfSense</title>
      <link>/2016/10/xbox-live-with-pfsense/</link>
      <pubDate>Fri, 07 Oct 2016 06:14:25 +0000</pubDate>
      
      <guid>/2016/10/xbox-live-with-pfsense/</guid>
      <description>&lt;p&gt;A couple of months ago I switched from running &lt;a href=&#34;https://openwrt.org/&#34; target=&#34;_blank&#34; rel=&#34;noopener&#34;&gt;OpenWRT&lt;/a&gt; on a &lt;a href=&#34;http://www.tp-link.com/en/products/details/cat-9_TL-WDR4300.html&#34; target=&#34;_blank&#34; rel=&#34;noopener&#34;&gt;TL-WDR4300&lt;/a&gt; to running &lt;a href=&#34;https://pfsense.org&#34; target=&#34;_blank&#34; rel=&#34;noopener&#34;&gt;pfSense&lt;/a&gt; on a &lt;a href=&#34;http://store.netgate.com/ADI/RCC-VE-2440.aspx&#34; target=&#34;_blank&#34; rel=&#34;noopener&#34;&gt;Netgate RCC-VE 2440&lt;/a&gt;. Not that OpenWRT is bad, it&amp;rsquo;s only because I&amp;rsquo;m a big fan of FreeBSD and I&amp;rsquo;ve been wanting to run a similar setup ever since I discovered custom firmware like DD-WRT and afterwards m0n0wall and &lt;a href=&#34;http://soekris.com/&#34; target=&#34;_blank&#34; rel=&#34;noopener&#34;&gt;Soekris&lt;/a&gt;. When I finally decided to get the hardware I thought Netgate had a better offering and I went for it.&lt;/p&gt;</description>
    </item>
    
    <item>
      <title>Hexo Photo Gallery</title>
      <link>/2016/09/hexo-photo-gallery/</link>
      <pubDate>Tue, 27 Sep 2016 17:14:07 +0000</pubDate>
      
      <guid>/2016/09/hexo-photo-gallery/</guid>
      <description>&lt;p&gt;So while I was migrating my data over from wordpress there were a few posts with photo galleries. The options I had were to write each photo gallery by hand or use the photos array in the front matter. What I did was change the photos array a bit and added the following code as a module&lt;/p&gt;</description>
    </item>
    
    <item>
      <title>Responsive Youtube Videos With Hexo</title>
      <link>/2016/09/responsive-youtube-videos-with-hexo/</link>
      <pubDate>Tue, 27 Sep 2016 14:05:00 +0000</pubDate>
      
      <guid>/2016/09/responsive-youtube-videos-with-hexo/</guid>
      <description>&lt;p&gt;&lt;strong&gt;Update:&lt;/strong&gt; I have since moved to &lt;a href=&#34;https://gohugo.io&#34; target=&#34;_blank&#34; rel=&#34;noopener&#34;&gt;Hugo&lt;/a&gt; with &lt;a href=&#34;https://tailwindcss.com/&#34; target=&#34;_blank&#34; rel=&#34;noopener&#34;&gt;Tailwind CSS&lt;/a&gt; and not sure if this code is still valid.&lt;/p&gt;
&lt;p&gt;So now that I have finally finished fixing my content migration issues I can get back to writing.&lt;/p&gt;
&lt;p&gt;While checking my old posts I noticed embedded using the {% youtube %} tag looked like this:&lt;/p&gt;</description>
    </item>
    
    <item>
      <title>Fixing Certificate Verification Error After Upgrading to PHP 5.6</title>
      <link>/2016/09/fixing-certificate-verification-error-after-upgrading-to-php-5.6/</link>
      <pubDate>Sun, 25 Sep 2016 14:09:14 +0000</pubDate>
      
      <guid>/2016/09/fixing-certificate-verification-error-after-upgrading-to-php-5.6/</guid>
      <description>&lt;p&gt;Since PHP 5.5 reached it&amp;rsquo;s end of life a while back I started upgrading my servers to PHP 5.6. This has caused some issues but the worst was:&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; style=&#34;color:#f8f8f2;background-color:#282a36;-moz-tab-size:4;-o-tab-size:4;tab-size:4;&#34;&gt;&lt;code class=&#34;language-plaintext&#34; data-lang=&#34;plaintext&#34;&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span style=&#34;white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f&#34;&gt;1&lt;/span&gt;&lt;span&gt;error:14090086:SSL routines:SSL3_GET_SERVER_CERTIFICATE:certificate verify failed
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;</description>
    </item>
    
    <item>
      <title>Booting BSD Router Project On The Netgate RCC-VE 2440</title>
      <link>/2016/06/booting-bsd-router-project-on-the-netgate-rcc-ve-2440/</link>
      <pubDate>Thu, 30 Jun 2016 09:22:04 +0000</pubDate>
      
      <guid>/2016/06/booting-bsd-router-project-on-the-netgate-rcc-ve-2440/</guid>
      <description>&lt;p&gt;I have recently acquired a &lt;a href=&#34;http://store.netgate.com/ADI/RCC-VE-2440.aspx&#34; target=&#34;_blank&#34; rel=&#34;noopener&#34;&gt;Netgate RCC-VE 2440&lt;/a&gt; which I intend to use as a router/firewall for my house. But I thought I might as well play with it a little before I do so. One of the things I wanted to test was the &lt;a href=&#34;http://bsdrp.net/&#34; target=&#34;_blank&#34; rel=&#34;noopener&#34;&gt;BSD Router Project&lt;/a&gt; to have in place of one of the routers we have here at work but I couldn&amp;rsquo;t get it to boot, it would always free with just a &amp;ldquo;\&amp;rdquo;.&lt;/p&gt;</description>
    </item>
    
    <item>
      <title>FreeBSD SCP Chroot</title>
      <link>/2016/06/freebsd-scp-chroot/</link>
      <pubDate>Wed, 29 Jun 2016 08:09:39 +0000</pubDate>
      
      <guid>/2016/06/freebsd-scp-chroot/</guid>
      <description>&lt;p&gt;Quick one here, if you want to create an SCP only user on FreeBSD just do the following&lt;/p&gt;</description>
    </item>
    
    <item>
      <title>Welcome To My New Blog</title>
      <link>/2016/06/welcome-to-my-new-blog/</link>
      <pubDate>Tue, 14 Jun 2016 23:11:28 +0000</pubDate>
      
      <guid>/2016/06/welcome-to-my-new-blog/</guid>
      <description>&lt;p&gt;&lt;strong&gt;Update:&lt;/strong&gt; I have since migrated to &lt;a href=&#34;http://gohugo.io/&#34; target=&#34;_blank&#34; rel=&#34;noopener&#34;&gt;Hugo&lt;/a&gt; which seems to be better maintained and generally easier for me to update. I have also started using &lt;a href=&#34;http://www.texts.io/&#34; target=&#34;_blank&#34; rel=&#34;noopener&#34;&gt;Texts&lt;/a&gt; more for editing Markdown&lt;/p&gt;
&lt;p&gt;I haven&amp;rsquo;t been very active on this blog over the years, one of the reasons was &lt;a href=&#34;https://wordpress.org/&#34; target=&#34;_blank&#34; rel=&#34;noopener&#34;&gt;Wordpress&lt;/a&gt; itself; As nice as it is, I grew sick of updates always breaking something. Another thing that always made me feel uneasy was the email I got every once and a while from my blog telling me it updated itself. True, this is good when people ignore their blogs but I didn&amp;rsquo;t feel in control of my own blog any more and sometimes I wouldn&amp;rsquo;t have enough time to debug any plugins that broke when the blog decided it was time for me to upgrade.&lt;/p&gt;</description>
    </item>
    
    <item>
      <title>Fixing Incorrect Encoding In MySQL Databases</title>
      <link>/2016/05/fixing-incorrect-encoding-in-mysql-databases/</link>
      <pubDate>Thu, 26 May 2016 12:36:45 +0000</pubDate>
      
      <guid>/2016/05/fixing-incorrect-encoding-in-mysql-databases/</guid>
      <description>&lt;p&gt;I have recently faced an issue while migrating MySQL to a new server where non-English characters show up as gibberish. This was because UTF-8 text was saved in columns encoded as latin1. The solution is simple, convert the field into a BLOB and then back to text with the required type and encoding.&lt;/p&gt;</description>
    </item>
    
    <item>
      <title>Real-Time Network Traffic Stats On FreeBSD</title>
      <link>/2016/05/real-time-network-traffic-stats-on-freebsd/</link>
      <pubDate>Sun, 08 May 2016 08:17:00 +0000</pubDate>
      
      <guid>/2016/05/real-time-network-traffic-stats-on-freebsd/</guid>
      <description>Quick one here, to get real-time traffic stats on FreeBSD just run the following command
1systat -ifstat </description>
    </item>
    
    <item>
      <title>Copying Content From A Word Document To A CKEDitor</title>
      <link>/2016/05/copying-content-from-a-word-document-to-a-ckeditor/</link>
      <pubDate>Tue, 03 May 2016 02:42:13 +0000</pubDate>
      
      <guid>/2016/05/copying-content-from-a-word-document-to-a-ckeditor/</guid>
      <description>&lt;p&gt;So I&amp;rsquo;ve been assisting a customer with their website and I was helping them with some data entry. Most of the content they sent me was in MS Word format. Copying the text directly to Drupal&amp;rsquo;s CKEditor had all formatting messed up so I was copying to notepad, copying from there to Drupal and then formatting manually. This turned out to be a nightmare when I had to copy 10 tables in a single page.&lt;/p&gt;</description>
    </item>
    
    <item>
      <title>&#39;apt-get update&#39; Failing After A Fresh Ubuntu 12.04 Installation</title>
      <link>/2016/05/apt-get-update-failing-after-a-fresh-ubuntu-12.04-installation/</link>
      <pubDate>Mon, 02 May 2016 10:51:09 +0000</pubDate>
      
      <guid>/2016/05/apt-get-update-failing-after-a-fresh-ubuntu-12.04-installation/</guid>
      <description>&lt;p&gt;So I&amp;rsquo;m currently working with a customer that requires Ubuntu 12.04 for their servers since their apps were built and tested on that version, so every new install I run into the following issue&lt;/p&gt;</description>
    </item>
    
    <item>
      <title>Adding &#39;on behalf of&#39; To Outgoing Emails With Postfix</title>
      <link>/2016/04/adding-on-behalf-of-to-outgoing-emails-with-postfix/</link>
      <pubDate>Thu, 28 Apr 2016 13:15:18 +0000</pubDate>
      
      <guid>/2016/04/adding-on-behalf-of-to-outgoing-emails-with-postfix/</guid>
      <description>&lt;p&gt;I used to be a big fan of &lt;a href=&#34;https://www.mandrillapp.com&#34; target=&#34;_blank&#34; rel=&#34;noopener&#34;&gt;Mandrill&lt;/a&gt;. I used to use it as an email gateway for my personal servers. It&amp;rsquo;s easy to use and it&amp;rsquo;s cheap (Or free if you send less than 12,000 emails per month). I liked not having to setup &lt;a href=&#34;https://en.wikipedia.org/wiki/Sender_Policy_Framework&#34; target=&#34;_blank&#34; rel=&#34;noopener&#34;&gt;SPF&lt;/a&gt;, &lt;a href=&#34;https://en.wikipedia.org/wiki/DomainKeys_Identified_Mail&#34; target=&#34;_blank&#34; rel=&#34;noopener&#34;&gt;DKIM&lt;/a&gt;, and &lt;a href=&#34;https://en.wikipedia.org/wiki/DMARC&#34; target=&#34;_blank&#34; rel=&#34;noopener&#34;&gt;DMARC&lt;/a&gt; for my small setups. Even for smaller clients I wouldn&amp;rsquo;t bother with that and just use Mandrill. Emails just show up with the following sender&lt;/p&gt;</description>
    </item>
    
    <item>
      <title>Randomize Source IP Addresses With Postfix</title>
      <link>/2016/04/randomize-source-ip-addresses-with-postfix/</link>
      <pubDate>Wed, 27 Apr 2016 09:08:41 +0000</pubDate>
      
      <guid>/2016/04/randomize-source-ip-addresses-with-postfix/</guid>
      <description>&lt;p&gt;Sometimes when you have a high number of outgoing messages services like Yahoo! and Gmail might block you. To prevent that you need to distribute your outgoing emails through a set of IPs. I used &lt;a href=&#34;http://www.haproxy.org/&#34; target=&#34;_blank&#34; rel=&#34;noopener&#34;&gt;HAProxy&lt;/a&gt; for that along with a number of &lt;a href=&#34;http://freebsd.org&#34; target=&#34;_blank&#34; rel=&#34;noopener&#34;&gt;FreeBSD&lt;/a&gt; Jails. That solution is a bit tedious, even though after I started using &lt;a href=&#34;http://saltstack.com&#34; target=&#34;_blank&#34; rel=&#34;noopener&#34;&gt;Salt&lt;/a&gt; things became a bit easier it was still too complicated for my taste.&lt;/p&gt;</description>
    </item>
    
    <item>
      <title>Corrupted image_captcha In Drupal</title>
      <link>/2016/04/corrupted-image_captcha-in-drupal/</link>
      <pubDate>Sat, 23 Apr 2016 22:46:54 +0000</pubDate>
      
      <guid>/2016/04/corrupted-image_captcha-in-drupal/</guid>
      <description>&lt;p&gt;I have noticed that the image_captcha Drupal module has been showing empty images on some of the websites I administer. When checking the cause of this I tried to view the image directly and got:&lt;/p&gt;</description>
    </item>
    
    <item>
      <title>Moving A Magento Instance To A New Domain</title>
      <link>/2016/04/moving-a-magento-instance-to-a-new-domain/</link>
      <pubDate>Thu, 21 Apr 2016 13:21:20 +0000</pubDate>
      
      <guid>/2016/04/moving-a-magento-instance-to-a-new-domain/</guid>
      <description>&lt;p&gt;Quick one here, when you move a Magento instance to a new domain or URL it will keep redirecting to the old address. There is a quick fix&lt;/p&gt;</description>
    </item>
    
    <item>
      <title>Bootstrapping PKGNG From Your Own Repository</title>
      <link>/2015/03/bootstrapping-pkgng-from-your-own-repository/</link>
      <pubDate>Fri, 13 Mar 2015 07:47:42 +0000</pubDate>
      
      <guid>/2015/03/bootstrapping-pkgng-from-your-own-repository/</guid>
      <description>&lt;p&gt;I&amp;rsquo;ve been building my own &lt;a href=&#34;https://wiki.freebsd.org/pkgng&#34; target=&#34;_blank&#34; rel=&#34;noopener&#34;&gt;PKGNG&lt;/a&gt; repositories with &lt;a href=&#34;https://github.com/freebsd/poudriere&#34; target=&#34;_blank&#34; rel=&#34;noopener&#34;&gt;Poudriere&lt;/a&gt; lately. Some of the benefits include:&lt;/p&gt;</description>
    </item>
    
    <item>
      <title>HOWTO: Small Mail Server With Salt, Dovecot, And OpenSMTPD</title>
      <link>/2015/01/howto-small-mail-server-with-salt-dovecot-and-opensmtpd/</link>
      <pubDate>Mon, 26 Jan 2015 17:25:10 +0000</pubDate>
      
      <guid>/2015/01/howto-small-mail-server-with-salt-dovecot-and-opensmtpd/</guid>
      <description>&lt;p&gt;&lt;strong&gt;Update:&lt;/strong&gt; Sadly OpenSMTPD version 5.4.4 on FreeBSD broke the passwd table, I&amp;rsquo;m checking the Gills to get this fixed.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Update2:&lt;/strong&gt; I am no longer using OpenSMTPD. I&amp;rsquo;ve switched to &lt;a href=&#34;https://wiki.mageia.org/en/Dma_Dragonfly_Mail_Agent&#34; target=&#34;_blank&#34; rel=&#34;noopener&#34;&gt;dma&lt;/a&gt; for servers that only need to send emails and went back to Postfix for servers that require an actual MTA. Not that OpenSMTPD is bad, I just prefer Postfix. I might reconcider in the future when OpenSMTPD is more mature.&lt;/p&gt;</description>
    </item>
    
    <item>
      <title>Perl One-liner To Generate htpasswd Passwords</title>
      <link>/2014/12/perl-one-liner-to-generate-htpasswd-passwords/</link>
      <pubDate>Mon, 29 Dec 2014 01:59:00 +0000</pubDate>
      
      <guid>/2014/12/perl-one-liner-to-generate-htpasswd-passwords/</guid>
      <description>Update: An easier way to do it that doesn&amp;rsquo;t require you to install anything special (Works with nginx)
1openssl passwd -apr1 Instead of having to install Apache or use an untrusted website just to generate the required password, you can use the following perl one liner
1perl -e &amp;#39;chomp($password=&amp;lt;&amp;gt;);chomp($salt=`tr -dc A-Za-z0-9 &amp;lt;/dev/urandom | head -c 1024`); print crypt($password,$salt).&amp;#34;\n&amp;#34;;&amp;#39; </description>
    </item>
    
    <item>
      <title>Rrdtool Showing Squares Instead Of Letters In Graphs</title>
      <link>/2014/12/rrdtool-showing-squares-instead-of-letters-in-graphs/</link>
      <pubDate>Wed, 10 Dec 2014 15:08:38 +0000</pubDate>
      
      <guid>/2014/12/rrdtool-showing-squares-instead-of-letters-in-graphs/</guid>
      <description>&lt;p&gt;Tried installing Cacti on FreeBSD today and got the following:&lt;/p&gt;</description>
    </item>
    
    <item>
      <title>Using Your Own Router With The New @orangejo Modem</title>
      <link>/2014/12/using-your-own-router-with-the-new-@orangejo-modem/</link>
      <pubDate>Wed, 03 Dec 2014 12:11:11 +0000</pubDate>
      
      <guid>/2014/12/using-your-own-router-with-the-new-@orangejo-modem/</guid>
      <description>&lt;p&gt;&lt;strong&gt;Update:&lt;/strong&gt; I have since moved to &lt;a href=&#34;http://www.damamax.jo&#34; target=&#34;_blank&#34; rel=&#34;noopener&#34;&gt;Damamax&lt;/a&gt; and am &lt;strong&gt;MUCH&lt;/strong&gt; happier with their service. Their network is more reliable, faster, and their support staff is wonderful. It&amp;rsquo;s a bit more expensive but considering the advantages I highly recommend switching if they cover your area.&lt;/p&gt;</description>
    </item>
    
    <item>
      <title>Recursively Upgrade Package Dependencies With pkgng</title>
      <link>/2014/11/recursively-upgrade-package-dependencies-with-pkgng/</link>
      <pubDate>Tue, 11 Nov 2014 12:05:36 +0000</pubDate>
      
      <guid>/2014/11/recursively-upgrade-package-dependencies-with-pkgng/</guid>
      <description>&lt;p&gt;&lt;strong&gt;Update:&lt;/strong&gt; I now just use &lt;code&gt;pkg upgrade&lt;/code&gt; since I have better control over my package repo and it is a much better way to upgrade.&lt;/p&gt;</description>
    </item>
    
    <item>
      <title>Simulating Cron Runs On The Command Line</title>
      <link>/2014/10/simulating-cron-runs-on-the-command-line/</link>
      <pubDate>Wed, 15 Oct 2014 10:23:31 +0000</pubDate>
      
      <guid>/2014/10/simulating-cron-runs-on-the-command-line/</guid>
      <description>&lt;p&gt;Does this sound familiar?&lt;/p&gt;
&lt;p&gt;You write a new script, start it from the command line, everything works properly, you add that script to your crontab then go home, the next day, nothing. So you end up setting up a schedule to run this script the next minute, the script fails, you change something, update the schedule, rinse and repeat.&lt;/p&gt;</description>
    </item>
    
    <item>
      <title>ADSL In Jordan</title>
      <link>/2011/08/adsl-in-jordan/</link>
      <pubDate>Wed, 03 Aug 2011 20:36:54 +0000</pubDate>
      
      <guid>/2011/08/adsl-in-jordan/</guid>
      <description>&lt;p&gt;I&amp;rsquo;ve heard various complaints from a few friends of mine about the status of Internet connectivity in Jordan, especially ADSL. So I&amp;rsquo;m writing this article to explain what is going on and why ADSL the way it is, but first, some history.&lt;/p&gt;
&lt;p&gt;Back in pre-broadband times, people used dial-up modems to connect to the Internet. The name &amp;ldquo;modem&amp;rdquo; came from the fact that data was being modulated (Turned from digital to analog form) to be sent over the phone lines, and demodulated (Turned from analog to digital form) at the other end. This utilized the same frequencies used for regular phone conversations, this is why you could hear the weird sounds if you picked the phone up while being connected to the Internet. Given the relatively narrow frequency range used by phones this technology was limited to about 56Kbps, the best speed I got was back in 2003 which was about 5KB/s for my downloads, and that was considered fast at the time.&lt;/p&gt;</description>
    </item>
    
    <item>
      <title>First Thoughts of @ZainJo&#39;s HSPA&#43; Service</title>
      <link>/2011/04/first-thoughts-of-@zainjos-hspa-service/</link>
      <pubDate>Tue, 05 Apr 2011 23:18:27 +0000</pubDate>
      
      <guid>/2011/04/first-thoughts-of-@zainjos-hspa-service/</guid>
      <description>&lt;p&gt;Lately ISPs have been bombarding us with all sorts of Internet related ads, promising &amp;ldquo;high speeds&amp;rdquo; or &amp;ldquo;unlimited downloads&amp;rdquo;. Osama Hajjaj said it best with this comic:&lt;/p&gt;</description>
    </item>
    
    <item>
      <title>Using The @ZainJo HSPA Dongle With Ubuntu Linux</title>
      <link>/2011/04/using-the-@zainjo-hspa-dongle-with-ubuntu-linux/</link>
      <pubDate>Mon, 04 Apr 2011 22:35:17 +0000</pubDate>
      
      <guid>/2011/04/using-the-@zainjo-hspa-dongle-with-ubuntu-linux/</guid>
      <description>&lt;p&gt;After my experience with Zain&amp;rsquo;s WiMAX, I didn&amp;rsquo;t think I&amp;rsquo;d be using their service again. But Zain gave me a 21Mbps dongle (The Huawei E367) for free as to see how much better the new service is and I thought I might as well try it. I&amp;rsquo;ll be writing on my experience with the service in a separate post inshalla.&lt;/p&gt;</description>
    </item>
    
    <item>
      <title>Do You Need A Social Media Detox?</title>
      <link>/2011/03/do-you-need-a-social-media-detox/</link>
      <pubDate>Wed, 30 Mar 2011 12:18:35 +0000</pubDate>
      
      <guid>/2011/03/do-you-need-a-social-media-detox/</guid>
      <description>To all those social media junkies out there.
Enjoy :)</description>
    </item>
    
    <item>
      <title>Tales Of A Disgruntled @ZainJo Customer</title>
      <link>/2011/03/tales-of-a-disgruntled-@zainjo-customer/</link>
      <pubDate>Tue, 29 Mar 2011 21:17:46 +0000</pubDate>
      
      <guid>/2011/03/tales-of-a-disgruntled-@zainjo-customer/</guid>
      <description>&lt;p&gt;I&amp;rsquo;ve been meaning to write this for a few weeks but was very busy, I finally got the time to do so.&lt;/p&gt;
&lt;p&gt;If you know me, you&amp;rsquo;ll probably know I&amp;rsquo;ve been struggling with my Internet connectivity since 2005. I&amp;rsquo;ve been begging Orange (Jordan Telecom Group at the time) for anything faster than 512Kbps, but I was always told that my area was not covered. I live in an area filled with students who don&amp;rsquo;t have phone lines, and the very few people who use DSL here are content with the speeds Orange was offering. So Orange did not bother upgrading my area because it wasn&amp;rsquo;t worth it.&lt;/p&gt;</description>
    </item>
    
    <item>
      <title>To All My Readers, I&#39;m Sorry</title>
      <link>/2011/03/to-all-my-readers-im-sorry/</link>
      <pubDate>Tue, 22 Mar 2011 22:15:04 +0000</pubDate>
      
      <guid>/2011/03/to-all-my-readers-im-sorry/</guid>
      <description>Hello everybody,
I know it&amp;rsquo;s been a while since I last wrote anything. I started a new job and it&amp;rsquo;s been crazy busy the past few months. And for some reason the blog stopped sending notification emails so I thought nobody read anything here.
I&amp;rsquo;ve upgraded the blog to the latest WordPress release, and hopefully I&amp;rsquo;ll be writing more stuff here.
Good night</description>
    </item>
    
    <item>
      <title>The Best Use Of An iPad</title>
      <link>/2010/05/the-best-use-of-an-ipad/</link>
      <pubDate>Thu, 13 May 2010 08:15:17 +0000</pubDate>
      
      <guid>/2010/05/the-best-use-of-an-ipad/</guid>
      <description>&lt;p&gt;Best use of an iPad, ever. Well, other than blending it, maybe :D&lt;/p&gt;</description>
    </item>
    
    <item>
      <title>Resident Evil Afterlife LITERAL Trailer</title>
      <link>/2010/05/resident-evil-afterlife-literal-trailer/</link>
      <pubDate>Tue, 11 May 2010 07:42:44 +0000</pubDate>
      
      <guid>/2010/05/resident-evil-afterlife-literal-trailer/</guid>
      <description>&lt;p&gt;Found this today on the web and loved it :)&lt;/p&gt;</description>
    </item>
    
    <item>
      <title>Is Social Media A Fad?</title>
      <link>/2010/05/is-social-media-a-fad/</link>
      <pubDate>Mon, 10 May 2010 07:27:43 +0000</pubDate>
      
      <guid>/2010/05/is-social-media-a-fad/</guid>
      <description>&lt;p&gt;Interesting video, enjoy&lt;/p&gt;</description>
    </item>
    
    <item>
      <title>Now This Is What I Call A Good Commercial</title>
      <link>/2010/05/now-this-is-what-i-call-a-good-commercial/</link>
      <pubDate>Thu, 06 May 2010 07:13:08 +0000</pubDate>
      
      <guid>/2010/05/now-this-is-what-i-call-a-good-commercial/</guid>
      <description>&lt;p&gt;Check out this commercial for Google Chrome, plain awesome&lt;/p&gt;</description>
    </item>
    
    <item>
      <title>Ubuntu 10.04</title>
      <link>/2010/05/ubuntu-10.04/</link>
      <pubDate>Sun, 02 May 2010 08:29:50 +0000</pubDate>
      
      <guid>/2010/05/ubuntu-10.04/</guid>
      <description>&lt;p&gt;When Ubuntu 9.10 came out I was very eager to try it, but sadly I was very disappointed. So when I was downloading 10.04 I wasn&amp;rsquo;t really expecting anything. I&amp;rsquo;m glad I was wrong.&lt;/p&gt;</description>
    </item>
    
    <item>
      <title>Delete All Messages From A POP3 Account</title>
      <link>/2010/04/delete-all-messages-from-a-pop3-account/</link>
      <pubDate>Wed, 21 Apr 2010 12:52:54 +0000</pubDate>
      
      <guid>/2010/04/delete-all-messages-from-a-pop3-account/</guid>
      <description>&lt;p&gt;Here at the office, we host a few domains with &lt;a href=&#34;http://www.verio.com/&#34; target=&#34;_blank&#34; rel=&#34;noopener&#34;&gt;Verio&lt;/a&gt;. Not my choice, and I&amp;rsquo;m not happy with it. We also host some mailboxes for one of those domains with Verio. I got a message from Verio support saying the mailboxes for that domain are occupying around 1GB of space, and that we need to delete some of them.&lt;/p&gt;</description>
    </item>
    
    <item>
      <title>Blogging From A Mac</title>
      <link>/2010/04/blogging-from-a-mac/</link>
      <pubDate>Sat, 17 Apr 2010 20:11:40 +0000</pubDate>
      
      <guid>/2010/04/blogging-from-a-mac/</guid>
      <description>&lt;p&gt;My dear friend Bandar offered me a great deal on his old Macbook Pro. I&amp;rsquo;ve been wanting to try out MacOS for ages and thought this would be the perfect chance for it.&lt;/p&gt;</description>
    </item>
    
    <item>
      <title>Speeding up Firefox under Ubuntu</title>
      <link>/2010/02/speeding-up-firefox-under-ubuntu/</link>
      <pubDate>Sun, 14 Feb 2010 11:16:08 +0000</pubDate>
      
      <guid>/2010/02/speeding-up-firefox-under-ubuntu/</guid>
      <description>&lt;p&gt;Ever wonder why browsing under Ubuntu is slower than Windows even on the same network? Well, it has to do with Ubuntu enabling IPv6 by default. This means Ubuntu will try IPv4 only after IPv6 times out. Also, Firefox comes built with Pango by default which makes it slower than it should be. I&amp;rsquo;ve fixed that on Karmic Koala, other versions should be similar. Here&amp;rsquo;s how to do it:&lt;/p&gt;</description>
    </item>
    
    <item>
      <title>Only In Jordan</title>
      <link>/2010/02/only-in-jordan/</link>
      <pubDate>Sun, 07 Feb 2010 13:08:24 +0000</pubDate>
      
      <guid>/2010/02/only-in-jordan/</guid>
      <description>Hi guys, I saw this elevator and thought I had to take a picture. The residents put the elevator&amp;rsquo;s call button this high so children won&amp;rsquo;t play with it.
Enjoy :)</description>
    </item>
    
    <item>
      <title>Transferring Your Arcade Games To A New Xbox 360</title>
      <link>/2009/12/transferring-your-arcade-games-to-a-new-xbox-360/</link>
      <pubDate>Fri, 25 Dec 2009 15:39:25 +0000</pubDate>
      
      <guid>/2009/12/transferring-your-arcade-games-to-a-new-xbox-360/</guid>
      <description>&lt;p&gt;It&amp;rsquo;s really frustrating when your Xbox fails. Let&amp;rsquo;s say you were lucky enough to still have your console under warranty, or decide to buy a replacement. But what happens to all those arcade games you&amp;rsquo;ve spent a fortune on?&lt;/p&gt;</description>
    </item>
    
    <item>
      <title>Cleaning Up Your Boot Partition With Ubuntu</title>
      <link>/2009/12/cleaning-up-your-boot-partition-with-ubuntu/</link>
      <pubDate>Fri, 25 Dec 2009 15:20:51 +0000</pubDate>
      
      <guid>/2009/12/cleaning-up-your-boot-partition-with-ubuntu/</guid>
      <description>&lt;p&gt;If you haven&amp;rsquo;t reinstalled Ubuntu in a while, the /boot partition will eventually fill up with all the updated kernels, and you&amp;rsquo;ll get an error when trying update.&lt;/p&gt;</description>
    </item>
    
    <item>
      <title>My Experience With The Motorola CPEo 400 Wimax CPE</title>
      <link>/2009/11/my-experience-with-the-motorola-cpeo-400-wimax-cpe/</link>
      <pubDate>Tue, 10 Nov 2009 11:05:35 +0000</pubDate>
      
      <guid>/2009/11/my-experience-with-the-motorola-cpeo-400-wimax-cpe/</guid>
      <description>&lt;p&gt;Where I live we have no proper DSL (512Kbps max), GSM signals are weak. Sometimes I have to stick my head out of the window just to be able to make a call. Even when I got my Wimax account the indoor CPE kept disconnecting every few minutes. I finally managed to get my hands on an outdoor CPE which made things much better. Typical for someone living at the edge of the world (West Amman).&lt;/p&gt;
&lt;p&gt;The Motorola CPEs act as network gateways, they connect to the Wimax network and do NATing for you. That&amp;rsquo;s nice for a home network, less stuff to configure and less clutter.&lt;/p&gt;</description>
    </item>
    
    <item>
      <title>Fixing Bandar&#39;s Xbox 360</title>
      <link>/2009/11/fixing-bandars-xbox-360/</link>
      <pubDate>Wed, 04 Nov 2009 13:24:54 +0000</pubDate>
      
      <guid>/2009/11/fixing-bandars-xbox-360/</guid>
      <description>&lt;p&gt;A few days ago my friend, Bandar, was disappointed because his Xbox 360 was freezing up. After a few Google searches we realized that this is the prequel to the famous RRoD (Red Ring of Death).&lt;/p&gt;
&lt;p&gt;Since we didn&amp;rsquo;t want to see an RRoD on Bander&amp;rsquo;s precious Xbox, we decided to take it apart and fix the heat sink. Midway we decided to document the endeavor. Here you go&lt;/p&gt;</description>
    </item>
    
    <item>
      <title>My Internet Experience</title>
      <link>/2009/10/my-internet-experience/</link>
      <pubDate>Mon, 26 Oct 2009 20:22:50 +0000</pubDate>
      
      <guid>/2009/10/my-internet-experience/</guid>
      <description>&lt;p&gt;&lt;strong&gt;Update: This article is no longer valid, you’ll find my updated experience with Zain &lt;a href=&#34;/2011/03/tales-of-a-disgruntled-@zainjo-customer//&#34; title=&#34;Tales of a disgruntled @ZainJo customer&#34;&gt;here&lt;/a&gt;&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;I finally got fed up with my Orange DSL line back in April. It&amp;rsquo;s 2009 and they still can&amp;rsquo;t offer me anything faster than 512Kbps which was very irritating. I wish I could say the service was stable. Sadly it was expensive, disconnected on regular basis, customer care loved telling me the problem was due to internal wiring, and had a 3GB download limit. I could have upgraded to the new DSL in one bill plan but that incurred a 23JD switch fee and a 1 year commitment, which I wasn&amp;rsquo;t ready to commit to. That being said, the download quota for the 512Kbps account was 7GB, which isn&amp;rsquo;t much better. What annoyed me the most was the fact the bill was different every month. All of that was very far from their ads saying &amp;ldquo;Internet = Life&amp;rdquo; and the ads with a big &amp;ldquo;8&amp;rdquo;, meaning 8Mpbs. It felt like Orange was taunting me, saying &amp;ldquo;We have high speed Internet, but not for the likes of you&amp;rdquo;.&lt;/p&gt;</description>
    </item>
    
    <item>
      <title>My Brother On TV</title>
      <link>/2009/10/my-brother-on-tv/</link>
      <pubDate>Tue, 06 Oct 2009 23:08:33 +0000</pubDate>
      
      <guid>/2009/10/my-brother-on-tv/</guid>
      <description>&lt;p&gt;My brother, Ali, was on TV earlier today. MBC is one of the most popular TV channels in the Arab world.&lt;/p&gt;</description>
    </item>
    
    <item>
      <title>Congratulations Ahmad</title>
      <link>/2009/09/congratulations-ahmad/</link>
      <pubDate>Tue, 29 Sep 2009 08:23:49 +0000</pubDate>
      
      <guid>/2009/09/congratulations-ahmad/</guid>
      <description>Yesterday was one of my best friends&amp;rsquo; wedding day. I wish you and Farah the best of luck and all the prosperity life can offer. Congratulations.</description>
    </item>
    
    <item>
      <title>Nostalgia</title>
      <link>/2009/09/nostalgia/</link>
      <pubDate>Tue, 08 Sep 2009 09:04:32 +0000</pubDate>
      
      <guid>/2009/09/nostalgia/</guid>
      <description>&lt;p&gt;I saw the trailer for Dirt2 today&lt;/p&gt;</description>
    </item>
    
    <item>
      <title>VMware Remote Console Firefox Plug-in And Arrow Keys</title>
      <link>/2009/06/vmware-remote-console-firefox-plug-in-and-arrow-keys/</link>
      <pubDate>Tue, 30 Jun 2009 09:11:48 +0000</pubDate>
      
      <guid>/2009/06/vmware-remote-console-firefox-plug-in-and-arrow-keys/</guid>
      <description>&lt;p&gt;VMware remote console was working properly for me when I was using Ubuntu Hardy. After upgrading to Jaunty the arrow keys stopped working inside the remote console. Seems some people face this problem even under windows.&lt;/p&gt;</description>
    </item>
    
    <item>
      <title>Lighttpd, Joomla, And Clean URLs</title>
      <link>/2009/06/lighttpd-joomla-and-clean-urls/</link>
      <pubDate>Mon, 22 Jun 2009 13:48:26 +0000</pubDate>
      
      <guid>/2009/06/lighttpd-joomla-and-clean-urls/</guid>
      <description>&lt;p&gt;So I&amp;rsquo;m working on a new web server but I don&amp;rsquo;t want to use Apache since it&amp;rsquo;s a virtual machine. Had some trouble with the rewirte rules but I think I got them&lt;/p&gt;</description>
    </item>
    
    <item>
      <title>Microsoft Community Night</title>
      <link>/2009/05/microsoft-community-night/</link>
      <pubDate>Sat, 30 May 2009 08:23:00 +0000</pubDate>
      
      <guid>/2009/05/microsoft-community-night/</guid>
      <description>&lt;p&gt;So I went to a community night hosted at the Microsoft Innovation Center here in Amman with my friend Bandar which he told me was interesting. Even though I knew I was going to be the only non-Microsoft guy there I thought I should check it out.&lt;/p&gt;</description>
    </item>
    
    <item>
      <title>Throttling Outgoing Emails To Certain Domains With Postfix</title>
      <link>/2009/03/throttling-outgoing-emails-to-certain-domains-with-postfix/</link>
      <pubDate>Sun, 29 Mar 2009 11:20:38 +0000</pubDate>
      
      <guid>/2009/03/throttling-outgoing-emails-to-certain-domains-with-postfix/</guid>
      <description>&lt;p&gt;I&amp;rsquo;ve been busy setting up a PHPlist server for my employer. All tests went ok, but as soon as we sent our first newsletter Yahoo! blocked the server. After looking around for a solution people suggested we sign all outgoing emails with DomainKeys and not hammer Yahoo&amp;rsquo;s servers with consecutive connection.&lt;/p&gt;</description>
    </item>
    
    <item>
      <title>Fixing MySQL Error 1064 With PHPList When Selecting New Criteria</title>
      <link>/2009/03/fixing-mysql-error-1064-with-phplist-when-selecting-new-criteria/</link>
      <pubDate>Sat, 14 Mar 2009 16:48:26 +0000</pubDate>
      
      <guid>/2009/03/fixing-mysql-error-1064-with-phplist-when-selecting-new-criteria/</guid>
      <description>&lt;p&gt;I&amp;rsquo;m currently experimenting with PHPlist to use for our corporate newsletters. During the tests I got the following error.&lt;/p&gt;</description>
    </item>
    
    <item>
      <title>Solving The Frowning Issue</title>
      <link>/2009/02/solving-the-frowning-issue/</link>
      <pubDate>Sat, 28 Feb 2009 14:03:17 +0000</pubDate>
      
      <guid>/2009/02/solving-the-frowning-issue/</guid>
      <description>&lt;p&gt;Jordanians are known for frowning. I hereby propose a cheap, yet efficient solution:&lt;/p&gt;</description>
    </item>
    
    <item>
      <title>Happy Valentine&#39;s Day</title>
      <link>/2009/02/happy-valentines-day/</link>
      <pubDate>Sat, 14 Feb 2009 15:11:55 +0000</pubDate>
      
      <guid>/2009/02/happy-valentines-day/</guid>
      <description>&lt;p&gt;For all of you out there, happy Valentine&amp;rsquo;s Day. Yeah right! I don&amp;rsquo;t celebrate it, there are more important things in this world, just look at the comic below, inspired by real Jordanian lives.&lt;/p&gt;</description>
    </item>
    
    <item>
      <title>Empathy, The New Kid On The Block</title>
      <link>/2009/02/empathy-the-new-kid-on-the-block/</link>
      <pubDate>Thu, 05 Feb 2009 09:26:35 +0000</pubDate>
      
      <guid>/2009/02/empathy-the-new-kid-on-the-block/</guid>
      <description>&lt;p&gt;If you&amp;rsquo;ve used Linux as a desktop, you&amp;rsquo;ll know it&amp;rsquo;s only playing catch-up when it comes to instant messaging. I&amp;rsquo;ve been using Pidgin since was called Gaim, I think I started using it back in 2003. I love how minimalistic it is. Sadly the developers are going nowhere with it, at least that&amp;rsquo;s my (as well as a few others) humble opinion.&lt;/p&gt;</description>
    </item>
    
    <item>
      <title>Alf Mabrook Tamer</title>
      <link>/2009/02/alf-mabrook-tamer/</link>
      <pubDate>Thu, 05 Feb 2009 09:08:13 +0000</pubDate>
      
      <guid>/2009/02/alf-mabrook-tamer/</guid>
      <description>This is a shout out to my old friend Tamer, yet another fallen soldier from the ranks of bachelorism. We attended his wedding last night it was awesome!
Congrats man and good luck on your new life.</description>
    </item>
    
    <item>
      <title>Xbox 360</title>
      <link>/2009/02/xbox-360/</link>
      <pubDate>Mon, 02 Feb 2009 09:40:47 +0000</pubDate>
      
      <guid>/2009/02/xbox-360/</guid>
      <description>&lt;p&gt;So I finally coughed up the money to get an Xbox 360, the thing is, every store that sells the Xbox in Jordan is highly overpriced (423$ as opposed to 199$ for the Arcade version) and the consoles are VERY old, dating back to 2007. This means they are using the old chips which are highly not recommended. A friend of mine, Tamer, came from Bahrain Friday and was kind enough to pick up the console for me. Thanks man ^_^.&lt;/p&gt;</description>
    </item>
    
    <item>
      <title>Google Chrome On Ubuntu</title>
      <link>/2008/09/google-chrome-on-ubuntu/</link>
      <pubDate>Fri, 05 Sep 2008 00:37:35 +0000</pubDate>
      
      <guid>/2008/09/google-chrome-on-ubuntu/</guid>
      <description>I came across this guide about installing Google Chrome under Ubuntu. It is somewhat slow, slower than Windows and much slower than Firefox but it still works, well, kinda. You have a few problems with fonts, as well as sites that don&amp;rsquo;t work properly with Chrome yet. I&amp;rsquo;m sticking with Firefox for the time being, but at least I have an option for those sites that aren&amp;rsquo;t compatible with it.</description>
    </item>
    
    <item>
      <title>Slow Browsing Under Ubuntu</title>
      <link>/2008/08/slow-browsing-under-ubuntu/</link>
      <pubDate>Sat, 23 Aug 2008 21:35:23 +0000</pubDate>
      
      <guid>/2008/08/slow-browsing-under-ubuntu/</guid>
      <description>&lt;p&gt;&lt;strong&gt;EDIT:&lt;/strong&gt; This post only covers IPv6, please check the &lt;a href=&#34;/2010/02/speeding-up-firefox-under-ubuntu/&#34;&gt;update post&lt;/a&gt; which covers IPv6 and Firefox&lt;/p&gt;
&lt;p&gt;Today when I rebooted to my Windows installation which I very rarely do, I noticed that browsing under Windows feels much faster than under Ubuntu. After booting back to Ubuntu I noticed the &amp;ldquo;looking up domain.tld&amp;rdquo; part was taking a lot of time, which seemed a little odd.&lt;/p&gt;</description>
    </item>
    
    <item>
      <title>Microsoft Keyboard Function Key Fix</title>
      <link>/2008/07/microsoft-keyboard-function-key-fix/</link>
      <pubDate>Mon, 14 Jul 2008 19:18:36 +0000</pubDate>
      
      <guid>/2008/07/microsoft-keyboard-function-key-fix/</guid>
      <description>&lt;p&gt;I&amp;rsquo;ve owned a Microsoft MultiMedia Keyboard 1.0A for years now. It&amp;rsquo;s a well belt keyboard to say the least. Only one problem though, the &amp;ldquo;F Lock&amp;rdquo; key. As a Linux user I have no use for the &amp;ldquo;Special&amp;rdquo; keys Microsoft added to the keyboard, and the button always starts turned off, no way to fix it.&lt;/p&gt;</description>
    </item>
    
    <item>
      <title>My Best Friend Got Married!!</title>
      <link>/2008/07/my-best-friend-got-married/</link>
      <pubDate>Tue, 08 Jul 2008 08:52:22 +0000</pubDate>
      
      <guid>/2008/07/my-best-friend-got-married/</guid>
      <description>Congrats Faris on your wedding. I wish you and your wife all the happiness and prosperity this world has to offer.
Good luck</description>
    </item>
    
    <item>
      <title>And I got a famous friend</title>
      <link>/2008/06/and-i-got-a-famous-friend/</link>
      <pubDate>Mon, 09 Jun 2008 23:07:37 +0000</pubDate>
      
      <guid>/2008/06/and-i-got-a-famous-friend/</guid>
      <description>So I log in to my Facebook account (Which is something I very rarely do) and I find a friend invitation from a very famous singer, Ragheb Alama.
I was very excited. So excited I ignored him faster than he could say: &amp;ldquo;Nasini Edonia&amp;rdquo;. As if someone like him would wander around in Facebook to add friends :). Even if he was the actual Ragheb, I’m not even a fan :D</description>
    </item>
    
    <item>
      <title>The Express Line</title>
      <link>/2008/06/the-express-line/</link>
      <pubDate>Fri, 06 Jun 2008 21:56:34 +0000</pubDate>
      
      <guid>/2008/06/the-express-line/</guid>
      <description>An hour ago I needed some sticky notes for a project I&amp;rsquo;m working on. Since it was past 9PM the nearby stationary shops were closed, so I had to go to one of the mega stores in Amman.
When I reached the cashier lines I was holding a pack of sticky notes, a roll of tape and a pen. Looking at the lines I saw one that had a sign above it that read &amp;ldquo;Express Line, 10 items or less&amp;rdquo;.</description>
    </item>
    
    <item>
      <title>FreeBSD, Postfix, Dovecot, and Active Directory</title>
      <link>/2008/05/freebsd-postfix-dovecot-and-active-directory/</link>
      <pubDate>Sun, 25 May 2008 00:08:00 +0000</pubDate>
      
      <guid>/2008/05/freebsd-postfix-dovecot-and-active-directory/</guid>
      <description>&lt;p&gt;A while back one of my clients had an unpatched qmail server configured with local system users, it was set up in a collocation long before I took over. After having to listen to a lot of complaints about slow internet connectivity I found out that 40-50MB attachments were very common. Another thing I didn&amp;rsquo;t like about this set-up is the fact I had to maintain 2 password databases; An Active Directory for local user login and a shadow file for mail. So a local set-up with Active Directory as a back end was needed.&lt;/p&gt;</description>
    </item>
    
    <item>
      <title>Space Invaders</title>
      <link>/2008/05/space-invaders/</link>
      <pubDate>Sat, 24 May 2008 13:00:03 +0000</pubDate>
      
      <guid>/2008/05/space-invaders/</guid>
      <description>&lt;p&gt;If you&amp;rsquo;ve lived in the 80s you are gonna find this seriously hilarious. I literally rolled on the floor laughing. Enjoy :)&lt;/p&gt;</description>
    </item>
    
    <item>
      <title>Open Source Day At JUST</title>
      <link>/2008/05/open-source-day-at-just/</link>
      <pubDate>Fri, 09 May 2008 18:07:15 +0000</pubDate>
      
      <guid>/2008/05/open-source-day-at-just/</guid>
      <description>Yesterday I went to my old school; The Jordan University of Science and Technology (JUST) to attend the first Open Source Day. Hopefully it won&amp;rsquo;t be the last.
The event was great, I met lots of great people. The students look so eager to learn. I wish them all the best. Good luck guys, can&amp;rsquo;t wait to attend the event next year inshalla.</description>
    </item>
    
    <item>
      <title>Surround Sound Under Ubuntu Hardy Heron</title>
      <link>/2008/04/surround-sound-under-ubuntu-hardy-heron/</link>
      <pubDate>Sun, 27 Apr 2008 22:50:18 +0000</pubDate>
      
      <guid>/2008/04/surround-sound-under-ubuntu-hardy-heron/</guid>
      <description>&lt;p&gt;Been using Ubuntu Hardy Heron for about a month now, and I have to say it rocks, the best Desktop Linux so far.&lt;/p&gt;</description>
    </item>
    
    <item>
      <title>Booting Windows and Linux using the NT loader</title>
      <link>/2008/04/booting-windows-and-linux-using-the-nt-loader/</link>
      <pubDate>Sun, 20 Apr 2008 00:48:12 +0000</pubDate>
      
      <guid>/2008/04/booting-windows-and-linux-using-the-nt-loader/</guid>
      <description>&lt;p&gt;I recently decided to install Windows on my home PC since I wanted to play some games, it&amp;rsquo;s been about 3 years since I started using Linux exclusively but thought a change would be nice. Since I didn&amp;rsquo;t find good guides I decided to write my own :)&lt;/p&gt;</description>
    </item>
    
    <item>
      <title>Disabling RSS Feeds In Drupal 5.x</title>
      <link>/2008/04/disabling-rss-feeds-in-drupal-5.x/</link>
      <pubDate>Wed, 09 Apr 2008 07:58:28 +0000</pubDate>
      
      <guid>/2008/04/disabling-rss-feeds-in-drupal-5.x/</guid>
      <description>&lt;p&gt;You might want to create a site that doesn&amp;rsquo;t have RSS. I did this for my employer to create the admission exam system. Having the RSS icons show up just annoyed me, here is how to do it:&lt;/p&gt;</description>
    </item>
    
    <item>
      <title>The Machines Are Rising, And They Are Coming From Egypt</title>
      <link>/2008/04/the-machines-are-rising-and-they-are-coming-from-egypt/</link>
      <pubDate>Tue, 08 Apr 2008 07:15:52 +0000</pubDate>
      
      <guid>/2008/04/the-machines-are-rising-and-they-are-coming-from-egypt/</guid>
      <description>Be careful everybody, the machines are rising, SkyNet is trying run unnoticed, but someone found it in Egypt :)</description>
    </item>
    
    <item>
      <title>Some Gnome Key Binding Tips</title>
      <link>/2008/04/tips-for-keyboard-shortcuts-under-gnome/</link>
      <pubDate>Tue, 08 Apr 2008 03:20:19 +0000</pubDate>
      
      <guid>/2008/04/tips-for-keyboard-shortcuts-under-gnome/</guid>
      <description>&lt;p&gt;A few days ago I decided to bite the bullet and upgrade from Ubuntu 7.04 to 8.04. I&amp;rsquo;ve been using IceWM for a while and thought I should give Gnome a try. I&amp;rsquo;m used to Win+Something shortcuts so I wanted to implement those under Gnome. Here is a list of shortcuts that should cover the concepts:&lt;/p&gt;</description>
    </item>
    
    <item>
      <title>A Tiresome Upgrade To 2.5</title>
      <link>/2008/04/a-tiresome-upgrade-to-2.5/</link>
      <pubDate>Mon, 07 Apr 2008 15:30:28 +0000</pubDate>
      
      <guid>/2008/04/a-tiresome-upgrade-to-2.5/</guid>
      <description>I spent the past 2 days working on getting 2.5 up and running. I lost some of my entries but at least it is now back up.
Enjoy the new upgrade</description>
    </item>
    
    <item>
      <title>Printing A Page Range In Outlook 2007</title>
      <link>/2008/03/printing-a-page-range-in-outlook-2007/</link>
      <pubDate>Tue, 25 Mar 2008 10:18:39 +0000</pubDate>
      
      <guid>/2008/03/printing-a-page-range-in-outlook-2007/</guid>
      <description>My current employer is switching from FirstClass to Microsoft Exchange. One of the questions I got from an employee was how to make Outlook print the first page of an email. When I went to the print dialog I was surprised that it doesn&amp;rsquo;t have a page range selection option, which surprised me. Having used Windows since version 3.0 I found that option in all Windows applications.
Anyways, according to Microsoft, you can&amp;rsquo;t.</description>
    </item>
    
    <item>
      <title>Solving &#34;Body type not supported by remote host&#34; Under Postfix</title>
      <link>/2008/03/solving-body-type-not-supported-by-remote-host-under-postfix/</link>
      <pubDate>Thu, 06 Mar 2008 20:43:11 +0000</pubDate>
      
      <guid>/2008/03/solving-body-type-not-supported-by-remote-host-under-postfix/</guid>
      <description>&lt;p&gt;The other day I got some complaints from one of my mail users that he can&amp;rsquo;t send an email to someone. Since I&amp;rsquo;m the one causing the company to loose money because of my bad servers I had to &amp;ldquo;fix this issue&amp;rdquo;.&lt;/p&gt;</description>
    </item>
    
    <item>
      <title>Kudos Israel, For You Have Taken Out Your Terrorist</title>
      <link>/2008/03/kudos-israel-for-you-have-taken-out-your-terrorist/</link>
      <pubDate>Wed, 05 Mar 2008 21:02:43 +0000</pubDate>
      
      <guid>/2008/03/kudos-israel-for-you-have-taken-out-your-terrorist/</guid>
      <description>&lt;p&gt;They say a picture is worth a thousand words, I&amp;rsquo;m giving you four. Introducing, one of the unpublicized casualties of the bombings on Gaza:&lt;/p&gt;</description>
    </item>
    
    <item>
      <title>Writing Code Segments Under Wrodpress</title>
      <link>/2008/03/writing-code-segments-under-wrodpress/</link>
      <pubDate>Tue, 04 Mar 2008 10:38:56 +0000</pubDate>
      
      <guid>/2008/03/writing-code-segments-under-wrodpress/</guid>
      <description>&lt;p&gt;So yesterday while I was writing the previous post I noticed that WordPress would try to make what I write look more &amp;ldquo;User Friendly&amp;rdquo;. Well, it works most of the time, but it doesn’t do a good job when it comes to code, it took me a while to get this fixed.&lt;/p&gt;</description>
    </item>
    
    <item>
      <title>Signatures With Date Fields In Microsoft Outlook</title>
      <link>/2008/03/signatures-with-date-fields-in-microsoft-outlook/</link>
      <pubDate>Mon, 03 Mar 2008 17:43:19 +0000</pubDate>
      
      <guid>/2008/03/signatures-with-date-fields-in-microsoft-outlook/</guid>
      <description>&lt;p&gt;Ok, so today our CEO said he wanted everybody to stamp their emails with the sending date. It&amp;rsquo;s very simple to just add the date manually, but as you know, a good engineer is a lazy engineer. So this is how I did it:&lt;/p&gt;</description>
    </item>
    
    <item>
      <title>And I&#39;ve Finally Finished A Book</title>
      <link>/2008/03/and-ive-finally-finished-a-book/</link>
      <pubDate>Sun, 02 Mar 2008 20:36:04 +0000</pubDate>
      
      <guid>/2008/03/and-ive-finally-finished-a-book/</guid>
      <description>If you know me, you’d know that I’m not a big fan of reading.Last week a friend of mine lent me this book, which I only started reading because I was too bored on a weekend. Surprisingly I could not let go of it till I fell asleep. I finished 160 out of the 200 pages in the same day. I just finished reading it and I have to say it is a very fun read.</description>
    </item>
    
    <item>
      <title>Firefox, Not Just Your Favorite Browser :D</title>
      <link>/2007/05/firefox-not-just-your-favorite-browser-d/</link>
      <pubDate>Mon, 21 May 2007 15:42:50 +0000</pubDate>
      
      <guid>/2007/05/firefox-not-just-your-favorite-browser-d/</guid>
      <description>I was at the mechanic a few days ago and saw this, priceless</description>
    </item>
    
    <item>
      <title>Upgrading To Windows Vista</title>
      <link>/2007/04/upgrading-to-windows-vista/</link>
      <pubDate>Mon, 02 Apr 2007 13:10:41 +0000</pubDate>
      
      <guid>/2007/04/upgrading-to-windows-vista/</guid>
      <description>What are you waiting for, upgrade to Windows Vista :D</description>
    </item>
    
    <item>
      <title>Apache, Rewrite Rules, Redirection, And Multiple Aliases</title>
      <link>/2007/03/apache-rewrite-rules-redirection-and-multiple-aliases/</link>
      <pubDate>Wed, 14 Mar 2007 11:43:14 +0000</pubDate>
      
      <guid>/2007/03/apache-rewrite-rules-redirection-and-multiple-aliases/</guid>
      <description>&lt;p&gt;One of our clients has a website that you can go to using multiple URLs. The server was set up in a way which does a redirection to point into a sub folder. This redirection changed the URL used to a specific one, and the client didn&amp;rsquo;t like that.&lt;/p&gt;</description>
    </item>
    
    <item>
      <title>Tawjihi Results</title>
      <link>/2007/02/tawjihi-results/</link>
      <pubDate>Fri, 09 Feb 2007 06:56:00 +0000</pubDate>
      
      <guid>/2007/02/tawjihi-results/</guid>
      <description>&lt;p&gt;So the Tawjihi results this semester should go online in about 5 minutes. As always, I&amp;rsquo;ve been getting calls since this morning asking me to check if the results came out or not. Tawjihi is the most important class in a student&amp;rsquo;s life, which faculty you go to depends entirely on the results of the exams you take during that class.&lt;/p&gt;</description>
    </item>
    
    <item>
      <title>Why Windows Is Less Secure Than Linux</title>
      <link>/2007/02/why-windows-is-less-secure-than-linux/</link>
      <pubDate>Thu, 08 Feb 2007 01:45:00 +0000</pubDate>
      
      <guid>/2007/02/why-windows-is-less-secure-than-linux/</guid>
      <description>A good Windows administrator can put together a more secure setup than a bad Linux administrator. This is an article I stumbled upon today, it shows, from a programmer’s point of view, why Windows is harder to secure than Linux.
http://blogs.zdnet.com/threatchaos/?p=311 (Sadly the link no longer works)</description>
    </item>
    
    <item>
      <title>Registered Linux User #440575</title>
      <link>/2007/01/registered-linux-user-440575/</link>
      <pubDate>Sun, 28 Jan 2007 14:44:00 +0000</pubDate>
      
      <guid>/2007/01/registered-linux-user-440575/</guid>
      <description>I finally got myself to register as a Linux users. I guess I got a nice number, I wish my phone numbers were as good :D</description>
    </item>
    
    <item>
      <title>All McGyver Ever Needs</title>
      <link>/2007/01/all-mcgyver-ever-needs/</link>
      <pubDate>Thu, 25 Jan 2007 08:48:00 +0000</pubDate>
      
      <guid>/2007/01/all-mcgyver-ever-needs/</guid>
      <description>Now this reminds me of the times I used to watch this. When was that?? I guess it was the 1980s.
Enjoy :D</description>
    </item>
    
    <item>
      <title>Microsoft PR Paying To &#34;Correct&#34; Wikipedia</title>
      <link>/2007/01/microsoft-pr-paying-to-correct-wikipedia/</link>
      <pubDate>Tue, 23 Jan 2007 06:55:00 +0000</pubDate>
      
      <guid>/2007/01/microsoft-pr-paying-to-correct-wikipedia/</guid>
      <description>Over on the O&amp;rsquo;Reilly Network, there&amp;rsquo;s an interesting piece about how Microsoft tried to hire people to contribute to Wikipedia. Not wanting to do the edits directly, they were looking for an intermediary to make edits and corrections favorable to them.
Shame on you Microsoft</description>
    </item>
    
    <item>
      <title>A Song For The System Administrator</title>
      <link>/2007/01/a-song-for-the-system-administrator/</link>
      <pubDate>Wed, 17 Jan 2007 02:18:00 +0000</pubDate>
      
      <guid>/2007/01/a-song-for-the-system-administrator/</guid>
      <description>&lt;p&gt;Yesterday after I added my previous post I remembered this little thing, I know it’s old but it’s still funny.&lt;/p&gt;</description>
    </item>
    
    <item>
      <title>System Administrators Must Never Think, They Must Troubleshoot</title>
      <link>/2007/01/system-administrators-must-never-think-they-must-troubleshoot/</link>
      <pubDate>Wed, 10 Jan 2007 02:12:00 +0000</pubDate>
      
      <guid>/2007/01/system-administrators-must-never-think-they-must-troubleshoot/</guid>
      <description>&lt;p&gt;A few weeks ago we switched one of our clients to use a hosted anti-SPAM/anti-virus solution. Everything was fine before that, but ever since we did so I started getting delays in the initial welcome message the mail server gave. I thought (And that&amp;rsquo;s where I went wrong) that it might have been caused by the provider, sending the messages in bursts.&lt;/p&gt;</description>
    </item>
    
    <item>
      <title>Thunderbird, Linux, And New Email Notification</title>
      <link>/2007/01/thunderbird-linux-and-new-email-notification/</link>
      <pubDate>Sun, 07 Jan 2007 03:56:00 +0000</pubDate>
      
      <guid>/2007/01/thunderbird-linux-and-new-email-notification/</guid>
      <description>&lt;p&gt;Now that I think of it, I&amp;rsquo;ve been using Mozilla Thunderbird for more than 3 years now, it is one of the best email clients I have ever seen, and with the available extensions, it can do almost anything.&lt;/p&gt;
&lt;p&gt;At home, I only open Thunderbird when I want to check for new email, but at work, I like to leave it open all the time in case I get any emails from my coworkers.&lt;/p&gt;</description>
    </item>
    
    <item>
      <title>Caught Sleeping at the Sharepoint Seminar</title>
      <link>/2006/12/caught-sleeping-at-the-sharepoint-seminar/</link>
      <pubDate>Mon, 25 Dec 2006 10:56:00 +0000</pubDate>
      
      <guid>/2006/12/caught-sleeping-at-the-sharepoint-seminar/</guid>
      <description>So last week I was attending the Microsoft Windows Vista and Office launch event, one of the speakers, Bandar Sharafi is a dear friend of mine. During his session, which was the last, I was very tired, and I lost track of what he was saying. This is what happened, taken from Bander&amp;rsquo;s blog:
We had a lot of fun during that session, Mohammad Shami a very close friend who was attending the session decided to take a nap!</description>
    </item>
    
    <item>
      <title>My Wireless Experience</title>
      <link>/2006/12/my-wireless-experience/</link>
      <pubDate>Sun, 17 Dec 2006 01:50:00 +0000</pubDate>
      
      <guid>/2006/12/my-wireless-experience/</guid>
      <description>&lt;p&gt;I guess you&amp;rsquo;ve been wondering why I haven&amp;rsquo;t posted anything for a while now. Well, I&amp;rsquo;ve been a little busy lately, one of the things I was working on is installing a wireless network at home. That project took too much time to complete because of some issues I had. And I&amp;rsquo;d like to share my story.At first, I went and bought a D-Link DSL-G624T. Good wireless range, nice external finish, built in DSL modem, it sure does remove a lot of the hassle of building a network. But after experimenting with it for 2 days, I was unable to forward SSH to my PC, the router is Linux based, and the firewall kept sending the SSH connections to itself, instead of forwarding them to the internal LAN.&lt;/p&gt;</description>
    </item>
    
    <item>
      <title>Rotating Tomcat Logs</title>
      <link>/2006/11/rotating-tomcat-logs/</link>
      <pubDate>Mon, 06 Nov 2006 10:00:00 +0000</pubDate>
      
      <guid>/2006/11/rotating-tomcat-logs/</guid>
      <description>&lt;p&gt;Something that had puzzled me for a while, when I first stared working for Integrant Inc. I noticed that the catalina.out file generated by tomcat was growing so big it sometimes reached 3 or even 4GB.&lt;/p&gt;</description>
    </item>
    
    <item>
      <title>Sonicwall Global VPN Client</title>
      <link>/2006/10/sonicwall-global-vpn-client/</link>
      <pubDate>Mon, 30 Oct 2006 10:30:00 +0000</pubDate>
      
      <guid>/2006/10/sonicwall-global-vpn-client/</guid>
      <description>&lt;p&gt;Last week while I was going over a checklist on a client&amp;rsquo;s system when our Leased Line service was disconnected.&lt;/p&gt;
&lt;p&gt;No worries, that happens some times. I wait for the connection to go back up so I can finish my work, but I could not connect to the client&amp;rsquo;s network after that happened. So I think to myself, maybe the firewall still had the connection opened, so I go about and restart the firewall -which is a Sonicwall tz170 btw.&lt;/p&gt;</description>
    </item>
    
    <item>
      <title>An Internal Memory Card Reader/Writer and Gentoo Linux; The Dangerous Combination</title>
      <link>/2006/10/an-internal-memory-card-reader/writer-and-gentoo-linux-the-dangerous-combination/</link>
      <pubDate>Sat, 14 Oct 2006 15:14:00 +0000</pubDate>
      
      <guid>/2006/10/an-internal-memory-card-reader/writer-and-gentoo-linux-the-dangerous-combination/</guid>
      <description>&lt;p&gt;Hello everybody, it&amp;rsquo;s me again. Before I begin, I just want to say that this one&amp;rsquo;s dedicated to my friend and brother Kilo, you&amp;rsquo;ll love it :D.&lt;/p&gt;
&lt;p&gt;After spending some time with my new w810i -which I love so far, I decided to get a card reader/writer to transfer files to/from the phone. Even though the USB cable that came with the phone worked like a charm, but I don&amp;rsquo;t want to use it since it charges the battery as soon as the phone is plugged, and I like to charge batteries only when they die.&lt;/p&gt;</description>
    </item>
    
  </channel>
</rss>
