<?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>Andreas Schneider</title>
	<atom:link href="http://blog.cryptomilk.org/feed/" rel="self" type="application/rss+xml" />
	<link>http://blog.cryptomilk.org</link>
	<description>a cosmological pedestrian</description>
	<lastBuildDate>Mon, 23 Jan 2012 09:21:09 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.3.1</generator>
		<item>
		<title>CyanogenMod 9 for HTC Wildfire S</title>
		<link>http://blog.cryptomilk.org/2012/01/23/cyanogenmod-9-for-htc-wildfire-s/</link>
		<comments>http://blog.cryptomilk.org/2012/01/23/cyanogenmod-9-for-htc-wildfire-s/#comments</comments>
		<pubDate>Mon, 23 Jan 2012 08:37:17 +0000</pubDate>
		<dc:creator>Andreas Schneider</dc:creator>
				<category><![CDATA[Development]]></category>
		<category><![CDATA[Linux]]></category>

		<guid isPermaLink="false">http://blog.cryptomilk.org/?p=268</guid>
		<description><![CDATA[I've got a new gadget, a nice and small Android based smartphone, the HTC Wildfire S (WFS). The week before I got it alquez finished porting CyanogenMod 7 to the wfs. I've installed it and started to use it. After some time I was curios how to build the system. I've asked alquez how ...]]></description>
			<content:encoded><![CDATA[<p>I&#8217;ve got a new gadget, a nice and small Android based smartphone, the HTC Wildfire S (WFS). The week before I got it alquez finished porting CyanogenMod 7 to the wfs. I&#8217;ve installed it and started to use it. After some time I was curios how to build the system. I&#8217;ve asked alquez how to set it up and I built it from source. Then I got interested in Android 4.0 and looked at CM9. After I managed to build it, it booted with the CM7 kernel and you could get a shell but that was it. So I&#8217;ve started to look into the Kernel and read CM9 code. Now after two weeks of work the device shows a UI. The questions if it will work in the end. Most of the stuff is Open Source but you rely on some binary libraries for OpenGL and maybe will not work out in the end. Android 4.0 relies on a lot of features of the 3.0 Kernel, new netfilter modules, updated graphics stuff etc.</p>
<p>If it will not work out in the end, at least I worked on the Kernel <img src='http://blog.cryptomilk.org/wp-includes/images/smilies/icon_wink.gif' alt=';)' class='wp-smiley' /> </p>
<p><a href="http://blog.cryptomilk.org/wp-content/uploads/2012/01/cm9_on_wfs.jpg"><img class="alignnone size-medium wp-image-273" title="cm9_on_wfs" src="http://blog.cryptomilk.org/wp-content/uploads/2012/01/cm9_on_wfs-239x300.jpg" alt="" width="239" height="300" /></a></p>
<p class="wp-flattr-button"></p> <p><a href="http://blog.cryptomilk.org/?flattrss_redirect&amp;id=268&amp;md5=4000da3ccab953a76842d321ed36a596" title="Flattr" target="_blank"><img src="http://blog.cryptomilk.org/wp-content/plugins/flattr/img/flattr-badge-large.png" alt="flattr this!"/></a></p>]]></content:encoded>
			<wfw:commentRss>http://blog.cryptomilk.org/2012/01/23/cyanogenmod-9-for-htc-wildfire-s/feed/</wfw:commentRss>
		<slash:comments>4</slash:comments>
		</item>
		<item>
		<title>strace</title>
		<link>http://blog.cryptomilk.org/2011/10/10/strace/</link>
		<comments>http://blog.cryptomilk.org/2011/10/10/strace/#comments</comments>
		<pubDate>Mon, 10 Oct 2011 12:09:56 +0000</pubDate>
		<dc:creator>Andreas Schneider</dc:creator>
				<category><![CDATA[Linux]]></category>
		<category><![CDATA[RedHat]]></category>

		<guid isPermaLink="false">http://blog.cryptomilk.org/?p=264</guid>
		<description><![CDATA[You're traveling with your netbook and the network doesn't work. Normally you start to debug it and look with strace what's going on. But hey, Fedora doesn't install strace by default and you can't install it cause the network doesn't work...

m(]]></description>
			<content:encoded><![CDATA[<p>You&#8217;re traveling with your netbook and the network doesn&#8217;t work. Normally you start to debug it and look with strace what&#8217;s going on. But hey, Fedora doesn&#8217;t install strace by default and you can&#8217;t install it cause the network doesn&#8217;t work&#8230;</p>
<p>m(</p>
<p class="wp-flattr-button"></p> <p><a href="http://blog.cryptomilk.org/?flattrss_redirect&amp;id=264&amp;md5=7e2c432bb40cc18f517e4cd8c5b1c678" title="Flattr" target="_blank"><img src="http://blog.cryptomilk.org/wp-content/plugins/flattr/img/flattr-badge-large.png" alt="flattr this!"/></a></p>]]></content:encoded>
			<wfw:commentRss>http://blog.cryptomilk.org/2011/10/10/strace/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>jailbash</title>
		<link>http://blog.cryptomilk.org/2011/09/02/jailbash/</link>
		<comments>http://blog.cryptomilk.org/2011/09/02/jailbash/#comments</comments>
		<pubDate>Fri, 02 Sep 2011 16:31:33 +0000</pubDate>
		<dc:creator>Andreas Schneider</dc:creator>
				<category><![CDATA[KDE]]></category>
		<category><![CDATA[Linux]]></category>

		<guid isPermaLink="false">http://blog.cryptomilk.org/?p=256</guid>
		<description><![CDATA[chroot for users suck!

It is work to maintain them and all in all you have to do a lot of nasty hacks to get it going! In the meantime AppArmor is in the mainline kernel. It is pretty simple to write rules for it and you can easily update it with tools like 'logprof'.

Here ...]]></description>
			<content:encoded><![CDATA[<p>chroot for users suck!</p>
<p>It is work to maintain them and all in all you have to do a lot of nasty hacks to get it going! In the meantime <a href="http://wiki.apparmor.net/index.php/Main_Page">AppArmor</a> is in the mainline kernel. It is pretty simple to write rules for it and you can easily update it with tools like &#8216;logprof&#8217;.</p>
<p>Here is a small howto to trap users in their home directory with a simple AppArmor profile. First you need to compile the following C code:</p>
<pre>#include &lt;unistd.h&gt;

int main(int argc, char *argv[]) {
    return execv("/bin/bash", argv);
}</pre>
<p><code>gcc -o jailbash jailbash.c</code></p>
<p>Then move the binary to <code>/bin</code>.</p>
<p>The next step is to create an AppArmor profile for the jailbash. So create the file <code>/etc/apparmor.d/bin.jailbash</code> and add the following content:</p>
<pre># Last Modified: Tue Jun  7 08:53:41 2011
#----------------------------------------------------------
#
# JAILBASH
#
#----------------------------------------------------------

#include <tunables/global>

/bin/jailbash {
  #include <abstractions/X>
  #include <abstractions/base>
  #include <abstractions/bash>
  #include <abstractions/consoles>
  #include <abstractions/nameservice>
  #include <abstractions/user-manpages>
  #include <abstractions/user-tmp>

  deny /bin/df r,
  deny /etc/bash_command_not_found r,

  /bin/ r,
  /bin/bash rix,
  /bin/cat rix,
  /bin/chmod rix,
  /bin/chown rix,
  /bin/cp rix,
  /bin/date rix,
  /bin/egrep rix,
  /bin/grep rix,
  /bin/gunzip rix,
  /bin/gzip rix,
  /bin/jailbash rix,
  /bin/ln rix,
  /bin/ls rix,
  /bin/mkdir rix,
  /bin/mktemp rix,
  /bin/more rix,
  /bin/mv rix,
  /bin/ping rix,
  /bin/readlink rix,
  /bin/rm rix,
  /bin/rmdir rix,
  /bin/sed rix,
  /bin/sleep rix,
  /bin/tar rix,
  /bin/touch rix,
  /bin/uname rix,
  /bin/vim rix,
  /bin/vim-normal rix,
  /bin/zcat rix,
  /dev/null rw,
  /dev/urandom r,
  /etc/ r,
  /etc/manpath.config r,
  /etc/opt/ r,
  /etc/sysconfig/console r,
  /etc/sysconfig/mail r,
  /etc/sysconfig/news r,
  /etc/sysconfig/proxy r,
  /etc/sysconfig/suseconfig r,
  /etc/sysconfig/windowmanager r,
  /etc/vimrc r,
  owner /home/*/ r,
  owner /home/*/** rwl,
  /opt/ r,
  owner /proc/*/cmdline r,
  owner /proc/*/exe r,
  owner /proc/*/mounts r,
  /proc/loadavg r,
  /usr/X11R6/bin/ r,
  /usr/bin/ r,
  /usr/bin/dircolors rix,
  /usr/bin/head rix,
  /usr/bin/id rix,
  /usr/bin/less rix,
  /usr/bin/man rix,
  /usr/bin/manpath rix,
  /usr/bin/mc rix,
  /usr/bin/scp rix,
  /usr/bin/screen rix,
  /usr/bin/ssh rix,
  /usr/bin/ssh-add rix,
  /usr/bin/ssh-agent rix,
  /usr/bin/ssh-copy-id rix,
  /usr/bin/ssh-keygen rix,
  /usr/bin/ssh-keyscan rix,
  /usr/bin/tail rix,
  /usr/bin/tty rix,
  /usr/bin/vim-enhanced rix,
  /usr/bin/wget rix,
  /usr/bin/which rix,
  /usr/lib*/git/git-update-ref rix,
  /usr/lib*/mc/cons.saver rix,
  /usr/lib*/ssh/sftp-server rix,
  /usr/lib*/ssh/ssh-keysign rix,
  /usr/local/bin/ r,
  /usr/share/git-core/*/ r,
  /usr/share/mc/** r,
  /usr/share/vim/** r,
}</pre>
<p>This allows the user to execute the most basic commands he needs and allows ssh, sftp and git access. The user has access to some binaires and and can read directories he need for a working shell, like <code>/usr/lib</code>. The owner flag allows him only to write in his own home directory and browse only his home directory.</p>
<p>The next step is to create a new user and use <code>/bin/jailbash</code> as the bash. You can update the profile using <code>logprof</code> or manually if you watch <code>/var/log/audit/audit.log</code>.</p>
<p class="wp-flattr-button"></p> <p><a href="http://blog.cryptomilk.org/?flattrss_redirect&amp;id=256&amp;md5=66c763e4b2758bb86d2624d82937fcb6" title="Flattr" target="_blank"><img src="http://blog.cryptomilk.org/wp-content/plugins/flattr/img/flattr-badge-large.png" alt="flattr this!"/></a></p>]]></content:encoded>
			<wfw:commentRss>http://blog.cryptomilk.org/2011/09/02/jailbash/feed/</wfw:commentRss>
		<slash:comments>5</slash:comments>
		</item>
		<item>
		<title>Debugging cgit</title>
		<link>http://blog.cryptomilk.org/2011/08/04/debugging-cgit/</link>
		<comments>http://blog.cryptomilk.org/2011/08/04/debugging-cgit/#comments</comments>
		<pubDate>Thu, 04 Aug 2011 09:35:57 +0000</pubDate>
		<dc:creator>Andreas Schneider</dc:creator>
				<category><![CDATA[Linux]]></category>

		<guid isPermaLink="false">http://blog.cryptomilk.org/?p=243</guid>
		<description><![CDATA[For my git repositories I use cgit as the web frontend. The package I used had a problem displaying the treeview. Looking at /var/log/messages I saw that it segfaults. I've already fixed a segfault in cgit some time ago. I wondered how I was able to get gdb attached to it. It took me ...]]></description>
			<content:encoded><![CDATA[<p>For my git repositories I use <a href="http://hjemli.net/git/cgit/">cgit</a> as the web frontend. The package I used had a problem displaying the treeview. Looking at /var/log/messages I saw that it segfaults. I&#8217;ve already fixed a segfault in cgit some time ago. I wondered how I was able to get gdb attached to it. It took me some time to figure it out so this is the way to document it for the future. Maybe someone else will find this useful.</p>
<p>The command to display the html on the commandline is:</p>
<p><code>CGIT_CONFIG="/srv/www/vhosts/libssh/cgitrc" /srv/www/cgi-bin/cgit/cgit.cgi 1>cgit.html 2>cgit.log</code></p>
<p>This will write the html output to cgit.html and the errors to cgit.log. So if you want to display a tree of the project, the url to it would be for example: <a href="http://git.libssh.org/projects/libssh.git/">http://git.libssh.org/projects/libssh.git/</a></p>
<p>So on the commandline this is:</p>
<p><code>QUERY_STRING="url=projects/libssh.git" CGIT_CONFIG="/srv/www/vhosts/libssh/cgitrc" /srv/www/cgi-bin/cgit/cgit.cgi 1>cgit.html 2>cgit.log</code></p>
<p>and if you need gdb to get a segfault you can simply use:</p>
<p><code>QUERY_STRING="url=projects/libssh.git/tree" CGIT_CONFIG="/path/to/libssh/cgitrc" gdb /srv/www/cgi-bin/cgit/cgit.cgi</code></p>
<p>It segfaulted cause the current version doesn&#8217;t support git 1.7.6 and a NULL pointer was passed to a function instead of the right values.</p>
<p class="wp-flattr-button"></p> <p><a href="http://blog.cryptomilk.org/?flattrss_redirect&amp;id=243&amp;md5=3fb93f603f2b816c4d8a408da3a36d75" title="Flattr" target="_blank"><img src="http://blog.cryptomilk.org/wp-content/plugins/flattr/img/flattr-badge-large.png" alt="flattr this!"/></a></p>]]></content:encoded>
			<wfw:commentRss>http://blog.cryptomilk.org/2011/08/04/debugging-cgit/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>libsmbconf</title>
		<link>http://blog.cryptomilk.org/2011/04/14/libsmbconf/</link>
		<comments>http://blog.cryptomilk.org/2011/04/14/libsmbconf/#comments</comments>
		<pubDate>Thu, 14 Apr 2011 10:21:41 +0000</pubDate>
		<dc:creator>Andreas Schneider</dc:creator>
				<category><![CDATA[Development]]></category>
		<category><![CDATA[KDE]]></category>
		<category><![CDATA[Linux]]></category>
		<category><![CDATA[Samba]]></category>

		<guid isPermaLink="false">http://blog.cryptomilk.org/?p=229</guid>
		<description><![CDATA[Three years ago Michael Adam created a nice library to easily read the Samba configuration or modify it if it is stored in the registry. Since we have a new build system it is much easier to create shared libraries, I've created a public smbconf library now. The library can be used to setup ...]]></description>
			<content:encoded><![CDATA[<p>Three years ago <a href="http://www.samba.org/~obnox/">Michael Adam</a> created a nice library to easily read the <a href="http://www.samba.org/">Samba</a> configuration or modify it if it is stored in the registry. Since we have a new build system it is much easier to create shared libraries, I&#8217;ve created a public smbconf library now. The library can be used to setup Samba or Winbind without touching any files. Ok, smb.conf needs one entry: <code>config backend = registry</code>. This library should be available with Samba 3.6 which will be released some time this year.</p>
<p>You can find the documentation for the new library <a href="http://xor.cryptomilk.org/samba/libsmbconf/group__libsmbconf.html">here</a>.</p>
<p class="wp-flattr-button"></p> <p><a href="http://blog.cryptomilk.org/?flattrss_redirect&amp;id=229&amp;md5=e0970ea4a0a1bdc8771837c1e5c4079f" title="Flattr" target="_blank"><img src="http://blog.cryptomilk.org/wp-content/plugins/flattr/img/flattr-badge-large.png" alt="flattr this!"/></a></p>]]></content:encoded>
			<wfw:commentRss>http://blog.cryptomilk.org/2011/04/14/libsmbconf/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Logitech Linux Mouse Support</title>
		<link>http://blog.cryptomilk.org/2011/02/22/logitech-linux-mouse-support/</link>
		<comments>http://blog.cryptomilk.org/2011/02/22/logitech-linux-mouse-support/#comments</comments>
		<pubDate>Tue, 22 Feb 2011 14:30:14 +0000</pubDate>
		<dc:creator>Andreas Schneider</dc:creator>
				<category><![CDATA[Gaming]]></category>
		<category><![CDATA[Hardware]]></category>
		<category><![CDATA[KDE]]></category>
		<category><![CDATA[Linux]]></category>

		<guid isPermaLink="false">http://blog.cryptomilk.org/?p=220</guid>
		<description><![CDATA[Maybe you ask: Why is there still no new version of lomoco to support the latest Logitech Mice?

The answer is that I still don't know how they detect a mouse connected to a receiver. Maybe they just have a table which defines which mice come with which receiver and then try some commands. If ...]]></description>
			<content:encoded><![CDATA[<p>Maybe you ask: Why is there still no new version of lomoco to support the latest Logitech Mice?</p>
<p>The answer is that I still don&#8217;t know how they detect a mouse connected to a receiver. Maybe they just have a table which defines which mice come with which receiver and then try some commands. If it fails it is mouse X and if not it must be mouse Y.</p>
<p>I already wrote some proof of concept for the new protocol and sometimes people contact me and the proof of concept is enough for them. So here is a list of small proof of concept utils:</p>
<h2>g_hack.c</h2>
<p>This is a tool to change the resolution on some gaming mice like the G5, G7 and G9.</p>
<p><a href="http://xor.cryptomilk.org/pics/s3_lsarpc_over_tcpip.png">http://git.lomoco.org/projects/lomoco.git/tree/proof-of-concept/g_hack.c</a></p>
<h2>lomoco_battery.c</h2>
<p>Battery information for a lot of cordless mice like MX, VX and VX Nano.</p>
<p><a href="http://git.lomoco.org/projects/lomoco.git/tree/proof-of-concept/lomoco_battery.c">http://git.lomoco.org/projects/lomoco.git/tree/proof-of-concept/lomoco_battery.c</a></p>
<h2>lomoco_reconnect.c</h2>
<p>This allows you to reconnect your cordless mouse to the receiver. This is for MX, VX or VX Nano.</p>
<p><a href="http://git.lomoco.org/projects/lomoco.git/tree/proof-of-concept/lomoco_reconnect.c">http://git.lomoco.org/projects/lomoco.git/tree/proof-of-concept/lomoco_reconnect.c</a></p>
<p class="wp-flattr-button"></p>]]></content:encoded>
			<wfw:commentRss>http://blog.cryptomilk.org/2011/02/22/logitech-linux-mouse-support/feed/</wfw:commentRss>
		<slash:comments>44</slash:comments>
		</item>
		<item>
		<title>Diaspora and mod_passenger</title>
		<link>http://blog.cryptomilk.org/2011/01/21/diaspora-and-mod_passenger/</link>
		<comments>http://blog.cryptomilk.org/2011/01/21/diaspora-and-mod_passenger/#comments</comments>
		<pubDate>Fri, 21 Jan 2011 19:04:13 +0000</pubDate>
		<dc:creator>Andreas Schneider</dc:creator>
				<category><![CDATA[Development]]></category>
		<category><![CDATA[Linux]]></category>
		<category><![CDATA[apache]]></category>
		<category><![CDATA[diaspora]]></category>
		<category><![CDATA[ruby]]></category>
		<category><![CDATA[social network]]></category>

		<guid isPermaLink="false">http://blog.cryptomilk.org/?p=189</guid>
		<description><![CDATA[Maybe you've heard already of the privacy aware, personally controlled, open source social network Diaspora. I've wanted to try Diaspora so I've setup my own seed of Diaspora, they are called pods.

I don't wanted to run Diaspora with thin so I decided to go with mod_passenger on apache2. I will describe what you need ...]]></description>
			<content:encoded><![CDATA[<p>Maybe you&#8217;ve heard already of the privacy aware, personally controlled, open source social network <a href="https://joindiaspora.com/">Diaspora</a>. I&#8217;ve wanted to try Diaspora so I&#8217;ve setup my own seed of Diaspora, they are called pods.</p>
<p>I don&#8217;t wanted to run Diaspora with thin so I decided to go with <a href="http://www.modrails.com/">mod_passenger</a> on apache2. I will describe what you need to do to set it up and get it running with mod_passenger.<br />
&#8230;</p>
<h3>Instructions</h3>
<ol>
<li>
I&#8217;ve created a user for diaspora which is in the group <em>www</em>. This is the group apache2 is running as. So you can give write access to this group on directories diaspora needs write access.
</li>
<li>
To get the basics you should read <a href="https://github.com/diaspora/diaspora/wiki/Installing-and-Running-Diaspora">the official howto</a> first. You should install the required packages and checkout the repository as the user <em>diaspora</em>.
</li>
<li>
Create and edit <em>config/app_config.yml</em> and <em>config/database.yml</em> as described in the howto. You don&#8217;t need to run <em>script/server</em> I will cover this in the following instructions.
</li>
<li>
If you have created the config files, set up the mysql database then you should create the initial database layout. You can do this with <em>RAILS_ENV=production rake db:seed:dev</em>.
</li>
<li>
Don&#8217;t forget to run jammit to precompile the css files with: <em>bundle exec jammit</em>. You need to redo this step every time you pull changes from the git repository.
</li>
<li>
Time to install mod_passenger and get it loaded by apache2. You need a virtual host configuration for your pod which should look like this:</p>
<pre>
        # General setup for the virtual host
        DocumentRoot "/path/to/diaspora/pod/public"
        ServerName pod.example.com:443
        ServerAdmin webmaster@example.com
        ErrorLog /var/log/apache2/pod/error_log
        TransferLog /var/log/apache2/pod/access_log

        SetEnv RAILS_ENV production
        # This enables mod_passenger
        Include /etc/apache2/conf.d/mod_passenger.conf

        &lt;Directory "/path/to/diaspora/pod/public"&gt;
                Options +FollowSymlinks -MultiViews
                AllowOverride All
                Order allow,deny
                Allow from all
        &lt;/Directory&gt;
</pre>
</li>
<li>
You need to run two processes in the background, one of them is websocket: <em>RAILS_ENV=production ruby script/websocket_server.rb &#038;</em>
</li>
<li>
The second process is a resque worker. It is responsible for background tasks. You can start it with: <em>RAILS_ENV=production QUEUE=receive,mail,receive_local,socket_webfinger,http_service,http,receive_salmon bundle exec rake resque:work</em>
</li>
</ol>
<p>Feel free to ask questions, I will try to extend the howto.<br />
&#8230;</p>
<h3>apparmor and mod_passenger</h3>
<p>It is possible to protect passenger with apparmor. You need to create the following wrapper:</p>
<p>passenger.c</p>
<pre>#include <unistd.h>

int main(int argc, char *argv[]) {
    return execv("/usr/bin/ruby", argv);
}</pre>
<p>I&#8217;ve compiled it with <em>gcc -o passenger passenger.c</em> and move it to <em>/usr/local/bin/passenger</em>. Then set the variable <em>PassengerRuby &#8220;/usr/local/bin/passenger&#8221;</em> and created an apparmor profile for it.</p>
<p class="wp-flattr-button"></p>]]></content:encoded>
			<wfw:commentRss>http://blog.cryptomilk.org/2011/01/21/diaspora-and-mod_passenger/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>CMake Java Support</title>
		<link>http://blog.cryptomilk.org/2011/01/15/cmake-java-support/</link>
		<comments>http://blog.cryptomilk.org/2011/01/15/cmake-java-support/#comments</comments>
		<pubDate>Sat, 15 Jan 2011 10:43:37 +0000</pubDate>
		<dc:creator>Andreas Schneider</dc:creator>
				<category><![CDATA[Development]]></category>
		<category><![CDATA[Linux]]></category>
		<category><![CDATA[cmake]]></category>
		<category><![CDATA[java]]></category>

		<guid isPermaLink="false">http://blog.cryptomilk.org/?p=171</guid>
		<description><![CDATA[At the end of last year I've worked on Dogtag PKI, which is enterprise-class open source Certificate Authority.

The project is written in serveral different laguages (C, C++ and Java), so I've used CMake as the new build system. I know CMake very well and use it since a long time. To be able to ...]]></description>
			<content:encoded><![CDATA[<p>At the end of last year I&#8217;ve worked on <a href="http://pki.fedoraproject.org/wiki/PKI_Main_Page">Dogtag PKI</a>, which is enterprise-class open source Certificate Authority.</p>
<p>The project is written in serveral different laguages (C, C++ and Java), so I&#8217;ve used CMake as the new build system. I know CMake very well and use it since a long time. To be able to build the java project I needed Java support in CMake. The current support is broken and after talking to Bill Hoffman he suggested to write CMake functions. So I&#8217;ve started to write functions to compile java files, find jar files, bundle jar files and generate javadoc.</p>
<p>My Java support for CMake should provide everything you need to build java and jni projects. You find the files here:</p>
<p><a href="http://git.cryptomilk.org/projects/cmake-tools.git/tree/language/java">http://git.cryptomilk.org/projects/cmake-tools.git/tree/language/java</a><br />
&#8230;</p>
<h4>FindJNI.cmake:</h4>
<blockquote><p>Find JNI libraries and headers. I think this is the file from CMake itself.</p></blockquote>
<h4>FindJava.cmake:</h4>
<blockquote><p>Find all needed Java tools like javac, javadoc, jar, etc.</p></blockquote>
<h4>UseJava.cmake:</h4>
<blockquote><p>This file provides all needed function to support creating java projects in CMake. Most of the function are documented in detail. There is some documentation missing. I will try to add it soon.</p></blockquote>
<h4>UseJavaClassFilelist.cmake:</h4>
<blockquote><p>This is needed to find the class files in the build directory. One .java file can create multiple .class files. So you have to glob for these file. There is support to only look for certain .class files.</p></blockquote>
<h4>UseJavaSymlinks.cmake:</h4>
<blockquote><p>This is a helper to create symlinks for versioned jar files.</p></blockquote>
<p>To checkout the tree use:</p>
<p><code>git clone git://git.cryptomilk.org/projects/cmake-tools.git</code></p>
<p>It would be nice if this would be included into the CMake distribution, but at<br />
the moment there is still documentation missing. I hope that this will help<br />
some people to get their Java project built with CMake.</p>
<p>Comments, suggestions and patches are welcome!</p>
<h2>UPDATE<br />
<h2>
<p>This work is upstream and will be available with CMake 2.8.6 (September 2011).</p>
<p class="wp-flattr-button"></p> <p><a href="http://blog.cryptomilk.org/?flattrss_redirect&amp;id=171&amp;md5=79d47322f8f6ba7a2f3e8aeafcf3b7b5" title="Flattr" target="_blank"><img src="http://blog.cryptomilk.org/wp-content/plugins/flattr/img/flattr-badge-large.png" alt="flattr this!"/></a></p>]]></content:encoded>
			<wfw:commentRss>http://blog.cryptomilk.org/2011/01/15/cmake-java-support/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Weave for PIM?</title>
		<link>http://blog.cryptomilk.org/2011/01/09/weave-for-pim/</link>
		<comments>http://blog.cryptomilk.org/2011/01/09/weave-for-pim/#comments</comments>
		<pubDate>Sun, 09 Jan 2011 14:28:15 +0000</pubDate>
		<dc:creator>Andreas Schneider</dc:creator>
				<category><![CDATA[KDE]]></category>
		<category><![CDATA[Linux]]></category>
		<category><![CDATA[pim]]></category>

		<guid isPermaLink="false">http://blog.cryptomilk.org/?p=165</guid>
		<description><![CDATA[Last year I discovered Mozilla Weave (now Sync). Weave is a Firefox addon and they offer the server components to install your own weave server. It offers everything I would like to have for PIM. So lets start with some details...

The Firefox Sync addon synchronizes the following things between your browsers/computers:

bookmarks
history
forms
prefs
tabs
passwords


The data stored on ...]]></description>
			<content:encoded><![CDATA[<p>Last year I discovered <a href="https://mozillalabs.com/sync/">Mozilla Weave</a> (now Sync). Weave is a Firefox addon and they offer the server components to install your own weave server. It offers everything I would like to have for PIM. So lets start with some details&#8230;</p>
<p>The Firefox Sync addon synchronizes the following things between your browsers/computers:</p>
<ul>
<li>bookmarks</li>
<li>history</li>
<li>forms</li>
<li>prefs</li>
<li>tabs</li>
<li>passwords</li>
</ul>
<p>The data stored on the <a href="https://wiki.mozilla.org/Labs/Weave/Sync/1.0/Setup">weave server</a> should be as private, and as safe, as data on your personal computer or device so they get encrypted on the client by a password only the user knows. So a server operator can&#8217;t read the information or disclose them.<br />
The bookmarks are translated into a json format and added as a part to the weave json format. This is encrypted and the encrypted data is sent to the server. You can find more information about the storage format <a href="https://wiki.mozilla.org/Labs/Weave/Developer/StorageFormat">here</a>.</p>
<p>On a second machine you configure the Firefox addon too. You select the synchronization profile (merge this data with my sync data, replace all data with my sync data, replace all other computers data with this data), enter your password for the encrypted data and start the synchronization. The data is downloaded and the sync engine synchronizes everything ins the json format and then translates it to the data store of firefox. I was really astonished how perfect this works.</p>
<p>And exactly this is what I miss for my PIM data! I would like to have my calender and addressbook in weave. This way it would be stored safely on my server. As soon as my machine has a connection to the weave server it should be synchronized or merged together.</p>
<p>I need a 72 hour day.</p>
<p class="wp-flattr-button"></p>]]></content:encoded>
			<wfw:commentRss>http://blog.cryptomilk.org/2011/01/09/weave-for-pim/feed/</wfw:commentRss>
		<slash:comments>9</slash:comments>
		</item>
		<item>
		<title>gdb backtrace to file</title>
		<link>http://blog.cryptomilk.org/2010/12/23/gdb-backtrace-to-file/</link>
		<comments>http://blog.cryptomilk.org/2010/12/23/gdb-backtrace-to-file/#comments</comments>
		<pubDate>Thu, 23 Dec 2010 19:33:04 +0000</pubDate>
		<dc:creator>Andreas Schneider</dc:creator>
				<category><![CDATA[KDE]]></category>
		<category><![CDATA[Linux]]></category>
		<category><![CDATA[gcc]]></category>
		<category><![CDATA[gdb]]></category>

		<guid isPermaLink="false">http://blog.cynapses.org/?p=155</guid>
		<description><![CDATA[I wanted a simple command to get a backtrace in a file from gdb. It took me years to finally discover and craft this command!

alias bt='echo 0 &#124; gdb -batch-silent -ex "run" -ex "set logging overwrite on" -ex "set logging file gdb.bt" -ex "set logging on" -ex "set pagination off" -ex "handle SIG33 pass ...]]></description>
			<content:encoded><![CDATA[<p>I wanted a simple command to get a backtrace in a file from gdb. It took me years to finally discover and craft this command!</p>
<p><code>alias bt='echo 0 | gdb -batch-silent -ex "run" -ex "set logging overwrite on" -ex "set logging file gdb.bt" -ex "set logging on" -ex "set pagination off" -ex "handle SIG33 pass nostop noprint" -ex "echo backtrace:\n" -ex "backtrace full" -ex "echo \n\nregisters:\n" -ex "info registers" -ex "echo \n\ncurrent instructions:\n" -ex "x/16i \$pc" -ex "echo \n\nthreads backtrace:\n" -ex "thread apply all backtrace" -ex "set logging off" -ex "quit" --args'</code></p>
<p><strong><code>bt $crashing_application</code></strong></p>
<p>This will create gdb.bt in your current directory.</p>
<p class="wp-flattr-button"></p>]]></content:encoded>
			<wfw:commentRss>http://blog.cryptomilk.org/2010/12/23/gdb-backtrace-to-file/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
	</channel>
</rss>

