<?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>Frank Meffert, M.Sc.</title>
	<atom:link href="http://www.frankmeffert.de/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.frankmeffert.de</link>
	<description>From The Life of a Junior Software Engineer</description>
	<lastBuildDate>Fri, 12 Aug 2011 08:30:03 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.0.1</generator>
		<item>
		<title>Modify an initial ramdisk (initrd)</title>
		<link>http://www.frankmeffert.de/2011/08/modify-an-initial-ramdisk-initrd/</link>
		<comments>http://www.frankmeffert.de/2011/08/modify-an-initial-ramdisk-initrd/#comments</comments>
		<pubDate>Fri, 12 Aug 2011 08:15:42 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[Linux]]></category>

		<guid isPermaLink="false">http://www.frankmeffert.de/?p=252</guid>
		<description><![CDATA[Hi out there! Because modifying an initial ramdisk is something I had to do every once a while and I am pretty oblivious when it comes to &#8220;exotic&#8221; commands, I will persist the knowledge at this point. First of all, modern linux kernels (like everything above 2.6 or so) use an initrd that is a [...]]]></description>
			<content:encoded><![CDATA[<p>Hi out there!</p>
<p>Because modifying an initial ramdisk is something I had to do every once a while and I am pretty oblivious when it comes to &#8220;exotic&#8221; commands, I will persist the knowledge at this point.</p>
<p>First of all, modern linux kernels (like everything above 2.6 or so) use an initrd that is a gzipped cpio-image (use <tt>file</tt> to be sure).</p>
<h3>Extract an initial ramdisk</h3>
<ol>
<li>Extract (i.e. gunzip) the gzipped image

<div class="wp_syntax"><table><tr><td class="line_numbers"><pre>1
2
</pre></td><td class="code"><pre class="bash" style="font-family:monospace;">~ $ <span style="color: #c20cb9; font-weight: bold;">mv</span> initrd initrd.gz
~ $ <span style="color: #c20cb9; font-weight: bold;">gunzip</span> initrd.gz</pre></td></tr></table></div>

</li>
<li>Extract the contents of the cpio image

<div class="wp_syntax"><table><tr><td class="line_numbers"><pre>1
2
</pre></td><td class="code"><pre class="bash" style="font-family:monospace;">~ $ <span style="color: #c20cb9; font-weight: bold;">mkdir</span> extracted <span style="color: #000000; font-weight: bold;">&amp;&amp;</span> <span style="color: #7a0874; font-weight: bold;">cd</span> extracted
~<span style="color: #000000; font-weight: bold;">/</span>extracted $ <span style="color: #c20cb9; font-weight: bold;">cpio</span> <span style="color: #660033;">-id</span> <span style="color: #000000; font-weight: bold;">&lt;</span> ..<span style="color: #000000; font-weight: bold;">/</span>initrd</pre></td></tr></table></div>

</li>
</ol>
<h3>(Re-)build an initial ramdisk</h3>
<ol>
<li>Create the cpio image

<div class="wp_syntax"><table><tr><td class="line_numbers"><pre>1
</pre></td><td class="code"><pre class="bash" style="font-family:monospace;">~<span style="color: #000000; font-weight: bold;">/</span>extracted $ <span style="color: #c20cb9; font-weight: bold;">find</span> . <span style="color: #000000; font-weight: bold;">|</span> <span style="color: #c20cb9; font-weight: bold;">cpio</span> <span style="color: #660033;">-H</span> newc <span style="color: #660033;">-o</span> <span style="color: #000000; font-weight: bold;">&gt;</span> ..<span style="color: #000000; font-weight: bold;">/</span>initrd.new.cpio</pre></td></tr></table></div>

</li>
<li>Compress (i.e. gzip) the image

<div class="wp_syntax"><table><tr><td class="line_numbers"><pre>1
2
3
</pre></td><td class="code"><pre class="bash" style="font-family:monospace;">~<span style="color: #000000; font-weight: bold;">/</span>extracted $ <span style="color: #7a0874; font-weight: bold;">cd</span> ..
~ $ <span style="color: #c20cb9; font-weight: bold;">gzip</span> initrd.new.cpio
~ $ <span style="color: #c20cb9; font-weight: bold;">mv</span> initrd.new.cpio.gz <span style="color: #000000; font-weight: bold;">/</span>boot<span style="color: #000000; font-weight: bold;">/</span>initrd-2.6.22-some-kernel</pre></td></tr></table></div>

</li>
</ol>
<p>It might be possible to simplify some steps of this howto, but I tend to clarify things to avoid confusion.</p>
<p><b>Note:</b><br />
I stumbled over the <i>newc</i> format of cpio. Actually, I think that there&#8217;s not pretty much of a choice here.<br />
The documentation doesn&#8217;t say much about that, just use it.</p>
<p>Have fun, take care!</p>
]]></content:encoded>
			<wfw:commentRss>http://www.frankmeffert.de/2011/08/modify-an-initial-ramdisk-initrd/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Need ldd on windows?</title>
		<link>http://www.frankmeffert.de/2011/05/need-ldd-on-windows/</link>
		<comments>http://www.frankmeffert.de/2011/05/need-ldd-on-windows/#comments</comments>
		<pubDate>Sun, 29 May 2011 17:21:20 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[Programming]]></category>

		<guid isPermaLink="false">http://www.frankmeffert.de/?p=246</guid>
		<description><![CDATA[Hey there, if you might ever need something like ldd on windows to figure out the dependencies on dynamic libraries of some binary, the following link could interest you: http://www.dependencywalker.com/]]></description>
			<content:encoded><![CDATA[<p>Hey there,</p>
<p>if you might ever need something like <tt>ldd</tt> on windows to figure out the dependencies on dynamic libraries of some binary, the following link could interest you:</p>
<p><a href="http://www.dependencywalker.com/">http://www.dependencywalker.com/</a></p>
]]></content:encoded>
			<wfw:commentRss>http://www.frankmeffert.de/2011/05/need-ldd-on-windows/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Got root on MacOS?</title>
		<link>http://www.frankmeffert.de/2011/05/got-root-on-macos/</link>
		<comments>http://www.frankmeffert.de/2011/05/got-root-on-macos/#comments</comments>
		<pubDate>Sun, 01 May 2011 10:00:23 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[MacOS]]></category>

		<guid isPermaLink="false">http://www.frankmeffert.de/?p=242</guid>
		<description><![CDATA[Hey you root lovers, no, it&#8217;s not a dream, you can haz root on MacOS, too. First, out of security reasons, I recommend to use sudo to do all the nasty stuff on the console. If that ain&#8217;t enough, the root users needs to be enabled first. As on most modern Linux distributions, you can [...]]]></description>
			<content:encoded><![CDATA[<p>Hey you root lovers,</p>
<p>no, it&#8217;s not a dream, you can haz root on MacOS, too. First, out of security reasons, I recommend to use <tt>sudo</tt> to do all the nasty stuff on the console. If that ain&#8217;t enough, the root users needs to be enabled first. As on most modern Linux distributions, you can enable the root user by assigning a root password (works on Ubuntu et al.):</p>

<div class="wp_syntax"><table><tr><td class="line_numbers"><pre>1
</pre></td><td class="code"><pre class="bash" style="font-family:monospace;">$ <span style="color: #c20cb9; font-weight: bold;">sudo</span> <span style="color: #c20cb9; font-weight: bold;">passwd</span> root</pre></td></tr></table></div>

<p>The second &#8211; more mac oriented &#8211; way is the following:</p>
<ol>
<li>Go to <b>System Preferences</b> and then select <b>Accounts</b></li>
<li>Click on the lock and authenticate with an administrator account.</li>
<li>Click Login Options&#8230;.</li>
<li>Click the &#8220;Edit&#8230;&#8221; or &#8220;Join&#8230;&#8221; button at the bottom right.</li>
<li>Click the &#8220;Open Directory Utility&#8230;&#8221; button.</li>
<li>Click on the lock and authenticate with an administrator account.</li>
<li>Choose <b>Enable Root</b> User from the <b>Edit</b> menu.</li>
<li>Enter the root password you wish to use in both the Password and Verify fields, then click OK.</li>
</ol>
<p>The steps to disable the root user afterwards are nearly the same, so I won&#8217;t repeat myself.</p>
<p>The second way was taken from <a href="http://support.apple.com/kb/ht1528">here</a></p>
]]></content:encoded>
			<wfw:commentRss>http://www.frankmeffert.de/2011/05/got-root-on-macos/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>MacOS and locked files</title>
		<link>http://www.frankmeffert.de/2011/05/macos-and-locked-files/</link>
		<comments>http://www.frankmeffert.de/2011/05/macos-and-locked-files/#comments</comments>
		<pubDate>Sun, 01 May 2011 09:39:59 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[MacOS]]></category>

		<guid isPermaLink="false">http://www.frankmeffert.de/?p=236</guid>
		<description><![CDATA[Hey peeps around the world, recently I copied some files from one mac to another via network. At first, the access rights on the remote computer were messed up somehow. The nobody user had its finger in the pie. Finally, I&#8217;ve made it to copy the files. Now that the files were on my disk, [...]]]></description>
			<content:encoded><![CDATA[<p>Hey peeps around the world,</p>
<p>recently I copied some files from one mac to another via network. At first, the access rights on the remote computer were messed up somehow. The nobody user had its finger in the pie. Finally, I&#8217;ve made it to copy the files. Now that the files were on my disk, they were still locked and the permissions were still messed up somehow. So, as a Linux guy, I just tried to <tt>chown</tt> the files, but this leads to an <tt>operation not permitted</tt>, although I was running chown in sudo mode. After some research I found out that the files were <b>locked</b>, which couldn&#8217;t be changed via the finder app. Fortunately, this can also be changed via CLI:</p>

<div class="wp_syntax"><table><tr><td class="line_numbers"><pre>1
</pre></td><td class="code"><pre class="bash" style="font-family:monospace;">$ <span style="color: #c20cb9; font-weight: bold;">sudo</span> chflags <span style="color: #660033;">-R</span> nouchg <span style="color: #000000; font-weight: bold;">/</span>path<span style="color: #000000; font-weight: bold;">/</span>to<span style="color: #000000; font-weight: bold;">/</span>files</pre></td></tr></table></div>

<p>Happy unlocking!</p>
]]></content:encoded>
			<wfw:commentRss>http://www.frankmeffert.de/2011/05/macos-and-locked-files/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>UDEV, USB and permissions</title>
		<link>http://www.frankmeffert.de/2011/03/udev-usb-and-permissions/</link>
		<comments>http://www.frankmeffert.de/2011/03/udev-usb-and-permissions/#comments</comments>
		<pubDate>Thu, 31 Mar 2011 11:14:21 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[Linux]]></category>

		<guid isPermaLink="false">http://www.frankmeffert.de/?p=181</guid>
		<description><![CDATA[Hi peeps, I&#8217;ve been stumbling on this so many times, so I decided to dedicate this post to the following issue: If you connect an USB device to your computer, trying to access it under Linux, you might run into permission issues caused by the UDEV daemon. In my case, I was trying to connect [...]]]></description>
			<content:encoded><![CDATA[<p>Hi peeps,</p>
<p>I&#8217;ve been stumbling on this so many times, so I decided to dedicate this post to the following issue:<br />
If you connect an USB device to your computer, trying to access it under Linux, you might run into permission issues caused by the UDEV daemon.</p>
<p>In my case, I was trying to connect an Android smartphone in order to work with it.<br />
However, somehow, I had no permissions to access it, due to UDEV.</p>
<p>Here&#8217;s how to fix such a problem:</p>
<ol>
<li>
Determine the <i>vendor-id</i> and the <i>product-id</i> of your device using <tt>lsusb</tt>:</p>

<div class="wp_syntax"><table><tr><td class="line_numbers"><pre>1
2
3
4
5
6
7
</pre></td><td class="code"><pre class="bash" style="font-family:monospace;">Bus 002 Device 009: ID 0bb4:0c97 High Tech Computer Corp. 
Bus 002 Device 004: ID 04b3:310c IBM Corp. Wheel Mouse
Bus 002 Device 003: ID 046d:c318 Logitech, Inc. Illuminated Keyboard
Bus 002 Device 002: ID <span style="color: #000000;">8087</span>:0020 Intel Corp. Integrated Rate Matching Hub
Bus 002 Device 001: ID 1d6b:0002 Linux Foundation <span style="color: #000000;">2.0</span> root hub
Bus 001 Device 002: ID <span style="color: #000000;">8087</span>:0020 Intel Corp. Integrated Rate Matching Hub
Bus 001 Device 001: ID 1d6b:0002 Linux Foundation <span style="color: #000000;">2.0</span> root hub</pre></td></tr></table></div>

</li>
<li>
Create a new udev rule for this device, i.e., create a file <tt>/etc/udev/rules.d/51-mydevice</tt> (for instance), with the following contents:</p>

<div class="wp_syntax"><table><tr><td class="line_numbers"><pre>1
</pre></td><td class="code"><pre class="bash" style="font-family:monospace;"><span style="color: #007800;">SUBSYSTEMS</span>==<span style="color: #ff0000;">&quot;usb&quot;</span>, ATTRS<span style="color: #7a0874; font-weight: bold;">&#123;</span>idVendor<span style="color: #7a0874; font-weight: bold;">&#125;</span>==<span style="color: #ff0000;">&quot;0bb4&quot;</span>, ATTRS<span style="color: #7a0874; font-weight: bold;">&#123;</span>idProduct<span style="color: #7a0874; font-weight: bold;">&#125;</span> ==<span style="color: #ff0000;">&quot;41db&quot;</span>, <span style="color: #000000;">2</span> <span style="color: #007800;">MODE</span>=<span style="color: #ff0000;">&quot;0666&quot;</span>, <span style="color: #007800;">OWNER</span>=<span style="color: #ff0000;">&quot;%username%&quot;</span></pre></td></tr></table></div>

</li>
</ol>
]]></content:encoded>
			<wfw:commentRss>http://www.frankmeffert.de/2011/03/udev-usb-and-permissions/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Emacs quoted insert</title>
		<link>http://www.frankmeffert.de/2011/03/emacs-quoted-insert/</link>
		<comments>http://www.frankmeffert.de/2011/03/emacs-quoted-insert/#comments</comments>
		<pubDate>Tue, 29 Mar 2011 08:10:09 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[Emacs]]></category>

		<guid isPermaLink="false">http://www.frankmeffert.de/?p=168</guid>
		<description><![CDATA[Good morning folks out there, I&#8217;ve got another neat little feature of emacs for you today, it&#8217;s called quoted insert. I stumbled on this, because I use spaces for code indentation in my emacs, but I needed to insert an actual TAB character. So, in this situation, the combination C-q &#60;TAB&#62; is the way to [...]]]></description>
			<content:encoded><![CDATA[<p>Good morning folks out there,</p>
<p>I&#8217;ve got another neat little feature of emacs for you today, it&#8217;s called <i>quoted insert</i>.<br />
I stumbled on this, because I use spaces for code indentation in my emacs, but I needed to insert an actual TAB character.<br />
So, in this situation, the combination <tt>C-q &lt;TAB&gt;</tt> is the way to go, which interprets the next typed character in a quoted fashion.</p>
<p>Also, refer to <a href="http://www.gnu.org/software/emacs/manual/html_node/emacs/Inserting-Text.html">this</a> link for further reading.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.frankmeffert.de/2011/03/emacs-quoted-insert/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Sync with Google on MacOS</title>
		<link>http://www.frankmeffert.de/2011/03/sync-with-google-on-macos/</link>
		<comments>http://www.frankmeffert.de/2011/03/sync-with-google-on-macos/#comments</comments>
		<pubDate>Tue, 15 Mar 2011 18:56:32 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[MacOS]]></category>

		<guid isPermaLink="false">http://www.frankmeffert.de/?p=159</guid>
		<description><![CDATA[Hey people out there, daddy&#8217;s got a brand new toy to play with. I&#8217;ve bought myself a macBook pro and this piece of pleasure impresses me again day after day. I&#8217;ve just discovered that one can sync the addressbook app with their google account. Here you go: Edit the file ~/Library/Preferences/com.apple.iPod.plist 1 &#123; Devices = [...]]]></description>
			<content:encoded><![CDATA[<p>Hey people out there,</p>
<p>daddy&#8217;s got a brand new toy to play with. I&#8217;ve bought myself a macBook pro and this piece of pleasure impresses me again day after day. I&#8217;ve just discovered that one can sync the addressbook app with their google account.</p>
<p>Here you go:</p>
<ol>
<li>Edit the file <tt>~/Library/Preferences/com.apple.iPod.plist</tt>

<div class="wp_syntax"><table><tr><td class="line_numbers"><pre>1
</pre></td><td class="code"><pre class="gdb" style="font-family:monospace;"><span style="font-weight:bold;">&#123;</span> Devices = <span style="font-weight:bold;">&#123;</span> red-herring = <span style="font-weight:bold;">&#123;</span> 'Family ID' = <span style="color: #cc66cc;">10001</span>; <span style="font-weight:bold;">&#125;</span>; <span style="font-weight:bold;">&#125;</span>; <span style="font-weight:bold;">&#125;</span></pre></td></tr></table></div>

<p>If the file is not present, then create it. If the file is present and too heavy to read, use some property browser.
</li>
<li>
Now, open up Mac addressbook and go to preferences. There, the &#8220;Sync with google&#8221; option should now be available on the &#8220;accounts&#8221; tab. Activate it and enter your Google credentials.
</li>
<li>
An actual sync can be triggered with the following command:</p>

<div class="wp_syntax"><table><tr><td class="line_numbers"><pre>1
</pre></td><td class="code"><pre class="bash" style="font-family:monospace;">$ <span style="color: #000000; font-weight: bold;">/</span>System<span style="color: #000000; font-weight: bold;">/</span>Library<span style="color: #000000; font-weight: bold;">/</span>PrivateFrameworks<span style="color: #000000; font-weight: bold;">/</span>GoogleContactSync.framework<span style="color: #000000; font-weight: bold;">/</span>Versions<span style="color: #000000; font-weight: bold;">/</span>A<span style="color: #000000; font-weight: bold;">/</span>Resources<span style="color: #000000; font-weight: bold;">/</span>gconsync <span style="color: #660033;">--sync</span> com.google.ContactSync</pre></td></tr></table></div>

<p>I don&#8217;t know, if this only has to be done initially or anytime a sync is wanted&#8230; TBD.
</li>
</ol>
]]></content:encoded>
			<wfw:commentRss>http://www.frankmeffert.de/2011/03/sync-with-google-on-macos/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>GDB command</title>
		<link>http://www.frankmeffert.de/2011/03/gdb-command/</link>
		<comments>http://www.frankmeffert.de/2011/03/gdb-command/#comments</comments>
		<pubDate>Mon, 07 Mar 2011 15:35:17 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[Programming]]></category>

		<guid isPermaLink="false">http://www.frankmeffert.de/?p=149</guid>
		<description><![CDATA[Hey folks, I&#8217;ve just discovered another neat feature of gdb: command. I was in a situation where I needed to watch a certain variable on each breakpoint hit. Generally, this is pretty easy in gdb using its watch-feature. Unfortunately, the variable under consideration was a QString. Now, we already have some experience with those little [...]]]></description>
			<content:encoded><![CDATA[<p>Hey folks,</p>
<p>I&#8217;ve just discovered another neat feature of gdb: <b>command</b>.<br />
I was in a situation where I needed to <i>watch</i> a certain variable on each breakpoint hit.<br />
Generally, this is pretty easy in gdb using its <tt>watch</tt>-feature. Unfortunately, the variable under consideration was a QString.<br />
Now, we already have some experience with those little brothers. If we only would have a way to call functions on each breakpoint hit&#8230;</p>
<p>&#8230; and here it is: <b>command</b>:<br />
Once you have a breakpoint, you can assign a <i>command</i> to it, which will be executed each time the breakpoint is hit. For example:</p>

<div class="wp_syntax"><table><tr><td class="line_numbers"><pre>1
2
3
4
5
6
7
8
9
</pre></td><td class="code"><pre class="gdb" style="font-family:monospace;"><span style="font-weight:bold;">&#40;</span>gdb<span style="font-weight:bold;">&#41;</span> b main
Breakpoint <span style="color: #cc66cc;">1</span> at <span style="color: #A3007D;">0x804db90</span>: file main.cpp, line <span style="color: #cc66cc;">11</span>.
<span style="font-weight:bold;">&#40;</span>gdb<span style="font-weight:bold;">&#41;</span> command <span style="color: #cc66cc;">1</span>
&gt;p argc
&gt;end
<span style="font-weight:bold;">&#40;</span>gdb<span style="font-weight:bold;">&#41;</span> r
<span style="color: #000066; font-weight:bold;"><span style="font-weight:bold;">&#91;</span>Thread debugging using libthread_db enabled<span style="font-weight:bold;">&#93;</span></span>
Breakpoint <span style="color: #cc66cc;">1</span>, main <span style="font-weight:bold;">&#40;</span>argc=<span style="color: #cc66cc;">1</span>, argv=<span style="color: #A3007D;">0xbffff184</span><span style="font-weight:bold;">&#41;</span> at <span style="color: #0066FF; text-style:italic;">main.cpp</span>:<span style="color: #FF00BF;">11</span>
$1 = <span style="color: #cc66cc;">1</span></pre></td></tr></table></div>

<p>In the example above, the command <tt>p argc</tt> is assigned to breakpoint <i>#1</i>, which will simply print the number of arguments. If a QString variable is considered, one would&#8217;ve to replace the <tt>p</tt> with some gdb macro that is able to print a QString. If no breakpoint number is given, gdb uses the number of the last created one. To tell gdb to leave the command mode, just type <tt>end</tt></p>
]]></content:encoded>
			<wfw:commentRss>http://www.frankmeffert.de/2011/03/gdb-command/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Linux and itunescompilation id3</title>
		<link>http://www.frankmeffert.de/2010/12/linux-and-itunescompilation-id3/</link>
		<comments>http://www.frankmeffert.de/2010/12/linux-and-itunescompilation-id3/#comments</comments>
		<pubDate>Fri, 03 Dec 2010 18:52:03 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[Linux]]></category>

		<guid isPermaLink="false">http://www.frankmeffert.de/?p=143</guid>
		<description><![CDATA[I was looking for a tool to set the itunescompilation (see here) ID3-field of certain mp3-files. This is necessary for iTunes to recognize that imported files belong to a compilation (or not). Most of the (decent) Linux tools for id3 tagging are not able to perform that task (including EasyTag). Fortunately, I found eyeD3 (see [...]]]></description>
			<content:encoded><![CDATA[<p>I was looking for a tool to set the <tt>itunescompilation</tt> (see <a href="http://www.id3.org/iTunes">here</a>) ID3-field of certain mp3-files. This is necessary for iTunes to recognize that imported files belong to a compilation (or not). Most of the (decent) Linux tools for id3 tagging are not able to perform that task (including EasyTag). Fortunately, I found eyeD3 (see <a href="http://eyed3.nicfit.net/">here</a>), which can be used as follows:</p>

<div class="wp_syntax"><div class="code"><pre class="bash" style="font-family:monospace;">$ eyeD3 <span style="color: #660033;">--set-text-frame</span>=TCMP:<span style="color: #000000;">1</span> <span style="color: #000000; font-weight: bold;">&lt;</span>file.mp3<span style="color: #000000; font-weight: bold;">&gt;</span></pre></div></div>

]]></content:encoded>
			<wfw:commentRss>http://www.frankmeffert.de/2010/12/linux-and-itunescompilation-id3/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Start Emacs with GDB directly</title>
		<link>http://www.frankmeffert.de/2010/11/start-emacs-with-gdb-directly/</link>
		<comments>http://www.frankmeffert.de/2010/11/start-emacs-with-gdb-directly/#comments</comments>
		<pubDate>Wed, 24 Nov 2010 16:03:37 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[Emacs]]></category>

		<guid isPermaLink="false">http://www.frankmeffert.de/?p=134</guid>
		<description><![CDATA[Hey folks out there, as we all know, Emacs has a very powerful (graphical) interface to our beloved debugger GDB. Until five minutes ago, I used to start a program in debug mode by first starting emacs and then invoking M-x gdb, which can take a long time to navigate to the desired binary. Furthermore, [...]]]></description>
			<content:encoded><![CDATA[<p>Hey folks out there,</p>
<p>as we all know, Emacs has a very powerful (graphical) interface to our beloved debugger GDB. Until five minutes ago, I used to start a program in debug mode by first starting emacs and then invoking <tt>M-x gdb</tt>, which can take a long time to navigate to the desired binary. Furthermore, the directory where the binary resides isn&#8217;t the actual runtime-path in many cases. Fortunately, Emacs can be started in GDB-mode directly, by calling it with the <tt>--eval</tt> parameter on the command-line. What we want to evaluate during startup is the <tt>(gdb)</tt> function. Its only parameter is a string describing how gdb should be invoked. Thus, we can write the following bash function:</p>

<div class="wp_syntax"><div class="code"><pre class="bash" style="font-family:monospace;">debug <span style="color: #7a0874; font-weight: bold;">&#40;</span><span style="color: #7a0874; font-weight: bold;">&#41;</span> <span style="color: #7a0874; font-weight: bold;">&#123;</span>
    emacs <span style="color: #660033;">--eval</span> <span style="color: #ff0000;">&quot;(gdb <span style="color: #000099; font-weight: bold;">\&quot;</span>gdb --annotate=3 --cd=<span style="color: #780078;">`pwd`</span> $*<span style="color: #000099; font-weight: bold;">\&quot;</span>)&quot;</span> <span style="color: #000000; font-weight: bold;">&amp;</span>
<span style="color: #7a0874; font-weight: bold;">&#125;</span></pre></div></div>

<p>Here, the <tt>--annotate</tt> option tells gdb to generate annotations that can be interpreted by the Emacs gdb interface (the integer argument is the annotation-level). Furthermore, the <tt>--cd</tt> parameter instructs gdb to change its working dir to the specified one, which is the current working dir in our case. Thus we can call <tt>debug ./bin/prog</tt>, for instance.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.frankmeffert.de/2010/11/start-emacs-with-gdb-directly/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>

