<?xml version="1.0" encoding="UTF-8" ?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
<channel>
	<title>oshogbo web</title>
	<link>https://oshogbo.com</link>
	<description>oshogbo - My place in space</description>
	<atom:link href="https://oshogbo.com/feed.xml" rel="self" type="application/rss+xml" />

	
	<item>
		<title>Don&#x27;t Make ZFS Re-Read What It Just Read</title>
		<description>I have already mentioned one of my improvements to scrub in an earlier post, Teaching ZFS about time.
In that post I also claimed that scrub can be expensive, and that we were looking for ways to limit the amount of data we actually want to scrub.
A scrub on a multi-petabyte pool can run for days, and some of us want a smaller, easier check that everything is still going right.</description>
		<link>https://oshogbo.com/89/</link>
		<guid>https://oshogbo.com/89/</guid>
		<pubDate>Thu, 28 May 2026 17:24:16 +0200</pubDate>
	</item>
	
	<item>
		<title>A Private pkg Repo Behind Mutual TLS</title>
		<description>I am a big fan of mutual TLS (&quot;mTLS&quot; if you prefer the shorter spelling, &quot;client certificates&quot; if you are describing the half a user actually touches).
Strangely, I rarely see it used in the wild.
That probably says something worrying about how I choose to spend free time, but they are a neat fit for small private infrastructure.

Most people reach for HTTP Basic, an API token, or a VPN, and call it a day. A private pkg repository is one of those quiet little places where mutual TLS fits perfectly: a well established mechanisms, no humans typing passwords, and a server that should only answer questions from boxes I actually have access to.</description>
		<link>https://oshogbo.com/88/</link>
		<guid>https://oshogbo.com/88/</guid>
		<pubDate>Thu, 21 May 2026 18:59:08 +0200</pubDate>
	</item>
	
	<item>
		<title>Farewell Aruba, Hello OVH - A Migration Story</title>
		<description>Aruba Cloud decided to retire VMware and push everyone onto their OpenStack offering.
Fine, that is their call to make. VWhat I am less excited about is the thirty-day deadline, and the part where their OpenStack does not provide a FreeBSD image.</description>
		<link>https://oshogbo.com/87/</link>
		<guid>https://oshogbo.com/87/</guid>
		<pubDate>Fri, 15 May 2026 19:22:38 +0200</pubDate>
	</item>
	
	<item>
		<title>Teaching ZFS about time</title>
		<description>ZFS is a robust file system, in large part thanks to its copy-on-write design.
Problems can still show up: flaky cables, dying drives, or the occasional cosmic ray flipping a bit.
For exactly those situations ZFS has a feature called scrub.
Scrub walks every used block starting from the uberblock and compares the stored checksum against the data on disk.</description>
		<link>https://oshogbo.com/86/</link>
		<guid>https://oshogbo.com/86/</guid>
		<pubDate>Mon, 11 May 2026 13:49:25 +0200</pubDate>
	</item>
	
	<item>
		<title>When resizing a gmirror gives you a hard time</title>
		<description>I recently ran into an annoying problem on one of my FreeBSD machines: resizing a gmirror.
Spoiler: it stops being annoying once I remember to enable the human built-in &quot;thinking&quot; feature.</description>
		<link>https://oshogbo.com/85/</link>
		<guid>https://oshogbo.com/85/</guid>
		<pubDate>Wed, 29 Apr 2026 09:19:55 +0200</pubDate>
	</item>
	
	<item>
		<title>PGP Key Update</title>
		<description>A short notice: my PGP key has expired and a new one has been generated.

If you need to share any confidential information with me, you can find the updated public key on keyserver.ubuntu.com, pgp.mit.edu, and on the About Me page of this website.


