<?xml version='1.0' encoding='utf-8' ?>
<!--  If you are running a bot please visit this policy page outlining rules you must respect. http://www.livejournal.com/bots/  -->
<rss version='2.0' xmlns:lj='http://www.livejournal.org/rss/lj/1.0/'>
<channel>
  <title>mikhailian</title>
  <link>http://mikhailian.livejournal.com/</link>
  <description>mikhailian - LiveJournal.com</description>
  <lastBuildDate>Tue, 17 Jun 2008 10:51:30 GMT</lastBuildDate>
  <generator>LiveJournal / LiveJournal.com</generator>
  <lj:journal>mikhailian</lj:journal>
  <lj:journaltype>personal</lj:journaltype>
  <image>
    <url>http://p-userpic.livejournal.com/65128578/7149018</url>
    <title>mikhailian</title>
    <link>http://mikhailian.livejournal.com/</link>
    <width>85</width>
    <height>85</height>
  </image>

<item>
  <guid isPermaLink='true'>http://mikhailian.livejournal.com/21227.html</guid>
  <pubDate>Tue, 17 Jun 2008 10:51:30 GMT</pubDate>
  <title>Cinema as the source of mnemonic identifiers</title>
  <link>http://mikhailian.livejournal.com/21227.html</link>
  <description>&lt;p&gt;There are only three films that impacted my life to the point that they are day and night living around me in speaking and dressing habits, posters, wallpapers, ring tones, logins and passwords, class names and variables. One Russian, one French and one English. One per culture I learned.&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;http://www.imdb.com/title/tt0091341/&quot;&gt;Kin-dza-dza&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;http://www.imdb.com/title/tt0099334/&quot;&gt;Cyrano de Bergerac&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;http://www.imdb.com/title/tt0088846/&quot;&gt;Brazil&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;</description>
  <comments>http://mikhailian.livejournal.com/21227.html</comments>
  <category>cinema</category>
  <lj:security>public</lj:security>
</item>
<item>
  <guid isPermaLink='true'>http://mikhailian.livejournal.com/20821.html</guid>
  <pubDate>Mon, 02 Jun 2008 22:20:34 GMT</pubDate>
  <title>галопам па гістарычным помнікам</title>
  <link>http://mikhailian.livejournal.com/20821.html</link>
  <description>&lt;p&gt;Маршрут Ивянец - Валожын - Доды - Іўе - Навагрудак - Мір&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;http://www.mova.org/misc/Minsk-Ivianiec-Valozyn-Dudy-Iuje-Navahrudak-Mir-Minsk.png&quot; /&gt;&lt;/p&gt;

&lt;p&gt;Фота &lt;a href=&quot;http://www.panoramio.com/map/?user=1850390#lt=53.618579&amp;amp;ln=27.213135&amp;amp;z=9&amp;amp;k=1&amp;amp;a=1&amp;amp;tab=4&quot;&gt;тут&lt;/a&gt;&lt;/p&gt;</description>
  <comments>http://mikhailian.livejournal.com/20821.html</comments>
  <category>travel</category>
  <category>belarus</category>
  <category>history</category>
  <lj:security>public</lj:security>
</item>
<item>
  <guid isPermaLink='true'>http://mikhailian.livejournal.com/20537.html</guid>
  <pubDate>Fri, 23 May 2008 15:22:20 GMT</pubDate>
  <title>Explore your Windows LAN from Linux</title>
  <link>http://mikhailian.livejournal.com/20537.html</link>
  <description>&lt;pre&gt;mkdir ~/fusesmb
fusesmb ~/fusesmb
sleep 3600 # wait until fusesmb caches the network shares
ls -1R ~/fusesmb &amp;gt; shared-files.lst # -1 is &quot;minus one&quot;, not &quot;minus l&quot;
&lt;/pre&gt;</description>
  <comments>http://mikhailian.livejournal.com/20537.html</comments>
  <category>linux</category>
  <lj:security>public</lj:security>
</item>
<item>
  <guid isPermaLink='true'>http://mikhailian.livejournal.com/20410.html</guid>
  <pubDate>Fri, 16 May 2008 13:02:53 GMT</pubDate>
  <title>The best ever comparative review of the Ajax libraries</title>
  <link>http://mikhailian.livejournal.com/20410.html</link>
  <description>&lt;lj-embed id=&quot;1&quot; /&gt;</description>
  <comments>http://mikhailian.livejournal.com/20410.html</comments>
  <lj:security>public</lj:security>
</item>
<item>
  <guid isPermaLink='true'>http://mikhailian.livejournal.com/20075.html</guid>
  <pubDate>Sun, 11 May 2008 14:03:00 GMT</pubDate>
  <title>Tutorial on NetBSD 4.0 i386 setup in kvm.</title>
  <link>http://mikhailian.livejournal.com/20075.html</link>
  <description>&lt;p&gt;Create a 10G disk image:&lt;/p&gt;
&lt;pre&gt;qemu-img create -f qcow2 netbsd-4.0-i386.qcow2 10G
&lt;/pre&gt;

&lt;p&gt;Avoid hangup on boot with &lt;tt&gt;--no-acpi&lt;/tt&gt; and the default network card timeout by trying out a different card, e.g. &lt;tt&gt;-net nic,model=ne2k_pci&lt;/tt&gt;:&lt;/p&gt;
&lt;pre&gt;kvm -hda netbsd-4.0-i386.qcow2 -cdrom i386cd-4.0.iso --no-acpi -net user -net nic,model=ne2k_pci
&lt;/pre&gt;

