<?xml version="1.0" encoding="utf-8"?>

<feed xmlns="http://www.w3.org/2005/Atom">

	<title>sil2100//vx web-page - Development</title>
	<id>http://sil2100.vexillium.org:41/</id>
	<link rel="self" href="http://sil2100.vexillium.org/dev_feed.xml" />
	<link href="http://sil2100.vexillium.org" />
	<updated>2012-01-21T21:19:00Z</updated>
	<author>
		<name>Lukasz Zemczak</name>
		<email>sil2100@vexillium.org</email>
	</author>

	<entry>
		<id>tag:sil2100.vexillium.org,2012-01-21:/?id=dev/23</id>
		<title>(Haiku Blog-O-Sphere) Bits and Pieces: The Small BCardLayout</title>
		<link href="http://sil2100.vexillium.org/?id=dev#23" />
		<updated>2012-01-21T21:19:00Z</updated>
		<summary>

A short post about something that's not really documented. When working on a communication application for Haiku, I needed to create a typical configuration wizard window. I required a few views to be present in one spot, with only one being shown at the same time - with the ability to switch between them on user Next/Prev button press. Since Haiku exports a neat layout API, I wanted to use one of those if only possible. And then I found the BCardLayout.
Come visit my Haiku Blog-O-Sphere page and read my new blog-entry - Bits and Pieces: The Small BCardLayout.

</summary>
	</entry>

	<entry>
		<id>tag:sil2100.vexillium.org,2011-12-29:/?id=dev/22</id>
		<title>Plymouth bits</title>
		<link href="http://sil2100.vexillium.org/?id=dev#22" />
		<updated>2011-12-29T16:27:00Z</updated>
		<summary>

Quite recently I had the need and 'pleasure' of playing around with the Plymouth bootsplash. For those that don't know, Plymouth is an application which runs very early during the boot process and displays either textual or graphical boot animation, hiding the actual boot process in the background.
There isn't much documentation available on the configuration and installation process - usually this is done by system distributors, not users themselves. As noted on the homepage, Plymouth isn't really designed to be built from source by end users. You can find some basic howto's around the internet, but today I would like to concentrate on the few bits that are harder to find.

</summary>
	</entry>

	<entry>
		<id>tag:sil2100.vexillium.org,2011-11-02:/?id=dev/21</id>
		<title>Maliit Input Method</title>
		<link href="http://sil2100.vexillium.org/?id=dev#21" />
		<updated>2011-11-02T20:59:00Z</updated>
		<summary>

Recently, I did some experimenting with the available OSK's (on-screen keyboards) around, ultimately focusing my attention on Maliit. Maliit is an OSK project mainly known for its use on the MeeGo mobile platform - but in reality it can also be used as an input method for both Qt and GTK+ standard applications on any Linux based operating system. Since the project is being actively developed and changes are made quite rapidly, a bit of work was needed to make it work for all possible IM cases. Nothing too complicated though. Let me help you dive in into the world of Maliit. 
Big thanks to all Maliit developers for their swift and professional help!

</summary>
	</entry>

	<entry>
		<id>tag:sil2100.vexillium.org,2011-10-10:/?id=dev/20</id>
		<title>Basic kernel debugging</title>
		<link href="http://sil2100.vexillium.org/?id=dev#20" />
		<updated>2011-10-10T20:46:00Z</updated>
		<summary>

A modified kernel, a custom system - this can lead to the kernel not being able to boot properly. What to do in such case? Usually we can try getting as much information as possible to locate the underlying problem. We can use some quite basic techniques to achieve our goal.

</summary>
	</entry>

	<entry>
		<id>tag:sil2100.vexillium.org,2011-09-08:/?id=dev/19</id>
		<title>Gone Canonical</title>
		<link href="http://sil2100.vexillium.org/?id=dev#19" />
		<updated>2011-09-08T19:11:00Z</updated>
		<summary>

Today's post is more private-life related than the others, but still in some means technical. I am proud to inform that I have officially joined the Canonical team as a Software Engineer! From now on, I will help enhancing the overall Ubuntu experience, mostly working on their flagship Unity environment.

