<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
  <channel>
    <title>Posts on Hambz</title>
    <link>/posts/</link>
    <description>Recent content in Posts on Hambz</description>
    <generator>Hugo -- gohugo.io</generator>
    <language>en-us</language>
    <copyright>© Halladj Hamza</copyright>
    <lastBuildDate>Sat, 31 Jan 2026 00:00:00 +0000</lastBuildDate><atom:link href="/posts/index.xml" rel="self" type="application/rss+xml" />
    <item>
      <title>Teaching Concurrency with Go: A Non-Conventional Approach to Advanced Operating Systems</title>
      <link>/posts/post-17/</link>
      <pubDate>Sat, 31 Jan 2026 00:00:00 +0000</pubDate>
      
      <guid>/posts/post-17/</guid>
      <description>Teaching Concurrency with Go: A Non-Conventional Approach to Advanced Operating Systems Why I Ditched Java and C++ for Goroutines As I prepared to teach Advanced Operating Systems to 4th-year undergraduate students this semester, I faced a familiar dilemma: stick with the traditional approach (Java or C++) or try something different. After years of watching students struggle with segmentation faults when they should be thinking about semaphores, I decided to take a risk.</description>
    </item>
    
    <item>
      <title>Gentle introduction to Tmux</title>
      <link>/posts/post-16/</link>
      <pubDate>Sat, 26 Apr 2025 00:00:00 +0000</pubDate>
      
      <guid>/posts/post-16/</guid>
      <description>In our research lab we just had a new high-performance computing machine. However this is where the good news end, since we are having our networking infrastracture redone we are facing some challenges while trying to train voilance detection model. The networking constraints we have right now are:
 No remote access: The machine is only accessible through the local network, with no internet connectivity. Unstable network: The local network is shaky and unreliable.</description>
    </item>
    
    <item>
      <title>Docker Images Under the Hood</title>
      <link>/posts/post-15/</link>
      <pubDate>Tue, 26 Nov 2024 00:00:00 +0000</pubDate>
      
      <guid>/posts/post-15/</guid>
      <description>Ever since I have heard about containers technology, I have had a foggy understanding of Docker images. The terms layered-architecture, and multi-layer build have never made much sense to me, like I could comfortably write a dev-docker image or a deployment docker image, however I was never satified, sense my mental model of how it all works under-the-hook was not fully constructed.
File-system mounts: Before we dive deeper into our topic, we must build a good understanding of what are file-system (FS) mounts and how they work.</description>
    </item>
    
    <item>
      <title>Buring ISO into a Flash USB on Linux</title>
      <link>/posts/post-14/</link>
      <pubDate>Fri, 04 Oct 2024 00:00:00 +0000</pubDate>
      
      <guid>/posts/post-14/</guid>
      <description>Burning an ISO to a Flash USB stick or a CD/DVD is the first step to install a new operating system on a machine, and it is a straight-forward process too. For example, when I used to use Windows operating systems, Rufus was my first choice to burn an ISO image, and on debian or Ubuntu, it was Etcher. However, now that I&amp;rsquo;m using Arch Linux, both of them didn&amp;rsquo;t work or weren&amp;rsquo;t even available.</description>
    </item>
    
    <item>
      <title>Connecting a qemu virtual machine to the host machine</title>
      <link>/posts/post-13/</link>
      <pubDate>Tue, 02 Apr 2024 00:00:00 +0000</pubDate>
      
      <guid>/posts/post-13/</guid>
      <description>Using a qemu virtual machine that was created feels just like using any other physical machine until it&amp;rsquo;s time for remote access, or doing any networking-related activities( ports, IP address, etc&amp;hellip; ). then you realize that it is connected using NAT. meaning you do not have access to the machine, can&amp;rsquo;t ssh into it, or connect to any of its ports.