&lt;p&gt;Walk through the installer.&lt;/p&gt;

&lt;p&gt;Install additional packages with pkg_add:&lt;/p&gt; 
&lt;pre&gt;export PKG_PATH=ftp://ftp.netbsd.org/pub/NetBSD/packages/4.0/i386
pkg_add vim ctwm firefox wget
&lt;/pre&gt;

&lt;p&gt;Include them in path:&lt;/p&gt;
&lt;pre&gt;echo &quot;PATH=$PATH:/usr/pkg/bin&quot; &amp;gt;&amp;gt;/etc/profile
. /etc/profile
&lt;/pre&gt;

&lt;p&gt;Install the latest stable pkgsrc:&lt;/p&gt;
&lt;pre&gt;wget ftp://ftp.netbsd.org/pub/pkgsrc/pkgsrc-2008Q1/pkgsrc-2008Q1.tar.gz
tar xzf pkgsrc-2008Q1.tar.gz -C /usr
&lt;/pre&gt;

&lt;p&gt;Make sure that pkgsrc fetches binary packages for dependencies, when possible:&lt;/p&gt;
&lt;pre&gt;echo &quot;.ifdef BSD_PKG_MK
BINPKG_SITES=ftp://ftp.NetBSD.org/pub/NetBSD/packages/4.0/i386
BINPKG_SITES+=/usr/pkgsrc/packages/All
.endif&quot; &amp;gt; /etc/mk.conf
&lt;/pre&gt;

&lt;p&gt;Configure pkg_online to be able to search for packages&lt;/p&gt;
&lt;pre&gt;cd /usr/pkgsrc
cvs -d:pserver:anonymous@pkgsrc-wip.cvs.sourceforge.net:/cvsroot/pkgsrc-wip login
cvs -z3 -d:pserver:anonymous@pkgsrc-wip.cvs.sourceforge.net:/cvsroot/pkgsrc-wip checkout -P wip
cd /usr/pkgsrc/wip/pkg_online
unset PKG_PATH
make package DEPENDS_TARGET=bin-install
&lt;/pre&gt;

&lt;p&gt;Search for additonal packages&lt;/p&gt;
&lt;pre&gt;pkg_online_find :s:pptp
&lt;/pre&gt;
&lt;p&gt;P.S. Thanks to Aleksey Cheusov &amp;lt;vle@gmx.net&amp;gt; for implementing and making available &lt;a href=&quot;http://mova.org/~cheusov/pub/pkg_online/&quot;&gt;pkg_online&lt;/a&gt;.&lt;/p&gt;</description>
  <comments>http://mikhailian.livejournal.com/20075.html</comments>
  <category>netbsd</category>
  <lj:security>public</lj:security>
</item>
<item>
  <guid isPermaLink='true'>http://mikhailian.livejournal.com/19758.html</guid>
  <pubDate>Mon, 05 May 2008 09:03:16 GMT</pubDate>
  <title>Attack on the tax calculation: it is the law, dude!</title>
  <link>http://mikhailian.livejournal.com/19758.html</link>
  <description>&lt;p&gt;I must admit that I was wrong in &lt;a href=&quot;http://mikhailian.livejournal.com/19568.html&quot;&gt;my previous stance&lt;/a&gt; over the tax calculation issue. Apparently, The Ministry of Finance has nothing to do with such a strange calculation process. It is prescribed by the law.&lt;/p&gt;

&lt;pre&gt;Article 134 CIR 92

§ 2. La quotité du revenu exemptée d&apos;impôt est imputée par contribuable 
&lt;b&gt;sur les tranches successives du revenu, en commençant par la première.&lt;/b&gt;&lt;/pre&gt;

&lt;p&gt;What I took for ingenuity was plain stupidity.&lt;/p&gt;</description>
  <comments>http://mikhailian.livejournal.com/19758.html</comments>
  <category>salary calculation</category>
  <category>belgium</category>
  <lj:security>public</lj:security>
</item>
<item>
  <guid isPermaLink='true'>http://mikhailian.livejournal.com/19568.html</guid>
  <pubDate>Sun, 04 May 2008 13:57:01 GMT</pubDate>
  <title>A man-in-the middle attack on tax calculation in Belgium</title>
  <link>http://mikhailian.livejournal.com/19568.html</link>
  <description>&lt;p&gt;I am probably missing some background knowledge, but the salary calculation process in Belgium looks like it has been subverted by Ministry of Finance officials.&lt;/p&gt;

&lt;p&gt;This is better seen by example&lt;/p&gt;

&lt;p&gt;The so-called key formula for the tax prepayment calculation (précompte professionnel) for the year 2008 (income year 2007) states that the first 5220 EUR &lt;a href=&quot;http://www.fisconet.fgov.be/fr/?bron.dll&amp;amp;root=v:/sites/FisconetFraAdo.2/&amp;amp;file=bronnen/CIR&amp;amp;versie=04&amp;amp;T1=formule-cl%E9&amp;amp;tss=&amp;amp;R1=V1&amp;amp;zoek=000000&amp;amp;&amp;amp;name=30.11.07/1&amp;amp;rgl=513765&amp;amp;zoekid=0&amp;amp;&amp;amp;Style=-1&amp;amp;hdr_referer=http%3A%2F%2Fwww%2Efisconet%2Efgov%2Ebe%2Ffr%2F&amp;amp;type=2&amp;amp;&quot;&gt;are exempt from taxes.&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Now, let us work by example. We will do the calculation for someone called Jacques who earned 10000 EUR in 2007. We proceed by subtracting  5220 EUR from his earning and we pay taxes on the rest, that is, the 4780 EUR.&lt;/p&gt;