</summary>
	</entry>

	<entry>
		<id>tag:sil2100.vexillium.org,2011-08-28:/?id=dev/18</id>
		<title>A little bit of profiling</title>
		<link href="http://sil2100.vexillium.org/?id=dev#18" />
		<updated>2011-08-28T11:18:00Z</updated>
		<summary>

Code profiling is a very important aspect of computer programming - almost every software engineer knows that well. It helps finding bottlenecks in your code, finding which parts need improvement, which cause trouble etc. I'm sure everyone knows of this already. There are many tools for this purpose available around the internet. This short post lists a few of them, as well as a brief introduction to a really simple and naive solution I made in the past.

</summary>
	</entry>

	<entry>
		<id>tag:sil2100.vexillium.org,2011-07-27:/?id=dev/17</id>
		<title>(Haiku Blog-O-Sphere) Bits and Pieces: Notifications and Menu Builders</title>
		<link href="http://sil2100.vexillium.org/?id=dev#17" />
		<updated>2011-07-27T20:09:00Z</updated>
		<summary>

During the weekends, I'm working on enhancing a very old BeOS application long lost in time. While browsing the Haiku kit and application source tree, sometimes I stumble upon some new (at least for me) but also interesting small elements that the Haiku operating system added to the Haiku API during its development. I like to try these elements out. Most of these API additions might change or even disappear in the nearest future, since I understand their development process is not yet finished, but they're interesting to know nevertheless.
Come visit my Haiku Blog-O-Sphere page and read my new blog-entry - Bits and Pieces: Notifications and Menu Builders.

</summary>
	</entry>

	<entry>
		<id>tag:sil2100.vexillium.org,2011-07-06:/?id=dev/16</id>
		<title>Flatconf 1.5 concept?</title>
		<link href="http://sil2100.vexillium.org/?id=dev#16" />
		<updated>2011-07-06T12:13:00Z</updated>
		<summary>

The Flatconf project has been part of my interests since long - from the very first moment I started cooperating the ASN Labs team. Not a very well known project, from what I know it was only used in the old Lintrack distribution. It's more of an interesting experimental concept than an innovative solution. Flatconf is an attempt of creating an universal configuration system based on the idea of 'flat files' and the usage of the file-system as a natural database. Currently two versions of the specification exist, with the newer one (2.0 draft) using a new concept for holding variable meta-data - not entirely a good one though. But, just now, I thought about the original idea and came up with some thoughts for modifying it, making it little bit more feasible. Flatconf 1.5 anyone?

</summary>
	</entry>

	<entry>
		<id>tag:sil2100.vexillium.org,2011-06-27:/?id=dev/15</id>
		<title>Haiku, the HaikuAPI and the menu</title>
		<link href="http://sil2100.vexillium.org/?id=dev#15" />
		<updated>2011-06-27T22:20:00Z</updated>
		<summary>

Most of you probably at least heard about the Haiku operating system. For those who didn't or just know the name, Haiku is the open source recreation and spiritual-successor of BeOS - an alternative multimedia-oriented operating system discontinued some time ago. Today's post will be a short collection of brief, random informations regarding its application programming interface (known as HaikuAPI). An API that I consider very consistent and intuitive to use.

</summary>
	</entry>

	<entry>
		<id>tag:sil2100.vexillium.org,2011-05-22:/?id=dev/14</id>
		<title>Ubiquiti RSPro RedBoot, OpenWRT and the exec</title>
		<link href="http://sil2100.vexillium.org/?id=dev#14" />
		<updated>2011-05-22T11:28:00Z</updated>
		<summary>

Not sure if this is a common bug for everyone using a hand-built OpenWRT on Ubiquiti RouterStation Pro platforms, but at least I notice it on all the boards I have in my possession. When booting the OpenWRT kernel and watching the printk() output, rubbish data can be seen in the kernel command line parameters - in normal cases. Usually this does not break anything, but as we know, RedBoot in Ubiquiti boards passes board-specific parameters to the kernel command line with information such as board type, ethernet MAC address etc. Sometimes those parameters are not passed and parsed correctly because of this. 
I did a small investigation why this happens.

</summary>
	</entry>

	<entry>
		<id>tag:sil2100.vexillium.org,2011-04-27:/?id=dev/13</id>
		<title>Stackguard in gcc</title>
		<link href="http://sil2100.vexillium.org/?id=dev#13" />
		<updated>2011-04-27T14:42:00Z</updated>
		<summary>