</description>
		<link>https://oshogbo.com/84/</link>
		<guid>https://oshogbo.com/84/</guid>
		<pubDate>Tue, 20 Jan 2026 14:18:48 +0100</pubDate>
	</item>
	
	<item>
		<title>New home</title>
		<description>I’m excited to announce that my blog is now available at the oshogbo.com domain. For long-time readers, do not worry. I have no plans to retire the old domain - oshogbo.vexillium.org. The old domain is going to remain accessible. All links should work as expected. If not, please do not hesitate to reach out to me.</description>
		<link>https://oshogbo.com/83/</link>
		<guid>https://oshogbo.com/83/</guid>
		<pubDate>Fri, 27 Dec 2024 11:40:33 +0100</pubDate>
	</item>
	
	<item>
		<title>Bringing zpool checkpoints to a FreeBSD bootloader</title>
		<description>Almost two years ago I wrote a blog post about checkpoints in ZFS. I didn’t hide that I was a big fan of them. That said, after those two years, I still feel that there are underappreciated features in the ZFS world, so I decided to do something about that.</description>
		<link>https://oshogbo.com/79/</link>
		<guid>https://oshogbo.com/79/</guid>
		<pubDate>Tue, 18 Aug 2020 22:21:36 +0200</pubDate>
	</item>
	
	<item>
		<title>5 in the row - Gynvael Coldwind Twitter Challenge</title>
		<description>We already learned a lot about Express.JS, although, Gynvael surprised us with another exciting challenge. A few more and we may learn JavaScript (just kidding nobody knows it).</description>
		<link>https://oshogbo.com/78/</link>
		<guid>https://oshogbo.com/78/</guid>
		<pubDate>Sat, 23 May 2020 19:47:27 +0200</pubDate>
	</item>
	
	<item>
		<title>Gynvael Coldwind Twitter Challenge 4</title>
		<description>Gynvael published another mind-blowing Express.JS challenge last Wednesday. Let&#x27;s keep our right track and try to solve it. Are you ready? </description>
		<link>https://oshogbo.com/77/</link>
		<guid>https://oshogbo.com/77/</guid>
		<pubDate>Tue, 19 May 2020 18:31:57 +0200</pubDate>
	</item>
	
	<item>
		<title>Gynvael Coldwind Twitter Challenge 1, 2, and 3...</title>
		<description>In the last couple of days, Gynvael Coldwind tweeted out three exciting challenges. All the challenges used the Python and Flask or Express framework implemented in node.js. I decided to accept his challenge, and after struggling a little bit, I was able to solve all of them. In this post (or write-up), we will go over them together.</description>
		<link>https://oshogbo.com/76/</link>
		<guid>https://oshogbo.com/76/</guid>
		<pubDate>Tue, 12 May 2020 21:12:24 +0200</pubDate>
	</item>
	
	<item>
		<title>MB XSS Challenge</title>
		<description>Some time ago, Michał Bentkowski published an XSS challenge on his twitter. I accepted the challenge, and here is my story.


</description>
		<link>https://oshogbo.com/75/</link>
		<guid>https://oshogbo.com/75/</guid>
		<pubDate>Tue, 28 Apr 2020 18:53:24 +0200</pubDate>
	</item>
	
	<item>
		<title>EKCD - Encrypted Crash Dumps in FreeBSD</title>
		<description>Some time ago, I was describing how to configure networking crash dumps. In that post, I mentioned that there is also the possibility to encrypt crash dumps. Today we will look into this functionality. Initially, it was implemented during Google Summer of Code 2013 by my friend Konrad Witaszczyk, who made it available in FreeBSD 12. If you can understand Polish, you can also look into his presentation on BSD-PL on which he gave a comprehensive review of all kernel crash dumps features.</description>
		<link>https://oshogbo.com/74/</link>
		<guid>https://oshogbo.com/74/</guid>
		<pubDate>Mon, 20 Apr 2020 21:22:55 +0200</pubDate>
	</item>
	
	<item>
		<title>Checksumming in filesystems, and why ZFS is doing it right</title>
		<description>One of the best aspects of ZFS is its reliability. This can be accomplished using a few features like copy-on-write approach and checksumming. Today we will look at how ZFS does checksumming and why it does it the proper way.</description>
		<link>https://oshogbo.com/73/</link>
		<guid>https://oshogbo.com/73/</guid>
		<pubDate>Mon, 10 Feb 2020 17:40:41 +0100</pubDate>
	</item>
	
	<item>
		<title>Windows Debugging loop in C</title>
		<description>I don’t use Windows often: mostly only at work to test protocols. However, I have now started playing a little bit more with it for developmental purposes. So, I installed a Visual Studio and I have to admit that this IDE is pretty good. But this isn’t why we are here. Recently, I needed to write a very small debugger for Windows in C language. This post documents how to do that, and a small obnoxious behavior which cost me a lot of time.</description>
		<link>https://oshogbo.com/72/</link>
		<guid>https://oshogbo.com/72/</guid>
		<pubDate>Mon, 09 Dec 2019 18:11:32 +0100</pubDate>
	</item>
	
	<item>
		<title>GEOM NOP</title>
		<description>Sometimes while testing file systems or applications you want to simulate some errors on the disk level. The first time I heard about this need was from Baptiste Daroussin during his presentation at AsiaBSDCon 2016. He mentioned how they had built a test lab with it. The same need was recently discussed during the PGCon 2019, to test a PostgreSQL instance. If you are FreeBSD user, I have great news for you: there is a GEOM provider which allows you to simulate a failing device.</description>
		<link>https://oshogbo.com/71/</link>
		<guid>https://oshogbo.com/71/</guid>
		<pubDate>Mon, 18 Nov 2019 15:41:37 +0100</pubDate>
	</item>
	
	<item>
		<title>A Ghidra loader for the Linear eXecutable format</title>
		<description>I recently was looking at some old games. Really old games. Games that were running on the DOS. When I grabbed a random game, it turns out that it was built using the DOS4GW extender.