&lt;p&gt;This amount falls entirely within the lowest tax range, that has the tax rate of 26,75 %.&lt;/p&gt;

&lt;pre&gt;4780*0.2675 = 1278.65&lt;/pre&gt;

&lt;p&gt;So Jacques supposedly has to pay 1278.65 in taxes. Right? Wrong!&lt;/p&gt;

&lt;p&gt;The calculation procedure is defined by the Ministry of Finance as follows&lt;/p&gt;

&lt;p&gt;First, Jacques calculates his taxes on the total of his earnings. 10000 EUR are split in two ranges. The first 7550 EUR is taxed at the rate of 26,75%. Everything over 7550 EUR up
to 10250 EUR of earnings is taxed at the rate of 32,1%.&lt;/p&gt;

&lt;pre&gt;7550*0.2675 + 2450*0.3210 = 2806.08&lt;/pre&gt;

&lt;p&gt;Second, Jacques subtracts from the result the amount that he would have paid
if the first 5220 EUR were taxable at the lowest tax rate, that is&lt;/p&gt;

&lt;pre&gt;2806.08 - (5220*0.2675) = 1409.73&lt;/pre&gt;

&lt;p&gt;The difference between both  calculations is&lt;/p&gt;

&lt;pre&gt;1409.73 - 1278.65 = 131.08&lt;/pre&gt;

&lt;p&gt;That is, 131.08 EUR earned by Jacques have fallen in the deep pockets of the 
state solely because of a particular interpretation of the law that the Ministry
of Finance has made. I have no other explanation for this phenomenon.&lt;/p&gt;</description>
  <comments>http://mikhailian.livejournal.com/19568.html</comments>
  <category>salary calculation</category>
  <category>belgium</category>
  <lj:security>public</lj:security>
</item>
<item>
  <guid isPermaLink='true'>http://mikhailian.livejournal.com/19219.html</guid>
  <pubDate>Thu, 17 Apr 2008 15:31:24 GMT</pubDate>
  <title>Кому в Беларуси жить хорошо? Да никому.</title>
  <link>http://mikhailian.livejournal.com/19219.html</link>
  <description>&lt;p&gt;Кровавая история на тему &lt;a href=&quot;http://serni.livejournal.com/769100.html&quot;&gt;от тюрьмы и от сумы не зарекайся&lt;/a&gt;.&lt;/p&gt;</description>
  <comments>http://mikhailian.livejournal.com/19219.html</comments>
  <category>belarus</category>
  <lj:security>public</lj:security>
</item>
<item>
  <guid isPermaLink='true'>http://mikhailian.livejournal.com/19058.html</guid>
  <pubDate>Tue, 15 Apr 2008 15:39:08 GMT</pubDate>
  <title>Ещё одна тема для флешмоба</title>
  <link>http://mikhailian.livejournal.com/19058.html</link>
  <description>На работе:

&lt;pre&gt;$ find ~ -type f -print0 | xargs -0 file -i -b | sort |uniq -c |sort -nr| head
  41880 text/plain; charset=us-ascii
  23507 text/xml
  12471 image/png
   8990 text/x-c++; charset=us-ascii
   8576 text/x-c; charset=us-ascii
   3743 text/html
   3064 image/gif
   2025 application/octet-stream
   1975 application/x-zip
   1965 application/java
&lt;/pre&gt;</description>
  <comments>http://mikhailian.livejournal.com/19058.html</comments>
  <category>programming</category>
  <category>linux</category>
  <lj:security>public</lj:security>
</item>
<item>
  <guid isPermaLink='true'>http://mikhailian.livejournal.com/18773.html</guid>
  <pubDate>Fri, 11 Apr 2008 19:40:56 GMT</pubDate>
  <title>Пофлешмобим?</title>
  <link>http://mikhailian.livejournal.com/18773.html</link>
  <description>&lt;pre&gt;~$  history | awk &apos;{print $2}&apos; | sort | uniq -c | sort -rn | head
    356 cd
    309 vim
    217 mutt
    131 svn
    107 ls
     99 gem
     63 cat
     48 screen
     45 mysql
     39 ssh
&lt;/pre&gt;</description>
  <comments>http://mikhailian.livejournal.com/18773.html</comments>
  <category>linux</category>
  <lj:security>public</lj:security>