During programming in C for work yesterday, I popped into a small issue I did not expect. I was concerned because a piece of code that I normally thought would work (and it did, but in other circumstances) - this time did not. I wanted to better understand this problem and in the end learned a bit about the Stackguard in gcc. Some of you probably heard about it already. Consider the following piece of code below.

</summary>
	</entry>

	<entry>
		<id>tag:sil2100.vexillium.org,2011-04-13:/?id=dev/12</id>
		<title>Atom feed added</title>
		<link href="http://sil2100.vexillium.org/?id=dev#12" />
		<updated>2011-04-13T22:57:00Z</updated>
		<summary>

Quite recently, I was asked by a colleague to maybe include an RSS feed on my web page. I thought that it might not be a bad idea, considering that I am not doing updates too frequently. So I added an Atom Feed for the development part of my web page. Since I am not using any CMS system here - only some minor PHP scripting help - having a small amount of time, I decided writing a quick Python app converting my HTML content into an Atom web feed XML file.

</summary>
	</entry>

	<entry>
		<id>tag:sil2100.vexillium.org,2011-03-26:/?id=dev/11</id>
		<title>UniConf: part I</title>
		<link href="http://sil2100.vexillium.org/?id=dev#11" />
		<updated>2011-03-26T00:01:00Z</updated>
		<summary>

In this post, I will try to write about how to use the basic UniConf API. This is an unofficial guide to UniConf, so be advised. I will concentrate on the native C++ version of the API. This can be thought of as something like a small UniConf tutorial.

</summary>
	</entry>

	<entry>
		<id>tag:sil2100.vexillium.org,2011-02-15:/?id=dev/10</id>
		<title>UniConf: introduction</title>
		<link href="http://sil2100.vexillium.org/?id=dev#10" />
		<updated>2011-02-15T00:01:00Z</updated>
		<summary>

While writing my thesis some time ago, I did a small review of existing configuration systems in use. One of them especially caught my eye - UniConf. The authors once called it the "One True Configuration System", which might sound a bit provocative, but has a seed of truth in it.

</summary>
	</entry>

	<entry>
		<id>tag:sil2100.vexillium.org,2011-01-24:/?id=dev/9</id>
		<title>Haiku optional packages</title>
		<link href="http://sil2100.vexillium.org/?id=dev#9" />
		<updated>2011-01-24T00:01:00Z</updated>
		<summary>

Another short post. I've seen some people having trouble with proper including of development tools in the Haiku image. The process is very simple, but indeed there is not really much information about it. All the development tools (like gcc, ld, autotools, perl and more) are packed in so called Haiku Optional Packages. You can browse the list of available optional software in the build/jam/OptionalPackages file in the Haiku source tree. Some of them can be installed by using the in-system application installoptionalpackages as well, but that's another story.

</summary>
	</entry>

	<entry>
		<id>tag:sil2100.vexillium.org,2010-11-27:/?id=dev/8</id>
		<title>Slow git status response</title>
		<link href="http://sil2100.vexillium.org/?id=dev#8" />
		<updated>2010-11-27T00:01:00Z</updated>
		<summary>

This is a trick that my colleague Michał Wróbel showed me when I had problems with slow git response on my local repository.
Sometimes it strangely so happens that git status becomes really really slow, taking even a few minutes to complete - on a big, multi submodule repository in this case. This can be really annoying. Quoting my colleague:

</summary>
	</entry>

	<entry>
		<id>tag:sil2100.vexillium.org,2010-10-02:/?id=dev/7</id>
		<title>Kernel sysctl</title>
		<link href="http://sil2100.vexillium.org/?id=dev#7" />
		<updated>2010-10-02T00:01:00Z</updated>
		<summary>

More basics. The Linux kernel offers an interface for browsing and modifying system parameters, mostly kernel related. This interface is called sysctl. In Linux, sysctl variables are available to the user as normal, editable files through a virtual filesystem browsable in the /proc/sys directory - or by the usage of the sysctl application. In my today's post I would like to concentrate on how to create sysctl configurations in kernel code. 

