<?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 &#187; KDE</title>
	<atom:link href="http://blog.cryptomilk.org/category/kde/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>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>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>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>
		<item>
		<title>The pain of poll(2)?</title>
		<link>http://blog.cryptomilk.org/2010/09/05/the-pain-of-poll/</link>
		<comments>http://blog.cryptomilk.org/2010/09/05/the-pain-of-poll/#comments</comments>
		<pubDate>Sun, 05 Sep 2010 19:17:13 +0000</pubDate>
		<dc:creator>Andreas Schneider</dc:creator>
				<category><![CDATA[KDE]]></category>
		<category><![CDATA[Linux]]></category>
		<category><![CDATA[algorithms]]></category>
		<category><![CDATA[libssh]]></category>
		<category><![CDATA[SSH]]></category>

		<guid isPermaLink="false">http://blog.cynapses.org/?p=148</guid>
		<description><![CDATA[If you're working on a multi-platform project which does network communication you will end up thinking about replacing select(2) with poll(2) sooner or later. The problem with select are well known. poll(2) removes the limitations of select(2) and improves speed and features. The problem is that poll(2) isn't available on all platforms. This means ...]]></description>
			<content:encoded><![CDATA[<p>If you&#8217;re working on a multi-platform project which does network communication you will end up thinking about replacing select(2) with poll(2) sooner or later. The problem with select are well known. poll(2) removes the limitations of select(2) and improves speed and features. The problem is that poll(2) isn&#8217;t available on all platforms. This means you need a poll(2)-emulation or create wrappers around other similar poll() functions.</p>
<p>In <a href="http://www.libssh.org/">libssh</a> we use a <a href="http://git.libssh.org/projects/libssh.git/tree/src/poll.c">poll(2)-emulation</a> based on select for platforms which don&#8217;t provide a poll(2) function like some Windows versions or UNIX systems.</p>
<p>Windows Vista or newer version provide a poll(2) like function called <a href="http://msdn.microsoft.com/en-us/library/ms741669%28VS.85%29.aspx">WSAPoll()</a>. To be able to support this call which is faster the the poll(2)-emulation and allows to use more file descriptors we implemented a runtime detection for WSAPoll(). This means during initialization of the socket, we check if the functions can be found in the relevant library. If Windows doesn&#8217;t provide it, we fallback to the poll(2)-emulation.</p>
<p>I took several month to get this working correctly on UNIX and Windows. This feature starts to work correctly with <a href="http://www.libssh.org/2010/09/05/libssh-0-4-6/">libssh 0.4.6</a> released today.</p>
<p class="wp-flattr-button"></p>]]></content:encoded>
			<wfw:commentRss>http://blog.cryptomilk.org/2010/09/05/the-pain-of-poll/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Featurecasts</title>
		<link>http://blog.cryptomilk.org/2010/02/23/featurecasts/</link>
		<comments>http://blog.cryptomilk.org/2010/02/23/featurecasts/#comments</comments>
		<pubDate>Tue, 23 Feb 2010 09:57:02 +0000</pubDate>
		<dc:creator>Andreas Schneider</dc:creator>
				<category><![CDATA[KDE]]></category>

		<guid isPermaLink="false">http://blog.cynapses.org/?p=141</guid>
		<description><![CDATA[Yesterday I've visited the Tokamak4 Sprint. I've attended the talks in the evening and then had dinner with some KDE hackers. Today I've looked at PlanetKDE and saw the KDE bluetooth screencast from Alex Fiestas. I liked the screencasts in the KDE 4.4 announcement, it should the users what's cool and new. Yesterday I've ...]]></description>
			<content:encoded><![CDATA[<p>Yesterday I&#8217;ve visited the Tokamak4 Sprint. I&#8217;ve attended the talks in the evening and then had dinner with some KDE hackers. Today I&#8217;ve looked at <a href="http://www.planetkde.org/">PlanetKDE</a> and saw the <a href="http://www.afiestas.org/fulfilling-promises-apple-wireless-keyboard-working-with-kbluetooth/">KDE bluetooth screencast</a> from Alex Fiestas. I liked the <a href="http://www.kde.org/announcements/4.4/">screencasts in the KDE 4.4 announcement</a>, it should the users what&#8217;s cool and new. Yesterday I&#8217;ve heard the first time about activities in KDE4. I wondered what Aaron is talking about.</p>
<p>Here comes the conclusion:</p>
<p><strong>We need a Featurecast section on the KDE website with screencasts that shows all the cool hidden stuff!</strong></p>
<p>This should be the first thing a user finds on the KDE website. The user normally hasn&#8217;t installed KDE at all or doesn&#8217;t have the latest version. So the first thing should be something which shows what you can do with it and how cool this stuff is.</p>
<p class="wp-flattr-button"></p>]]></content:encoded>
			<wfw:commentRss>http://blog.cryptomilk.org/2010/02/23/featurecasts/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Documenting the Source</title>
		<link>http://blog.cryptomilk.org/2010/02/10/documenting-source-code/</link>
		<comments>http://blog.cryptomilk.org/2010/02/10/documenting-source-code/#comments</comments>
		<pubDate>Wed, 10 Feb 2010 14:23:26 +0000</pubDate>
		<dc:creator>Andreas Schneider</dc:creator>
				<category><![CDATA[KDE]]></category>
		<category><![CDATA[Linux]]></category>
		<category><![CDATA[doc]]></category>
		<category><![CDATA[doxygen]]></category>
		<category><![CDATA[Samba]]></category>

		<guid isPermaLink="false">http://blog.cynapses.org/?p=136</guid>
		<description><![CDATA[As you maybe know I have a new job since last December and I'm working on
Samba4 now. Samba4 is a monster so I've asked for some simple tasks to get
started. The task was to migrate some code to a new Samba library called
tsocket. The problem was I didn't know what to do and how. ...]]></description>
			<content:encoded><![CDATA[<p>As you maybe know I have a new job since last December and I&#8217;m working on<br />
Samba4 now. Samba4 is a monster so I&#8217;ve asked for some simple tasks to get<br />
started. The task was to migrate some code to a new Samba library called<br />
tsocket. The problem was I didn&#8217;t know what to do and how. Some functions<br />
of the API were documented but not all. So I had to guess from the names<br />
what the function is doing and read the code to understand it. Then I&#8217;ve<br />
started to work with the interface and I had to look again the the code to<br />
find out possible return values. In the end I spent a lot of time jumping<br />
through the source code to find out the return values for the functions.</p>
<p>If the API would be completely documented I could get my work done a lot of<br />
faster so I simply started to document it cause I had to understand it anyway.<br />
I&#8217;ve decided to write the documentation with doxygen and put it in the header<br />
file, so that people who use the PAI always have the documentation with them.</p>
<p>After I finished it, started to work on the source code again and got some<br />
things working as I was able to understand the API of the library. Then I<br />
crossed the next undocumented API of a library. Ok, it wasn&#8217;t undocumented it<br />
had a text file describing everything but having doxygen documentation is much<br />
nicer than a text file. So I&#8217;ve started to document <a href="http://talloc.samba.org/">talloc</a> from Samba4 with<br />
doxygen.</p>
<p>The talloc API uses macros for a lot of things to make debugging easier or<br />
to hide things you&#8217;re doing from the user. However if you document a macro<br />
than normally you want that it looks like a function. To be able to do that<br />
with doxygen you have to use a little trick. As doxygen has a C preprocessor<br />
built in you can create a define for a doxygen mode. That&#8217;s what I&#8217;ve done in<br />
the config file and all you need to do in the source code is to use it with<br />
#ifdef.</p>
<p><code>#ifdef DOXYGEN<br />
/**<br />
 * @brief Create a new talloc context.<br />
 *<br />
 * The talloc() macro is the core of the talloc library. It takes a memory<br />
 * context and a type, and returns a pointer to a new area of memory of the<br />
 * given type.<br />
 *<br />
 * The returned pointer is itself a talloc context, so you can use it as the<br />
 * context argument to more calls to talloc if you wish.<br />
 *<br />
 * The returned pointer is a "child" of the supplied context. This means that if<br />
 * you talloc_free() the context then the new child disappears as well.<br />
 * Alternatively you can free just the child.<br />
 *<br />
 * @param[in]  ctx      A talloc context to create a new reference on or NULL to<br />
 *                      create a new top level context.<br />
 *<br />
 * @param[in]  type     The type of memory to allocate.<br />
 *<br />
 * @return              A type casted talloc context or NULL on error.<br />
 *<br />
 * @code<br />
 *      unsigned int *a, *b;<br />
 *<br />
 *      a = talloc(NULL, unsigned int);<br />
 *      b = talloc(a, unsigned int);<br />
 * @endcode<br />
 *<br />
 * @see talloc_zero<br />
 * @see talloc_array<br />
 * @see talloc_steal<br />
 * @see talloc_free<br />
 */<br />
void *talloc(const void *ctx, #type);<br />
#else<br />
#define talloc(ctx, type) (type *)talloc_named_const(ctx, sizeof(type), #type)<br />
void *_talloc(const void *context, size_t size);<br />
#endif<br />
</code></p>
<p>So start to document your API. What you get well be something like <a href="http://talloc.samba.org/">this</a> and other will love it!</p>
<p class="wp-flattr-button"></p>]]></content:encoded>
			<wfw:commentRss>http://blog.cryptomilk.org/2010/02/10/documenting-source-code/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>csync at FOSDEM</title>
		<link>http://blog.cryptomilk.org/2010/02/01/csync-at-fosdem/</link>
		<comments>http://blog.cryptomilk.org/2010/02/01/csync-at-fosdem/#comments</comments>
		<pubDate>Mon, 01 Feb 2010 15:25:22 +0000</pubDate>
		<dc:creator>Andreas Schneider</dc:creator>
				<category><![CDATA[KDE]]></category>
		<category><![CDATA[Linux]]></category>
		<category><![CDATA[file synchronization]]></category>
		<category><![CDATA[fosdem]]></category>
		<category><![CDATA[roaming home directories]]></category>
		<category><![CDATA[talks]]></category>

		<guid isPermaLink="false">http://blog.cynapses.org/?p=132</guid>
		<description><![CDATA[I'm currently updating csync to work with libssh 0.4 and I will give a lightning talk about csync at FOSDEM next weekend. csync is a file synchronizer to keep two folders in sync. This can be local or remote. The main purpose of csync is to provide Roaming Home Directories.

I will work with Aris ...]]></description>
			<content:encoded><![CDATA[<p>I&#8217;m currently updating <a href="http://www.csync.org/">csync</a> to work with <a href="http://www.libssh.org/">libssh</a> 0.4 and I will give a <a href="http://www.fosdem.org/2010/schedule/tracks/lightningtalks">lightning talk</a> about csync at <a href="http://www.fosdem.org">FOSDEM</a> next weekend. csync is a file synchronizer to keep two folders in sync. This can be local or remote. The main purpose of csync is to provide <a href="http://www.csync.org/userguide/">Roaming Home Directories</a>.</p>
<p>I will work with <a href="http://blog.0xbadc0de.be/">Aris</a> on libssh stuff and try to get some small features in KDE for kio_sftp. I heard that some KDE guys are around too. I hope to see you there.</p>
<p>If you&#8217;re a Samba developer and go to FOSDEM, let me know <img src='http://blog.cryptomilk.org/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>
<p class="wp-flattr-button"></p>]]></content:encoded>
			<wfw:commentRss>http://blog.cryptomilk.org/2010/02/01/csync-at-fosdem/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>kio_sftp updates</title>
		<link>http://blog.cryptomilk.org/2009/10/01/kio_sftp-updates/</link>
		<comments>http://blog.cryptomilk.org/2009/10/01/kio_sftp-updates/#comments</comments>
		<pubDate>Thu, 01 Oct 2009 08:39:06 +0000</pubDate>
		<dc:creator>Andreas Schneider</dc:creator>
				<category><![CDATA[KDE]]></category>
		<category><![CDATA[kio]]></category>
		<category><![CDATA[libssh]]></category>
		<category><![CDATA[SFTP]]></category>
		<category><![CDATA[SSH]]></category>

		<guid isPermaLink="false">http://blog.cynapses.org/?p=129</guid>
		<description><![CDATA[openSUSE has backported the new kio_sftp implementation based on libssh to their KDE 4.3 packages. This increased the users and helped to find some bugs in kio_sftp and KDE. The current implementation is working fairly well.

As soon as libssh 0.4 will be released (hopefully soon) I will add more features. Users asked for ~/.ssh/config ...]]></description>
			<content:encoded><![CDATA[<p><a href="http://en.opensuse.org/Kde">openSUSE</a> has backported the new kio_sftp implementation based on <a href="http://www.libssh.org/">libssh</a> to their KDE 4.3 packages. This increased the users and helped to find some bugs in kio_sftp and KDE. The current implementation is working fairly well.</p>
<p>As soon as libssh 0.4 will be released (hopefully soon) I will add more features. Users asked for ~/.ssh/config support and I&#8217;ve added openssh&#8217;s statvfs extension to libssh. This means I can check if there is enough space on the server before I copy a file.</p>
<p class="wp-flattr-button"></p>]]></content:encoded>
			<wfw:commentRss>http://blog.cryptomilk.org/2009/10/01/kio_sftp-updates/feed/</wfw:commentRss>
		<slash:comments>5</slash:comments>
		</item>
	</channel>
</rss>