</item>
<item>
  <guid isPermaLink='true'>http://mikhailian.livejournal.com/18033.html</guid>
  <pubDate>Fri, 28 Mar 2008 12:24:56 GMT</pubDate>
  <title>Empirical proof of the Conway&apos;s law has been published</title>
  <link>http://mikhailian.livejournal.com/18033.html</link>
  <description>&lt;p&gt;An old software project management axiom, otherwise known as &lt;a href=&quot;http://en.wikipedia.org/wiki/Conway%27s_Law&quot;&gt;Conway&apos;s law&lt;/a&gt; stated that &lt;i&gt;any piece of software reflects the organizational structure that produced it&lt;/i&gt;. Forty years after &lt;a href=&quot;http://en.wikipedia.org/wiki/Melvin_Conway&quot;&gt;Melvin Conway&lt;/a&gt; formulated it, it has been &lt;a href=&quot;http://www.hbs.edu/research/pdf/08-039.pdf&quot;&gt;empirically validated&lt;/a&gt; by a team of &lt;a href=&quot;http://www.hbs.edu&quot;&gt;Harward Business School&lt;/a&gt; researchers.&lt;/p&gt;

&lt;p&gt;They compared several software products, including open-sourced and closed-sourced ones, and concluded that &lt;i&gt;distributed teams tend to develop more modular products&lt;/i&gt;.&lt;/p&gt;</description>
  <comments>http://mikhailian.livejournal.com/18033.html</comments>
  <category>management</category>
  <category>software</category>
  <lj:security>public</lj:security>
</item>
<item>
  <guid isPermaLink='true'>http://mikhailian.livejournal.com/17684.html</guid>
  <pubDate>Thu, 27 Mar 2008 13:45:52 GMT</pubDate>
  <title>Жёстко они в Microsoft работают, жёстко...</title>
  <link>http://mikhailian.livejournal.com/17684.html</link>
  <description>&lt;p&gt;Выдали мне не так давно на работе компьютер  dualboot: Windows XP и Ubuntu.&lt;/p&gt;

&lt;p&gt;И действительно, оказалось полезно, из Ubuntu я пару раз запускал Windows XP через kvm. В первый раз она просила её активировать. Ну дай думаю активирую -- я ведь раньше этого не делал, может положено так.  Через несколько месяцев вдруг понадобилось в Windows XP опять зайти. Сделал ребут, запускаю виндовс -- а она говорит, что надо опять активироваться. Ну ладно думаю. Давай. И тут она отвечает, что количество активаций истекло и через 3 дня она типа самоуничтожится.&lt;/p&gt;

&lt;p&gt;Так и остался я &lt;del&gt;у разбитого корыта&lt;/del&gt; с одним Ubuntu на машине. Windows теперь запускать страшно, вдруг она не дай бог на меня настучит в местный офис Microsoft.&lt;/p&gt;</description>
  <comments>http://mikhailian.livejournal.com/17684.html</comments>
  <category>microsoft</category>
  <category>windows</category>
  <lj:security>public</lj:security>
</item>
<item>
  <guid isPermaLink='true'>http://mikhailian.livejournal.com/17540.html</guid>
  <pubDate>Sat, 22 Mar 2008 00:14:22 GMT</pubDate>
  <title>Service vouchers status quo for 2007</title>
  <link>http://mikhailian.livejournal.com/17540.html</link>
  <description>&lt;p&gt;According to ONEM, there&apos;s been 53 mln service vouchers sold in Belgium in 2007.&lt;/p&gt;

&lt;p&gt;At the price of € 6.70, this makes for € 355.1 mln of expenses for belgian households.&lt;/p&gt;

&lt;p&gt;For each service voucher, the state pays € 20 to the serviceing company,
which amounts to € 704.9 mln in immediate losses for the state
((20-6.70)*53000000) . The hourly payrate at service vouchers companies is
around € 9.50. Which leaves € 10.50 per cheque or € 556.5 mln in total for the serviceing company to cover the overhead of running the business and for profit margins.&lt;/p&gt;</description>
  <comments>http://mikhailian.livejournal.com/17540.html</comments>
  <category>service vouchers</category>
  <category>belgium</category>
  <lj:security>public</lj:security>
</item>
<item>
  <guid isPermaLink='true'>http://mikhailian.livejournal.com/17224.html</guid>
  <pubDate>Tue, 18 Mar 2008 16:34:29 GMT</pubDate>
  <title>langue/parole(fr) =&amp;gt; language/discourse(en)</title>
  <link>http://mikhailian.livejournal.com/17224.html</link>
  <description>&lt;p&gt;&lt;a href=&quot;http://changingminds.org/explanations/critical_theory/concepts/langue_parole.htm&quot;&gt;Everyone&lt;/a&gt; and &lt;a href=&quot;http://www.litencyc.com/php/stopics.php?rec=true&amp;amp;UID=662&quot;&gt;his friends&lt;/a&gt; are afraid of calling the &lt;i&gt;langue&lt;/i&gt; and &lt;i&gt;parole&lt;/i&gt; concepts of &lt;a href=&quot;http://en.wikipedia.org/wiki/Ferdinand_de_Saussure&quot;&gt;Saussure&lt;/a&gt; by their English names.&lt;/p&gt;
&lt;p&gt;After giving in some thought and trying different translations in the discussions, I came  out with &lt;i&gt;language&lt;/i&gt; and &lt;i&gt;discourse&lt;/i&gt; and the optimal translations. Feel free to criticize.&lt;/p&gt;</description>
  <comments>http://mikhailian.livejournal.com/17224.html</comments>
  <category>linguistics</category>
  <lj:security>public</lj:security>