When I was young (almost 10 years ago) I helped a little bit with porting swars to the modern OS. When I looked around I couldn’t find any free loader for the LE/LX format, so I decided to create one.</description>
		<link>https://oshogbo.com/70/</link>
		<guid>https://oshogbo.com/70/</guid>
		<pubDate>Fri, 11 Oct 2019 17:27:54 +0200</pubDate>
	</item>
	
	<item>
		<title>Cannot destroy ‘pool/data’: dataset already exists</title>
		<description>Today, this post is more like a very quick note about a funny error message in the ZFS. ZFS is amazing file systems. I often mention why it is so powerful here on the blog. However, even  ZFS can sometimes give us unlogic messages. Today we will look into one of them.</description>
		<link>https://oshogbo.com/69/</link>
		<guid>https://oshogbo.com/69/</guid>
		<pubDate>Mon, 30 Sep 2019 17:35:30 +0200</pubDate>
	</item>
	
	<item>
		<title>How to configure a network dump in FreeBSD?</title>
		<description>A network dump might be very useful for collecting kernel crash dumps from embedded machines and machines with a larger amount of RAM then available swap partition size. Besides net dumps we can also try to compress the core dump. However, often this may still not be enough swap to keep whole core dump. In such situation using network dump is a convenient and reliable way for collecting kernel dump.</description>
		<link>https://oshogbo.com/68/</link>
		<guid>https://oshogbo.com/68/</guid>
		<pubDate>Mon, 02 Sep 2019 17:18:35 +0200</pubDate>
	</item>
	
	<item>
		<title>Work Computer Google CTF Beginners Write Up</title>
		<description>… or the story what happens when you forget that this supposed to be a simple task. Last weekend I had some time to look into the Google CTF for Beginners. I solved all the task apart from one in category “sandbox” which went quite interestingly. Basically, I misread a few stuff and went way over the solution. Let’s look into my story…</description>
		<link>https://oshogbo.com/67/</link>
		<guid>https://oshogbo.com/67/</guid>
		<pubDate>Thu, 01 Aug 2019 23:43:10 +0200</pubDate>
	</item>
	
	<item>
		<title>Resuming ZFS send</title>
		<description>One of the amazing functionalities of ZFS is the possibility of sending a whole dataset from one place to another. This mechanism is amazing to create backups of your ZFS based machines. Although, there were some issues with this functionality for a long time when a user sent a big chunk of data. What if you would do that over the network and your connection has disappeared? What if your machine was rebooted as you are sending a snapshot?</description>
		<link>https://oshogbo.com/66/</link>
		<guid>https://oshogbo.com/66/</guid>
		<pubDate>Fri, 19 Jul 2019 14:42:41 +0200</pubDate>
	</item>
	
	<item>
		<title>Confusion with used/free disk space in ZFS</title>
		<description>I use ZFS extensively. ZFS is my favorite file system. I write articles and give lectures about it. I work with it every day. In traditional file systems we use df(1) to determine free space on partitions. We can also use du(1) to count the size of the files in the directory. But it’s different on ZFS and this is the most confusing thing EVER. I always forget which tool reports what disk space usage! Every time somebody asks me, I need to google it. For this reason I decided to document it here - for myself - because if I can’t remember it at least I will not need to google it, as it will be on my blog, but maybe you will also benefit from this blog post if you have the same problem or you are starting your journey with ZFS.</description>
		<link>https://oshogbo.com/65/</link>
		<guid>https://oshogbo.com/65/</guid>
		<pubDate>Thu, 16 May 2019 15:55:07 +0200</pubDate>
	</item>
	
	<item>
		<title>BSD PL #12</title>
		<description>I would like to invite you to our monthly Polish BSD User group meetup. We have had eleven meetings, with the group running for almost a year now! A lot of interesting topics have been covered during that time and I’m sure this will continue in April!</description>
		<link>https://oshogbo.com/64/</link>
		<guid>https://oshogbo.com/64/</guid>
		<pubDate>Fri, 19 Apr 2019 04:50:31 +0200</pubDate>
	</item>
	
	<item>
		<title>Introducing funlinkat</title>
		<description>In operating systems there are often long-term problems. One of them was described by lcamtuf in 2002 (this is the earliest mention I was able to find, and this article motivated me to do the work). For many years we didn’t have a way to remove files in race free way. Let’s first look closer at the problem.</description>
		<link>https://oshogbo.com/63/</link>
		<guid>https://oshogbo.com/63/</guid>
		<pubDate>Tue, 09 Apr 2019 16:45:50 +0200</pubDate>
	</item>
	
	<item>
		<title>FreeBSD upgrade procedure using GPT</title>
		<description>You have a few different ways to upgrade your operating system. For example, if you are using ZFS as your root file system you can use boot environments to accomplish this task in a quick, simple and safe way. Boot environments are the new ‘it’ thing in FreeBSD. However, today we will discuss a more old-school approach to this problem using the GPT flags. This approach may be used to upgrade your operating system if you don&#x27;t use ZFS, and you want your system to be on the read-only partition, for example when you are building an appliance.</description>
		<link>https://oshogbo.com/62/</link>
		<guid>https://oshogbo.com/62/</guid>
		<pubDate>Fri, 01 Feb 2019 01:34:49 +0100</pubDate>
	</item>
	
	<item>
		<title>BSD PL #9</title>
		<description>In January it&amp;rsquo;s time for our 9th Polish BSD User Group!