Now What to do: Generally speaking, there are two ways we could achieve connectivity between the host machine and the guest virtual machine, the first approach is using Port-Forwarding, which gives us the ability to make a mapping between a port on the guest machine to a port on the host machine.</description>
    </item>
    
    <item>
      <title>Cross-platform mobile development on Linux</title>
      <link>/posts/post-12/</link>
      <pubDate>Thu, 28 Mar 2024 00:00:00 +0000</pubDate>
      
      <guid>/posts/post-12/</guid>
      <description>I have always heard about cross-platform mobile development frameworks(React-native &amp;amp; flutter), and how they make it trivial to maintain a single code base for your application. But how true of a statement is it when it comes to someone on Linux wishing to develop an application with some native networking features?
It is true to some extent: Two years ago I was working on my thesis and it involved creating a simple mobile application to act as a client for an ML prediction model, on that project I didn&amp;rsquo;t need any native support and it was only a prototype, which meant I only build it on android.</description>
    </item>
    
    <item>
      <title>Software Licensing, Simply Put</title>
      <link>/posts/post-11/</link>
      <pubDate>Mon, 29 Aug 2022 00:00:00 +0000</pubDate>
      
      <guid>/posts/post-11/</guid>
      <description>One could wonder, &amp;ldquo;what is the point of having a license over software, the source code is probably already there, in the public domain&amp;rdquo; (for example published over GitHub), well there is no short answer, and probably there will be no legal problems at all if you don&amp;rsquo;t use one(most of the time, don&amp;rsquo;t take my word for it), but not having a license over software will eliminate any rights or ownership over it, and it gets only worse from there as the lines of ownership are blurred, for example: who owns the code, the writer who thought about a solution and code it into reality or the cooperation which he works for, or both.</description>
    </item>
    
    <item>
      <title>Docker&#39;s No Nonsense Tour</title>
      <link>/posts/post-10/</link>
      <pubDate>Wed, 27 Jul 2022 00:00:00 +0000</pubDate>
      
      <guid>/posts/post-10/</guid>
      <description>Before docker was a thing, developing, testing and shipping software was a huge miss and it is still a miss afterward, don&amp;rsquo;t get me wrong but at the end of this article, you might appreciate how docker made the process more bearable, those are some of the technologies used to develop software without using docker:
 Virtual Machines package management systems config management tools a pile of interconnected dependencies.  Meaning each team member of the different teams involved in the development process would have to get that huge pile of miss to work locally, you could imagine how painful that would be, that&amp;rsquo;s where docker comes into play, where it gives the ability to contain the entire software stack and published it(publicly or privately) as an image for the members to use, by use I mean just running a simple command such</description>
    </item>
    
    <item>
      <title>Reading and Note-taking</title>
      <link>/posts/post-9/</link>
      <pubDate>Sun, 17 Jul 2022 00:00:00 +0000</pubDate>
      
      <guid>/posts/post-9/</guid>
      <description>Well if you want to acquire some knowledge, there is one of two approaches you are probably going to take, you either gonna watch some visual content or read some kind of written information(book, article, etc). I can say that reading is the more effective approach at least that&amp;rsquo;s me ,but reading can be tedious sometimes especially when you are having a bad day, so one must follow some strategy to get the most out of his efforts, one strategy I might suggest is taking notes but, not the kind of notes we are used to take in classes, instead, I mean using a proven note-taking system like Zettelkasten.</description>
    </item>
    
    <item>
      <title>First Article</title>
      <link>/posts/post-8/</link>
      <pubDate>Fri, 15 Jul 2022 00:00:00 +0000</pubDate>
      
      <guid>/posts/post-8/</guid>
      <description>This blog is nothing more than a fancy semi-structured notebook of a masters student at the time of this writing, that have some computer science-related knowledge.
What To Expecet I will be trying to my best explaining selected theoretical computer science concepts in the manner that naive 18 years old me would actually be able to wrap his head around, no extra nonsense just what you will need to get going and you would be able indefinitely to fill-up the gaps afterwards by yourself.</description>
    </item>
    
  </channel>
</rss>