</item>
<item>
  <guid isPermaLink='true'>http://mikhailian.livejournal.com/16896.html</guid>
  <pubDate>Mon, 17 Mar 2008 23:16:39 GMT</pubDate>
  <title>IE6 and shaman dances</title>
  <link>http://mikhailian.livejournal.com/16896.html</link>
  <description>&lt;p&gt;Tired of trying to fix a bug that resulted in the display of an empty blank area instead of a floating image, I run to the &lt;a href=&quot;http://www.google.be/search?hl=en&amp;amp;q=IE6+float+image+bug&amp;amp;meta=&quot;&gt;best developer&apos;s friend&lt;/a&gt; which gave me &lt;a href=&quot;http://www.designreverb.com/2008/03/11/images-disappear-in-ie6/&quot;&gt;an answer&lt;/a&gt;, no explanation attached.&lt;/p&gt;

&lt;p&gt;Now what the heck is the logic behind the bug and, especially, its fix? God knows.&lt;/p&gt;

&lt;p&gt;P.S. I bought a beer for the author. This bug pissed me off for a whole month.&lt;/p&gt;</description>
  <comments>http://mikhailian.livejournal.com/16896.html</comments>
  <category>programming</category>
  <lj:security>public</lj:security>
</item>
<item>
  <guid isPermaLink='true'>http://mikhailian.livejournal.com/16874.html</guid>
  <pubDate>Mon, 17 Mar 2008 11:49:41 GMT</pubDate>
  <title>How much Freedom?</title>
  <link>http://mikhailian.livejournal.com/16874.html</link>
  <description>&lt;p&gt;On &lt;b&gt;Freedom&lt;/b&gt; management.&lt;/p&gt;
&lt;p&gt;The employee should be given as much control over his work as he can bear. This meets the requirement for the planning in that there should be just enough planning to induce day-to-day tasks, no more.&lt;/p&gt;

&lt;p&gt;More freedom brings more responsibility and emotional involvement, by creating a sense of ownership between the employee and the product.&lt;/p&gt;
&lt;p&gt;The freedom may morph into frustration if the employee takes on the challenges he can not endure.&lt;/p&gt;</description>
  <comments>http://mikhailian.livejournal.com/16874.html</comments>
  <category>it management</category>
  <category>programming</category>
  <lj:security>public</lj:security>
</item>
<item>
  <guid isPermaLink='true'>http://mikhailian.livejournal.com/16491.html</guid>
  <pubDate>Mon, 17 Mar 2008 09:43:08 GMT</pubDate>
  <title>The  granularity of planning</title>
  <link>http://mikhailian.livejournal.com/16491.html</link>
  <description>&lt;p&gt;More on &lt;b&gt;Chaos&lt;/b&gt; control.&lt;/p&gt;
&lt;p&gt;The most dangerous outcome of the underplanning is employee frustration. Without clear day-to-day targets, employees loose interest in the work. Some become anxious, not willing to take on responsibilities beyond what they consider their assignment.&lt;/p&gt;
&lt;p&gt;The danger of the overplanning is that detailed plans are hard to change.&lt;/p&gt;&lt;p&gt;The rigidness of the plan is proportional to the time spent on it, as the only reason not to change plans is often sheer inertia of those that invested already a lot of time to write it up, in the first place.&lt;/p&gt;
&lt;p&gt;An ideal planning phase is short and concise, and the planing granularity is barely sufficient to distribute the day-to-day assignments to the employees.&lt;/p&gt;</description>
  <comments>http://mikhailian.livejournal.com/16491.html</comments>
  <category>it management</category>
  <category>programming</category>
  <lj:security>public</lj:security>
</item>
<item>
  <guid isPermaLink='true'>http://mikhailian.livejournal.com/16318.html</guid>
  <pubDate>Sun, 16 Mar 2008 15:20:32 GMT</pubDate>
  <title>The essence of a IT project manager&apos;s work</title>
  <link>http://mikhailian.livejournal.com/16318.html</link>
  <description>&lt;p&gt;&lt;img src=&quot;http://www.mova.org/~lowry/freedom-chaos.png&quot; style=&quot;float:left; clear:left; margin:10px&quot; /&gt;A project manager plays with two major forces: &lt;b&gt;Chaos&lt;/b&gt; and &lt;b&gt;Freedom&lt;/b&gt;. When a project starts, nothing is clear, the previous stages like business analysis and user requirements collection have likely been a complete failure and collected input won&apos;t help much the team and the manager. At this point, the manager has to control the Chaos and reduce it to the minimum, by creating an environment where everyone know exactly what to do, how to do it and how much time would it take.&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;http://www.mova.org/~lowry/freedom-chaos2.png&quot; style=&quot;float:right; clear:right; margin:10px&quot; /&gt;So he starts to plan, as the work moves on. The days roll out, and he slowly realizes that there is not much left of the initial planning, and the team is swirling out in different directions. This is where the Freedom control takes precedence. The manager has to give everyone enough Freedom so that every morning employees felt the urge to scratch an itch, while still working in the planned direction.&lt;/p&gt;

&lt;p&gt;He slowly realizes that the Chaos/Freedom ratio is unique for each employee, and he has to work out a personal approach to everyone if the wants the team to work at full throttle.&lt;/p&gt;

&lt;p&gt;By the time everything is crystal clear in his mind, and all the errors have been consumed and learned from, the project ends, and the manager moves on the next one or bails out.&lt;/p&gt;</description>
  <comments>http://mikhailian.livejournal.com/16318.html</comments>
  <category>it management</category>
  <category>programming</category>
  <lj:security>public</lj:security>