This time I would like to invite you to a special edition in which instead of three different 15 minute talks, we will have an hour-long tutorial. The whole meeting will be about FreeBSD jails, in particular about managing them with iocage.</description>
		<link>https://oshogbo.com/61/</link>
		<guid>https://oshogbo.com/61/</guid>
		<pubDate>Mon, 21 Jan 2019 17:08:21 +0100</pubDate>
	</item>
	
	<item>
		<title>[PL] ZFS – rewolucja w systemach plików</title>
		<description>Wiele lat temu zafascynowałem się systemem plików ZFS. W 2015 roku popełniłem artykuł na łamach świetnego polskiego czasopisma - Programista. Minęło już kilka dobrych lat od publikacji więc czas się nim podzielić na moim blogu :) 

Artykuł ma już kilka lat natomiast uważam że wiedza w nim zawarta jest wciąż aktualna. Mój artykuł opisuje podstawy ZFS - czym jest, mechanizmy ZFSa oraz API dostępne dla programistów.</description>
		<link>https://oshogbo.com/60/</link>
		<guid>https://oshogbo.com/60/</guid>
		<pubDate>Sun, 20 Jan 2019 13:56:42 +0100</pubDate>
	</item>
	
	<item>
		<title>2018 Recap</title>
		<description>Throughout December I took a break from writing blog posts, but New Year is a good moment to get back to it. Today will be a very personal post in which I will tell you a summary of my accomplishments over the previous year. I think I was quite productive. Do you?</description>
		<link>https://oshogbo.com/59/</link>
		<guid>https://oshogbo.com/59/</guid>
		<pubDate>Wed, 09 Jan 2019 22:02:39 +0100</pubDate>
	</item>
	
	<item>
		<title>Games on FreeBSD</title>
		<description>What do all programmers like to do after work? Ok, what do most programers like to do after work? The answer is simple: play a good game! Recently at the Polish BSD User Group meetup mulander was telling us how you can play games on OpenBSD. Today let’s discuss how this looks in the FreeBSD world using the “server only” operating system.</description>
		<link>https://oshogbo.com/58/</link>
		<guid>https://oshogbo.com/58/</guid>
		<pubDate>Tue, 20 Nov 2018 20:47:19 +0100</pubDate>
	</item>
	
	<item>
		<title>Capsicum</title>
		<description>I spent a couple of years evangelizing about Capsicum. I wrote many articles about it. So, it is very natural that I would also like to update you on this blog about the progress of the Capsicum project in FreeBSD, because this is what I’m doing in my free time. That said I feel that this blog wouldn’t be completed without some introduction to what Capsicum is. This post should fill this gap. Over the next weeks and months we will extend this topic and discuss different parts of Capsicum. Without further introduction let’s jump into the topic.</description>
		<link>https://oshogbo.com/57/</link>
		<guid>https://oshogbo.com/57/</guid>
		<pubDate>Thu, 08 Nov 2018 17:25:57 +0100</pubDate>
	</item>
	
	<item>
		<title>Better looking assertions in C</title>
		<description>Assertions are very important for developers, because they help developers to find bugs. This concept should be used to check that the internal state of our application is correct. Some developers even measure a quality of the project/code based on the amount of assertions. In many programs assertions are enabled only in developer modes and not in production. Programmers should always remember that assertion can’t be used to validate user input because it can introduce some bugs into the code. Although this topic is very interesting this is not what we will talk about today. Today let’s discuss how to make our assertions be even more useful.</description>
		<link>https://oshogbo.com/56/</link>
		<guid>https://oshogbo.com/56/</guid>
		<pubDate>Fri, 12 Oct 2018 21:05:05 +0200</pubDate>
	</item>
	
	<item>
		<title>Polish BSD User Group</title>
		<description>In a couple days there will be another meeting of the Polish BSD User Group! It’s already our 6th meeting, which means that the group has been running for almost half a year. The next meeting will be a special one, because we will be guests at Warsaw University of Technology! Considering all of this I decided to summarize our accomplishments.</description>
		<link>https://oshogbo.com/55/</link>
		<guid>https://oshogbo.com/55/</guid>
		<pubDate>Wed, 03 Oct 2018 20:03:19 +0200</pubDate>
	</item>
	
	<item>
		<title>Process title and missing memory space</title>
		<description>It’s amazing what happens when you do any kind of research. Many times, you find a few interesting things around one topic you are looking into. First, I published a post about changing a process name which describes how it can be accomplished on different operating systems. This was the main point of my research. Then I described how to install other operating systems using grub2-bhyve on bhyve hypervisors. Today, the last topic is somewhat related to them. When I was looking at the process title it was easy to notice that the kernel needed to read some piece of memory from it. What would happen if the memory region didn’t exist?</description>
		<link>https://oshogbo.com/54/</link>
		<guid>https://oshogbo.com/54/</guid>
		<pubDate>Sat, 22 Sep 2018 11:06:48 +0200</pubDate>
	</item>
	
	<item>
		<title>OpenBSD/NetBSD on FreeBSD using grub2-bhyve</title>
		<description>When I was writing a blog post about the process title, I needed a couple of virtual machines with OpenBSD, NetBSD, and Ubuntu. Before that day I mainly used FreeBSD and Windows with bhyve. I spent some time trying to set up an OpenBSD using bhyve and UEFI as described here. I had numerous problems trying to use it, and this was the day I discovered the grub2-bhyve tool, and I love it!</description>
		<link>https://oshogbo.com/53/</link>
		<guid>https://oshogbo.com/53/</guid>
		<pubDate>Sun, 16 Sep 2018 18:24:53 +0200</pubDate>
	</item>
	
	<item>
		<title>MeetBSD and SecurityBsides</title>
		<description>In October there will be two very interesting conferences at which I&#x27;m honored to give a talk.</description>
		<link>https://oshogbo.com/52/</link>
		<guid>https://oshogbo.com/52/</guid>
		<pubDate>Tue, 11 Sep 2018 21:45:31 +0200</pubDate>
	</item>
	
	<item>
		<title>How does the process title works?</title>
		<description>Let&#x27;s start by defining what the title of a process is - in this article, we will understand the name reported by ps(1)/top(1). When we are creating a new process using fork(2) the process inherits the name from its parent. In the scenario when we call exec(2) function we also pass the list of the arguments for a process, which will be treated as a process title. What if we would like to change the title of the process when it&#x27;s running? It turns out that many operating systems do it in a different way. In this article we will discuss how open source operating systems like FreeBSD, Linux, OpenBSD, NetBSD, and DragonFlyBSD do it.</description>
		<link>https://oshogbo.com/51/</link>
		<guid>https://oshogbo.com/51/</guid>
		<pubDate>Sat, 01 Sep 2018 12:43:24 +0200</pubDate>
	</item>
	
	<item>
		<title>FreeBSD lockless algorithm - seq</title>
		<description>Those days locking algorithms are critical for operating systems, especially in a multi-threaded world. With time it turns out that classical locks, like mutex, are performance costly. Even when we are using techniques like having reads and writes mutex, synchronizing the state between CPUs can be costly. To optimize some cases, the lockless algorithm started to be used.</description>
		<link>https://oshogbo.com/50/</link>
		<guid>https://oshogbo.com/50/</guid>
		<pubDate>Fri, 17 Aug 2018 23:56:46 +0200</pubDate>
	</item>
	
	<item>
		<title>GameDev archive</title>
		<description>Many years ago, I was very interested in creating games. Unfortunately, I resigned from this path for my career. When I look back, this was one of the best methods for me to learn to programme. After many lines of codes, you are getting something that you can show anybody, and they will understand what you created which was very motivating. There are many, many algorithms which you must understand and implement. In my time, when web games weren’t yet very popular, this was also a great environment for me to learn C++ and C - which I use today. On the other hand, the language doesn&#x27;t really matter - if you want to learn a new language why not to write a game in it. Today almost every language has graphics libraries you can use. Don&#x27;t limit yourself and don&#x27;t be afraid to scratch your own framework. If you are looking for something to implement and you are new in computer science, with a clear conscience, I recommend you create a remake of your favorite game.</description>
		<link>https://oshogbo.com/49/</link>
		<guid>https://oshogbo.com/49/</guid>
		<pubDate>Fri, 10 Aug 2018 22:20:51 +0200</pubDate>
	</item>
	
	<item>
		<title>The template user with PAM and login(1)</title>
		<description>When you build a new service (or an appliance) you need your users to be able to configure it from the command line. To accomplish this you can create system accounts for all registered users in your service and assign them a special login shell which provides such limited functionality. This can be painful if you have a dynamic user database.</description>
		<link>https://oshogbo.com/48/</link>
		<guid>https://oshogbo.com/48/</guid>
		<pubDate>Fri, 03 Aug 2018 19:11:05 +0200</pubDate>
	</item>
	
	<item>
		<title>Introduction to nvlist part 4 - cnvlist</title>
		<description>The nvlist is a very useful container but, sometimes, using the name of an element to fetch it may be less than optimal, or even impossible. Let us consider two scenarios: 
