<?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>Trinitum</title>
	<atom:link href="http://trinitum.org/wp/feed" rel="self" type="application/rss+xml" />
	<link>http://trinitum.org/wp</link>
	<description>Just another WordPress weblog</description>
	<lastBuildDate>Wed, 03 Mar 2010 22:32:05 +0000</lastBuildDate>
	<generator>http://wordpress.org/?v=2.9.2</generator>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
			<item>
		<title>Pushed my vimrc to Github</title>
		<link>http://trinitum.org/wp/pushed-my-vimrc-to-github</link>
		<comments>http://trinitum.org/wp/pushed-my-vimrc-to-github#comments</comments>
		<pubDate>Sun, 07 Feb 2010 22:14:25 +0000</pubDate>
		<dc:creator>zwon</dc:creator>
				<category><![CDATA[undef]]></category>
		<category><![CDATA[github]]></category>
		<category><![CDATA[vim]]></category>

		<guid isPermaLink="false">http://trinitum.org/wp/?p=292</guid>
		<description><![CDATA[I planned it for ages. Sometimes I need it, sometimes I want to fix something and push it back. Now it is at http://github.com/trinitum/vimrc. I&#8217;ll prepare and push also perl-support and c-support with my changes if I find time for this.
]]></description>
			<content:encoded><![CDATA[<p>I planned it for ages. Sometimes I need it, sometimes I want to fix something and push it back. Now it is at <a href="http://github.com/trinitum/vimrc">http://github.com/trinitum/vimrc</a>. I&#8217;ll prepare and push also perl-support and c-support with my changes if I find time for this.</p>
]]></content:encoded>
			<wfw:commentRss>http://trinitum.org/wp/pushed-my-vimrc-to-github/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Better than grep</title>
		<link>http://trinitum.org/wp/better-than-grep</link>
		<comments>http://trinitum.org/wp/better-than-grep#comments</comments>
		<pubDate>Sat, 12 Dec 2009 14:33:33 +0000</pubDate>
		<dc:creator>zwon</dc:creator>
				<category><![CDATA[undef]]></category>
		<category><![CDATA[ack]]></category>
		<category><![CDATA[grep]]></category>
		<category><![CDATA[Perl]]></category>

		<guid isPermaLink="false">http://trinitum.org/wp/?p=288</guid>
		<description><![CDATA[I&#8217;m a regular grep user, I use it dozens times every day, but I think I&#8217;ve found a program that will replace it in my toolbox. It&#8217;s ack and it claims to be better than grep.
]]></description>
			<content:encoded><![CDATA[<p>I&#8217;m a regular grep user, I use it dozens times every day, but I think I&#8217;ve found a program that will replace it in my toolbox. It&#8217;s ack and it claims to be <a href="http://betterthangrep.com">better than grep</a>.</p>
]]></content:encoded>
			<wfw:commentRss>http://trinitum.org/wp/better-than-grep/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Upgrading Perl on Ubuntu</title>
		<link>http://trinitum.org/wp/upgrading-perl-on-ubuntu</link>
		<comments>http://trinitum.org/wp/upgrading-perl-on-ubuntu#comments</comments>
		<pubDate>Thu, 10 Dec 2009 21:40:19 +0000</pubDate>
		<dc:creator>zwon</dc:creator>
				<category><![CDATA[undef]]></category>
		<category><![CDATA[debian]]></category>
		<category><![CDATA[package]]></category>
		<category><![CDATA[Perl]]></category>
		<category><![CDATA[ubuntu]]></category>

		<guid isPermaLink="false">http://trinitum.org/wp/?p=279</guid>
		<description><![CDATA[Ubuntu 9.10 comes with Perl 5.10.0. I decided to upgrade it to the 5.10.1. This is usually not recommended to upgrade system perl, there are rumours that this may cause numerous problems if not render the system completely unusable, so accepted way is to install new perl into separate directory. Still I wanted to try [...]]]></description>
			<content:encoded><![CDATA[<p>Ubuntu 9.10 comes with Perl 5.10.0. I decided to upgrade it to the 5.10.1. This is usually not recommended to upgrade system perl, there are rumours that this may cause numerous problems if not render the system completely unusable, so accepted way is to install new perl into separate directory. Still I wanted to try and here&#8217;s description of how you can reproduce what I&#8217;ve done.</p>
<p><span id="more-279"></span></p>
<ol>
<li>Download source package for perl for Debian/Sid from <a href="http://packages.debian.org/sid/perl">http://packages.debian.org/sid/perl</a>.</li>
<li>cd into directory which contains sources and unpack them using
<pre>
dpkg-source -x perl_5.10.1-8.dsc
</pre>
</li>
<li>cd into perl-5.10.1 directory created as result of previous operation</li>
<li>build package using
<pre>
dpkg-buildpackage
</pre>
</li>
<li>dpkg-buildpackage may fail because of unsatisfied build dependencies, in this case you should install these dependencies and try to build again.</li>
<li>after successful build you can find packages for the latest Perl in the same directory as the source package. Install them using
<pre>dpkg -i ...</pre>
<p> command. Here some problems are possible if some package requires 5.10.0 and doesn&#8217;t want 5.10.1. In my case that was only dh-make-perl, which I removed and reinstalled later as ordinary Perl module. You should somehow solve such problems. It is good idea to have native Perl packages available, so if you fail, you could easily restore original configuration.</li>
<li>check perl version
<pre>perl -V</pre>
</li>
</ol>
]]></content:encoded>
			<wfw:commentRss>http://trinitum.org/wp/upgrading-perl-on-ubuntu/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>STA driver in Ubuntu</title>
		<link>http://trinitum.org/wp/sta-driver-in-ubuntu</link>
		<comments>http://trinitum.org/wp/sta-driver-in-ubuntu#comments</comments>
		<pubDate>Mon, 30 Nov 2009 21:17:46 +0000</pubDate>
		<dc:creator>zwon</dc:creator>
				<category><![CDATA[undef]]></category>
		<category><![CDATA[driver]]></category>
		<category><![CDATA[hardware]]></category>
		<category><![CDATA[ubuntu]]></category>
		<category><![CDATA[wifi]]></category>

		<guid isPermaLink="false">http://trinitum.org/wp/?p=273</guid>
		<description><![CDATA[I&#8217;ve got new 500G HDD for my Dell M1330 and reinstalled Ubuntu. After installation I experienced several freezes &#8212; notebook blinked with caps and scroll lock leds and didn&#8217;t respond to any keys but power off. Every time this happened while wireless was actively used. As I discovered, the source of the problem was STA [...]]]></description>
			<content:encoded><![CDATA[<p>I&#8217;ve got new 500G HDD for my Dell M1330 and reinstalled Ubuntu. After installation I experienced several freezes &#8212; notebook blinked with caps and scroll lock leds and didn&#8217;t respond to any keys but power off. Every time this happened while wireless was actively used. As I discovered, the source of the problem was STA driver for WiFi card. After I installed b43-fwcutter, removed STA, and switched to b43 open-source driver the problem went away.</p>
]]></content:encoded>
			<wfw:commentRss>http://trinitum.org/wp/sta-driver-in-ubuntu/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Creating preforking server with POE::Component::Daemon</title>
		<link>http://trinitum.org/wp/creating-preforking-server-with-poe</link>
		<comments>http://trinitum.org/wp/creating-preforking-server-with-poe#comments</comments>
		<pubDate>Sat, 28 Nov 2009 19:50:16 +0000</pubDate>
		<dc:creator>zwon</dc:creator>
				<category><![CDATA[undef]]></category>
		<category><![CDATA[code]]></category>
		<category><![CDATA[Networking]]></category>
		<category><![CDATA[Perl]]></category>
		<category><![CDATA[POE]]></category>
		<category><![CDATA[Programming]]></category>

		<guid isPermaLink="false">http://trinitum.org/wp/?p=265</guid>
		<description><![CDATA[After upgrading Perl to 5.10.1 at Friday I found that POE::Component::Server::PreforkTCP, which we use in one of our products, doesn&#8217;t pass its tests anymore. Perhaps it&#8217;s possible to fix, I don&#8217;t know yet (it was Friday evening&#8230;), but as module not updated since 2002 I decided to check if there&#8217;s some replacement for it. I&#8217;ve [...]]]></description>
			<content:encoded><![CDATA[<p>After upgrading Perl to 5.10.1 at Friday I found that POE::Component::Server::PreforkTCP, which we use in one of our products, doesn&#8217;t pass its tests anymore. Perhaps it&#8217;s possible to fix, I don&#8217;t know yet (it was Friday evening&#8230;), but as module not updated since 2002 I decided to check if there&#8217;s some replacement for it. I&#8217;ve found <a href="http://search.cpan.org/dist/POE-Component-Daemon/">POE::Component::Daemon</a>, it looks very promising for now and I really like it. Here&#8217;s TCP echo service that I wrote as example while playing with this module:</p>
<p><span id="more-265"></span></p>
<pre>
#!/usr/bin/perl
# Preforking TCP Echo server

use strict;
use warnings;

use POE qw(Component::Daemon Wheel::SocketFactory Wheel::ReadWrite);

POE::Component::Daemon->spawn(
    detach         => 0,
    max_children   => 5,
    start_children => 3,
    requests       => 3
);

POE::Session->create(
    inline_states => {
        _start => sub {
            warn "Starting daemon\n";
            $_[KERNEL]->sig( 'daemon_child'    => 'on_child_started' );
            $_[KERNEL]->sig( 'daemon_shutdown' => 'on_shutdown' );

            # Creating server socket and pausing factory
            $_[HEAP]{server} = POE::Wheel::SocketFactory->new(
                BindPort     => 7654,
                SuccessEvent => "on_client_accept",
                FailureEvent => "on_socket_error",
            );
            $_[HEAP]{server}->pause_accept;
        },

        # Invoked in child just after start
        on_child_started => sub {
            warn "Worker process $$ has started\n";
            Daemon->update_status('wait');
            $_[KERNEL]->sig( 'daemon_accept' => 'on_daemon_accept' );
        },

        # This child is ready to accept new request
        on_daemon_accept => sub {
            warn "Process $$ awaiting for requests\n";
            $_[HEAP]{server}->resume_accept;
        },

        # New client connection accepted
        on_client_accept => sub {
            warn "Process $$ accepted new connection\n";

            # pause SocketFactory, so no new connection will
            # be accepted till we finish serving this one
            $_[HEAP]{server}->pause_accept;

            # Inform Daemon that we're busy
            Daemon->update_status('req');

            # Creating ReadWrite wheel for connection
            my $io_wheel = POE::Wheel::ReadWrite->new(
                Handle     => $_[ARG0],
                InputEvent => "on_client_input",
                ErrorEvent => "on_client_error",
            );
            $_[HEAP]{client}{ $io_wheel->ID() } = $io_wheel;
        },

        # Received data from client
        on_client_input => sub {
            my ( $input, $wheel_id ) = @_[ ARG0, ARG1 ];

            # Just send it back
            $_[HEAP]{client}{$wheel_id}->put($input);
        },

        # Client disconnected or connection error
        on_client_error => sub {
            warn "Process $$ has finished to serve a client\n";
            my $wheel_id = $_[ARG3];
            delete $_[HEAP]{client}{$wheel_id};
            Daemon->update_status('done');
        },

        # This process should exit
        on_shutdown => sub {
            warn "Process $$ is shutting down\n";
            exit;
        },

        # Problem with listening socket
        on_socket_error => sub {
            warn "Socket error!\n";
            Daemon->shutdown;
        },
    }
);

POE::Kernel->run();
exit;
</pre>
]]></content:encoded>
			<wfw:commentRss>http://trinitum.org/wp/creating-preforking-server-with-poe/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Vim for Ubuntu 9.10</title>
		<link>http://trinitum.org/wp/vim-for-ubuntu-9-10</link>
		<comments>http://trinitum.org/wp/vim-for-ubuntu-9-10#comments</comments>
		<pubDate>Thu, 05 Nov 2009 23:32:14 +0000</pubDate>
		<dc:creator>zwon</dc:creator>
				<category><![CDATA[undef]]></category>
		<category><![CDATA[ubuntu]]></category>
		<category><![CDATA[vim]]></category>

		<guid isPermaLink="false">http://trinitum.org/wp/?p=261</guid>
		<description><![CDATA[Another problem with Ubuntu 9.10 is that if you starting gvim from command line (and I do that quite often) you see following warnings:

** (gvim:5944): CRITICAL **: gtk_form_set_static_gravity: assertion `static_gravity_supported' failed

That&#8217;s rather annoying. The bug and the fix were known before release, but package is still not fixed. In order to fix the problem this [...]]]></description>
			<content:encoded><![CDATA[<p>Another problem with Ubuntu 9.10 is that if you starting gvim from command line (and I do that quite often) you see following warnings:</p>
<pre>
** (gvim:5944): CRITICAL **: gtk_form_set_static_gravity: assertion `static_gravity_supported' failed
</pre>
<p>That&#8217;s rather annoying. <a href="https://bugs.launchpad.net/ubuntu/+source/vim/+bug/402188">The bug</a> and the fix were known before release, but package is still not fixed. In order to fix the problem <a href="http://ftp.vim.org/pub/vim/patches/7.2/7.2.257">this patch</a> should be applied.</p>
<p>Packages with patch applied: <a href="http://trinitum.org/files/vim-7.2.245-src/">sources</a>, <a href="http://trinitum.org/files/vim-7.2.245-ubuntu-9.10-i386/">i386</a>, <a href="http://trinitum.org/files/vim-7.2.245-ubuntu-9.10-amd64/">amd64</a></p>
]]></content:encoded>
			<wfw:commentRss>http://trinitum.org/wp/vim-for-ubuntu-9-10/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Touchpad on Ubuntu 9.10</title>
		<link>http://trinitum.org/wp/touchpad-on-ubuntu-9-10</link>
		<comments>http://trinitum.org/wp/touchpad-on-ubuntu-9-10#comments</comments>
		<pubDate>Thu, 05 Nov 2009 22:57:35 +0000</pubDate>
		<dc:creator>zwon</dc:creator>
				<category><![CDATA[undef]]></category>
		<category><![CDATA[touchpad]]></category>
		<category><![CDATA[ubuntu]]></category>

		<guid isPermaLink="false">http://trinitum.org/wp/?p=257</guid>
		<description><![CDATA[On Ubuntu 9.10 two-finger tap works as right mouse key, not as middle anymore. Addition of the following command into startup applications fixes this problem:

synclient RTCornerButton=2 TapButton2=2 TapButton3=3

]]></description>
			<content:encoded><![CDATA[<p>On Ubuntu 9.10 two-finger tap works as right mouse key, not as middle anymore. Addition of the following command into startup applications fixes this problem:</p>
<pre>
synclient RTCornerButton=2 TapButton2=2 TapButton3=3
</pre>
]]></content:encoded>
			<wfw:commentRss>http://trinitum.org/wp/touchpad-on-ubuntu-9-10/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>