</item>
<item>
  <guid isPermaLink='true'>http://mikhailian.livejournal.com/15913.html</guid>
  <pubDate>Thu, 28 Feb 2008 10:20:05 GMT</pubDate>
  <title>The dualism of Rails and Ruby</title>
  <link>http://mikhailian.livejournal.com/15913.html</link>
  <description>&lt;p&gt;I finally figured out why I hate &lt;a href=&quot;http://www.rubyonrails.org/&quot;&gt;Rails&lt;/a&gt;. It is the most &lt;i&gt;authoritative&lt;/i&gt; web development platform ever, developed on one of the most &lt;i&gt;liberal&lt;/i&gt; languages.&lt;/p&gt;</description>
  <comments>http://mikhailian.livejournal.com/15913.html</comments>
  <category>ruby</category>
  <category>rails</category>
  <lj:security>public</lj:security>
</item>
<item>
  <guid isPermaLink='true'>http://mikhailian.livejournal.com/15728.html</guid>
  <pubDate>Fri, 01 Feb 2008 08:39:04 GMT</pubDate>
  <title>Using the debian package of tomcat in etch</title>
  <link>http://mikhailian.livejournal.com/15728.html</link>
  <description>&lt;p&gt;For many years already, Java developers running Debian ignored the Tomcat bundled with Debian in favor of a manual installation. Nowadays, with the availability of Sun Java 1.5 in Etch, it is time to reconsider this.&lt;/p&gt;
&lt;p&gt;Install Tomcat with &lt;tt&gt;aptitude install sun-java5-jdk tomcat5 tomcat5-admin tomcat5-webapps&lt;/tt&gt;.&lt;/p&gt;
&lt;p&gt;Edit &lt;tt&gt;/etc/default/tomcat5&lt;/tt&gt; to change the JAVA_HOME and TOMCAT5_SECURITY environment variables.&lt;/p&gt;
&lt;pre&gt;
JAVA_HOME=/usr/lib/jvm/java-1.5.0-sun
TOMCAT5_SECURITY=no
&lt;/pre&gt;
&lt;p&gt;Note that you should consider reenabling the SecurityManager for production environments.&lt;/p&gt;

Now, you may install webapps into &lt;tt&gt;/var/lib/tomcat5/webapps&lt;/tt&gt; and start tomcat with &lt;tt&gt;/etc/init.d/tomcat5 start&lt;/tt&gt;</description>
  <comments>http://mikhailian.livejournal.com/15728.html</comments>
  <category>java</category>
  <category>programming</category>
  <lj:security>public</lj:security>
</item>
<item>
  <guid isPermaLink='true'>http://mikhailian.livejournal.com/15140.html</guid>
  <pubDate>Sat, 19 Jan 2008 20:15:13 GMT</pubDate>
  <title>Лучшие фото фотосайта на рабочем столе, дубль 2</title>
  <link>http://mikhailian.livejournal.com/15140.html</link>
  <description>&lt;p&gt;Ну вот и ещё один дубль. Восьмого января &lt;a href=&quot;http://www.photosight.ru&quot;&gt;фотосайт изменил&lt;/a&gt; структуру сайта и поломал так полюбившийся многим &lt;a href=&quot;http://www.photosight.ru/downloads.php&quot;&gt;photosight wallpaper&lt;/a&gt; под Windows, а также скрипты дла автоматической установки &quot;фото дня&quot; на рабочий экран, используемые пользователями других OS.&lt;/p&gt;

&lt;p&gt;Впрочем, от упрямого айтишника ничто не спасёт. Вот новый скрипт под Gnome Desktop для всеобщего пользования:
&lt;pre&gt;cd /tmp
ID=`wget -q -O - http://www.photosight.ru/wallpaper/week.wp` &amp;&amp; \
wget -q -N  http://img-`date &apos;+%Y-%m&apos;`.photosight.ru/`date &apos;+%d&apos;`/$ID.jpg &amp;&amp; \
gconftool-2 -t str --set /desktop/gnome/background/picture_filename /tmp/$ID.jpg &amp;&amp; \
gconftool-2 -t str --set /desktop/gnome/background/picture_options &quot;centered&quot;
&lt;/pre&gt;
&lt;/p&gt;

&lt;p&gt;А вот версия под KDE по мотивам комментария &lt;span class=&apos;ljuser&apos; lj:user=&apos;strangestone&apos; style=&apos;white-space: nowrap;&apos;&gt;&lt;a href=&apos;http://strangestone.livejournal.com/profile&apos;&gt;&lt;img src=&apos;http://p-stat.livejournal.com/img/userinfo.gif&apos; alt=&apos;[info]&apos; width=&apos;17&apos; height=&apos;17&apos; style=&apos;vertical-align: bottom; border: 0; padding-right: 1px;&apos; /&gt;&lt;/a&gt;&lt;a href=&apos;http://strangestone.livejournal.com/&apos;&gt;&lt;b&gt;strangestone&lt;/b&gt;&lt;/a&gt;&lt;/span&gt;
&lt;pre&gt;cd /tmp
ID=`wget -q -O - http://www.photosight.ru/wallpaper/week.wp` &amp;&amp; \
wget -q -N  http://img-`date &apos;+%Y-%m&apos;`.photosight.ru/`date &apos;+%d&apos;`/$ID.jpg &amp;&amp; \
dcop kdesktop KBackgroundIface setWallpaper /tmp/$ID.jpg 4
&lt;/pre&gt;
&lt;/p&gt;</description>
  <comments>http://mikhailian.livejournal.com/15140.html</comments>
  <category>bash</category>
  <category>gnome</category>
  <category>russian</category>
  <lj:security>public</lj:security>