- We are traversing a list which was created with an NV_FLAG_NO_UNIQUE flag. 
- We are traversing very large list.</description>
		<link>https://oshogbo.com/47/</link>
		<guid>https://oshogbo.com/47/</guid>
		<pubDate>Fri, 27 Jul 2018 22:58:00 +0200</pubDate>
	</item>
	
	<item>
		<title>zpool checkpoints</title>
		<description>In March, to FreeBSD landed a very interesting feature called &#x27;zpool checkpoints&#x27;. Before we jump straight into the topic, let&#x27;s take a step back and look at another ZFS feature called ‘snapshot’. Snapshot allows us to create an image of our single file systems. This gives us the option to modify data on the dataset without the fear of losing some data.</description>
		<link>https://oshogbo.com/46/</link>
		<guid>https://oshogbo.com/46/</guid>
		<pubDate>Fri, 20 Jul 2018 21:23:38 +0200</pubDate>
	</item>
	
	<item>
		<title>Introduction to nvlist part 3 - simple traversing</title>
		<description>Nvlist allows us to keep pairs (name, value). The question for today is what if the name of an element is unknown? Or what if there is a need to traverse over all elements on a list? First of all there is the nvlist_next() function. This function allows to iterate over one single list. The return value is the name of the next element on the list or NULL if the list is ends. The additional information which is returned by this function is the type of the element. Thanks to these two values (the name of the element and it’s type) we can decide which function to use. The last element is secret cookie which refers to the position where we are on the list. At the beginning the cookie needs to be initialized by NULL otherwise the program will behave abnormally.</description>
		<link>https://oshogbo.com/45/</link>
		<guid>https://oshogbo.com/45/</guid>
		<pubDate>Tue, 31 Oct 2017 23:17:15 +0100</pubDate>
	</item>
	
	<item>
		<title>Introduction to nvlist part 2 - dnvlist</title>
		<description>One of the assumptions of nvlist is that during fetch functions (like get or take) an application knows what elements are on the list, otherwise read operations fail and the application will be aborted. If an element is optional then it is necessary  to check if the element exists using the exist functions.</description>
		<link>https://oshogbo.com/43/</link>
		<guid>https://oshogbo.com/43/</guid>
		<pubDate>Tue, 24 Oct 2017 19:16:11 +0200</pubDate>
	</item>
	
	<item>
		<title>Introduction to nvlist part 1</title>
		<description>Nvlist is an implementation of a general purpose container based on a list which contains pairs (name, value). The idea behind this library is borrowed from the Solaris library which  has the same name. In Solaris nvlist is used for example, by the ZFS. In FreeBSD nvlist exists in kernel and userland. Nvlist was implemented to provide an easy inter-process communication framework for applications that will be privileged separated and later sandboxed, due to this in userland there are functions allowing us to send nvlist over the Unix domain socket, in that case there is also a possibility to send descriptors with nvlist.</description>
		<link>https://oshogbo.com/42/</link>
		<guid>https://oshogbo.com/42/</guid>
		<pubDate>Tue, 17 Oct 2017 23:13:58 +0200</pubDate>
	</item>
	
	<item>
		<title>Magical initialization in for loop</title>
		<description>Recently one of my friends had a strange problem - he wanted to initialize a few variables with a different type in a single for loop. What was even more strange was that he wanted to declare just one of them and both of them have different type. A declaration of variables is forbidden in the loop for C standard which are older than C99, so let’s assume we are using exactly that standard. One of the questions could be “why is your friend so crazy that he would want to do that” - basically he wanted to create a macro which would declare for him a head of the loop very similar to what STAILQ_FOREACH.</description>
		<link>https://oshogbo.com/41/</link>
		<guid>https://oshogbo.com/41/</guid>
		<pubDate>Wed, 30 Nov 2016 17:45:39 +0100</pubDate>
	</item>
	
	<item>
		<title>A fairy tale about solving security problems</title>
		<description>I had the pleasure of giving talks at two great BSD conferences - BSDCan and AsiaBSDcon. The first one was held in June at the University of Ottawa, Canada and the second one was in March at the Tokyo University of Science, Japan.</description>
		<link>https://oshogbo.com/40/</link>
		<guid>https://oshogbo.com/40/</guid>
		<pubDate>Fri, 30 Sep 2016 22:09:50 +0200</pubDate>
	</item>
	
	<item>
		<title>Bhyve NFS boot</title>
		<description>bhyve is a hypervisor for FreeBSD. A few weeks ago I gave it a try and I must admit I was very impressed, so much that I decided to write a short tutorial on how to configure bhyve to boot from NFS filesystem. So lets start.</description>
		<link>https://oshogbo.com/39/</link>
		<guid>https://oshogbo.com/39/</guid>
		<pubDate>Sun, 22 Nov 2015 22:09:36 +0100</pubDate>
	</item>
	
	<item>
		<title>BSDCam 2015 Trip Report</title>
		<description>I&#x27;m a fresh FreeBSD committer who is very interested in security things. I also work for the Wheel Systems company which develops security solutions. So it was natural for me that I should attend Cambridge Developer Summit which, in my opinion, is the most security related event in every committer’s calendar. This was also my third visit to Cambridge. For the first one I also wrote a trip report which you can find here. The conference was held in August 17-20, 2015.</description>
		<link>https://oshogbo.com/38/</link>
		<guid>https://oshogbo.com/38/</guid>
		<pubDate>Tue, 20 Oct 2015 23:02:48 +0200</pubDate>
	</item>
	
	<item>
		<title>[PL] Compo IGK&#x27;2014</title>
		<description>To już ponad miesiąc po IGK&#x27;2014. Czas ożywić bloga krótką relacją z tego wydarzenia.
