<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>Farid's Blog &#187; Programming</title>
	<atom:link href="http://farid.hajji.name/blog/category/technical/programming/feed/" rel="self" type="application/rss+xml" />
	<link>http://farid.hajji.name/blog</link>
	<description>A Mixed Bag Of Thoughts</description>
	<lastBuildDate>Wed, 28 Sep 2011 18:42:05 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.2.1</generator>
		<item>
		<title>C++ Tutorial (5)</title>
		<link>http://farid.hajji.name/blog/2010/03/21/cpp-tutorial-5/</link>
		<comments>http://farid.hajji.name/blog/2010/03/21/cpp-tutorial-5/#comments</comments>
		<pubDate>Sun, 21 Mar 2010 16:02:57 +0000</pubDate>
		<dc:creator>Farid Hajji</dc:creator>
				<category><![CDATA[Programming]]></category>

		<guid isPermaLink="false">http://farid.hajji.name/blog/?p=70</guid>
		<description><![CDATA[This is part 5 of a fast paced C++ tutorial for programmers familiar with high level languages like Perl and Python. In this part, we’ll learn how to use an external library (POCO) to base64 encode and -decode files and strings.]]></description>
		<wfw:commentRss>http://farid.hajji.name/blog/2010/03/21/cpp-tutorial-5/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>C++ Tutorial (4)</title>
		<link>http://farid.hajji.name/blog/2010/03/21/cpp-tutorial-4/</link>
		<comments>http://farid.hajji.name/blog/2010/03/21/cpp-tutorial-4/#comments</comments>
		<pubDate>Sun, 21 Mar 2010 11:28:07 +0000</pubDate>
		<dc:creator>Farid Hajji</dc:creator>
				<category><![CDATA[Programming]]></category>

		<guid isPermaLink="false">http://farid.hajji.name/blog/?p=69</guid>
		<description><![CDATA[This is part 4 of a fast paced C++ tutorial for programmers familiar with high level languages like Perl and Python. In this part, we’ll learn how to copy files "the C++ way" using stream iterators. We'll make use of the std::copy algorithm to eliminate the need for explicit loops, thus resulting in more idiomatic programs.]]></description>
		<wfw:commentRss>http://farid.hajji.name/blog/2010/03/21/cpp-tutorial-4/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Self-modifying Code in FreeBSD Assembly</title>
		<link>http://farid.hajji.name/blog/2010/02/08/self-modifying-code-in-freebsd-assembly/</link>
		<comments>http://farid.hajji.name/blog/2010/02/08/self-modifying-code-in-freebsd-assembly/#comments</comments>
		<pubDate>Mon, 08 Feb 2010 22:44:14 +0000</pubDate>
		<dc:creator>Farid Hajji</dc:creator>
				<category><![CDATA[Programming]]></category>

		<guid isPermaLink="false">http://farid.hajji.name/blog/?p=56</guid>
		<description><![CDATA[Self-modifying code, while rarely a good idea, is possible if the operating system allows us to remove the read-only protection on the code pages (.text section). FreeBSD provides the mprotect(2) system call to do just that. This post contains an assembly language example that makes use of it on FreeBSD/amd64 and FreeBSD/i386. The techniques shown here can be used to create true self-modifying code.]]></description>
		<wfw:commentRss>http://farid.hajji.name/blog/2010/02/08/self-modifying-code-in-freebsd-assembly/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
		<item>
		<title>Observer Effect in FreeBSD Assembly</title>
		<link>http://farid.hajji.name/blog/2010/02/06/observer-effect-in-freebsd-assembly/</link>
		<comments>http://farid.hajji.name/blog/2010/02/06/observer-effect-in-freebsd-assembly/#comments</comments>
		<pubDate>Sat, 06 Feb 2010 18:53:51 +0000</pubDate>
		<dc:creator>Farid Hajji</dc:creator>
				<category><![CDATA[Programming]]></category>

		<guid isPermaLink="false">http://farid.hajji.name/blog/?p=55</guid>
		<description><![CDATA[When a program behaves differently inside and outside of a debugger session, we may have an instance of the famous observer effect in information technology. This post illustrates this effect with a simple program in FreeBSD assembly.]]></description>
		<wfw:commentRss>http://farid.hajji.name/blog/2010/02/06/observer-effect-in-freebsd-assembly/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Return Values of FreeBSD Syscalls in Assembly</title>
		<link>http://farid.hajji.name/blog/2010/02/05/return-values-of-freebsd-syscalls-in-assembly/</link>
		<comments>http://farid.hajji.name/blog/2010/02/05/return-values-of-freebsd-syscalls-in-assembly/#comments</comments>
		<pubDate>Fri, 05 Feb 2010 20:30:06 +0000</pubDate>
		<dc:creator>Farid Hajji</dc:creator>
				<category><![CDATA[Programming]]></category>

		<guid isPermaLink="false">http://farid.hajji.name/blog/?p=53</guid>
		<description><![CDATA[This post shows how to write "hello, world!\n" into a file with FreeBSD assembly language. We learn that FreeBSD/amd64 and FreeBSD/i386 save the return value of syscalls in %rax or %eax if no error occurs. In case of errors, errno is saved in %rax or %eax, and the carry flag is set.]]></description>
		<wfw:commentRss>http://farid.hajji.name/blog/2010/02/05/return-values-of-freebsd-syscalls-in-assembly/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Hello World in FreeBSD Assembly</title>
		<link>http://farid.hajji.name/blog/2009/12/26/hello-world-in-freebsd-assembler/</link>
		<comments>http://farid.hajji.name/blog/2009/12/26/hello-world-in-freebsd-assembler/#comments</comments>
		<pubDate>Sat, 26 Dec 2009 16:25:57 +0000</pubDate>
		<dc:creator>Farid Hajji</dc:creator>
				<category><![CDATA[Programming]]></category>

		<guid isPermaLink="false">http://farid.hajji.name/blog/?p=49</guid>
		<description><![CDATA[How to write a hello world program in assembly for the FreeBSD/amd64 (x86-64) and FreeBSD/i386 (x86-32) platforms.]]></description>
		<wfw:commentRss>http://farid.hajji.name/blog/2009/12/26/hello-world-in-freebsd-assembler/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>C++ Tutorial (3)</title>
		<link>http://farid.hajji.name/blog/2009/11/06/cpp-tutorial-3/</link>
		<comments>http://farid.hajji.name/blog/2009/11/06/cpp-tutorial-3/#comments</comments>
		<pubDate>Fri, 06 Nov 2009 15:56:12 +0000</pubDate>
		<dc:creator>Farid Hajji</dc:creator>
				<category><![CDATA[Programming]]></category>

		<guid isPermaLink="false">http://farid.hajji.name/blog/?p=46</guid>
		<description><![CDATA[This is part 3 of a fast paced C++ tutorial for programmers familiar with high level languages like Perl and Python. In this part, we'll learn that STL containers store copies of objects. To get Python-like semantics, we'll store std::tr1::shared_ptr pointers to dynamically allocated objects instead of raw pointers into the std::map.]]></description>
		<wfw:commentRss>http://farid.hajji.name/blog/2009/11/06/cpp-tutorial-3/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>C++ Tutorial (2)</title>
		<link>http://farid.hajji.name/blog/2009/09/29/cpp-tutorial-2/</link>
		<comments>http://farid.hajji.name/blog/2009/09/29/cpp-tutorial-2/#comments</comments>
		<pubDate>Tue, 29 Sep 2009 16:32:34 +0000</pubDate>
		<dc:creator>Farid Hajji</dc:creator>
				<category><![CDATA[Programming]]></category>

		<guid isPermaLink="false">http://farid.hajji.name/blog/?p=42</guid>
		<description><![CDATA[This is part 2 of a fast paced C++ tutorial for programmers familiar with high level languages like Python and Perl. We introduce the incredibly useful and versatile std::map associative arrays, a.k.a. dictionaries.]]></description>
		<wfw:commentRss>http://farid.hajji.name/blog/2009/09/29/cpp-tutorial-2/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>C++ Tutorial (1)</title>
		<link>http://farid.hajji.name/blog/2009/09/24/cpp-tutorial-1/</link>
		<comments>http://farid.hajji.name/blog/2009/09/24/cpp-tutorial-1/#comments</comments>
		<pubDate>Thu, 24 Sep 2009 21:32:36 +0000</pubDate>
		<dc:creator>Farid Hajji</dc:creator>
				<category><![CDATA[Programming]]></category>

		<guid isPermaLink="false">http://farid.hajji.name/blog/?p=40</guid>
		<description><![CDATA[This is part 1 of a fast paced C++ tutorial for programmers familiar with high-level languages like Python and Perl. We start with the traditional Hello, World program, and show how to write custom stream input and output operators.]]></description>
		<wfw:commentRss>http://farid.hajji.name/blog/2009/09/24/cpp-tutorial-1/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>