</item>
<item>
  <guid isPermaLink='true'>http://mikhailian.livejournal.com/14968.html</guid>
  <pubDate>Thu, 17 Jan 2008 19:39:46 GMT</pubDate>
  <title>Using GNU screen&apos;s multiuser feature, version 2</title>
  <link>http://mikhailian.livejournal.com/14968.html</link>
  <description>&lt;p&gt;The folks at &lt;a href=&quot;http://www.debian-administration.org&quot;&gt;debian-administration&lt;/a&gt; have shown me &lt;a href=&quot;http://www.debian-administration.org/articles/572#comment_4&quot;&gt;the light&lt;/a&gt;, once again.&lt;/p&gt;
&lt;p&gt;It turns out that enabling a multiuser remote console is much simpler than what I &lt;a href=&quot;http://mikhailian.livejournal.com/9433.html&quot;&gt;previously thought&lt;/a&gt;. Just login, run &lt;tt&gt;screen&lt;/tt&gt; and tell the other(s) to run &lt;tt&gt;screen -x&lt;/tt&gt; while being logged with the same login name.&lt;/p&gt;</description>
  <comments>http://mikhailian.livejournal.com/14968.html</comments>
  <category>screen</category>
  <category>support</category>
  <category>linux</category>
  <lj:security>public</lj:security>
</item>
<item>
  <guid isPermaLink='true'>http://mikhailian.livejournal.com/14837.html</guid>
  <pubDate>Wed, 16 Jan 2008 07:32:59 GMT</pubDate>
  <title>The KISS principle, dissected</title>
  <link>http://mikhailian.livejournal.com/14837.html</link>
  <description>&lt;p&gt;The expression &lt;a href=&quot;http://en.wikipedia.org/wiki/KISS_principle&quot;&gt;Keep It Simple, Stupid&lt;/a&gt; has a negative connotation, coming from the ambiguity between &lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Keep It Simple AND Stupid&lt;/li&gt;
&lt;li&gt;Keep It Simple, YOU, Stupid&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;that the original wording suggests.&lt;/p&gt;</description>
  <comments>http://mikhailian.livejournal.com/14837.html</comments>
  <category>software</category>
  <category>programming</category>
  <lj:security>public</lj:security>
</item>
<item>
  <guid isPermaLink='true'>http://mikhailian.livejournal.com/14395.html</guid>
  <pubDate>Tue, 15 Jan 2008 21:27:32 GMT</pubDate>
  <title>ActiveRecord as an implementation of a design pattern straight out of the book</title>
  <link>http://mikhailian.livejournal.com/14395.html</link>
  <description>&lt;p&gt;&lt;a href=&quot;http://ar.rubyonrails.org&quot;&gt;ActiveRecord&lt;/a&gt; has been &lt;a href=&quot;http://wiki.rubyonrails.org/rails/pages/SingleTableInheritance&quot;&gt;built&lt;/a&gt; straight from the Martin Fowler&apos;s &lt;a href=&quot;http://martinfowler.com/eaaCatalog/singleTableInheritance.html&quot; title=&quot;STI&quot;&gt;Single Table Inheritance&lt;/a&gt; design pattern. Period. This is fine for simple applications with that can live with the database design imposed by the application framework.&lt;/p&gt;

&lt;p&gt;Once the developer tries to think throughly the database design, he immediately hits the limits of the STI paradigm. Here&apos;s an example.&lt;/p&gt;

&lt;p&gt;One common method to define a hierarchical relation in Object-Relational Mapping where a child can have only one parent is to put the reference to the parent in the child table. This is a common and very efficient way to map a class hierarchy into database tables in &lt;a href=&quot;http://www.hibernate.org&quot;&gt;Hibernate&lt;/a&gt;, for instance. The resulting tables can then look as follows:&lt;/p&gt;

&lt;pre&gt;
CREATE TABLE `foos` (
  `id` int(11) NOT NULL auto_increment,
  PRIMARY KEY  (`id`)
);
CREATE TABLE `bars` (
  `id` int(11) NOT NULL auto_increment,
  `foo_id` int(11) NOT NULL,
  PRIMARY KEY  (`id`)
);
CREATE TABLE `bazs` (
  `id` int(11) NOT NULL auto_increment,
  `foo_id` int(11) NOT NULL,
  PRIMARY KEY  (`id`)
);
&lt;/pre&gt;

&lt;p&gt;Note that this table structure allows to efficiently retrieve &lt;tt&gt;bars&lt;/tt&gt; and &lt;tt&gt;bazs&lt;/tt&gt; from &lt;tt&gt;foos&lt;/tt&gt;, as well as ascend to &lt;tt&gt;foos&lt;/tt&gt; from &lt;tt&gt;bars&lt;/tt&gt; and &lt;tt&gt;bazs&lt;/tt&gt;.&lt;/p&gt; 