Jak co roku w Siedlcach w Instytucie Informatyki na Wydziale Nauk Ścisłych Uniwersytetu Przyrodniczo-Humanistycznego odbyła się konferencja poświęconej &quot;inżynierii gier komputerowych&quot;. Miałem okazję być na tej konferencji już po raz siódmy.</description>
		<link>https://oshogbo.com/37/</link>
		<guid>https://oshogbo.com/37/</guid>
		<pubDate>Sun, 01 Jun 2014 02:27:47 +0200</pubDate>
	</item>
	
	<item>
		<title>FreeBSD DevSummit 2013</title>
		<description>Some time ago I post my trip report to the Freebsd Foundation, now its time to post it here. Orginal post you can find&amp;nbsp;here. I was invited to the Cambridge DevSummit. Cambridge University is closely related to my&amp;nbsp;GSoC project&amp;nbsp;because this is the place where Capsicum was born and the initial implementation created by Robert Watson and his team.</description>
		<link>https://oshogbo.com/33/</link>
		<guid>https://oshogbo.com/33/</guid>
		<pubDate>Tue, 08 Oct 2013 02:00:00 +0200</pubDate>
	</item>
	
	<item>
		<title>FreeBSD diskless on VirtualBox</title>
		<description>Firstly what is FreeBSD diskless? FreeBSD diskless is an operating system that will boot on your computer (or virtual machine) over the network. There are many situations in which you probably want to use such a configuration. For example if you are a computer science teacher you could configure one system in your class and make other computers use it over the network. In another situation you could need some laboratory to play a little with the FreeBSD kernel.This configuration has a lot of benefits. For example you don&#x27;t have to restart your developer machine every time you compile the kernel or worry that you broke your kernel and you will not have a developer machine any more. If you know me a little you probably know that I&#x27;m not a computer science teacher.</description>
		<link>https://oshogbo.com/28/</link>
		<guid>https://oshogbo.com/28/</guid>
		<pubDate>Mon, 23 Sep 2013 02:00:00 +0200</pubDate>
	</item>
	
	<item>
		<title>[PL] IGK 2013 Compo - o naszej grze</title>
		<description>(collaborative post by&amp;nbsp;Gynvael, oshogbo &amp;amp; xa)