</summary>
	</entry>

	<entry>
		<id>tag:sil2100.vexillium.org,2010-08-07:/?id=dev/6</id>
		<title>g++ and C++ - class method definitions and shared objects</title>
		<link href="http://sil2100.vexillium.org/?id=dev#6" />
		<updated>2010-08-07T00:01:00Z</updated>
		<summary>

During work on some things regarding my master thesis, I stumbled upon something I did not know about before. I'm not much of a reverse engineer, and I don't really have the time to look into it closer.

</summary>
	</entry>

	<entry>
		<id>tag:sil2100.vexillium.org,2010-05-31:/?id=dev/5</id>
		<title>Kernel writing to file</title>
		<link href="http://sil2100.vexillium.org/?id=dev#5" />
		<updated>2010-05-31T00:01:00Z</updated>
		<summary>

Today a quick post about something obvious - file reading/writing in kernel space. First of all, I'm obliged to inform you that this practice is very bad and shouldn't be done for purposes other than e.g. temporary debugging. You can find out why it's bad and how to do it properly here.

</summary>
	</entry>

	<entry>
		<id>tag:sil2100.vexillium.org,2010-05-06:/?id=dev/4</id>
		<title>Fakebox</title>
		<link href="http://sil2100.vexillium.org/?id=dev#4" />
		<updated>2010-05-06T00:01:00Z</updated>
		<summary>

Today will include a small advertisement-like post. Cross compilation has always been a bothersome process. Right now it's not as bad as it once was though - yet, still it can be time consuming, especially if you want to create you own GNU/Linux system for a different platform. For proper cross-compilation, we first need a specific toolchain present that will be able to generate code for our architecture of interest (we can use crosstool or OpenWrt here, for instance). Usually, this can be a troublesome as well, even more if the platform we're interested in is relatively unpopular - but we will skip this case for now and return to it in a later post.

</summary>
	</entry>

	<entry>
		<id>tag:sil2100.vexillium.org,2010-04-27:/?id=dev/3</id>
		<title>In-kernel module unloading and the usermode helper</title>
		<link href="http://sil2100.vexillium.org/?id=dev#3" />
		<updated>2010-04-27T00:01:00Z</updated>
		<summary>

It seems safely unloading a Linux kernel module in kernel space is not a very straightforward task, but once you see how it's done, it seems awfully trivial - and strange. Those of you that had some kernel programming experience before probably know about the request_module() and its non blocking version request_module_nowait() functions declared in include/linux/kmod.h. Just provide the name of the module you want to load as the parameter and the function takes care of the rest. Sadly, there is no such function for loaded module removal.

</summary>
	</entry>

	<entry>
		<id>tag:sil2100.vexillium.org,2010-04-12:/?id=dev/2</id>
		<title>Mikrotik RouterBoard 433AH</title>
		<link href="http://sil2100.vexillium.org/?id=dev#2" />
		<updated>2010-04-12T00:01:00Z</updated>
		<summary>

Some time ago, I have been given the opportunity to work on the Mikrotik RouterBoard 433AH platform. The RB433AH is mostly same as the RB433, just a bit more powerful. It has the standard Atheros AR7130 chipset clocked at 640 MHz (some weaker versions involve a 300MHz processor), 128MB or RAM, 3 10/100 ethernet ports, 3 MiniPCI slots and a microSD card reader. A more detailed hardware specification can be found on the RouterBoard page here. Pretty interesting piece of hardware. 
One thing that we need to get ready for is the serial port, since in this platform we need a null modem cable for connection.

</summary>
	</entry>

	<entry>
		<id>tag:sil2100.vexillium.org,2010-04-10:/?id=dev/1</id>
		<title>A welcoming post</title>
		<link href="http://sil2100.vexillium.org/?id=dev#1" />
		<updated>2010-04-10T00:01:00Z</updated>
		<summary>

With this first post, I would like to welcome everyone to my personal web log. I intend to post here about my experiences with technologies that I encounter at work and during private research. Since my interests include embedded systems, kernel hacking, GNU/Linux programming and the Haiku operating system, you can expect a bit of those in the near future.
Since I am also an amateur artist, you can find some of my artworks in the Art section.

</summary>
	</entry>


</feed>

