<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:content="http://purl.org/rss/1.0/modules/content/">
<channel>
<title>Temptation Of Saint Aqualung // work</title>
<link>http://en.miheev.info/work/</link>
<description>Yet another developer`s weblog // work</description>
<ttl>60</ttl>
<lastBuildDate>Thu, 06 May 2010 04:00:37 +0400</lastBuildDate>
<generator>InTerra Blog Machine</generator>
<item><title>Checklists</title>
<link>http://en.miheev.info/2010/05/06/checklists.html</link>
<description>&lt;a name=&quot;p18537-1&quot;&gt;&lt;/a&gt;&lt;p class=&quot;auto&quot; id=&quot;p18537-1&quot;&gt;They are&amp;nbsp;totally useless. Unless you&amp;nbsp;have to&amp;nbsp;perform a&amp;nbsp;certain task. If&amp;nbsp;you don't list every little thing you&amp;nbsp;have to&amp;nbsp;do to&amp;nbsp;achive your goal, you&amp;nbsp;may miss a&amp;nbsp;teeny-tiny part, like updating &lt;strong&gt;fstab&lt;/strong&gt; after moving directories. And&amp;nbsp;end up&amp;nbsp;screwing with the&amp;nbsp;server all&amp;nbsp;night long instead of&amp;nbsp;10 minute job.&lt;/p&gt;
&lt;a name=&quot;p18537-2&quot;&gt;&lt;/a&gt;&lt;p class=&quot;auto&quot; id=&quot;p18537-2&quot;&gt;
BTW, if&amp;nbsp;you use&amp;nbsp;&lt;strong&gt;pygrub&lt;/strong&gt; with Xen, &lt;strong&gt;extra&lt;/strong&gt; won't work and&amp;nbsp;you won't be&amp;nbsp;able to&amp;nbsp;boot domU in&amp;nbsp;single mode, for&amp;nbsp;example. You'll have to&amp;nbsp;specify &lt;strong&gt;kernel&lt;/strong&gt; and&amp;nbsp;&lt;strong&gt;ramdisk&lt;/strong&gt; and&amp;nbsp;comment out&amp;nbsp;&lt;strong&gt;bootloader&lt;/strong&gt; instead.&lt;/p&gt; </description>
<pubDate>Thu, 06 May 2010 03:52:00 +0400</pubDate>
</item>
<item><title>Back to RentACoder</title>
<link>http://en.miheev.info/2010/01/27/back-to-rentacoder.html</link>
<description>&lt;a name=&quot;p12020-1&quot;&gt;&lt;/a&gt;&lt;p class=&quot;auto&quot; id=&quot;p12020-1&quot;&gt;I've stopped freelancing for&amp;nbsp;a&amp;nbsp;while again, and&amp;nbsp;now I'm back to&amp;nbsp;it one&amp;nbsp;more time.&lt;/p&gt;
&lt;a name=&quot;p12020-2&quot;&gt;&lt;/a&gt;&lt;p class=&quot;auto&quot; id=&quot;p12020-2&quot;&gt;
I&amp;nbsp;missed it. I&amp;nbsp;left &lt;a href=&quot;http://www.rentacoder.com/RentACoder/DotNet/SoftwareCoders/ShowBioInfo.aspx?lngAuthorId=1714971&amp;txtFromURL=AId_1714971&quot; class=&quot;myLink&quot; target=&quot;_blank&quot;&gt;RAC&lt;/a&gt; over 2 years ago&amp;nbsp;becase of&amp;nbsp;several reasons. Most important are:&lt;/p&gt;&lt;a name=&quot;h12020-1&quot;&gt;&lt;/a&gt;&lt;h3&gt;No challenge&lt;/h3&gt;&lt;a name=&quot;p12020-3&quot;&gt;&lt;/a&gt;&lt;p class=&quot;auto&quot; id=&quot;p12020-3&quot;&gt;
When I&amp;nbsp;stated there, it&amp;nbsp;was all&amp;nbsp;new and&amp;nbsp;exciting for&amp;nbsp;me. Finding clients, persuading them to&amp;nbsp;hire me, working on&amp;nbsp;real things I&amp;nbsp;only tried on&amp;nbsp;localhost before... But&amp;nbsp;them I&amp;nbsp;gained enough experience and&amp;nbsp;improved my&amp;nbsp;skills. Most projects looked boring for&amp;nbsp;me. Others were too&amp;nbsp;cheap (I know, a&amp;nbsp;gig's a&amp;nbsp;gig, but&amp;nbsp;working for $20 overnight isn't so&amp;nbsp;pleasing anymore). &lt;/p&gt;&lt;a name=&quot;h12020-2&quot;&gt;&lt;/a&gt;&lt;h3&gt;Stability&lt;/h3&gt;&lt;a name=&quot;p12020-4&quot;&gt;&lt;/a&gt;&lt;p class=&quot;auto&quot; id=&quot;p12020-4&quot;&gt;
I&amp;nbsp;was working for&amp;nbsp;two guys I&amp;nbsp;met on&amp;nbsp;&lt;a href=&quot;http://www.rentacoder.com/RentACoder/DotNet/SoftwareCoders/ShowBioInfo.aspx?lngAuthorId=1714971&amp;txtFromURL=AId_1714971&quot; class=&quot;myLink&quot; target=&quot;_blank&quot;&gt;RentACoder&lt;/a&gt;, Leif and&amp;nbsp;Matt. They paid me&amp;nbsp;enough so&amp;nbsp;I didn't have to&amp;nbsp;search for&amp;nbsp;more projects. Also I&amp;nbsp;found a&amp;nbsp;full-time job&amp;nbsp;which also paid off&amp;nbsp;pretty well. I&amp;nbsp;had enough money and&amp;nbsp;enough work and&amp;nbsp;also some free time: why&amp;nbsp;would I&amp;nbsp;need too&amp;nbsp;work more.&lt;/p&gt;&lt;a name=&quot;h12020-3&quot;&gt;&lt;/a&gt;&lt;h3&gt;Concurrency&lt;/h3&gt;&lt;a name=&quot;p12020-5&quot;&gt;&lt;/a&gt;&lt;p class=&quot;auto&quot; id=&quot;p12020-5&quot;&gt;
Well, my&amp;nbsp;skills are&amp;nbsp;good. My&amp;nbsp;rates are&amp;nbsp;acceptable. But&amp;nbsp;by&amp;nbsp;the end&amp;nbsp;of&amp;nbsp;2007 RAC&amp;nbsp;was invaded by&amp;nbsp;thousands of&amp;nbsp;cheap Indian coders. I&amp;nbsp;just couldn't compete with their rates. No&amp;nbsp;offence to&amp;nbsp;good coders from India: they had&amp;nbsp;even harder time fighting both their cheap inexperienced colleagues and&amp;nbsp;a&amp;nbsp;stereotype about cheap coders...&lt;/p&gt;
&lt;a name=&quot;p12020-6&quot;&gt;&lt;/a&gt;&lt;p class=&quot;auto&quot; id=&quot;p12020-6&quot;&gt;
But&amp;nbsp;recently I&amp;nbsp;moved from my&amp;nbsp;parents house and&amp;nbsp;could really use&amp;nbsp;a&amp;nbsp;couple extra bucks. And&amp;nbsp;also I&amp;nbsp;suddenly had&amp;nbsp;much more free time (I still have no&amp;nbsp;explaination for&amp;nbsp;that!), so&amp;nbsp;I though: Why&amp;nbsp;not? And&amp;nbsp;&lt;a href=&quot;http://www.rentacoder.com/RentACoder/DotNet/SoftwareCoders/ShowBioInfo.aspx?lngAuthorId=1714971&amp;txtFromURL=AId_1714971&quot; class=&quot;myLink&quot; target=&quot;_blank&quot;&gt;RAC&lt;/a&gt; was&amp;nbsp;much better this time: more interesting projects, less scriptkiddies (I made 8 bids in&amp;nbsp;first two&amp;nbsp;days and&amp;nbsp;won one) and&amp;nbsp;decent prices. I'm glad and&amp;nbsp;excited.&lt;/p&gt;
&lt;a name=&quot;p12020-7&quot;&gt;&lt;/a&gt;&lt;p class=&quot;auto&quot; id=&quot;p12020-7&quot;&gt;
It's good to&amp;nbsp;be back.&lt;/p&gt; </description>
<pubDate>Wed, 27 Jan 2010 19:27:00 +0300</pubDate>
</item>
<item><title>rsyslog</title>
<link>http://en.miheev.info/2009/10/29/rsyslog.html</link>
<description>&lt;a name=&quot;p-5494-1&quot;&gt;&lt;/a&gt;&lt;p class=&quot;auto&quot; id=&quot;p-5494-1&quot;&gt;It's unique. What's it's uniqueness, you&amp;nbsp;ask me? I'll tell you&amp;nbsp;what is&amp;nbsp;it. &lt;strong&gt;rsyslog&lt;/strong&gt;'s man&amp;nbsp;page is&amp;nbsp;more clear and&amp;nbsp;easy to&amp;nbsp;understand and&amp;nbsp;to&amp;nbsp;start with than &lt;a href=&quot;http://rsyslog.com/doc&quot; class=&quot;myLink&quot; target=&quot;_blank&quot;&gt;documentation&lt;/a&gt; at&amp;nbsp;it's website.&lt;/p&gt; </description>
<pubDate>Thu, 29 Oct 2009 17:02:00 +0300</pubDate>
</item>
<item><title>Heartbeat</title>
<link>http://en.miheev.info/2009/10/27/heartbeat-gawk-which.html</link>
<description>&lt;a name=&quot;p19509-1&quot;&gt;&lt;/a&gt;&lt;p class=&quot;auto&quot; id=&quot;p19509-1&quot;&gt;We've grown enough to&amp;nbsp;need high availability solution, so&amp;nbsp;the first thing I've tried is&amp;nbsp;&lt;a href=&quot;http://www.linux-ha.org/Heartbeat&quot; class=&quot;myLink&quot; target=&quot;_blank&quot;&gt;Heartbeat&lt;/a&gt;. It&amp;nbsp;turned out&amp;nbsp;enough for&amp;nbsp;now (although, I'll have to&amp;nbsp;update a&amp;nbsp;few init scripts), and&amp;nbsp;I'll write a&amp;nbsp;mini-howto on&amp;nbsp;running &lt;strong&gt;Heartbeat&lt;/strong&gt; inside &lt;strong&gt;OpenVZ&lt;/strong&gt; container as&amp;nbsp;soon as&amp;nbsp;I have enough time for&amp;nbsp;that.&lt;/p&gt;
&lt;a name=&quot;p19509-2&quot;&gt;&lt;/a&gt;&lt;p class=&quot;auto&quot; id=&quot;p19509-2&quot;&gt;
For&amp;nbsp;now, just one&amp;nbsp;hint. If&amp;nbsp;your node doesn't come up&amp;nbsp;when it&amp;nbsp;should, and&amp;nbsp;&lt;strong&gt;/var/log/ha-log&lt;/strong&gt; contains the&amp;nbsp;following:&lt;/p&gt;
&lt;a name=&quot;p19509-3&quot;&gt;&lt;/a&gt;&lt;p class=&quot;auto&quot; id=&quot;p19509-3&quot;&gt;
&lt;strong&gt;Setup problem: Couldn't find utility /bin/gawk&lt;/strong&gt;&lt;/p&gt;
&lt;a name=&quot;p19509-4&quot;&gt;&lt;/a&gt;&lt;p class=&quot;auto&quot; id=&quot;p19509-4&quot;&gt;
then it's most probably not&amp;nbsp;really about gawk (it's very hard to&amp;nbsp;find Linux system without &lt;strong&gt;gawk&lt;/strong&gt;). It&amp;nbsp;may also mean that you&amp;nbsp;don't have &lt;strong&gt;which&lt;/strong&gt; installed, while Heartbeat's scripts use&amp;nbsp;it&amp;nbsp;to find a&amp;nbsp;real path to&amp;nbsp;&lt;strong&gt;gawk&lt;/strong&gt;. It's not&amp;nbsp;that common, too, actually, but, for&amp;nbsp;example, some &lt;strong&gt;OpenVZ&lt;/strong&gt; templates do&amp;nbsp;not include &lt;strong&gt;which&lt;/strong&gt; package.&lt;/p&gt;
&lt;a name=&quot;p19509-5&quot;&gt;&lt;/a&gt;&lt;p class=&quot;auto&quot; id=&quot;p19509-5&quot;&gt;
So, &lt;strong&gt;yum install which&lt;/strong&gt; (or &lt;strong&gt;vzyum $VEID install which&lt;/strong&gt;) brings you&amp;nbsp;happiness.&lt;/p&gt; </description>
<pubDate>Tue, 27 Oct 2009 11:01:00 +0300</pubDate>
</item>
<item><title>Ubuntu is so Ubuntu</title>
<link>http://en.miheev.info/2009/09/30/ubuntu-is-so-ubuntu.html</link>
<description>&lt;a name=&quot;p-1849-1&quot;&gt;&lt;/a&gt;&lt;p class=&quot;auto&quot; id=&quot;p-1849-1&quot;&gt;Note to&amp;nbsp;self: stop using alphas!&lt;/p&gt;
&lt;a name=&quot;p-1849-2&quot;&gt;&lt;/a&gt;&lt;p class=&quot;auto&quot; id=&quot;p-1849-2&quot;&gt;
This shit costed me&amp;nbsp;a lot&amp;nbsp;of&amp;nbsp;neurons and&amp;nbsp;hell of&amp;nbsp;a time. I&amp;nbsp;though I&amp;nbsp;went crazy ot&amp;nbsp;supid at&amp;nbsp;some point. &lt;/p&gt;
&lt;a name=&quot;p-1849-3&quot;&gt;&lt;/a&gt;&lt;p class=&quot;auto&quot; id=&quot;p-1849-3&quot;&gt;
I&amp;nbsp;even googled for&amp;nbsp;'netmask calculator' after I&amp;nbsp;calculated it&amp;nbsp;in head and&amp;nbsp;then on&amp;nbsp;a piece of&amp;nbsp;paper.&lt;/p&gt;
&lt;a name=&quot;p-1849-4&quot;&gt;&lt;/a&gt;&lt;p class=&quot;auto&quot; id=&quot;p-1849-4&quot;&gt;
Both ip&amp;nbsp;addr and&amp;nbsp;ifconfig output wrong broadcast address.&lt;/p&gt;
&lt;a name=&quot;p-1849-5&quot;&gt;&lt;/a&gt;&lt;p class=&quot;auto&quot; id=&quot;p-1849-5&quot;&gt;
% uname -a&lt;/p&gt;
&lt;a name=&quot;p-1849-6&quot;&gt;&lt;/a&gt;&lt;p class=&quot;auto&quot; id=&quot;p-1849-6&quot;&gt;
Linux amiheev 2.6.&lt;span class=&quot;nobr&quot;&gt;31&amp;ndash;11&lt;/span&gt;-generic #36-Ubuntu SMP&amp;nbsp;Fri Sep&amp;nbsp;25 06:37:23 UTC&amp;nbsp;2009 x86_64 GNU/Linux&lt;/p&gt;
&lt;a name=&quot;p-1849-7&quot;&gt;&lt;/a&gt;&lt;p class=&quot;auto&quot; id=&quot;p-1849-7&quot;&gt;
&lt;!--notypo--&gt;&lt;pre&gt;inet 192.168.200.21/&lt;b&gt;26&lt;/b&gt; brd &lt;b&gt;192.168.200.31&lt;/b&gt; scope global eth0&lt;/pre&gt;&lt;!--/notypo--&gt;

&lt;!--notypo--&gt;&lt;pre&gt;inet addr:192.168.200.21  Bcast:192.168.200.31  Mask:255.255.255.192&lt;/pre&gt;&lt;!--/notypo--&gt;&lt;/p&gt; </description>
<pubDate>Wed, 30 Sep 2009 14:49:00 +0400</pubDate>
</item>
<item><title>One Month In Office</title>
<link>http://en.miheev.info/2007/11/24/one-month-in-office.html</link>
<description>&lt;a name=&quot;p-2073-1&quot;&gt;&lt;/a&gt;&lt;p class=&quot;auto&quot; id=&quot;p-2073-1&quot;&gt;As&amp;nbsp;I have already mentioned, I&amp;nbsp;got a&amp;nbsp;&amp;#147;normal&amp;#148; nearly full-time job&amp;nbsp;recently. I&amp;nbsp;work in&amp;nbsp;a &lt;a href=&quot;http://st-host.ru/&quot; class=&quot;myLink&quot; target=&quot;_blank&quot;&gt;web&amp;nbsp;hosting company&lt;/a&gt; (Russian) now. And&amp;nbsp;I&amp;nbsp;promised to&amp;nbsp;write an&amp;nbsp;artcile about how&amp;nbsp;is&amp;nbsp;it after a&amp;nbsp;month of&amp;nbsp;been employed. So, here st&amp;nbsp;it. &lt;/p&gt;
&lt;a name=&quot;p-2073-2&quot;&gt;&lt;/a&gt;&lt;p class=&quot;auto&quot; id=&quot;p-2073-2&quot;&gt;
I'm few&amp;nbsp;days late, though.&lt;/p&gt;
&lt;a name=&quot;p-2073-3&quot;&gt;&lt;/a&gt;&lt;p class=&quot;auto&quot; id=&quot;p-2073-3&quot;&gt;
It&amp;nbsp;is hard to&amp;nbsp;distinguish pros and&amp;nbsp;cons right now&amp;nbsp;as&amp;nbsp;I'm all&amp;nbsp;into this new&amp;nbsp;job. It's new, it's interesting, it's (somewhat) challenging, it&amp;nbsp;fits me&amp;nbsp;perfectly. Hm.. Okay, let's state that was&amp;nbsp;a&amp;nbsp;pro.&lt;/p&gt;
&lt;a name=&quot;p-2073-4&quot;&gt;&lt;/a&gt;&lt;p class=&quot;auto&quot; id=&quot;p-2073-4&quot;&gt;
On&amp;nbsp;the other hand, it's in&amp;nbsp;office. It&amp;nbsp;means I&amp;nbsp;have to&amp;nbsp;be clothed (and I&amp;nbsp;&lt;strong&gt;mean&lt;/strong&gt; clothed, so&amp;nbsp;robe and&amp;nbsp;slippers ain't an&amp;nbsp;option) to&amp;nbsp;work, I&amp;nbsp;have to&amp;nbsp;move myself from home to&amp;nbsp;office in&amp;nbsp;the morning... That turned out&amp;nbsp;pretty hard, I've never been and&amp;nbsp;early-riser, so&amp;nbsp;I didn't have enought sleep first two&amp;nbsp;weeks and&amp;nbsp;still I&amp;nbsp;feel that if&amp;nbsp;I could sleep more, I'd feel better.&lt;/p&gt;
&lt;a name=&quot;p-2073-5&quot;&gt;&lt;/a&gt;&lt;p class=&quot;auto&quot; id=&quot;p-2073-5&quot;&gt;
I&amp;nbsp;can't make coffee or&amp;nbsp;tea in&amp;nbsp;the office as&amp;nbsp;I used to&amp;nbsp;make them. Actually, there's no&amp;nbsp;way to&amp;nbsp;make fine coffee there (can't stand instant coffee), the&amp;nbsp;tea I&amp;nbsp;make there is&amp;nbsp;acceptable, though.&lt;/p&gt;
&lt;a name=&quot;p-2073-6&quot;&gt;&lt;/a&gt;&lt;p class=&quot;auto&quot; id=&quot;p-2073-6&quot;&gt;
It's harder to&amp;nbsp;take a&amp;nbsp;break in&amp;nbsp;office, and&amp;nbsp;you have to&amp;nbsp;go through from morning to&amp;nbsp;lunch and&amp;nbsp;from lunch to&amp;nbsp;evening. It's okay now, though, as&amp;nbsp;I even forget about lunch sometimes (that will surely pass later). Opposed to&amp;nbsp;this, it's easier to&amp;nbsp;concentrate: &amp;#147;home freedom&amp;#148; gives you&amp;nbsp;too many chanes that you'll reading blogs or&amp;nbsp;playing Chromium rather than working. I&amp;nbsp;was sick a&amp;nbsp;couple days ago&amp;nbsp;and had&amp;nbsp;to&amp;nbsp;stay home and&amp;nbsp;tried to&amp;nbsp;work from here as&amp;nbsp;I used to&amp;nbsp;do all&amp;nbsp;those years. And&amp;nbsp;what? Routine tasks took two&amp;nbsp;times more than they usually take when I'm in&amp;nbsp;the office. And&amp;nbsp;I&amp;nbsp;missed our&amp;nbsp;issue traking system and&amp;nbsp;lots of&amp;nbsp;things I&amp;nbsp;just got&amp;nbsp;used to&amp;nbsp;already.  And&amp;nbsp;most of&amp;nbsp;all I&amp;nbsp;missed the&amp;nbsp;ability to&amp;nbsp;turn my&amp;nbsp;head and&amp;nbsp;ask co-worker a&amp;nbsp;question instead of&amp;nbsp;emailing it.&lt;/p&gt;
&lt;a name=&quot;p-2073-7&quot;&gt;&lt;/a&gt;&lt;p class=&quot;auto&quot; id=&quot;p-2073-7&quot;&gt;
BUT. I&amp;nbsp;have weekends now. I&amp;nbsp;can do&amp;nbsp;anything (or nothing, which I&amp;nbsp;prefer) after 6 AM. And&amp;nbsp;I&amp;nbsp;know what will I&amp;nbsp;be doing next day. After three years of&amp;nbsp;freelance it&amp;nbsp;feels marvelous! I&amp;nbsp;guess I'm getting fat-old-stability-loving-guy. &lt;/p&gt;
&lt;a name=&quot;p-2073-8&quot;&gt;&lt;/a&gt;&lt;p class=&quot;auto&quot; id=&quot;p-2073-8&quot;&gt;
Also, I&amp;nbsp;can learn now. First, new&amp;nbsp;work means new&amp;nbsp;challenges, and&amp;nbsp;I&amp;nbsp;&lt;strong&gt;have to&lt;/strong&gt; improve some of&amp;nbsp;my skills, which were pretty weak before. I&amp;nbsp;never had&amp;nbsp;time and&amp;nbsp;need to&amp;nbsp;get beyond just general understanding of&amp;nbsp;perl, bash, sed&amp;nbsp;and awk. I&amp;nbsp;barely understood how&amp;nbsp;MySQL replication actually works. I&amp;nbsp;knew nothing about PAM, NSS&amp;nbsp;and postfix. &lt;/p&gt;
&lt;a name=&quot;p-2073-9&quot;&gt;&lt;/a&gt;&lt;p class=&quot;auto&quot; id=&quot;p-2073-9&quot;&gt;
And&amp;nbsp;I&amp;nbsp;can actually learn: read books and&amp;nbsp;manuals on&amp;nbsp;things I&amp;nbsp;do not&amp;nbsp;use in&amp;nbsp;my work. Just because I've got&amp;nbsp;free time now. Finally I'm reading Dive Into Python and&amp;nbsp;I&amp;nbsp;like this language and&amp;nbsp;will try&amp;nbsp;to&amp;nbsp;build my&amp;nbsp;next own&amp;nbsp;project with Python.&lt;/p&gt;
&lt;a name=&quot;p-2073-10&quot;&gt;&lt;/a&gt;&lt;p class=&quot;auto&quot; id=&quot;p-2073-10&quot;&gt;
I&amp;nbsp;don't have to&amp;nbsp;pay attention to&amp;nbsp;my time management anymore. No&amp;nbsp;need to&amp;nbsp;explain anyone, why&amp;nbsp;do&amp;nbsp;I have to&amp;nbsp;work when they want to&amp;nbsp;see me. Less interference between work and&amp;nbsp;my&amp;nbsp;(yet inexistent, though) private life.&lt;/p&gt;
&lt;a name=&quot;p-2073-11&quot;&gt;&lt;/a&gt;&lt;p class=&quot;auto&quot; id=&quot;p-2073-11&quot;&gt;
And&amp;nbsp;the last thing for&amp;nbsp;now, I&amp;nbsp;guess, is&amp;nbsp;pro office work again. I&amp;nbsp;can get&amp;nbsp;enough resources when I&amp;nbsp;need. I&amp;nbsp;cat ask&amp;nbsp;for a&amp;nbsp;test server, so&amp;nbsp;I don't have to&amp;nbsp;manage virtual machines and&amp;nbsp;virtual network. I&amp;nbsp;can ask&amp;nbsp;for software, though I&amp;nbsp;never needed it&amp;nbsp;yet and&amp;nbsp;I&amp;nbsp;doubt that I'll be&amp;nbsp;need of&amp;nbsp;something non-free in&amp;nbsp;future.&lt;/p&gt;
&lt;a name=&quot;p-2073-12&quot;&gt;&lt;/a&gt;&lt;p class=&quot;auto&quot; id=&quot;p-2073-12&quot;&gt;
Uhm. The&amp;nbsp;very last: I&amp;nbsp;know now&amp;nbsp;what is&amp;nbsp;TGIF really about, and&amp;nbsp;I&amp;nbsp;don't like it&amp;nbsp;very much actually.&lt;/p&gt;
&lt;a name=&quot;p-2073-13&quot;&gt;&lt;/a&gt;&lt;p class=&quot;auto&quot; id=&quot;p-2073-13&quot;&gt;
You&amp;nbsp;see, there are&amp;nbsp;much more pros for&amp;nbsp;me&amp;nbsp;now. Actually, this job&amp;nbsp;is&amp;nbsp;a good balance between freelance and&amp;nbsp;what is&amp;nbsp;usually ment by&amp;nbsp;office work.&lt;/p&gt; </description>
<pubDate>Sat, 24 Nov 2007 15:59:00 +0300</pubDate>
</item>
<item><title>Encoding Mail Subjects Properly When Sending Mail With PHP</title>
<link>http://en.miheev.info/2007/11/02/encoding_mail_subjects_properly_when_sending_mail_with_php.html</link>
<description>&lt;a name=&quot;p-1359-1&quot;&gt;&lt;/a&gt;&lt;p class=&quot;auto&quot; id=&quot;p-1359-1&quot;&gt;It&amp;nbsp;is one&amp;nbsp;of&amp;nbsp;the most common bugs in&amp;nbsp;Russian web&amp;nbsp;applications.  Nowadays coders do&amp;nbsp;not forget to&amp;nbsp;add Content-type header to&amp;nbsp;mail messages, but&amp;nbsp;many of&amp;nbsp;them forget (or don't know) that this header affects he&amp;nbsp;messag body only. They think, if&amp;nbsp;they specified proper encoding for&amp;nbsp;body, mail client will use&amp;nbsp;it&amp;nbsp;for Subject, too.&lt;/p&gt;
&lt;a name=&quot;p-1359-2&quot;&gt;&lt;/a&gt;&lt;p class=&quot;auto&quot; id=&quot;p-1359-2&quot;&gt;
Which is&amp;nbsp;totally wrong, of&amp;nbsp;course.&lt;/p&gt;
&lt;a name=&quot;p-1359-3&quot;&gt;&lt;/a&gt;&lt;p class=&quot;auto&quot; id=&quot;p-1359-3&quot;&gt;
I&amp;nbsp;am speaking about Russian developers, because I&amp;nbsp;only receive mail in&amp;nbsp;Russian and&amp;nbsp;English, and&amp;nbsp;English messages for&amp;nbsp;obvious reasons do&amp;nbsp;not suffer from this problem. I'm sure that other languages suffer as&amp;nbsp;much as&amp;nbsp;Russian do.&lt;/p&gt;
&lt;a name=&quot;p-1359-4&quot;&gt;&lt;/a&gt;&lt;p class=&quot;auto&quot; id=&quot;p-1359-4&quot;&gt;
So, enough dull talk. What should proper mail Subject be? If&amp;nbsp;encoded if&amp;nbsp;consists of&amp;nbsp;the parts separated by&amp;nbsp;special characters:&lt;/p&gt;
&lt;a name=&quot;p-1359-5&quot;&gt;&lt;/a&gt;&lt;p class=&quot;auto&quot; id=&quot;p-1359-5&quot;&gt;
=?&lt;strong&gt;{original text encoding}&lt;/strong&gt;?&lt;strong&gt;{encoding method}&lt;/strong&gt;?&lt;strong&gt;{encoded subject}&lt;/strong&gt;?=&lt;/p&gt;
&lt;a name=&quot;p-1359-6&quot;&gt;&lt;/a&gt;&lt;p class=&quot;auto&quot; id=&quot;p-1359-6&quot;&gt;
So, if&amp;nbsp;you want, for&amp;nbsp;example, to&amp;nbsp;send mail in&amp;nbsp;UTF-8, your message subject should be&amp;nbsp;converted like that:&lt;/p&gt;
&lt;a name=&quot;p-1359-7&quot;&gt;&lt;/a&gt;&lt;p class=&quot;auto&quot; id=&quot;p-1359-7&quot;&gt;
&lt;!--notypo--&gt;&lt;pre&gt;&lt;code class=&quot;php&quot;&gt;
$subject='=?utf-8?B?'.base64_encode($subject).'?=';
&lt;/code&gt;&lt;/pre&gt;&lt;!--/notypo--&gt;&lt;/p&gt;
&lt;a name=&quot;p-1359-8&quot;&gt;&lt;/a&gt;&lt;p class=&quot;auto&quot; id=&quot;p-1359-8&quot;&gt;
Do&amp;nbsp;not do&amp;nbsp;other people's mistakes.&lt;/p&gt;
&lt;a name=&quot;p-1359-9&quot;&gt;&lt;/a&gt;&lt;p class=&quot;auto&quot; id=&quot;p-1359-9&quot;&gt;
(Use their experience to&amp;nbsp;make your own&amp;nbsp;ones.)&lt;/p&gt; </description>
<pubDate>Fri, 02 Nov 2007 14:01:00 +0300</pubDate>
</item>
<item><title>Major Changes, or The Song Remains The Same</title>
<link>http://en.miheev.info/2007/10/31/major_changes.html</link>
<description>&lt;a name=&quot;p31225-1&quot;&gt;&lt;/a&gt;&lt;p class=&quot;auto&quot; id=&quot;p31225-1&quot;&gt;I've been saving this for&amp;nbsp;one of&amp;nbsp;those Fool's Days, but&amp;nbsp;it&amp;nbsp;actually came true. Remeber me&amp;nbsp;&amp;#147;complaining&amp;#148; about not&amp;nbsp;getting office job&amp;nbsp;and been stuck to&amp;nbsp;freelance?&lt;/p&gt;
&lt;a name=&quot;p31225-2&quot;&gt;&lt;/a&gt;&lt;p class=&quot;auto&quot; id=&quot;p31225-2&quot;&gt;
Right! I&amp;nbsp;got the&amp;nbsp;job. The&amp;nbsp;very same one&amp;nbsp;that I&amp;nbsp;didn't get&amp;nbsp;in&amp;nbsp;August. The&amp;nbsp;guy they hired instead of&amp;nbsp;me then didn't appear to&amp;nbsp;meet the&amp;nbsp;requirements, so&amp;nbsp;they contacted me&amp;nbsp;again. Oddly enough, I&amp;nbsp;received another proposal at&amp;nbsp;the same time. I&amp;nbsp;even talked to&amp;nbsp;the second company, took their test job, finished it&amp;nbsp;and sent back (they didn't reply, however), but&amp;nbsp;it&amp;nbsp;was something about Windows, AutoCAD, Visual C++ and&amp;nbsp;lots of&amp;nbsp;other things I&amp;nbsp;don't really want to&amp;nbsp;mess around with. I've forgotten my&amp;nbsp;umbrella at&amp;nbsp;their office, by&amp;nbsp;the way&amp;nbsp;:-)&lt;/p&gt;
&lt;a name=&quot;p31225-3&quot;&gt;&lt;/a&gt;&lt;p class=&quot;auto&quot; id=&quot;p31225-3&quot;&gt;
So, now&amp;nbsp;for almost two&amp;nbsp;weeks already I&amp;nbsp;work in&amp;nbsp;a local &lt;a href=&quot;http://www.st-host.ru&quot; class=&quot;myLink&quot; target=&quot;_blank&quot;&gt;web&amp;nbsp;hosting company&lt;/a&gt;. Our&amp;nbsp;(wow, apparently, it&amp;nbsp;feels pretty cool when you&amp;nbsp;say say&amp;nbsp;&amp;#147;we&amp;#148; talking about your company) website is&amp;nbsp;completely in&amp;nbsp;Russian, because we&amp;nbsp;are targeting Russian customers only, though, with got&amp;nbsp;one client from Greece, as&amp;nbsp;far as&amp;nbsp;I know. In&amp;nbsp;fact, there are&amp;nbsp;only two&amp;nbsp;people busy with hosting here: we&amp;nbsp;are a&amp;nbsp;part of&amp;nbsp;bigger company. I'll tell you&amp;nbsp;more about the&amp;nbsp;company later as&amp;nbsp;there's just not&amp;nbsp;too much to&amp;nbsp;say right now.&lt;/p&gt;
&lt;a name=&quot;p31225-4&quot;&gt;&lt;/a&gt;&lt;p class=&quot;auto&quot; id=&quot;p31225-4&quot;&gt;
I&amp;nbsp;promise to&amp;nbsp;summarize my&amp;nbsp;impressons about working in&amp;nbsp;company and&amp;nbsp;freelancing when it&amp;nbsp;will a&amp;nbsp;month since I&amp;nbsp;started working: at&amp;nbsp;November, 19.&lt;/p&gt;
&lt;a name=&quot;p31225-5&quot;&gt;&lt;/a&gt;&lt;p class=&quot;auto&quot; id=&quot;p31225-5&quot;&gt;
And&amp;nbsp;I'm not&amp;nbsp;going to&amp;nbsp;quit freelance. I'll just freeze it&amp;nbsp;for a&amp;nbsp;while and&amp;nbsp;get back to&amp;nbsp;it later, in&amp;nbsp;smaller amounts, of&amp;nbsp;course.&lt;/p&gt;
&lt;a name=&quot;p31225-6&quot;&gt;&lt;/a&gt;&lt;p class=&quot;auto&quot; id=&quot;p31225-6&quot;&gt;
As&amp;nbsp;new job&amp;nbsp;consumes significantly less time and&amp;nbsp;there are&amp;nbsp;more interesting and&amp;nbsp;challenging work here, I&amp;nbsp;hope I&amp;nbsp;will post articles more frequently hereinafter. I'm still what I&amp;nbsp;am &amp;ndash; a&amp;nbsp;web developer and&amp;nbsp;Unix admin, so&amp;nbsp;more work &amp;ndash; more experience &amp;ndash; more articles.&lt;/p&gt;
&lt;a name=&quot;p31225-7&quot;&gt;&lt;/a&gt;&lt;p class=&quot;auto&quot; id=&quot;p31225-7&quot;&gt;
See&amp;nbsp;you soon.&lt;/p&gt; </description>
<pubDate>Wed, 31 Oct 2007 21:34:00 +0300</pubDate>
</item>
<item><title>The Hell of Non-Self-Documenting Code</title>
<link>http://en.miheev.info/2007/10/06/hell-of-non-self-documenting-code.html</link>
<description>&lt;a name=&quot;p98660-1&quot;&gt;&lt;/a&gt;&lt;p class=&quot;auto&quot; id=&quot;p98660-1&quot;&gt;There were a&amp;nbsp;lot of&amp;nbsp;buzz about self-documenting code a&amp;nbsp;while ago, and&amp;nbsp;there will probably be&amp;nbsp;much more. I'm not&amp;nbsp;that big&amp;nbsp;fan of&amp;nbsp;it (neither am&amp;nbsp;I a&amp;nbsp;fan of&amp;nbsp;anything but&amp;nbsp;music), but&amp;nbsp;it&amp;nbsp;is really helpful sometimes.&lt;/p&gt;
&lt;a name=&quot;p98660-2&quot;&gt;&lt;/a&gt;&lt;p class=&quot;auto&quot; id=&quot;p98660-2&quot;&gt;
Do&amp;nbsp;you hate lack of&amp;nbsp;documentation as&amp;nbsp;much as&amp;nbsp;I do?&lt;/p&gt;
&lt;a name=&quot;p98660-3&quot;&gt;&lt;/a&gt;&lt;p class=&quot;auto&quot; id=&quot;p98660-3&quot;&gt;
Plenty of&amp;nbsp;languages are&amp;nbsp;more self-documenting than they seem to&amp;nbsp;be. On&amp;nbsp;the other side, the&amp;nbsp;thing that seem self-documenting, aren't always like that.&lt;/p&gt;
&lt;a name=&quot;p98660-4&quot;&gt;&lt;/a&gt;&lt;p class=&quot;auto&quot; id=&quot;p98660-4&quot;&gt;
Take php. Imagine there's a&amp;nbsp;torrent tracker software written in&amp;nbsp;php:&lt;/p&gt;
&lt;a name=&quot;p98660-5&quot;&gt;&lt;/a&gt;&lt;p class=&quot;auto&quot; id=&quot;p98660-5&quot;&gt;
&lt;!--notypo--&gt;&lt;pre&gt;&lt;code&gt;
function announce($passkey, $info_hash) {&lt;br&gt;
//plenty of code here&lt;br&gt;
Â Â Â Â return bEncode($resp);&lt;br&gt;
}&lt;/code&gt;&lt;/pre&gt;&lt;!--/notypo--&gt;&lt;/p&gt;
&lt;a name=&quot;p98660-6&quot;&gt;&lt;/a&gt;&lt;p class=&quot;auto&quot; id=&quot;p98660-6&quot;&gt;
Pretty obvious, isn't it. Sure. But.&lt;/p&gt;
&lt;a name=&quot;p98660-7&quot;&gt;&lt;/a&gt;&lt;p class=&quot;auto&quot; id=&quot;p98660-7&quot;&gt;
But&amp;nbsp;what? &lt;/p&gt;
&lt;a name=&quot;p98660-8&quot;&gt;&lt;/a&gt;&lt;p class=&quot;auto&quot; id=&quot;p98660-8&quot;&gt;
It&amp;nbsp;is so&amp;nbsp;obvious only if&amp;nbsp;you use&amp;nbsp;some framework to&amp;nbsp;route HTTP requests to&amp;nbsp;your classes and&amp;nbsp;methods. It&amp;nbsp;that case yes, any&amp;nbsp;(awaited) GET&amp;nbsp;parameter has&amp;nbsp;a&amp;nbsp;corresponding function argument, and&amp;nbsp;you can&amp;nbsp;easily see&amp;nbsp;what is&amp;nbsp;passed to&amp;nbsp;/announce.&lt;/p&gt;
&lt;a name=&quot;p98660-9&quot;&gt;&lt;/a&gt;&lt;p class=&quot;auto&quot; id=&quot;p98660-9&quot;&gt;
But&amp;nbsp;what if&amp;nbsp;the application is&amp;nbsp;built like &amp;#147;old-style&amp;#148;: one&amp;nbsp;atomic action &amp;ndash; one&amp;nbsp;file? I&amp;nbsp;have to&amp;nbsp;admit, that this style has&amp;nbsp;it's advantages, among some weaknesses. &lt;/p&gt;
&lt;a name=&quot;p98660-10&quot;&gt;&lt;/a&gt;&lt;p class=&quot;auto&quot; id=&quot;p98660-10&quot;&gt;
The&amp;nbsp;worst thing about it&amp;nbsp;is that you&amp;nbsp;&lt;strong&gt;have&lt;/strong&gt; to&amp;nbsp;document it. If&amp;nbsp;you don't &amp;ndash; you&amp;nbsp;forget what should be&amp;nbsp;submitted to&amp;nbsp;this particular script. Or, if&amp;nbsp;you remember, a&amp;nbsp;serial killer who&amp;nbsp;reads your code, doesn't know what input does this piece of&amp;nbsp;code wait for.&lt;/p&gt;
&lt;a name=&quot;p98660-11&quot;&gt;&lt;/a&gt;&lt;p class=&quot;auto&quot; id=&quot;p98660-11&quot;&gt;
Use&amp;nbsp;MVC frameworks if&amp;nbsp;you are&amp;nbsp;too lazy to&amp;nbsp;write comments. Please!&lt;/p&gt; </description>
<pubDate>Sat, 06 Oct 2007 05:17:00 +0400</pubDate>
</item>
<item><title>GetAFreelancer Introduces MasterCard Debit Card Payments</title>
<link>http://en.miheev.info/2007/09/11/getafreelancer-debit-card-payments.html</link>
<description>&lt;a name=&quot;p62994-1&quot;&gt;&lt;/a&gt;&lt;p class=&quot;auto&quot; id=&quot;p62994-1&quot;&gt;I&amp;nbsp;have never taken &lt;a href=&quot;http://www.getafreelancer.com/affiliates/rustyangel/&quot; class=&quot;myLink&quot; target=&quot;_blank&quot;&gt;GetAFreelancer&lt;/a&gt; (GAF) too&amp;nbsp;seriously. Most projects there are&amp;nbsp;&amp;#147;clone a&amp;nbsp;site&amp;#148;, &amp;#147;data entry&amp;#148;, &amp;#147;register XXX&amp;nbsp;gmail accounts&amp;#148;, or&amp;nbsp;just the&amp;nbsp;projects that aren't interesting or&amp;nbsp;too cheap for&amp;nbsp;me.&lt;/p&gt;
&lt;a name=&quot;p62994-2&quot;&gt;&lt;/a&gt;&lt;p class=&quot;auto&quot; id=&quot;p62994-2&quot;&gt;
Yesterday &lt;a href=&quot;http://www.getafreelancer.com/affiliates/rustyangel/&quot; class=&quot;myLink&quot; target=&quot;_blank&quot;&gt;GAF&lt;/a&gt;  &lt;a href=&quot;http://www.getafreelancer.com/news/global-payments-49.html&quot; class=&quot;myLink&quot; target=&quot;_blank&quot;&gt;did&amp;nbsp;something&lt;/a&gt; that a) makes me&amp;nbsp;treat them as&amp;nbsp;a more serious company; and&amp;nbsp;b) lets them attract more possible service providers and, consequently, buyers. The&amp;nbsp;concurrency is&amp;nbsp;good for&amp;nbsp;a&amp;nbsp;professional (I already have a&amp;nbsp;draft of&amp;nbsp;article about that, will post it&amp;nbsp;sooner or&amp;nbsp;later), so&amp;nbsp;I guess, I'll pay&amp;nbsp;more attention to&amp;nbsp;&lt;a href=&quot;http://www.getafreelancer.com/affiliates/rustyangel/&quot; class=&quot;myLink&quot; target=&quot;_blank&quot;&gt;jobs listed there&lt;/a&gt;.&lt;/p&gt;
&lt;a name=&quot;p62994-3&quot;&gt;&lt;/a&gt;&lt;p class=&quot;auto&quot; id=&quot;p62994-3&quot;&gt;
&lt;!--notypo--&gt;&lt;a href=&quot;http://www.getafreelancer.com/affiliates/rustyangel/&quot;&gt;&lt;img src=&quot;http://www.getafreelancer.com/img/payment-methods/withdrawals/payoneer/gaf-card-sample.gif&quot; border=&quot;0&quot; alt=&quot;GetAFreelancer debit card&quot;&gt;&lt;/a&gt;&lt;!--/notypo--&gt;&lt;/p&gt;
&lt;a name=&quot;p62994-4&quot;&gt;&lt;/a&gt;&lt;p class=&quot;auto&quot; id=&quot;p62994-4&quot;&gt;
But&amp;nbsp;let's get&amp;nbsp;back to&amp;nbsp;the point of&amp;nbsp;this blog post. &lt;a href=&quot;http://www.getafreelancer.com/affiliates/rustyangel/&quot; class=&quot;myLink&quot; target=&quot;_blank&quot;&gt;GetAFreelancer&lt;/a&gt; &lt;a href=&quot;http://www.getafreelancer.com/news/global-payments-49.html&quot; class=&quot;myLink&quot; target=&quot;_blank&quot;&gt;announced&lt;/a&gt; that they partnered with &lt;a href=&quot;http://www.payoneer.com/&quot; class=&quot;myLink&quot; target=&quot;_blank&quot;&gt;Payoneer&lt;/a&gt; and&amp;nbsp;will now&amp;nbsp;provide &lt;strong&gt;pre-paid MaterCard debit cards&lt;/strong&gt; for&amp;nbsp;their payments. I&amp;nbsp;couldn't find any&amp;nbsp;commission charges mentioned on&amp;nbsp;their site yet, though. Probably there'll be&amp;nbsp;just regular payoneer commission on&amp;nbsp;every withdrawal. &lt;/p&gt;
&lt;a name=&quot;p62994-5&quot;&gt;&lt;/a&gt;&lt;p class=&quot;auto&quot; id=&quot;p62994-5&quot;&gt;
Anyway, that is&amp;nbsp;great news. While RentACoder promises to&amp;nbsp;start iKobo (another pre-paid debit cards system) payments for&amp;nbsp;more than a&amp;nbsp;year without any&amp;nbsp;result, GAF&amp;nbsp;intoduced this kind of&amp;nbsp;payment. Probably that will finally make RAC&amp;nbsp;move.&lt;/p&gt; </description>
<pubDate>Tue, 11 Sep 2007 01:52:00 +0400</pubDate>
</item>

</channel>
</rss>