W Siedlcach odbyła się co roczna konferencja Inżynierii Gier Komputerowych (IGK) - tym razem była to jubileuszowa, 10siąta, edycja. I jak co roku było teamowe compo - 6.5h (ostatecznie przedłużone o jeszcze godzinę) na zrobienie gry na zadany temat w maksymalnie 4 osoby. Tematem było &quot;Artillery Game&quot; (więcej poniżej), a alians Vexillium + Dragon Sector (reprezentowany przez 6 os&amp;oacute;b na IGK) wystawił dwa teamy po 3 osoby (pod nazwami &quot;Bad Sectors&quot; oraz &quot;Dragons&quot;). Ostatecznie obu naszym teamom udało się stworzyć w pełni działające i ukoączone gry (bugi przemilczmy ;p), i zając&amp;nbsp;pierwsze&amp;nbsp;oraz&amp;nbsp;piąte&amp;nbsp;miejsce na 12 drużyn. W niniejszym poście chcieliśmy coś napisać o grze naszego teamu z pierwszego miejsca (w składzie: code: gynvael+oshogbo, gfx: xa), a także udostępnić grę w wersji post-compo (razem ze źr&amp;oacute;dłami na MIT i grafiką na CC) oraz port gry na HTML5 kt&amp;oacute;ry zrobił Xa w ciągu ostatnich paru wieczor&amp;oacute;w. Miłej lektury (tak, są obrazki) :)</description>
		<link>https://oshogbo.com/17/</link>
		<guid>https://oshogbo.com/17/</guid>
		<pubDate>Sun, 05 May 2013 02:00:00 +0200</pubDate>
	</item>
	
	<item>
		<title>Hello in the new year! It&#x27;s publishing Time!</title>
		<description>I haven&#x27;t forgotten about this place, but also I didn&#x27;t think that writing technical post would be so hard in English. I hope I get some practice and will become much better. Today is the perfect day to write a new blog post.</description>
		<link>https://oshogbo.com/16/</link>
		<guid>https://oshogbo.com/16/</guid>
		<pubDate>Fri, 06 Jan 2012 13:29:58 +0100</pubDate>
	</item>
	
	<item>
		<title>Android graphics alternative</title>
		<description>The standard method of using graphics is to use Canvas and Drawable and other funny things that I don&#x27;t like (you can read about it at&amp;nbsp;here). The other way to read graphics in android is using &quot;assets&quot;. What is it?</description>
		<link>https://oshogbo.com/15/</link>
		<guid>https://oshogbo.com/15/</guid>
		<pubDate>Sat, 10 Dec 2011 10:46:04 +0100</pubDate>
	</item>
	
	<item>
		<title>[PL] How play Mario?</title>
		<description>Ugh, zaczyna się robić tłoczno, drugi post w przeciągu dwóch miesięcy, nie jest źle ;](warto dodac że post pojawia się za namową pewnej osoby (Pozdro Gyn ;&gt;))... Dzisiaj opisze projekt nad którym ostatnio pracowałem. Pomysł użycia tej technologi chodził za mną już od igk ale dopiero ostatnio zrobiłem coś co by się nadawało do pokazania publicznie.</description>
		<link>https://oshogbo.com/11/</link>
		<guid>https://oshogbo.com/11/</guid>
		<pubDate>Sat, 07 Nov 2009 01:00:00 +0100</pubDate>
	</item>
	
</channel>
</rss>