&lt;p&gt;If you are bound to ActiveRecord, it imposes a solution with one table having one additional id to identify the parent and a string to identify the type of the child. All fields belonging to &lt;tt&gt;bars&lt;/tt&gt; and &lt;tt&gt;bazs&lt;/tt&gt; will appear in the same table, intermixed.&lt;/p&gt;

&lt;pre&gt;
CREATE TABLE `foos` (
  `id` int(11) NOT NULL auto_increment,
  `foo_id` int(11) NOT NULL,
  `foo_type` char(4) NOT NULL,
  PRIMARY KEY  (`id`)
);
&lt;/pre&gt;

&lt;p&gt;This approach has many disadvantages, the most obvious one is that it may be necessary to remove restrictions on some columns that behave differently in different children. For example, using &lt;tt&gt;default NULL&lt;/tt&gt; on fields that are shared between classes behind &lt;tt&gt;bazs&lt;/tt&gt; and &lt;tt&gt;bars&lt;/tt&gt;, whether or not one of the requires them.&lt;/p&gt;</description>
  <comments>http://mikhailian.livejournal.com/14395.html</comments>
  <category>activerecord</category>
  <category>ruby</category>
  <lj:security>public</lj:security>
</item>
<item>
  <guid isPermaLink='true'>http://mikhailian.livejournal.com/14157.html</guid>
  <pubDate>Tue, 08 Jan 2008 22:12:36 GMT</pubDate>
  <title>Who benefits from the service vouchers (dienstcheques, titres-services)</title>
  <link>http://mikhailian.livejournal.com/14157.html</link>
  <description>&lt;p&gt;PHBs, stay away. This is as complicated as the &lt;a href=&quot;http://mikhailian.livejournal.com/4454.html&quot;&gt;Type C work permit gamble&lt;/a&gt;, Type B vs. immigration legal loophole or the intrinsics of the &lt;a href=&quot;http://mikhailian.livejournal.com/13139.html&quot;&gt;payslip calculation&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;Here is the idea of service vouchers in a 100 words. A few years ago, you could find someone to clean your house or iron your shirts by a word-of-mouth. After the job was done, you paid them in cash 8 € per hour and you were done. Nowadays, you first buy service vouchers from a &lt;a href=&quot;http://www.sodexho.be&quot;&gt;multinational, state-assigned monopoly&lt;/a&gt; at the price of 6.70 €. You then call a service provider which is a company licensed by the state to accept service vouchers for house holding services. They make you sign a contract and they send their employee to you. Every visit, you give the cleaner as many service vouchers as the hours worked. The cleaner returns the service vouchers to his employer and the employer claims from the state 20 € per voucher. You, as a customer are not done yet as well, you can subtract the amount you paid for service vouchers in your personal yearly tax form, which decreases the real price of service vouchers down to 4,69 €.&lt;/p&gt;

&lt;p&gt;At first sight, there&apos;s a clear gain from the customer&apos;s point of view. The service gets cheaper. However,  the customer loses time in paperwork and is somewhat bound by the contract from now on. There&apos;s also an intuitive expectation of decreased service quality, as the service becomes less personal.&lt;/p&gt;

&lt;p&gt;On the other hand, the state clearly loses 13,30 € per working hour, and some more money in personal taxes, which makes the service vouchers program look slightly unrealistic. Where&apos;s the catch?&lt;/p&gt;

&lt;p&gt;Officially, the idea of service vouchers was defended on the following grounds:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Black market workers that had no right to health insurance and social services become permanent employees of service companies. This will let them benefit from all social support a worker gets, including the right to receive unemployment money in case they are fired.&lt;/li&gt;
&lt;li&gt;Customers now deal with companies instead of individuals, which makes the dispute resolution easier, and the service - more reliable.&lt;/li&gt;
&lt;li&gt;As for the fact that the state artificially supports an unrealistic business model by paying 13,00 € per working hour to private companies, the explanation was that all this money returns to the state in the form of various taxes that the employer and the worker are subject to.&lt;/li&gt;
&lt;/ul&gt;


&lt;p&gt;Unofficial but more realistic reasons are less pleasant to hear.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Service vouchers plan is an instrument that was going to allow Guy Verhofstadt and his government to attain the goal of &lt;a href=&quot;http://www.google.com/search?q=verhofstadt+200.000&quot;&gt;200,000 increase in work places&lt;/a&gt; that they set back in 2003. The idea is simple. Make illegal workers work legally and count them as new work places.&lt;/li&gt;
&lt;li&gt;The state takes control over what was a black market by dumping prices. This allows it to squeeze off tens if not hundreds of thousands of illegal immigrants that did this job for a living. Combined with &lt;a href=&quot;http://mikhailian.livejournal.com/4454.html&quot;&gt;other measures&lt;/a&gt;, this enables the state to better control everyone who lives on its territory.&lt;/li&gt;
&lt;li&gt;Service vouchers plan lets the government bind extra money it had without having to spend it on a more adventurous task like a state reform.&lt;/li&gt;
&lt;li&gt;The creation of a new business model subject to licensing would also benefit many politicians and their pet businesses could use their privileged position to milk the state cash cow at will, by jumping early into the artificially created business niche.&lt;/li&gt;
&lt;/ul&gt;</description>
  <comments>http://mikhailian.livejournal.com/14157.html</comments>
  <category>service vouchers</category>
  <category>hr</category>
  <category>belgium</category>
  <lj:security>public</lj:security>
</item>
</channel>
</rss>
