<?xml version="1.0" encoding="utf-8"?>
<feed xmlns="http://www.w3.org/2005/Atom">

 <title>~alip</title>
 <link href="https://alip.github.io/feeds/atom.xml" rel="self"/>
 <link href="https://alip.github.io/"/>
 <updated>2018-05-27T16:03:38+00:00</updated>
 <id>https://alip.github.io</id>
 <author>
   <name>Ali Polatel</name>
   <email>alip@exherbo.org</email>
 </author>

 
 <entry>
   <title>alip's exherbo shortlog 20180527</title>
   <link href="https://alip.github.io/en/blog/2018/05/27/exherbo-shortlog/"/>
   <updated>2018-05-27T00:00:00+00:00</updated>
   <id>https://alip.github.io/en/blog/2018/05/27/exherbo-shortlog</id>
   <content type="html">&lt;p&gt;Here is a summary of my recent Exherbo activity:&lt;/p&gt;

&lt;ul&gt;
  &lt;li&gt;
    &lt;p&gt;musl&lt;/p&gt;

    &lt;ol&gt;
      &lt;li&gt;&lt;a href=&quot;https://git.exherbo.org/arbor.git/commit/?id=cebb22866ee881fb33a0f5b84eeb0bec3807669f&quot;&gt;linux-headers-4.13: add
musl.patch&lt;/a&gt;:
Musl &amp;amp; linux-headers have a complicated relationship. Exherbo has a patch for
linux-headers-4.16 already. This one is for those who are still stuck with
4.13.&lt;/li&gt;
      &lt;li&gt;&lt;a href=&quot;https://git.exherbo.org/arbor.git/commit/?id=f50b26a64a530dcb55a62dded18d4cf42bb1c189&quot;&gt;openmp: do not mandate glibc (for
musl)&lt;/a&gt;
openmp-5.0.1 builds with musl-1.1.19. This patch arranges dependencies so
that the exheres does not have a hard dependency upon glibc anymore making it
usable on musl systems.&lt;/li&gt;
      &lt;li&gt;&lt;a href=&quot;https://git.exherbo.org/arbor.git/commit/?id=b25e95d5ad836dec7bd9dff2565c6a6c0b47653c&quot;&gt;libtirpc: add patch for musl&lt;/a&gt;:
I stumbled upon this whilst trying to get xinetd work. xinetd-2.3.15.3 does not
build for me without rpc option (configure fails to locate rpc/rpc.h which smells
automagic). While this bug has not been addressed yet, I imported the musl patch
for libtirpc from the &lt;a href=&quot;https://github.com/gentoo/musl&quot;&gt;Gentoo Musl development
    overlay&lt;/a&gt; which makes xinetd[rpc] work with
    musl. The xinetd issue is left for the future.&lt;/li&gt;
    &lt;/ol&gt;
  &lt;/li&gt;
  &lt;li&gt;
    &lt;p&gt;perl&lt;/p&gt;

    &lt;ol&gt;
      &lt;li&gt;Added new perl packages
&lt;a href=&quot;https://git.exherbo.org/perl.git/commit/?id=03c343c4a1605427d32a383511a762347e1b2949&quot;&gt;Encoding-FixLatin{,-XS}&lt;/a&gt;,
&lt;a href=&quot;https://git.exherbo.org/perl.git/commit/?id=3d20d22c8c8312c5c410b04b7a84d737fcc6c237&quot;&gt;File-Slurper&lt;/a&gt;,
&lt;a href=&quot;https://git.exherbo.org/perl.git/commit/?id=68c9639c4f4848535066ee98fb5657bdfd6c275d&quot;&gt;Chess-PGN-EPD&lt;/a&gt;,
&lt;a href=&quot;https://git.exherbo.org/perl.git/commit/?id=ec152ab3c56969cda62da772d84e30d136d62531&quot;&gt;Chess-PGN-Moves&lt;/a&gt;
and
&lt;a href=&quot;https://git.exherbo.org/perl.git/commit/?id=25065f8eeee1d41ab808f531b858cf057dfb2c2d&quot;&gt;Chess-PGN-Parse&lt;/a&gt;.
This eases chess-related work on Exherbo, parsing the two most commonly used
formats for chess notation: &lt;a href=&quot;https://en.wikipedia.org/wiki/Chess_notation#Notation_systems_for_computers&quot;&gt;Extended Position Description, aka
EPD&lt;/a&gt;
and &lt;a href=&quot;https://en.wikipedia.org/wiki/Portable_Game_Notation&quot;&gt;Portable Game Notation, aka
PGN&lt;/a&gt;.&lt;/li&gt;
    &lt;/ol&gt;
  &lt;/li&gt;
  &lt;li&gt;
    &lt;p&gt;misc&lt;/p&gt;

    &lt;ol&gt;
      &lt;li&gt;Fix build for
&lt;a href=&quot;https://git.exherbo.org/dev/alip.git/commit/?id=adfce068d44d64373024353efd645b93d5831470&quot;&gt;app-misc/delay&lt;/a&gt;
which “hates” –datarootdir configure argument.&lt;/li&gt;
    &lt;/ol&gt;
  &lt;/li&gt;
&lt;/ul&gt;
</content>
 </entry>
 
 <entry>
   <title>Shell Meditation</title>
   <link href="https://alip.github.io/en/blog/2017/01/13/shell-meditation/"/>
   <updated>2017-01-13T00:00:00+00:00</updated>
   <id>https://alip.github.io/en/blog/2017/01/13/shell-meditation</id>
   <content type="html">&lt;p&gt;Seek your music. As you please.&lt;/p&gt;

&lt;figure class=&quot;highlight&quot;&gt;&lt;pre&gt;&lt;code class=&quot;language-bash&quot; data-lang=&quot;bash&quot;&gt;    &lt;span class=&quot;k&quot;&gt;while &lt;/span&gt;&lt;span class=&quot;nb&quot;&gt;true&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;;&lt;/span&gt; &lt;span class=&quot;k&quot;&gt;do&lt;/span&gt;
        &lt;span class=&quot;o&quot;&gt;((&lt;/span&gt; z &lt;span class=&quot;o&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;k&quot;&gt;${&lt;/span&gt;&lt;span class=&quot;nv&quot;&gt;RANDOM&lt;/span&gt;&lt;span class=&quot;k&quot;&gt;}&lt;/span&gt; % 100 &lt;span class=&quot;o&quot;&gt;))&lt;/span&gt;
        &lt;span class=&quot;o&quot;&gt;((&lt;/span&gt; a &lt;span class=&quot;o&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;nv&quot;&gt;$z&lt;/span&gt; % 10 &lt;span class=&quot;o&quot;&gt;))&lt;/span&gt;
        mpc seek &lt;span class=&quot;nv&quot;&gt;$z&lt;/span&gt;% &amp;amp;
        sleep &lt;span class=&quot;nv&quot;&gt;$a&lt;/span&gt;
        &lt;span class=&quot;nb&quot;&gt;kill&lt;/span&gt; &lt;span class=&quot;nv&quot;&gt;$!&lt;/span&gt;
        &lt;span class=&quot;nb&quot;&gt;wait
    &lt;/span&gt;&lt;span class=&quot;k&quot;&gt;done&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/figure&gt;

</content>
 </entry>
 
 <entry>
   <title>Bright Side of the Moon</title>
   <link href="https://alip.github.io/en/blog/2017/01/13/bright-side-of-the-moon/"/>
   <updated>2017-01-13T00:00:00+00:00</updated>
   <id>https://alip.github.io/en/blog/2017/01/13/bright-side-of-the-moon</id>
   <content type="html">&lt;p&gt;Quick Update: I have a flat! My German was barely enough to make it. Und
zwar komisch. You get a flat on your birthday. Hard to say how it could
get any fucking better than that.&lt;/p&gt;

&lt;p&gt;Oh: Ev buldum lan. Na aşağıdaki! #direnkigülsünyüzün. Yolu düşen gelsin.
Yoksa. Ayıp. Olur. Bana. Bak. Manifestolâmin.&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;https://dev.exherbo.org/~alip/images/bright-side-of-the-moon.jpg&quot; alt=&quot;Ay gidiyor&quot; title=&quot;I'll see you on the dark side of the moon.&quot; /&gt;&lt;/p&gt;

&lt;p&gt;Last and least. Here is a poem and a song that describes everything so far.
Life. is. just. pregnant.&lt;/p&gt;

&lt;p&gt;Çağırın! Güneşin zaptı yakın! #martılaraselam #petşişeistemezük.&lt;/p&gt;

&lt;p&gt;&lt;a href=&quot;https://groups.google.com/forum/?fromgroups=#!topic/kaotik/dN-rWSWe24w&quot;&gt;kaotik/dN-rWSWe24w&lt;/a&gt;&lt;/p&gt;

&lt;blockquote&gt;
  &lt;h2 id=&quot;pregnant&quot;&gt;Pregnant&lt;/h2&gt;
  &lt;p&gt;Hayali Ali, Çengelköy&lt;/p&gt;

  &lt;p&gt;drawing curtains&lt;br /&gt;
hiding fetus&lt;br /&gt;
behind venus&lt;br /&gt;
all Night long&lt;br /&gt;
let it flow&lt;br /&gt;
into snow&lt;br /&gt;
crystals in a row&lt;br /&gt;
mothers will bow&lt;br /&gt;
and swallow&lt;br /&gt;
their unborn babies!&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;Do the Evolution: &lt;a href=&quot;&quot;&gt;https://www.youtube.com/watch?v=aDaOgu2CQtI&lt;/a&gt;&lt;/p&gt;
</content>
 </entry>
 
 <entry>
   <title>Yuvasını başına yıktığım Fare'ye</title>
   <link href="https://alip.github.io/tr/blog/2017/01/11/yuvasini-basina-yiktigim-fareye/"/>
   <updated>2017-01-11T00:00:00+00:00</updated>
   <id>https://alip.github.io/tr/blog/2017/01/11/yuvasini-basina-yiktigim-fareye</id>
   <content type="html">&lt;p&gt;&lt;a href=&quot;https://groups.google.com/forum/?fromgroups=#!topic/kaotik/UESqk6Hu5Bs&quot;&gt;kaotik/UESqk6Hu5Bs&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;em&gt;Fareler ve İnsanlar&lt;/em&gt;‘a esin kaynağı olan delibozuk &lt;em&gt;Robert Burns&lt;/em&gt; şiiridir.
Afiyet ola.&lt;/p&gt;

&lt;blockquote&gt;
  &lt;h2 id=&quot;yuvasını-başına-yıktığım-fareye&quot;&gt;Yuvasını başına yıktığım Fare’ye&lt;/h2&gt;
  &lt;p&gt;Robert Burns, 1785&lt;br /&gt;
ç: hayaliali, 2017&lt;/p&gt;

  &lt;p&gt;Şşşt lan bana bak gudubet&lt;br /&gt;
Pıt pıt mı atıyor yüreğin?&lt;br /&gt;
Öyle alelacele davranmasan&lt;br /&gt;
Laflarını yatıştırsan ya!&lt;br /&gt;
Çaresiz, koşarım kovalarım.&lt;br /&gt;
Elimde sopa, elimde ölümün.&lt;/p&gt;

  &lt;p&gt;Gerçekten üzgünüm, erkeğin egemenliği&lt;br /&gt;
Bozduysa Doğa’nın toplumsal birliğini&lt;br /&gt;
Haklı kıldıysa hasta ruhumu.&lt;br /&gt;
Benim garip, ölümlü, dünyalı yoldaşım,&lt;br /&gt;
Üzgünüm donduruyorsam kanını.&lt;/p&gt;

  &lt;p&gt;Kuşkum yok, çalarsın benden,&lt;br /&gt;
Ne olmuş? Seni küçük gudubet, yaşayasın!&lt;br /&gt;
Bir demet başağım var, birini almışsın..&lt;br /&gt;
Eksiltecek mi beni? Yeter de artar gerisi.&lt;br /&gt;
Umrumda değil ötesi…&lt;/p&gt;

  &lt;p&gt;Senin de küçük evin darmadağın!&lt;br /&gt;
Cılız duvarları, rüzgar süzülür içeri!&lt;br /&gt;
Nasıl etmeli, yeni bir ev dikmeli,&lt;br /&gt;
Yeşil yapraklarla bezemeli!&lt;br /&gt;
Sert eser aralık yeli,&lt;br /&gt;
İçine işler, titretir seni!&lt;/p&gt;

  &lt;p&gt;Gördün heba olan çorak tarlaları,&lt;br /&gt;
Koşar adım gelirken kış,&lt;br /&gt;
Soğuğa siperdi burası, mutluydun.&lt;br /&gt;
Yerleşmek istiyordun.&lt;br /&gt;
Gaddar bir sopa gümbürtüyle&lt;br /&gt;
Hücrene girmeden evvel!&lt;/p&gt;

  &lt;p&gt;Şu ufak yaprak ve anız yığını için&lt;br /&gt;
Günlerce kemirdin, taşıdın durdun!&lt;br /&gt;
Kaldın şimdi açıkta, emeklerin boşuna&lt;br /&gt;
Geride ne bir ev, ne yatacak bir yer.&lt;br /&gt;
Katlanmak zor kışa, kara,&lt;br /&gt;
ve donduran soğuğa.&lt;/p&gt;

  &lt;p&gt;Merak etme minik Fare&lt;br /&gt;
Bir sen değilsin hayalleri suya düşen.&lt;br /&gt;
Fareler ve insanların en sıkı tasarıları dahi&lt;br /&gt;
Sıklıkla ters gider,&lt;br /&gt;
ve vadedilen mutluluktan geriye&lt;br /&gt;
Acı ve keder kalır.&lt;/p&gt;

  &lt;p&gt;Yine de şanslı sayılırsın bana göre!&lt;br /&gt;
Hep burada, şimdiki zamandasın:&lt;br /&gt;
Ama, of! Gözlerim geçmişe bakar benim,&lt;br /&gt;
Kaçan fırsatları arar,&lt;br /&gt;
Ve geleceğe bakarım, göremesem de daha,&lt;br /&gt;
Tahminler yapar, korkarım!&lt;/p&gt;

  &lt;h2 id=&quot;tae-a-moose-on-turning-her-up-in-her-nest-with-the-plough&quot;&gt;Tae a Moose, on Turning Her Up in Her Nest with the Plough&lt;/h2&gt;
  &lt;p&gt;Robert Burns, 1785&lt;/p&gt;

  &lt;p&gt;Wee, sleekit, cow’rin, tim’rous beastie,&lt;br /&gt;
O, what a panic’s in thy breastie!&lt;br /&gt;
Thou need na start awa sae hasty,&lt;br /&gt;
Wi’ bickering brattle!&lt;br /&gt;
I wad be laith to rin an’ chase thee,&lt;br /&gt;
Wi’ murd’ring pattle!&lt;/p&gt;

  &lt;p&gt;I’m truly sorry man’s dominion,&lt;br /&gt;
Has broken nature’s social union,&lt;br /&gt;
An’ justifies that ill opinion,&lt;br /&gt;
Which makes thee startle&lt;br /&gt;
At me, thy poor, earth-born companion,&lt;br /&gt;
An’ fellow-mortal!&lt;/p&gt;

  &lt;p&gt;I doubt na, whiles, but thou may thieve;&lt;br /&gt;
What then? poor beastie, thou maun live!&lt;br /&gt;
A daimen icker in a thrave&lt;br /&gt;
‘S a sma’ request;&lt;br /&gt;
I’ll get a blessin wi’ the lave,&lt;br /&gt;
An’ never miss’t!&lt;/p&gt;

  &lt;p&gt;Thy wee bit housie, too, in ruin!&lt;br /&gt;
It’s silly wa’s the win’s are strewin!&lt;br /&gt;
An’ naething, now, to big a new ane,&lt;br /&gt;
O’ foggage green!&lt;br /&gt;
An’ bleak December’s winds ensuin,&lt;br /&gt;
Baith snell an’ keen!&lt;/p&gt;

  &lt;p&gt;Thou saw the fields laid bare an’ waste,&lt;br /&gt;
An’ weary winter comin fast,&lt;br /&gt;
An’ cozie here, beneath the blast,&lt;br /&gt;
Thou thought to dwell-&lt;br /&gt;
Till crash! the cruel coulter past&lt;br /&gt;
Out thro’ thy cell.&lt;/p&gt;

  &lt;p&gt;Thy wee bit heap o’ leaves an’ stibble,&lt;br /&gt;
Has cost thee mony a weary nibble!&lt;br /&gt;
Now thou’s turn’d out, for a’ thy trouble,&lt;br /&gt;
But house or hald,&lt;br /&gt;
To thole the winter’s sleety dribble,&lt;br /&gt;
An’ cranreuch cauld!&lt;/p&gt;

  &lt;p&gt;But, Mousie, thou art no thy lane,&lt;br /&gt;
In proving foresight may be vain;&lt;br /&gt;
The best-laid schemes o’ mice an’ men&lt;br /&gt;
Gang aft agley,&lt;br /&gt;
An’ lea’e us nought but grief an’ pain,&lt;br /&gt;
For promis’d joy!&lt;/p&gt;

  &lt;p&gt;Still thou art blest, compar’d wi’ me&lt;br /&gt;
The present only toucheth thee:&lt;br /&gt;
But, Och! I backward cast my e’e.&lt;br /&gt;
On prospects drear!&lt;br /&gt;
An’ forward, tho’ I canna see,&lt;br /&gt;
I guess an’ fear!&lt;/p&gt;
&lt;/blockquote&gt;
</content>
 </entry>
 
 <entry>
   <title>Endgame Tricks</title>
   <link href="https://alip.github.io/en/blog/2017/01/03/endgame-tricks/"/>
   <updated>2017-01-03T00:00:00+00:00</updated>
   <id>https://alip.github.io/en/blog/2017/01/03/endgame-tricks</id>
   <content type="html">&lt;p&gt;
Chess endgames often look deceptively simple. Reduced number of pieces on the board
brings reduced alertness to the player. Thus, it is not uncommon for the adversary
to come up with sneaky ways to take advantage of this relaxed state. Thinking in
terms of psychology, the most important feature of this relaxed state is the reduced
feeling of danger which in turn leads to reluctance to justify moves with concrete
variations. Even though, schematic thinking is an important feature of endgame
technique, it has a psychological danger where player's reliance upon natural moves
rather than logical ones can lead h/er to trouble when there exists a non-obvious
nuisance in the position which establishes a significant distinction between the
natural and the logical. At the end of the day chess is purely mathematics and the
term natural is nothing but pattern recognition. Yet, no pattern is exactly the
same.
&lt;/p&gt;

&lt;p&gt;
One form of blunder which is very common to such a frame of mind is &lt;tt&gt;quiescence
errors&lt;/tt&gt; where the player is decepted by the natural aesthetics of a seemingly winning
move sequence and fails to spot a trap which is no further than half a move away.
The main reason of the blunder is psychological, the sudden change of excitement
coupled with the reduced sense of danger literally blinds the player who could
otherwise easily spot the problem with the move sequence at hand. Below is a simple,
illustrative example of such an error. This is an online blitz game where I had the
white pieces.
&lt;/p&gt;

&lt;iframe width=680 height=480
        src=&quot;https://lichess.org/study/embed/ZHxQgjB5/pPWtoiYm?theme=auto&amp;bg=dark&quot;
        frameborder=0&gt;
&lt;/iframe&gt;
</content>
 </entry>
 
 <entry>
   <title>Envtag 0.6</title>
   <link href="https://alip.github.io/en/blog/2016/12/27/envtag-0.6/"/>
   <updated>2016-12-27T00:00:00+00:00</updated>
   <id>https://alip.github.io/en/blog/2016/12/27/envtag-0.6</id>
   <content type="html">&lt;p&gt;Envtag-0.6 has been released.&lt;/p&gt;

&lt;ul&gt;
  &lt;li&gt;Fix alt_getopt and envutils for Lua-5.2 and newer.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;tarball: &lt;a href=&quot;https://dev.exherbo.org/~alip/envtag/envtag-0.6.tar.bz2&quot;&gt;envtag-0.6.tar.bz2&lt;/a&gt;&lt;br /&gt;
sha1sum: e1e1179198cab15717daea986f0a27cbe3a0e963&lt;/p&gt;
</content>
 </entry>
 
 <entry>
   <title>Envtag 0.5</title>
   <link href="https://alip.github.io/en/blog/2016/12/26/envtag-0.5/"/>
   <updated>2016-12-26T00:00:00+00:00</updated>
   <id>https://alip.github.io/en/blog/2016/12/26/envtag-0.5</id>
   <content type="html">&lt;p&gt;Envtag-0.5 has been released.&lt;/p&gt;

&lt;ul&gt;
  &lt;li&gt;Add support for Lua-5.2 and newer.&lt;/li&gt;
  &lt;li&gt;Fix –delimiter option of get-xiph and set-xiph commands&lt;/li&gt;
  &lt;li&gt;Update alt_getopt to 0.7&lt;/li&gt;
  &lt;li&gt;Follow symlinks when determining filetype information using libmagic&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;tarball: &lt;a href=&quot;https://dev.exherbo.org/~alip/envtag/envtag-0.5.tar.bz2&quot;&gt;envtag-0.5.tar.bz2&lt;/a&gt;&lt;br /&gt;
sha1sum: 04a8fb00cadd452899620bd168d36a6015b6b772&lt;/p&gt;
</content>
 </entry>
 
 <entry>
   <title>Açıklamalarıyla Kazandıran Satranç</title>
   <link href="https://alip.github.io/tr/blog/2014/01/10/kazandiran-satranc/"/>
   <updated>2014-01-10T00:00:00+00:00</updated>
   <id>https://alip.github.io/tr/blog/2014/01/10/kazandiran-satranc</id>
   <content type="html">&lt;p&gt;&lt;em&gt;Açıklamalarıyla Kazandıran Satranç&lt;/em&gt;, Paraguay'lı Uluslararası Büyük Usta &lt;a href=&quot;https://www.google.com.tr/search?hl=tr&amp;amp;tbo=p&amp;amp;tbm=bks&amp;amp;q=inauthor:%22Zenon+Franco%22&quot;&gt;Zenón Franco Ocampos&lt;/a&gt; tarafından yazılan ve kaynak dili olan İngilizce'de adı &lt;a href=&quot;http://books.google.com.tr/books?id=7j5rAAAACAAJ&amp;amp;dq=isbn:1904600468&amp;amp;hl=tr&quot;&gt;Winning Chess Explained&lt;/a&gt; olan kitabın Türkçe çevirisidir. Özgün kitap ile ilgili bağlantıları aşağıda bulabilirsiniz.&lt;/p&gt;

&lt;p&gt;Kitap ile ilgili söyleyeceklerim bu kadardır. Geriye kalanları anlatmayı ise
öncelikle kitabın kendisine sonra da &lt;a href=&quot;http://analizsatranc.com/&quot;&gt;Analiz Yayıncılık&lt;/a&gt;'a
ve bu süreç boyunca benden destek ve güvenini esirgemeyen arkadaşım Alper Efe
Ataman'a bırakıyorum.&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;https://alip.github.io/images/aciklamalariyla-kazandiran-satranc-on-kapak.png&quot; alt=&quot;Açıklamalarıyla Kazandıran Satranç&quot; title=&quot;Açıklamalarıyla Kazandıran Satranç&quot; /&gt;&lt;/p&gt;

&lt;p&gt;Özgün kitap ile ilgili bilgi ve bağlantılar:&lt;/p&gt;

&lt;ul&gt;
  &lt;li&gt;Yazar: &lt;a href=&quot;https://www.google.com.tr/search?hl=tr&amp;amp;tbo=p&amp;amp;tbm=bks&amp;amp;q=inauthor:%22Zenon+Franco%22&quot;&gt;Zenón Franco Ocampos&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;http://tr.wikipedia.org/wiki/ISBN&quot;&gt;ISBN&lt;/a&gt;: &lt;a href=&quot;http://isbndb.com/book/winning_chess_explained&quot;&gt;1904600468&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;Çeşitli bağlantılar: &lt;a href=&quot;http://www.anobii.com/books/Winning_Chess_Explained/9781904600466/010f89491ff6287405/&quot;&gt;aNobii&lt;/a&gt;, &lt;a href=&quot;http://www.goodreads.com/book/show/2895835-winning-chess-explained&quot;&gt;Goodreads&lt;/a&gt;, &lt;a href=&quot;http://books.google.com.tr/books?id=7j5rAAAACAAJ&amp;amp;dq=isbn:1904600468&amp;amp;hl=tr&quot;&gt;Google Books&lt;/a&gt;, &lt;a href=&quot;http://isbndb.com/book/winning_chess_explained&quot;&gt;ISBNdb&lt;/a&gt;, &lt;a href=&quot;http://www.librarything.com/work/2765486&quot;&gt;LibraryThing&lt;/a&gt;, &lt;a href=&quot;https://openlibrary.org/books/OL8772521M/Winning_Chess_Explained&quot;&gt;Open Library&lt;/a&gt;, &lt;a href=&quot;http://www.ottobib.com/isbn/1904600468&quot;&gt;OttoBib.com&lt;/a&gt;, &lt;a href=&quot;http://www.shelfari.com/books/828025/Winning-Chess-Explained&quot;&gt;Shelfari&lt;/a&gt;, &lt;a href=&quot;http://www.worldcat.org/title/winning-chess-explained/oclc/63186941&amp;amp;referer=brief_results&quot;&gt;Worldcat&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Bir öğrenci, çeviri emekçisi ve gönüllüsü olarak kitabı çevirmekten aldığım keyif
paha biçilmezdir. Bu bağlamda başta Dolunay Kumlu ve İnönü Korkmaz hocalarım olmak
üzere &lt;a href=&quot;http://edebiyat.trakya.edu.tr/akademik-yapi/ingilizce-anabilim-dali/ogretim-elemanlari/&quot;&gt;Trakya Üniversitesi Mütercim Tercümanlık Bölümü İngilizce Anabilim
Dalı&lt;/a&gt;'nda
görev yapan ve öğrencilerinin akıllarına aydınlık, yüreklerine ilaç olan bütün
öğretim görevlilerine teşekkür ederim.&lt;/p&gt;

&lt;p&gt;Bir satranç oyuncusu olarak satranç çalışırken çektiğim anadildeki kaynak
yetersizliği sorunu, kitap çevirisini benim için bir mutluluk kaynağından öteye
götürmüştür. Bu bağlamda merhum hocamız Hayri Özbilen'i anmak gönül borcumdur.
Kitabın satrançseverlerin ilgisini çekeceğini diler, yetersizliklere bir nebze de
olsa derman olmasını umarım.&lt;/p&gt;

&lt;p&gt;Son olarak da &lt;span style=&quot;color:#f5a2c6&quot;&gt;n&lt;/span&gt;&lt;span style=&quot;color:#23af4c&quot;&gt;ü&lt;/span&gt;&lt;span style=&quot;color:#fba919&quot;&gt;n&lt;/span&gt;&lt;span style=&quot;color:#ff5356&quot;&gt;ü&lt;/span&gt;
'me teşekkür ederim. O olmasa olmazdı.&lt;/p&gt;

&lt;p&gt;Aşk için gelir insan&lt;br /&gt;
Aşk diye dönen dünyaya&lt;br /&gt;
Aşk olursa olur ne olursa…&lt;/p&gt;
</content>
 </entry>
 
 <entry>
   <title>imdAT</title>
   <link href="https://alip.github.io/tr/blog/2013/11/15/imdAT/"/>
   <updated>2013-11-15T00:00:00+00:00</updated>
   <id>https://alip.github.io/tr/blog/2013/11/15/imdAT</id>
   <content type="html">&lt;p&gt;&lt;a href=&quot;https://groups.google.com/forum/?fromgroups=#!topic/kaotik/Ks4V6RhrsmY&quot;&gt;kaotik/Ks4V6RhrsmY&lt;/a&gt;&lt;/p&gt;

&lt;blockquote&gt;
  &lt;h2 id=&quot;imdat&quot;&gt;imdAT&lt;/h2&gt;

  &lt;p&gt;Söndür artık şu sigarayı at&lt;br /&gt;
    Bence git denize at&lt;br /&gt;
Çıkar şu torbaları çöpe at&lt;br /&gt;
    Bence git denize at&lt;br /&gt;
Şu eskilerini de kaldır at&lt;br /&gt;
    Bence git denize at&lt;br /&gt;
Elbisemin haline bak&lt;br /&gt;
    Bence git denize at&lt;br /&gt;
Ne yani çıplak mı kalayım?&lt;br /&gt;
    Gözlerindeki maviye bak&lt;/p&gt;

  &lt;p&gt;Sen de kaldır kafanı yüzüme bak!&lt;br /&gt;
    Aynalar değil ki özlemim&lt;br /&gt;
Anlat o zaman nedir derdin?&lt;br /&gt;
    Eyvallah…&lt;/p&gt;

  &lt;p&gt;    Tırnaklarımı yedim derdimden&lt;br /&gt;
Sen de git denize at&lt;br /&gt;
    Ağladım, düştü yaşlar gözümden&lt;br /&gt;
Sen de git denize at&lt;br /&gt;
    Rakı şişesinde balık gibiyim hasretimden&lt;br /&gt;
    Ne olur beni denize at!&lt;/p&gt;

  &lt;p&gt;Madem öyle koyverelim gitsin&lt;br /&gt;
    İşte köprü, işte Boğaz&lt;br /&gt;
Çıkalım bir bak&lt;br /&gt;
    Alacaksa sular hepimizi&lt;br /&gt;
    İkimiz yetmeyiz, önce Galata’yı at&lt;br /&gt;
Pahada ağır olsun, sarayları at&lt;br /&gt;
    Durma haydi!&lt;br /&gt;
Madem ki benliğimizi atacağız&lt;br /&gt;
    Yedi tepenin yedisini de at&lt;br /&gt;
Batsın bu şehir, bu dünya&lt;br /&gt;
    Öylece izlerken, atlamadan daha&lt;br /&gt;
    Kaldır kafanı havaya&lt;br /&gt;
“Batıyor kaptan!”&lt;br /&gt;
    Avazın çıktığı kadar ama…&lt;/p&gt;
&lt;/blockquote&gt;
</content>
 </entry>
 
 <entry>
   <title>A Study in Sydbox</title>
   <link href="https://alip.github.io/en/blog/2013/09/24/a-study-in-sydbox/"/>
   <updated>2013-09-24T00:00:00+00:00</updated>
   <id>https://alip.github.io/en/blog/2013/09/24/a-study-in-sydbox</id>
   <content type="html">&lt;p&gt;Due to the fact that &lt;a href=&quot;http://git.exherbo.org/sydbox-1.git/&quot;&gt;sydbox&lt;/a&gt; is a low level tool which inspects
system calls, debugging its bugs become cumbersome at times. &lt;a href=&quot;http://www.sourceware.org/gdb/&quot;&gt;GDB&lt;/a&gt; and
&lt;a href=&quot;http://valgrind.org/&quot;&gt;Valgrind&lt;/a&gt; are two valuable tools which comes to rescue.&lt;/p&gt;

&lt;p&gt;I hit this bug when I was investigating &lt;a href=&quot;https://bugs.exherbo.org/show_bug.cgi?id=369&quot;&gt;Exherbo bug 369&lt;/a&gt;. I
wrote a small C program to reproduce the problem:&lt;/p&gt;

&lt;div class=&quot;language-c highlighter-rouge&quot;&gt;&lt;div class=&quot;highlight&quot;&gt;&lt;pre class=&quot;highlight&quot;&gt;&lt;code&gt;&lt;span class=&quot;cp&quot;&gt;#include &amp;lt;errno.h&amp;gt;
#include &amp;lt;string.h&amp;gt;
#include &amp;lt;stdio.h&amp;gt;
#include &amp;lt;stdlib.h&amp;gt;
#include &amp;lt;unistd.h&amp;gt;
#include &amp;lt;fcntl.h&amp;gt;
#include &amp;lt;elf.h&amp;gt;
#include &amp;lt;sys/auxv.h&amp;gt;
#include &amp;lt;sys/types.h&amp;gt;
&lt;/span&gt;
&lt;span class=&quot;kt&quot;&gt;int&lt;/span&gt; &lt;span class=&quot;nf&quot;&gt;main&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;kt&quot;&gt;void&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;)&lt;/span&gt;
&lt;span class=&quot;p&quot;&gt;{&lt;/span&gt;
    &lt;span class=&quot;n&quot;&gt;pid_t&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;pid&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;;&lt;/span&gt;
    &lt;span class=&quot;kt&quot;&gt;int&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;pfd&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;[&lt;/span&gt;&lt;span class=&quot;mi&quot;&gt;2&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;];&lt;/span&gt;
    &lt;span class=&quot;kt&quot;&gt;unsigned&lt;/span&gt; &lt;span class=&quot;kt&quot;&gt;long&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;val&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;;&lt;/span&gt;
    &lt;span class=&quot;kt&quot;&gt;char&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;buf&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;[&lt;/span&gt;&lt;span class=&quot;mi&quot;&gt;1024&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;];&lt;/span&gt;
    &lt;span class=&quot;kt&quot;&gt;int&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;auxfd&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;;&lt;/span&gt;

    &lt;span class=&quot;n&quot;&gt;val&lt;/span&gt; &lt;span class=&quot;o&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;getauxval&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;AT_SECURE&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;);&lt;/span&gt;
    &lt;span class=&quot;n&quot;&gt;fprintf&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;stderr&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;s&quot;&gt;&quot;getauxval(%lu) = %lu (errno:%d %s)&lt;/span&gt;&lt;span class=&quot;se&quot;&gt;\n&lt;/span&gt;&lt;span class=&quot;s&quot;&gt;&quot;&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;,&lt;/span&gt;
        &lt;span class=&quot;n&quot;&gt;AT_SECURE&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;val&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;errno&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;strerror&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;errno&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;));&lt;/span&gt;

    &lt;span class=&quot;n&quot;&gt;pipe&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;pfd&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;);&lt;/span&gt;
    &lt;span class=&quot;n&quot;&gt;pid&lt;/span&gt; &lt;span class=&quot;o&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;fork&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;();&lt;/span&gt;
    &lt;span class=&quot;k&quot;&gt;if&lt;/span&gt; &lt;span class=&quot;p&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;pid&lt;/span&gt; &lt;span class=&quot;o&quot;&gt;==&lt;/span&gt; &lt;span class=&quot;mi&quot;&gt;0&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;)&lt;/span&gt; &lt;span class=&quot;p&quot;&gt;{&lt;/span&gt;
        &lt;span class=&quot;cm&quot;&gt;/* 23 is AT_SECURE as defined in elf.h */&lt;/span&gt;
        &lt;span class=&quot;kt&quot;&gt;char&lt;/span&gt; &lt;span class=&quot;o&quot;&gt;*&lt;/span&gt;&lt;span class=&quot;k&quot;&gt;const&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;argv&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;[]&lt;/span&gt; &lt;span class=&quot;o&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;p&quot;&gt;{&lt;/span&gt;&lt;span class=&quot;s&quot;&gt;&quot;sh&quot;&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;s&quot;&gt;&quot;-c&quot;&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;s&quot;&gt;&quot;od -t u8 | awk '{if ($2 == 23) print }'&quot;&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;nb&quot;&gt;NULL&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;};&lt;/span&gt;
        &lt;span class=&quot;n&quot;&gt;close&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;pfd&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;[&lt;/span&gt;&lt;span class=&quot;mi&quot;&gt;1&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;]);&lt;/span&gt;
        &lt;span class=&quot;n&quot;&gt;dup2&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;pfd&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;[&lt;/span&gt;&lt;span class=&quot;mi&quot;&gt;0&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;],&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;STDIN_FILENO&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;);&lt;/span&gt;
        &lt;span class=&quot;n&quot;&gt;execvp&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;argv&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;[&lt;/span&gt;&lt;span class=&quot;mi&quot;&gt;0&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;],&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;argv&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;);&lt;/span&gt;
    &lt;span class=&quot;p&quot;&gt;}&lt;/span&gt; &lt;span class=&quot;k&quot;&gt;else&lt;/span&gt; &lt;span class=&quot;p&quot;&gt;{&lt;/span&gt;
        &lt;span class=&quot;n&quot;&gt;close&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;pfd&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;[&lt;/span&gt;&lt;span class=&quot;mi&quot;&gt;0&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;]);&lt;/span&gt;
        &lt;span class=&quot;n&quot;&gt;auxfd&lt;/span&gt; &lt;span class=&quot;o&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;open&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;s&quot;&gt;&quot;/proc/self/auxv&quot;&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;O_RDONLY&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;);&lt;/span&gt;
        &lt;span class=&quot;k&quot;&gt;while&lt;/span&gt; &lt;span class=&quot;p&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;read&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;auxfd&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;buf&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;mi&quot;&gt;1024&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;)&lt;/span&gt; &lt;span class=&quot;o&quot;&gt;&amp;gt;&lt;/span&gt; &lt;span class=&quot;mi&quot;&gt;0&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;)&lt;/span&gt;
            &lt;span class=&quot;n&quot;&gt;write&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;pfd&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;[&lt;/span&gt;&lt;span class=&quot;mi&quot;&gt;1&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;],&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;buf&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;mi&quot;&gt;1024&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;);&lt;/span&gt;
        &lt;span class=&quot;n&quot;&gt;close&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;pfd&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;[&lt;/span&gt;&lt;span class=&quot;mi&quot;&gt;1&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;]);&lt;/span&gt;
    &lt;span class=&quot;p&quot;&gt;}&lt;/span&gt;
&lt;span class=&quot;p&quot;&gt;}&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;

&lt;p&gt;I compiled this small program with &lt;a href=&quot;http://gcc.gnu.org/&quot;&gt;gcc&lt;/a&gt; and when I run it under
&lt;a href=&quot;http://git.exherbo.org/sydbox-1.git/&quot;&gt;sydbox-1&lt;/a&gt; I witnessed an interesting output:&lt;/p&gt;

&lt;div class=&quot;highlighter-rouge&quot;&gt;&lt;div class=&quot;highlight&quot;&gt;&lt;pre class=&quot;highlight&quot;&gt;&lt;code&gt;alip@hayalet ~/src/sydbox/sydbox-1/src (git)-[master] % ./sydbox ./a.out
getauxval(23) = 0 (errno:0 Success)
sydbox@1379972151: bash[26306.0:26305] sys:4|stat| PANIC_KILL
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;

&lt;p&gt;Note there is not a prompt at the end. &lt;a href=&quot;http://git.exherbo.org/sydbox-1.git/&quot;&gt;sydbox-1&lt;/a&gt; hung right after
logging &lt;code class=&quot;highlighter-rouge&quot;&gt;PANIC_KILL&lt;/code&gt;. Before firing up a debugger and start to debug, let’s
gather as much information as possible by checking whether &lt;a href=&quot;http://dev.exherbo.org/~alip/sydbox/sydbox.html#logging&quot;&gt;verbose
logging&lt;/a&gt; will tell us something:&lt;/p&gt;

&lt;div class=&quot;highlighter-rouge&quot;&gt;&lt;div class=&quot;highlight&quot;&gt;&lt;pre class=&quot;highlight&quot;&gt;&lt;code&gt;alip@hayalet ~/src/sydbox/sydbox-1/src (git)-[master] % ./sydbox -m log/console_level:511 ./a.out
...
sydbox@1379972294: [wait(-1, 0x857f) = 28848] WIFSTOPPED,sig=133|(null)|
sydbox@1379972294: [wait(-1, 0x857f) = 28848] WIFSTOPPED,sig=133|(null)|
sydbox@1379972294: [wait(-1, 0x857f) = 28848] WIFSTOPPED,sig=133|(null)|
sydbox@1379972294: bash[28848.0:28847] sys:4|stat| entering system call
sydbox@1379972294: bash[28848.0:28847] sys:4|stat| PANIC_KILL
sydbox@1379972294: bash[28848.0:28847] sys:4|stat| trace_kill(sig:9) failed (errno:3|ESRCH| No such process)
sydbox@1379972294: process 28848 ignored
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;

&lt;p&gt;After a couple of &lt;code class=&quot;highlighter-rouge&quot;&gt;wait(2)&lt;/code&gt; loops the &lt;code class=&quot;highlighter-rouge&quot;&gt;stat(2)&lt;/code&gt; system call handler - which
takes &lt;a href=&quot;http://dev.exherbo.org/~alip/sydbox/sydbox.html#configuration&quot;&gt;magic commands&lt;/a&gt; as input paniced for some reason and
called the function &lt;code class=&quot;highlighter-rouge&quot;&gt;panic()&lt;/code&gt; which decided to kill the traced process.&lt;/p&gt;

&lt;p&gt;So far so good. Although this looks unrelated to the &lt;a href=&quot;https://bugs.exherbo.org/show_bug.cgi?id=369&quot;&gt;bug at
hand&lt;/a&gt;, it is still a good idea to fix it when you have some
free time. Let’s fire up the debugger and try to do a &lt;a href=&quot;http://www.gnu.org/s/gdb/news/reversible.html&quot;&gt;reverse
debug&lt;/a&gt;. I use &lt;a href=&quot;http://cgdb.github.io/&quot;&gt;cgdb&lt;/a&gt; which provides a nice
curses frontend to &lt;a href=&quot;http://www.sourceware.org/gdb/&quot;&gt;gdb&lt;/a&gt;.&lt;/p&gt;

&lt;div class=&quot;highlighter-rouge&quot;&gt;&lt;div class=&quot;highlight&quot;&gt;&lt;pre class=&quot;highlight&quot;&gt;&lt;code&gt;alip@hayalet ~/src/sydbox/sydbox-1/src (git)-[master] % libtool --mode=execute cgdb --args ./sydbox -m log/console_level:511 ./a.out
GNU gdb (GDB) 7.6.1
Copyright (C) 2013 Free Software Foundation, Inc.
License GPLv3+: GNU GPL version 3 or later &amp;lt;http://gnu.org/licenses/gpl.html&amp;gt;
This is free software: you are free to change and redistribute it.
There is NO WARRANTY, to the extent permitted by law.  Type &quot;show copying&quot;
and &quot;show warranty&quot; for details.
This GDB was configured as &quot;x86_64-unknown-linux-gnu&quot;.
For bug reporting instructions, please see:
&amp;lt;http://www.gnu.org/software/gdb/bugs/&amp;gt;...
Reading symbols from /home/alip/src/sydbox/sydbox-1/src/.libs/lt-sydbox...done.
(gdb)
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;

&lt;p&gt;First let’s break on &lt;code class=&quot;highlighter-rouge&quot;&gt;main()&lt;/code&gt;, run the program and when the breakpoint is
hit set another breakpoint on &lt;code class=&quot;highlighter-rouge&quot;&gt;sys_stat&lt;/code&gt; (the &lt;code class=&quot;highlighter-rouge&quot;&gt;stat(2)&lt;/code&gt; system call handler
function) and start [recording][recording] the program instructions and &lt;code class=&quot;highlighter-rouge&quot;&gt;cont&lt;/code&gt;inue.&lt;/p&gt;

&lt;div class=&quot;highlighter-rouge&quot;&gt;&lt;div class=&quot;highlight&quot;&gt;&lt;pre class=&quot;highlight&quot;&gt;&lt;code&gt;(gdb) break main
Breakpoint 1 at 0x419d98: file sydbox.c, line 1255.
(gdb) run
Starting program: /home/alip/src/sydbox/sydbox-1/src/.libs/lt-sydbox -m log/console_level:511 ./a.out
warning: no loadable sections found in added symbol-file system-supplied DSO at
0x7ffff7ffa000
warning: Could not load shared library symbols for linux-vdso.so.1.
Do you need &quot;set solib-search-path&quot; or &quot;set sysroot&quot;?

Breakpoint 1, main (argc=4, argv=0x7fffffffd428) at sydbox.c:1255
(gdb) record
(gdb) break sys_stat
Breakpoint 2 at 0x411d58: file syscall-special.c, line 150.
(gdb) cont
Continuing.
Do you want to auto delete previous execution log entries when record/replay buffer becomes full (record full stop-at-limit)?([y] or n)
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;

&lt;p&gt;This takes some time. When the record/replay buffer is full, &lt;a href=&quot;http://www.sourceware.org/gdb/&quot;&gt;gdb&lt;/a&gt; kindly
asks you whether you want to continue execution and auto-delete previous log
entries or stop instantly and investigate further on. We’re not interested in
the previous log entries so let’s just hit &lt;code class=&quot;highlighter-rouge&quot;&gt;[enter]&lt;/code&gt; and &lt;code class=&quot;highlighter-rouge&quot;&gt;cont&lt;/code&gt;inue.&lt;/p&gt;

&lt;div class=&quot;highlighter-rouge&quot;&gt;&lt;div class=&quot;highlight&quot;&gt;&lt;pre class=&quot;highlight&quot;&gt;&lt;code&gt;Process record and replay target doesn't support syscall number -1
Process record: failed to record execution log.

[process 8201] #1 stopped.
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;

&lt;p&gt;This is a weird message by &lt;a href=&quot;http://www.sourceware.org/gdb/&quot;&gt;gdb&lt;/a&gt; which fortunately I have seen before.
&lt;a href=&quot;http://git.exherbo.org/sydbox-1.git/&quot;&gt;sydbox-1&lt;/a&gt; makes use of some rather new system calls which &lt;a href=&quot;http://www.sourceware.org/gdb/&quot;&gt;gdb&lt;/a&gt;
does not support. The newest of those are &lt;code class=&quot;highlighter-rouge&quot;&gt;process_vm_readv&lt;/code&gt; and
&lt;code class=&quot;highlighter-rouge&quot;&gt;process_vm_writev&lt;/code&gt; which were added to Linux as of kernel version 3.2. I’ll add
a small one-time tweak to the auto-generated &lt;code class=&quot;highlighter-rouge&quot;&gt;pinktrace/system.h&lt;/code&gt; file telling
&lt;a href=&quot;http://git.exherbo.org/sydbox-1.git/&quot;&gt;sydbox-1&lt;/a&gt; that these system calls are not supported by the system and
let it use the good old &lt;code class=&quot;highlighter-rouge&quot;&gt;ptrace(2)&lt;/code&gt; way of reading one &lt;code class=&quot;highlighter-rouge&quot;&gt;long&lt;/code&gt; at a time:&lt;/p&gt;

&lt;div class=&quot;highlighter-rouge&quot;&gt;&lt;div class=&quot;highlight&quot;&gt;&lt;pre class=&quot;highlight&quot;&gt;&lt;code&gt;alip@hayalet ~/src/sydbox/sydbox-1/src (git)-[master] % cd ../pinktrace
alip@hayalet ~/src/sydbox/sydbox-1/pinktrace (git)-[master] % sed -i -e '/^#define PINK_HAVE_PROCESS_VM_\(READ\|WRITE\)V/s/1/0/' system.h
alip@hayalet ~/src/sydbox/sydbox-1/pinktrace (git)-[master] % grep PINK_HAVE_PROCESS system.h
#define PINK_HAVE_PROCESS_VM_READV      0
#define PINK_HAVE_PROCESS_VM_WRITEV     0
alip@hayalet ~/src/sydbox/sydbox-1/pinktrace (git)-[master] % make clean &amp;amp;&amp;amp; make -j
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;

&lt;p&gt;Now let’s return to &lt;code class=&quot;highlighter-rouge&quot;&gt;src/&lt;/code&gt; and rebuild &lt;a href=&quot;http://git.exherbo.org/sydbox-1.git/&quot;&gt;sydbox&lt;/a&gt;:&lt;/p&gt;

&lt;div class=&quot;highlighter-rouge&quot;&gt;&lt;div class=&quot;highlight&quot;&gt;&lt;pre class=&quot;highlight&quot;&gt;&lt;code&gt;alip@hayalet ~/src/sydbox/sydbox-1/pinktrace (git)-[master] % cd ../src
alip@hayalet ~/src/sydbox/sydbox-1/src (git)-[master] % make clean &amp;amp;&amp;amp; make -j
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;

&lt;p&gt;Let’s re-run &lt;a href=&quot;http://git.exherbo.org/sydbox-1.git/&quot;&gt;sydbox&lt;/a&gt; to make sure the bug is still there:&lt;/p&gt;

&lt;div class=&quot;highlighter-rouge&quot;&gt;&lt;div class=&quot;highlight&quot;&gt;&lt;pre class=&quot;highlight&quot;&gt;&lt;code&gt;alip@hayalet ~/src/sydbox/sydbox-1/src (git)-[master] % ./sydbox ./a.out
getauxval(23) = 0 (errno:0 Success)
0000340                   23                    0
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;

&lt;p&gt;This is where my luck kicks in! The bug is not there anymore. Now we know the
problem is actually in &lt;a href=&quot;http://git.exherbo.org/sydbox-1.git/tree/pinktrace&quot;&gt;pinktrace&lt;/a&gt;, the underlying library providing
thin wrappers around the &lt;code class=&quot;highlighter-rouge&quot;&gt;ptrace(2)&lt;/code&gt; system call. We have also narrowed the
problem down to one of &lt;code class=&quot;highlighter-rouge&quot;&gt;process_vm_readv&lt;/code&gt; and &lt;code class=&quot;highlighter-rouge&quot;&gt;process_vm_writev&lt;/code&gt; functions. Now
let’s go back to turn the &lt;code class=&quot;highlighter-rouge&quot;&gt;#define&lt;/code&gt;s on and retry with &lt;a href=&quot;http://www.sourceware.org/gdb/&quot;&gt;gdb&lt;/a&gt;:&lt;/p&gt;

&lt;div class=&quot;highlighter-rouge&quot;&gt;&lt;div class=&quot;highlight&quot;&gt;&lt;pre class=&quot;highlight&quot;&gt;&lt;code&gt;alip@hayalet ~/src/sydbox/sydbox-1/src (git)-[master] % cd ../pinktrace
alip@hayalet ~/src/sydbox/sydbox-1/pinktrace (git)-[master] % sed -i -e '/^#define PINK_HAVE_PROCESS_VM_\(READ\|WRITE\)V/s/0/1/' system.h
alip@hayalet ~/src/sydbox/sydbox-1/pinktrace (git)-[master] % grep PINK_HAVE_PROCESS system.h
#define PINK_HAVE_PROCESS_VM_READV      1
#define PINK_HAVE_PROCESS_VM_WRITEV     1
alip@hayalet ~/src/sydbox/sydbox-1/pinktrace (git)-[master] % make clean &amp;amp;&amp;amp; make -j
alip@hayalet ~/src/sydbox/sydbox-1/pinktrace (git)-[master] % cd ../src
alip@hayalet ~/src/sydbox/sydbox-1/src (git)-[master] % make clean &amp;amp;&amp;amp; make -j
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;

&lt;p&gt;Now we will start recording only after we enter the &lt;code class=&quot;highlighter-rouge&quot;&gt;sys_stat()&lt;/code&gt; function:&lt;/p&gt;

&lt;div class=&quot;highlighter-rouge&quot;&gt;&lt;div class=&quot;highlight&quot;&gt;&lt;pre class=&quot;highlight&quot;&gt;&lt;code&gt;alip@hayalet ~/src/sydbox/sydbox-1/src (git)-[master] % libtool --mode=execute cgdb --args ./sydbox -m log/console_level:511 ./a.out
GNU gdb (GDB) 7.6.1
Copyright (C) 2013 Free Software Foundation, Inc.
License GPLv3+: GNU GPL version 3 or later &amp;lt;http://gnu.org/licenses/gpl.html&amp;gt;
This is free software: you are free to change and redistribute it.
There is NO WARRANTY, to the extent permitted by law.  Type &quot;show copying&quot;
and &quot;show warranty&quot; for details.
This GDB was configured as &quot;x86_64-unknown-linux-gnu&quot;.
For bug reporting instructions, please see:
&amp;lt;http://www.gnu.org/software/gdb/bugs/&amp;gt;...
Reading symbols from /home/alip/src/sydbox/sydbox-1/src/.libs/lt-sydbox...done.
(gdb) break sys_stat
Breakpoint 1 at 0x411d58: file syscall-special.c, line 150.
(gdb) run
...
sydbox@1379974050: [wait(-1, 0x857f) = 31387] WIFSTOPPED,sig=133|(null)|
sydbox@1379974050: [wait(-1, 0x857f) = 31387] WIFSTOPPED,sig=133|(null)|
sydbox@1379974050: bash[31387.0:31386] sys:4|stat| entering system call 

Breakpoint 1, sys_stat (current=0x62fa00) at syscall-special.c:150
(gdb) record
(gdb) cont
Continuing.
Process record and replay target doesn't support syscall number -1
Process record: failed to record execution log.

[process 31382] #1 stopped.
0x00007ffff78fa048 in process_vm_readv () from /usr/lib/libc.so.6
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;

&lt;p&gt;&lt;a href=&quot;http://www.sourceware.org/gdb/&quot;&gt;Gdb&lt;/a&gt; kindly stopped where the bug is actually located. Let’s stop
recording and single-step to see what error this function returns.&lt;/p&gt;

&lt;div class=&quot;highlighter-rouge&quot;&gt;&lt;div class=&quot;highlight&quot;&gt;&lt;pre class=&quot;highlight&quot;&gt;&lt;code&gt;(gdb) record stop
Process record is stopped and all execution logs are deleted.
(gdb) n
Single stepping until exit from function process_vm_readv, which has no line number information.
_pink_process_vm_readv (pid=31387, local_iov=0x7fffffffbe10, liovcnt=1, remote_iov=0x7fffffffbe00, riovcnt=1, flags=0) at vm.c:199
(gdb) n
(gdb) p r
$1 = -1
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;

&lt;p&gt;The function &lt;code class=&quot;highlighter-rouge&quot;&gt;_pink_process_vm_readv&lt;/code&gt; is returning &lt;code class=&quot;highlighter-rouge&quot;&gt;-1&lt;/code&gt; which is the negated
errno value &lt;code class=&quot;highlighter-rouge&quot;&gt;EPERM&lt;/code&gt;. This makes &lt;code class=&quot;highlighter-rouge&quot;&gt;pink_vm_cread_nul&lt;/code&gt; fail with -1 which in turn
makes &lt;code class=&quot;highlighter-rouge&quot;&gt;pink_read_vm_data_nul&lt;/code&gt; return -1 which in turn makes &lt;code class=&quot;highlighter-rouge&quot;&gt;syd_read_string&lt;/code&gt;
function to call &lt;code class=&quot;highlighter-rouge&quot;&gt;panic()&lt;/code&gt;. Now we have a detailed information about the panic
happening.&lt;/p&gt;

&lt;p&gt;Another valuable tool to aid in debugging system call inspection is
&lt;a href=&quot;http://sourceforge.net/projects/strace/&quot;&gt;strace&lt;/a&gt;. Let’s check with strace what these &lt;code class=&quot;highlighter-rouge&quot;&gt;stat(2)&lt;/code&gt; system calls’
arguments are. I have not updated my strace.git tree for a while and trying to
compile it I have found a problem due to an inconsistency between glibc and
linux kernel headers which &lt;a href=&quot;http://www.imagination-land.org/&quot;&gt;keruspe&lt;/a&gt; fixed for pinktrace with commit
&lt;a href=&quot;http://git.exherbo.org/sydbox-1.git/commit/?id=e1aa0310946cd4c36259485d67804fb24fd79278&quot;&gt;e1aa031&lt;/a&gt; a week ago:&lt;/p&gt;

&lt;div class=&quot;highlighter-rouge&quot;&gt;&lt;div class=&quot;highlight&quot;&gt;&lt;pre class=&quot;highlight&quot;&gt;&lt;code&gt;alip@hayalet ~/src/strace (git)-[master] % make -j1
...
gcc -DHAVE_CONFIG_H -I.  -I./linux/x86_64 -I./linux -I./linux  -Wall -Wwrite-strings -D__ALIP_WAS_HERE -g -ggdb3 -O2 -march=native -D__PINK_IS_BEHIND_THE_WALL -MT process.o -MD -MP -MF .deps/process.Tpo -c -o process.o process.c
In file included from process.c:66:0:
/usr/include/linux/ptrace.h:58:8: hata: 'struct ptrace_peeksiginfo_args' yeniden tanımlanmış
 struct ptrace_peeksiginfo_args {
        ^
In file included from defs.h:169:0,
                 from process.c:37:
/usr/include/sys/ptrace.h:191:8: bilgi: originally defined here
 struct ptrace_peeksiginfo_args
        ^
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;

&lt;p&gt;&lt;code class=&quot;highlighter-rouge&quot;&gt;struct ptrace_peeksiginfo_args&lt;/code&gt; is a recent addition to &lt;code class=&quot;highlighter-rouge&quot;&gt;ptrace.h&lt;/code&gt; headers and
both &lt;code class=&quot;highlighter-rouge&quot;&gt;sys/ptrace.h&lt;/code&gt; of &lt;a href=&quot;http://www.sourceware.org/git/?p=glibc.git;a=commit;h=521c6785e1fc94d1f501743e9a40af9e02797df3&quot;&gt;glibc-2.18&lt;/a&gt; and &lt;code class=&quot;highlighter-rouge&quot;&gt;linux/ptrace.h&lt;/code&gt;
of Linux define it. Thus defining the same struct twice fails. Fortunately we
have seen this error before with the &lt;a href=&quot;http://en.wikipedia.org/wiki/Itanium&quot;&gt;IA64 architecture&lt;/a&gt; where the same
happens with &lt;code class=&quot;highlighter-rouge&quot;&gt;struct pt_all_user_regs&lt;/code&gt; and &lt;code class=&quot;highlighter-rouge&quot;&gt;struct ia64_fpreg&lt;/code&gt;.&lt;/p&gt;

&lt;p&gt;Having hit another totally unrelated bug, I have prepared a patch and tested it:&lt;/p&gt;

&lt;div class=&quot;highlighter-rouge&quot;&gt;&lt;div class=&quot;highlight&quot;&gt;&lt;pre class=&quot;highlight&quot;&gt;&lt;code&gt;alip@hayalet ~/src/strace (git)-[master] % make
gcc -Wall -Wwrite-strings -D__ALIP_WAS_HERE -g -ggdb3 -O2 -march=native -D__PINK_IS_BEHIND_THE_WALL   -o strace bjm.o block.o count.o desc.o file.o io.o ioctl.o ipc.o loop.o mem.o mtd.o net.o pathtrace.o process.o quota.o resource.o scsi.o signal.o sock.o strace.o stream.o syscall.o system.o term.o time.o util.o vsprintf.o  
make[2]: `/home/alip/src/strace' dizininden çıkılıyor
make[1]: `/home/alip/src/strace' dizininden çıkılıyor
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;

&lt;p&gt;It compiles and runs fine. Time to prepare a
&lt;a href=&quot;https://www.kernel.org/pub/software/scm/git/docs/git-format-patch.html&quot;&gt;git-format-patch&lt;/a&gt; and send to strace-devel mailing list.
These git tools make it really easy to prepare patches and submit them. Here is
&lt;a href=&quot;http://sourceforge.net/p/strace/mailman/message/31441642/&quot;&gt;the link to the actual mail&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;So far so good. Another bug fixed and submitted upstream. Let’s go ahead and see
whether strace can make sense of those &lt;code class=&quot;highlighter-rouge&quot;&gt;stat(2)&lt;/code&gt; arguments:&lt;/p&gt;

&lt;p&gt;alip@hayalet ~/src/sydbox/sydbox-1/src (git)-[master] % ~/src/strace/strace -f -e stat ./a.out
Process 18698 attached
[pid 18697] +++ exited with 0 +++
stat(0x9db090, {…})                   = 0
stat(0x485897, {…})                   = 0
stat(0x485897, {…})                   = 0
…&lt;/p&gt;
&lt;div class=&quot;highlighter-rouge&quot;&gt;&lt;div class=&quot;highlight&quot;&gt;&lt;pre class=&quot;highlight&quot;&gt;&lt;code&gt;
Note the `-f` argument. Remember our panic line started with
`bash[31387.0:31386]` this does not happen in my small program but in bash which
is spawned right after `fork(2)`. The `-f` argument of [strace][strace] follows
forks.

Now the question is what those hex values in the first arguments are.
[strace][strace] usually does a good job in decoding strings so something is
weird going on here. Let's go one step ahead and try to trace [strace][strace]
using [strace][strace] itself. One has to be careful here not to use `-f` with
the first [strace][strace] because *only one process may trace a process at a
time* and we want the first [strace][strace] to only trace [strace][strace] not
our small program `a.out`. We also use the option `-e 'signal=!all'` so that we
filter some of the unwanted output:

&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;
&lt;p&gt;alip@hayalet ~/src/sydbox/sydbox-1/src (git)-[master] % strace -q -e ‘process_vm_readv’ -e ‘signal=!all’ – strace -e ‘signal=!all’ -f -e stat ./a.out
getauxval(23) = 0 (errno:0 Success)
Process 22286 attached
[pid 22285] +++ exited with 0 +++
process_vm_readv(22286, 0x7fff71faed40, 1, 0x7fff71faed50, 1, 0) = -1 EPERM (Operation not permitted)
stat(0x1938070, process_vm_readv(22286, 0x7fff71fafce0, 1, 0x7fff71fafcf0, 1, 0) = -1 EPERM (Operation not permitted)
{…})       = 0&lt;/p&gt;
&lt;div class=&quot;highlighter-rouge&quot;&gt;&lt;div class=&quot;highlight&quot;&gt;&lt;pre class=&quot;highlight&quot;&gt;&lt;code&gt;
The output of the two strace processes are mixed but here we can also see that
the system call `process_vm_readv()` returns the error condition `EPERM`.
Consulting the [process_vm_readv(2)][man_process_vm_readv] manual page:

&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;
&lt;p&gt;EPERM  The caller does not have permission to access the address space of the process pid.&lt;/p&gt;
&lt;div class=&quot;highlighter-rouge&quot;&gt;&lt;div class=&quot;highlight&quot;&gt;&lt;pre class=&quot;highlight&quot;&gt;&lt;code&gt;
Now, why on earth is `ptrace()` is permitted but `process_vm_readv()` is not? It
is clear that they are two different APIs. It is time to dig into the kernel
source. Having walked through the kernel code on [lxr][lxr] for a while, I
figured this [sydbox-1][sydbox_1] PANIC was due to the fact that I have the
sysctl `kernel.yama.ptrace_scope` set to 1 which is [YAMA restricting
ptrace()][yama_restricts_ptrace]. After:

&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;
&lt;p&gt;alip@hayalet ~/src/sydbox/sydbox-1/src (git)-[master] % sudo sysctl kernel.yama.ptrace_scope=0
kernel.yama.ptrace_scope = 0
~~~&lt;/p&gt;

&lt;p&gt;Everything works OK and now I am aware of the fact that there is another way to
restrict &lt;code class=&quot;highlighter-rouge&quot;&gt;ptrace()&lt;/code&gt; and I will work on &lt;a href=&quot;http://git.exherbo.org/sydbox-1.git/&quot;&gt;sydbox-1&lt;/a&gt; to make it handle
such errors gracefully (without hanging) but that’s for another night.&lt;/p&gt;

&lt;p&gt;Confession: I started working at &lt;a href=&quot;http://www.ozguryazilim.com.tr/&quot;&gt;Özgür Yazılım A.Ş.&lt;/a&gt; as a Linux
system administrator and programmer and I have been using &lt;a href=&quot;https://www.archlinux.org/&quot;&gt;Arch
Linux&lt;/a&gt; for a while which means I have not been configuring/compiling
my own kernel. This was a nice message to me that I should stop being a slacker
and return to &lt;a href=&quot;http://www.exherbo.org/&quot;&gt;Exherbo&lt;/a&gt; now.&lt;/p&gt;

&lt;p&gt;The &lt;a href=&quot;https://bugs.exherbo.org/show_bug.cgi?id=369&quot;&gt;Exherbo bug 369&lt;/a&gt; is still not fixed, but I am working on
it :-)&lt;/p&gt;

</content>
 </entry>
 
 <entry>
   <title>Killing tracees on exit with sydbox-1</title>
   <link href="https://alip.github.io/en/blog/2013/09/21/killing-tracees-on-exit-with-sydbox-1/"/>
   <updated>2013-09-21T00:00:00+00:00</updated>
   <id>https://alip.github.io/en/blog/2013/09/21/killing-tracees-on-exit-with-sydbox-1</id>
   <content type="html">&lt;p&gt;As I’ve written in my blog post &lt;a href=&quot;/en/blog/2013/02/22/recent-linux-changes-help-sandboxing/&quot;&gt;Recent Linux changes to help
sandboxing&lt;/a&gt;
Linux has a few new features which may aid in enhancing sydbox-1.&lt;/p&gt;

&lt;p&gt;One of these features is &lt;code class=&quot;highlighter-rouge&quot;&gt;PTRACE_O_EXITKILL&lt;/code&gt;. This is a new ptrace option to
kill tracees upon tracer exit. Quoting from &lt;a href=&quot;http://linux.die.net/man/2/ptrace&quot;&gt;ptrace(2)&lt;/a&gt;&lt;/p&gt;

&lt;div class=&quot;highlighter-rouge&quot;&gt;&lt;div class=&quot;highlight&quot;&gt;&lt;pre class=&quot;highlight&quot;&gt;&lt;code&gt;PTRACE_O_EXITKILL (since Linux 3.8)
If a tracer sets this flag, a SIGKILL signal will be sent to every
tracee if the tracer exits.  This option is useful for ptrace
jailers  that want to ensure that tracees can never escape the
tracer's control.
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;

&lt;p&gt;This is a simple feature providing a nice enhancement. &lt;a href=&quot;http://git.exherbo.org/sydbox-1.git/&quot;&gt;sydbox-1&lt;/a&gt; had
a similar feature to prevent tracees from running upon an abnormal exit.  There
are two options, namely &lt;a href=&quot;http://dev.exherbo.org/~alip/sydbox/sydbox.html#core-abort-decision&quot;&gt;core/abort/decision&lt;/a&gt; and
&lt;a href=&quot;http://dev.exherbo.org/~alip/sydbox/sydbox.html#core-panic-decision&quot;&gt;core/panic/decision&lt;/a&gt;, which when given the value &lt;code class=&quot;highlighter-rouge&quot;&gt;killall&lt;/code&gt;
sends &lt;code class=&quot;highlighter-rouge&quot;&gt;SIGKILL&lt;/code&gt; to all traced processes upon abnormal exit. There is also the
option &lt;a href=&quot;http://dev.exherbo.org/~alip/sydbox/sydbox.html#core-trace-exit_wait_all&quot;&gt;core/trace/exit_wait_all&lt;/a&gt; to make
&lt;a href=&quot;http://git.exherbo.org/sydbox-1.git/&quot;&gt;sydbox-1&lt;/a&gt; wait for all tracees to exit before exiting.&lt;/p&gt;

&lt;p&gt;However, doing this in user-space is tricky and error-prone. Considering it’s
the &lt;em&gt;tracer&lt;/em&gt; who is dying &lt;em&gt;unexpectedly&lt;/em&gt;, it may not always be possible to kill
tracees which will then run in potentially unsafe mode. You can read this &lt;a href=&quot;http://article.gmane.org/gmane.linux.kernel/1390167&quot;&gt;lkml
thread&lt;/a&gt; and many more to dive into the internals of &lt;code class=&quot;highlighter-rouge&quot;&gt;ptrace(2)&lt;/code&gt;.&lt;/p&gt;

&lt;p&gt;Thus, &lt;a href=&quot;http://git.exherbo.org/sydbox-1.git/&quot;&gt;sydbox-1&lt;/a&gt; learned a new &lt;a href=&quot;http://dev.exherbo.org/~alip/sydbox/sydbox.html#configuration&quot;&gt;magic command&lt;/a&gt;
with the name &lt;a href=&quot;http://dev.exherbo.org/~alip/sydbox/sydbox.html#core-trace-exit_kill&quot;&gt;core/trace/exit_kill&lt;/a&gt; to turn this
functionality on with the two commits I pushed to master today:&lt;/p&gt;

&lt;ul&gt;
  &lt;li&gt;&lt;a href=&quot;http://git.exherbo.org/sydbox-1.git/commit/?id=a1fc5bafdae976f4a8ed7a9bef7876be6eceb65d&quot;&gt;pinktrace: new option PINK_TRACE_OPTION_EXITKILL&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;http://git.exherbo.org/sydbox-1.git/commit/?id=cb9bcdbf92d36c7078dd7267faa2fcc21a9d789b&quot;&gt;New magic command core/trace/exit_kill&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;One restriction is the option &lt;a href=&quot;http://dev.exherbo.org/~alip/sydbox/sydbox.html#core-trace-exit_kill&quot;&gt;core/trace/exit_kill&lt;/a&gt; is
only useful when it is set upon startup. It does &lt;strong&gt;not&lt;/strong&gt; work with the &lt;a href=&quot;http://dev.exherbo.org/~alip/sydbox/sydbox.html#configuration&quot;&gt;magic
stat() system call&lt;/a&gt;. &lt;code class=&quot;highlighter-rouge&quot;&gt;ptrace(2)&lt;/code&gt; options are inherited
from parent to children thus trying to set this on a per-tracee basis requires
one to change the value of the option for the parent and &lt;em&gt;all&lt;/em&gt; its children.
Although this is possible in theory (&lt;a href=&quot;http://git.exherbo.org/sydbox-1.git/&quot;&gt;sydbox-1&lt;/a&gt; keeps track of
parent&amp;lt;-&amp;gt;children relationships) it would add some complexity to the program
which I do not want unless I see a well-founded reason to do so.&lt;/p&gt;

</content>
 </entry>
 
 <entry>
   <title>Yolda</title>
   <link href="https://alip.github.io/tr/blog/2013/07/27/yolda/"/>
   <updated>2013-07-27T00:00:00+00:00</updated>
   <id>https://alip.github.io/tr/blog/2013/07/27/yolda</id>
   <content type="html">&lt;p&gt;&lt;a href=&quot;https://groups.google.com/forum/?fromgroups=#!topic/kaotik/q63RrUtgZDs&quot;&gt;kaotik/q63RrUtgZDs&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Jack Kerouac güvercin olmuş, omzuma konmuş.&lt;/p&gt;

&lt;blockquote&gt;
  &lt;h2 id=&quot;yolda&quot;&gt;Yolda&lt;/h2&gt;

  &lt;p&gt;Aslolan yürümektir&lt;br /&gt;
Son yoksa sonunda.&lt;br /&gt;
Sonu beklemeye değer&lt;br /&gt;
Zaman duracaksa yolunda.&lt;/p&gt;

  &lt;p&gt;Böyle yol seçen kendine&lt;br /&gt;
Ne aklından yoksun, ne divane&lt;br /&gt;
Öldükten sonra bile kendine&lt;br /&gt;
Yol ancak yürüyenindir.&lt;/p&gt;

  &lt;p&gt;Dönüp ardını yürüse de&lt;br /&gt;
İki ileri bir geri yürüse de&lt;br /&gt;
Hiç durmayıp öylece düşünse de&lt;br /&gt;
Yol ancak yürüyenindir.&lt;/p&gt;

  &lt;p&gt;Yorulmaktan anlamayanın hakkı kötektir.&lt;br /&gt;
Cahildir, aşıktır, delidir.&lt;br /&gt;
İki ayakla değil, ellerinle yürüsen de&lt;br /&gt;
Yol ancak yürüyenindir.&lt;/p&gt;

  &lt;p&gt;Kendi kendine gülene deli,&lt;br /&gt;
Ağlayana veli deseler de&lt;br /&gt;
Sana koca dünyanın gamı varken&lt;br /&gt;
Yol ancak yürüyenindir.&lt;/p&gt;

  &lt;p&gt;Sınırsız, çare ise artık dert yok.&lt;br /&gt;
Sonsuz, adım başında ise artık tasa yok.&lt;br /&gt;
Zamansız atarken her adımını&lt;br /&gt;
Yol senindir, yürüyenindir.&lt;/p&gt;

  &lt;p&gt;Hazineyi bulunca durdu.&lt;br /&gt;
Korktu, ağladı, yas tuttu.&lt;br /&gt;
Ama durmak da yürümektir.&lt;br /&gt;
Yol dursa da yürüyenindir.&lt;/p&gt;

  &lt;p&gt;Hayali’ye bu laflar boşuna&lt;br /&gt;
Haydi benliğim git işine&lt;br /&gt;
Kanar mıyım hiç yıllanmış başıma&lt;br /&gt;
Yol kendine rağmen yürüyenindir.&lt;/p&gt;
&lt;/blockquote&gt;
</content>
 </entry>
 
 <entry>
   <title>Sandboxing Skype with sydbox-1</title>
   <link href="https://alip.github.io/en/blog/2013/06/27/sandboxing-skype-with-sydbox-1/"/>
   <updated>2013-06-27T00:00:00+00:00</updated>
   <id>https://alip.github.io/en/blog/2013/06/27/sandboxing-skype-with-sydbox-1</id>
   <content type="html">&lt;p&gt;There are various tools to provide enhanced restriction mechanisms under
&lt;a href=&quot;http://www.kernel.org/&quot;&gt;Linux&lt;/a&gt;. In case security is the major concern, these mechanisms need to
be in the kernel level which in turn means specific configurations or in some
cases modifications (in forms of patches etc.) to the &lt;a href=&quot;http://www.kernel.org/&quot;&gt;Linux kernel&lt;/a&gt;.
Some examples are &lt;a href=&quot;http://wiki.apparmor.net/index.php/Main_Page&quot;&gt;AppArmor&lt;/a&gt;, &lt;a href=&quot;http://selinuxproject.org/&quot;&gt;Security Enhanced Linux&lt;/a&gt;,
&lt;a href=&quot;http://tomoyo.sourceforge.net/&quot;&gt;Tomoyo Linux&lt;/a&gt;, and &lt;a href=&quot;http://grsecurity.net/&quot;&gt;Grsecurity&lt;/a&gt;. User space solutions are
either not as flexible or not as secure depending on the use case scenario.&lt;/p&gt;

&lt;p&gt;We, at &lt;a href=&quot;http://www.exherbo.org/&quot;&gt;Exherbo&lt;/a&gt;, need a sandbox for misbehaving package builds.  One
should note that such misbehaviours can sometimes be rather fun (or &lt;a href=&quot;https://bugs.gentoo.org/show_bug.cgi?id=298150&quot;&gt;not safe
for work&lt;/a&gt; at times). I used the term &lt;em&gt;misbehaving&lt;/em&gt; on purpose because
this does not mean the sandbox itself can make the build environment &lt;em&gt;totally
secure&lt;/em&gt;. Linux has good old &lt;a href=&quot;http://en.wikipedia.org/wiki/Unix&quot;&gt;UNIX&lt;/a&gt; goodies like &lt;a href=&quot;http://en.wikipedia.org/wiki/Privilege_separation&quot;&gt;separate permissions for
users&lt;/a&gt;, &lt;a href=&quot;http://en.wikipedia.org/wiki/Chroot&quot;&gt;chroots&lt;/a&gt; and new shiny stuff like &lt;a href=&quot;https://lwn.net/Articles/531114/&quot;&gt;per-process
namespaces&lt;/a&gt; to implement further restrictions.&lt;/p&gt;

&lt;p&gt;&lt;a href=&quot;http://www.exherbo.org/&quot;&gt;Exherbo&lt;/a&gt;’s practical solution to this issue is &lt;a href=&quot;http://git.exherbo.org/sydbox-1.git/&quot;&gt;sydbox&lt;/a&gt;. With
the upcoming version &lt;a href=&quot;http://git.exherbo.org/sydbox-1.git/&quot;&gt;sydbox-1&lt;/a&gt; - which is yet to be released - this
solution can easily be adapted to different use cases.&lt;/p&gt;

&lt;p&gt;As I was browsing through &lt;a href=&quot;https://wiki.archlinux.org/&quot;&gt;Arch Linux Wiki&lt;/a&gt; pages I stumbled upon the
&lt;a href=&quot;https://wiki.archlinux.org/index.php/Skype&quot;&gt;Skype&lt;/a&gt; page which describes different approaches to restrict such
close sourced applications.&lt;/p&gt;

&lt;p&gt;I am not claiming using &lt;a href=&quot;http://git.exherbo.org/sydbox-1.git/&quot;&gt;sydbox-1&lt;/a&gt; for this purpose is secure but it
is most certainly practical. Here is my proof-of-concept attempt at sandboxing
&lt;a href=&quot;http://www.skype.com/&quot;&gt;Skype&lt;/a&gt; using &lt;a href=&quot;http://git.exherbo.org/sydbox-1.git/&quot;&gt;sydbox-1&lt;/a&gt;. Below is a sample
&lt;a href=&quot;http://git.exherbo.org/sydbox-1.git/tree/examples/skype.syd-1&quot;&gt;sydbox-1 profile&lt;/a&gt; for use with &lt;a href=&quot;http://www.skype.com/&quot;&gt;Skype&lt;/a&gt;. You can also
find it in &lt;a href=&quot;git://git.exherbo.org/sydbox-1.git&quot;&gt;sydbox-1.git&lt;/a&gt; under &lt;tt&gt;examples/&lt;/tt&gt; directory.&lt;/p&gt;

&lt;div class=&quot;highlighter-rouge&quot;&gt;&lt;div class=&quot;highlight&quot;&gt;&lt;pre class=&quot;highlight&quot;&gt;&lt;code&gt;# sydbox profile for Skype4

#
# Sandboxing
#
core/sandbox/exec:deny
core/sandbox/read:deny
core/sandbox/write:deny
core/sandbox/network:deny

core/whitelist/per_process_directories:true
core/whitelist/successful_bind:true
core/whitelist/unsupported_socket_families:true

core/abort/decision:killall
core/panic/decision:kill
core/panic/exit_code:-1
core/violation/decision:deny
core/violation/exit_code:-1
core/violation/raise_fail:false
core/violation/raise_safe:false

core/trace/follow_fork:true
core/trace/exit_wait_all:true
core/trace/magic_lock:off
core/trace/interrupt:while_wait
core/trace/use_seccomp:true
core/trace/use_seize:true
core/trace/use_toolong_hack:true

core/match/case_sensitive:true
core/match/no_wildcard:literal

#
# Logging
#
log/file:
log/level:511
log/console_fd:2
log/console_level:3

#
# /dev
#
whitelist/read+/dev
whitelist/read+/dev/urandom
whitelist/read+/dev/stdout
whitelist/read+/dev/stderr
whitelist/write+/dev/tty*
whitelist/write+/dev/pts/***
whitelist/read+/dev/snd/***
whitelist/write+/dev/snd/***
whitelist/read+/dev/video*
whitelist/write+/dev/video*

#
# /proc &amp;amp; /sys
#
whitelist/read+/proc/cpuinfo
whitelist/read+/proc/meminfo
whitelist/read+/proc/stat
whitelist/read+/proc/net
whitelist/read+/proc/net/arp
whitelist/read+/proc/net/route
whitelist/read+/proc/net/unix
whitelist/read+/proc/sys/vm/overcommit_memory
whitelist/read+/proc/sys/kernel/osrelease
whitelist/read+/proc/sys/kernel/ostype
whitelist/read+/sys/devices/system/cpu/online
whitelist/read+/sys/devices/system/cpu
whitelist/read+/sys/devices/system/cpu/cpu?/cpufreq/scaling_cur_freq
whitelist/read+/sys/devices/system/cpu/cpu?/cpufreq/scaling_max_freq
whitelist/read+/sys/devices/virtual/dmi/id/board_name
whitelist/read+/sys/devices/virtual/dmi/id/board_version
whitelist/read+/sys/devices/virtual/dmi/id/board_vendor
whitelist/read+/sys/devices/virtual/dmi/id/product_name
whitelist/read+/sys/devices/virtual/dmi/id/product_version
whitelist/read+/sys/devices/virtual/dmi/id/sys_vendor
whitelist/read+/sys/devices/*/*/*/power_supply/ACAD/***
whitelist/read+/sys/devices/*/*/*/*/*/*/modalias
whitelist/read+/sys/devices/*/*/*/*/*/*/video4linux/video?/dev
whitelist/read+/sys/devices/*/*/*/*/*/idProduct
whitelist/read+/sys/devices/*/*/*/*/*/idVendor
whitelist/read+/sys/devices/*/*/*/*/*/speed

#
# nscd (glibc)
#
whitelist/network/connect+unix:/var/run/nscd/socket
whitelist/network/connect+unix:/run/nscd/socket

#
# /etc
#
whitelist/read+/etc/asound.conf
whitelist/read+/etc/group
whitelist/read+/etc/hosts
whitelist/read+/etc/host.conf
whitelist/read+/etc/ld.so.cache
whitelist/read+/etc/ld.so.preload
whitelist/read+/etc/nsswitch.conf
whitelist/read+/etc/resolv.conf
whitelist/read+/etc/ssl/certs/***
whitelist/read+/etc/fonts/***
whitelist/read+/etc/gtk-2.0/***
whitelist/read+/etc/pango/***

#
# Libraries
#
whitelist/read+/lib*/***
whitelist/read+/usr/lib*/***

#
# Share dirs
#
whitelist/read+/usr/share/alsa/***
whitelist/read+/usr/share/ca-certificates/***
whitelist/read+/usr/share/locale/***
whitelist/read+/usr/share/zoneinfo/***
whitelist/read+/usr/share/fonts/***
whitelist/read+/usr/share/icons/***
whitelist/read+/usr/share/pixmaps/***
whitelist/read+/usr/share/texmf-dist/fonts/***
whitelist/read+/usr/share/X11/***

#
# Xorg/X11 &amp;amp; dbus
#
whitelist/network/connect+unix-abstract:/tmp/.X11-unix/**
whitelist/network/connect+unix-abstract:/tmp/.ICE-unix/**
whitelist/network/connect+unix-abstract:/tmp/dbus-*
whitelist/network/connect+unix:/run/dbus/system_bus_socket
whitelist/network/connect+unix:/var/run/dbus/system_bus_socket

#
# /tmp
#
whitelist/read+/tmp/qtsingleapp-*
whitelist/write+/tmp/qtsingleapp-*
whitelist/network/bind+unix:/tmp/qtsingleapp-*
whitelist/network/connect+unix:/tmp/qtsingleapp-*

#
# Skype
#
whitelist/read+/etc/Skype.conf
whitelist/read+/etc/Skype/***
whitelist/read+/usr/*bin/skype
whitelist/exec+/usr/*bin/skype
whitelist/exec+/usr/lib*/skype/skype
whitelist/exec+/opt/skype/skype
whitelist/read+/opt/skype/***
whitelist/read+/usr/share/skype/***

#
# Host specific configuration under /home
#
whitelist/read+/home/*/.Xauthority
whitelist/read+/home/*/.ICEauthority
whitelist/read+/home/*/.gtkrc*
whitelist/read+/home/*/.config/Trolltech.conf
whitelist/write+/home/*/.icons/***

#
# Skype specific configuration
#
whitelist/read+/home/*/.asoundrc
whitelist/read+/home/*/.config/Skype/***
whitelist/write+/home/*/.config/Skype/***
whitelist/read+/home/*/.Skype/***
whitelist/write+/home/*/.Skype/***

#
# Temporary files &amp;amp; caches
#
whitelist/read+/home/*/.cache/fontconfig/***
whitelist/write+/home/*/.cache/fontconfig/***
whitelist/read+/home/*/.compose-cache/***
whitelist/write+/home/*/.compose-cache/***

#
# Networking
#
# note: allow IPv4 and IPv6 by default since Skype operates on a P2P model.
# You may further restrict access by only allowing access to SKYPENET,
# Akamai and Microsoft Corporation together with your contact's IP
# address.
#
whitelist/network/bind+LOOPBACK@0
whitelist/network/connect+inet:0.0.0.0/0@0-65000
whitelist/network/connect+inet6:::0/0@0-65000

#
# Allow some external programs
#
whitelist/exec+/usr/*bin/xdg-open
exec/resume_if_match+/usr/*bin/xdg-open
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;

&lt;p&gt;A couple of things to note:&lt;/p&gt;

&lt;ol&gt;
  &lt;li&gt;&lt;a href=&quot;http://git.exherbo.org/sydbox-1.git/&quot;&gt;sydbox-1&lt;/a&gt; is still in heavy development and the file format may
 change.&lt;/li&gt;
  &lt;li&gt;This approach is &lt;strong&gt;not&lt;/strong&gt; secure. Author claims no responsibility if
 &lt;a href=&quot;http://www.skype.com/&quot;&gt;Skype&lt;/a&gt; kills your &lt;a href=&quot;http://dev.exherbo.org/~alip/images/goat-robs-car.jpg&quot;&gt;goats&lt;/a&gt;.&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;http://www.youtube.com/watch?v=22QYriWAF-U&quot;&gt;Three is the loneliest number since number two which is the loneliest number since
the number one.&lt;/a&gt;&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;Happy hacking!&lt;/p&gt;

</content>
 </entry>
 
 <entry>
   <title>I Can Not Tell</title>
   <link href="https://alip.github.io/en/blog/2013/06/13/i-cannot-describe/"/>
   <updated>2013-06-13T00:00:00+00:00</updated>
   <id>https://alip.github.io/en/blog/2013/06/13/i-cannot-describe</id>
   <content type="html">&lt;p&gt;As the &lt;a href=&quot;http://en.wikipedia.org/wiki/Garip&quot;&gt;Garip&lt;/a&gt; poet
&lt;a href=&quot;http://en.wikipedia.org/wiki/Orhan_Veli&quot;&gt;Orhan Veli&lt;/a&gt; once wrote,&lt;/p&gt;

&lt;div class=&quot;highlighter-rouge&quot;&gt;&lt;div class=&quot;highlight&quot;&gt;&lt;pre class=&quot;highlight&quot;&gt;&lt;code&gt;Can you hear me if I cry,
In my verses;
Can you touch,
My tears, with your hands?

I hadn't known how songs were so lovely,
And yet the words so inadequate
Before I had fallen into this suffering.

I know there is somewhere
To say anything about which is possible;
I am very close, I can hear;
I can not tell...
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;

&lt;p&gt;in his poem &lt;em&gt;Anlatamıyorum&lt;/em&gt; (&lt;em&gt;I Can Not Tell&lt;/em&gt;, translated by &lt;a href=&quot;https://alip.github.io&quot;&gt;myself&lt;/a&gt; on 2013-06-13).
Sometimes a photo may describe what we can’t describe with a thousand words.&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;https://alip.github.io/images/direnbayan.png&quot; alt=&quot;You know your government has failed, when your grandma starts to riot!&quot; title=&quot;You know your government has failed, when your grandma starts to riot!&quot; /&gt;&lt;/p&gt;

&lt;p&gt;Long story short, &lt;strong&gt;you know your government has failed, when your grandma starts
to riot…&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Occupy Gezi! &lt;em&gt;Diren Gezi!&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Update&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
  &lt;li&gt;2013-06-14: Translation of the first quatrain was slightly modified.&lt;/li&gt;
  &lt;li&gt;2013-06-16: More translation fixes.&lt;/li&gt;
&lt;/ul&gt;
</content>
 </entry>
 
 <entry>
   <title>Yamalı Sesler</title>
   <link href="https://alip.github.io/tr/blog/2013/06/10/yamali-sesler/"/>
   <updated>2013-06-10T00:00:00+00:00</updated>
   <id>https://alip.github.io/tr/blog/2013/06/10/yamali-sesler</id>
   <content type="html">&lt;p&gt;Cep delik, cepken delik ve kıçımız başımız yamalıyken noktasız seslileri
kullanmadan yapamaz mıyız deyu kafa yordum veya başka bir ifadeyle yine
delirdim işte…&lt;/p&gt;

&lt;p&gt;Çağırın!&lt;/p&gt;

&lt;p&gt;Güneşin zaptı artık daha da yakın!&lt;/p&gt;

&lt;p&gt;&lt;a href=&quot;https://groups.google.com/forum/?fromgroups=#!topic/kaotik/K41HU21TvH4&quot;&gt;kaotik/K41HU21TvH4&lt;/a&gt;&lt;/p&gt;

&lt;blockquote&gt;
  &lt;p&gt;Zihnimin izin günüydü&lt;br /&gt;
Bir düş büyütmüştüm&lt;br /&gt;
Gülü gördüm, iyi ki gördüm&lt;br /&gt;
Güldüm, bülbüldüm&lt;/p&gt;

  &lt;p&gt;Hüznümün ölüm günüydü&lt;br /&gt;
Bütün kibirimi söndürmüştüm&lt;br /&gt;
İzmir’i gördüm, iyi ki gördüm&lt;br /&gt;
Gittim, zincirsizdim&lt;/p&gt;

  &lt;p&gt;Hiçliğimin düğün günüydü&lt;br /&gt;
Kimliğimi yitirmiştim&lt;br /&gt;
Gökyüzünü gördüm, iyi ki gördüm&lt;br /&gt;
Öldüm, ölümsüzdüm&lt;/p&gt;

  &lt;p&gt;Sözlüksüz bildim, sözün özüydü&lt;br /&gt;
Gözlüksüz gördüm, gözüm gönlümdü&lt;br /&gt;
Özgürlüğü çizdim, bülbülün gülüydü&lt;br /&gt;
Yüzü büyülüydü, ismi nünüydü…&lt;/p&gt;
&lt;/blockquote&gt;
</content>
 </entry>
 
 <entry>
   <title>İki Şarkı, İki Adam</title>
   <link href="https://alip.github.io/tr/blog/2013/05/24/hayat-berbat/"/>
   <updated>2013-05-24T00:00:00+00:00</updated>
   <id>https://alip.github.io/tr/blog/2013/05/24/hayat-berbat</id>
   <content type="html">&lt;p&gt;
Aşağıda iki şarkının sözlerinin İngilizce ve Türkçe çevirileri vardır.
Algılarınızın sapıtması ve yüzünüzde bir tebessüm yaratması için tercümeleri
okuduktan sonra şarkıları dinlemenizi içtenlikle tavsiye ederim.
&lt;/p&gt;
&lt;p&gt;
Below you may find lyrics of two songs in English and Turkish languages.
I sincerely recommend you to listen to the songs after you read the translations
to get your senses go haywire and to have a smile on your face.
&lt;/p&gt;
&lt;p&gt;Rest in peace, Dylan!&lt;/p&gt;
&lt;p&gt;Nur içinde yat, Baba!&lt;/p&gt;

&lt;table border=&quot;0&quot; summary=&quot;Mr. Tambourine Man ve Hayat Berbat&quot;&gt;
&lt;tr&gt;
  &lt;th&gt;&lt;b&gt;Mr. Tambourine Man&lt;/b&gt;&lt;/th&gt;
  &lt;th&gt;&lt;b&gt;Hayat Berbat&lt;/b&gt;&lt;/th&gt;
&lt;/tr&gt;
&lt;tr&gt;
  &lt;td&gt;&lt;i&gt;Bob Dylan, 1965&lt;/i&gt;&lt;/td&gt;
  &lt;td&gt;&lt;i&gt;Müslüm Gürses, ?&lt;/i&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
  &lt;td&gt;
&lt;iframe width=&quot;420&quot; height=&quot;315&quot;
        src=&quot;https://www.youtube.com/embed/KE_hDWMftgc?rel=0&quot;
        frameborder=&quot;0&quot;&gt;
&lt;/iframe&gt;
  &lt;/td&gt;
  &lt;td&gt;
&lt;iframe width=&quot;420&quot; height=&quot;315&quot;
        src=&quot;https://www.youtube.com/embed/z8rDRGKDcZg?rel=0&quot;
        frameborder=&quot;0&quot;&gt;
&lt;/iframe&gt;
  &lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
  &lt;td style=&quot;vertical-align: top;&quot;&gt;
&lt;blockquote&gt;
Hey, Mr. Tambourine Man, play a song for me&lt;br /&gt;
I'm not sleepy and there is no place I'm going to&lt;br /&gt;
Hey, Mr. Tambourine Man, play a song for me&lt;br /&gt;
In the jingle-jangle morning I'll come followin' you&lt;br /&gt;
&lt;br /&gt;
Though I know that evening's empire&lt;br /&gt;
Has returned into sand&lt;br /&gt;
Vanished from my hand&lt;br /&gt;
Left me blindly here to stand but still not sleeping&lt;br /&gt;
&lt;br /&gt;
My weariness amazes me&lt;br /&gt;
I am branded on my feet&lt;br /&gt;
I have no one to meet&lt;br /&gt;
And the ancient empty street's too dead for dreaming&lt;br /&gt;
&lt;br /&gt;
Hey, Mr. Tambourine Man, play a song for me&lt;br /&gt;
I'm not sleepy and there is no place I'm going to&lt;br /&gt;
Hey, Mr. Tambourine Man, play a song for me&lt;br /&gt;
In the jingle-jangle morning I'll come followin' you&lt;br /&gt;
&lt;br /&gt;
Take me on a trip upon your magic swirling ship&lt;br /&gt;
My senses have been stripped, my hands can't feel to grip&lt;br /&gt;
My toes too numb to step&lt;br /&gt;
Wait only for my boot heels to be wandering&lt;br /&gt;
&lt;br /&gt;
I'm ready to go anywhere, I'm ready for to fade&lt;br /&gt;
Into my own parade&lt;br /&gt;
Cast your dancing spell my way&lt;br /&gt;
I promise to go under it&lt;br /&gt;
&lt;br /&gt;
Hey, Mr. Tambourine Man, play a song for me&lt;br /&gt;
I'm not sleepy and there is no place I'm going to&lt;br /&gt;
Hey, Mr. Tambourine Man, play a song for me&lt;br /&gt;
In the jingle-jangle morning I'll come followin' you&lt;br /&gt;
&lt;br /&gt;
Though you might hear laughing spinning, swinging madly across the sun&lt;br /&gt;
It's not aimed at anyone&lt;br /&gt;
It's just escaping on the run&lt;br /&gt;
And, but for the sky, there are no fences facing&lt;br /&gt;
&lt;br /&gt;
And if you hear vague traces of skipping reels of rhyme&lt;br /&gt;
To your tambourine in time&lt;br /&gt;
It's just a ragged clown behind&lt;br /&gt;
I wouldn't pay it any mind&lt;br /&gt;
It's just a shadow you're seeing that he's chasing&lt;br /&gt;
&lt;br /&gt;
Hey, Mr. Tambourine Man, play a song for me&lt;br /&gt;
I'm not sleepy and there is no place I'm going to&lt;br /&gt;
Hey, Mr. Tambourine Man, play a song for me&lt;br /&gt;
In the jingle-jangle morning I'll come followin' you&lt;br /&gt;
&lt;br /&gt;
Then take me disappearing through the smoke rings of my mind&lt;br /&gt;
Down the foggy ruins of time, far past the frozen leaves&lt;br /&gt;
The haunted, frightened trees, out to the windy beach&lt;br /&gt;
Far from the twisted reach of crazy sorrow&lt;br /&gt;
&lt;br /&gt;
Yes, to dance beneath the diamond sky with one hand waving free&lt;br /&gt;
Silhouetted by the sea, circled by the circus sands&lt;br /&gt;
With all memory and fate driven deep beneath the waves&lt;br /&gt;
Let me forget about today until tomorrow&lt;br /&gt;
&lt;br /&gt;
Hey, Mr. Tambourine Man, play a song for me&lt;br /&gt;
I'm not sleepy and there is no place I'm going to&lt;br /&gt;
Hey, Mr. Tambourine Man, play a song for me&lt;br /&gt;
In the jingle-jangle morning I'll come followin' you
&lt;/blockquote&gt;
  &lt;/td&gt;
  &lt;td style=&quot;vertical-align: top;&quot;&gt;
&lt;blockquote&gt;
Ah felek söyle bana ne yapmam gerek&lt;br /&gt;
Hayat berbat gel bu eli saymayalım&lt;br /&gt;
Ah felek söyle bana ölmem mi gerek&lt;br /&gt;
Hayat berbat biz yeniden başlayalım&lt;br /&gt;
&lt;br /&gt;
Doğan pişman doğduğundan pes ettim bundan&lt;br /&gt;
Çekil hayatımdan&lt;br /&gt;
Git başımdan hayır öyle bela istemem&lt;br /&gt;
&lt;br /&gt;
Doğan pişman doğduğundan ben bıktım bundan&lt;br /&gt;
Düş artık sırtımdan&lt;br /&gt;
Git başımdan felek böyle oyun olmaz olsun&lt;br /&gt;
&lt;br /&gt;
Ah felek söyle bana ne yapmam gerek&lt;br /&gt;
Hayat berbat gel bu eli saymayalım&lt;br /&gt;
Ah felek söyle bana ölmem mi gerek&lt;br /&gt;
Hayat berbat al sırtımdan kamburunu&lt;br /&gt;
Biz yeniden başlayalım
&lt;/blockquote&gt;
  &lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
  &lt;td&gt;&lt;b&gt;Tefçi Efendi&lt;/b&gt;&lt;/td&gt;
  &lt;td&gt;&lt;b&gt;Life Sucks&lt;/b&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
  &lt;td&gt;Çevirmen: &lt;i&gt;Ali Polatel, Nisan 2013&lt;/i&gt;&lt;/td&gt;
  &lt;td&gt;Translated by: &lt;i&gt;Ali Polatel, May 2013&lt;/i&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
  &lt;td style=&quot;vertical-align: top;&quot;&gt;
&lt;blockquote&gt;
Hey Tefçi Efendi, bana bir şarkı çal&lt;br /&gt;
Ne uykum var, ne de gidecek bir yerim&lt;br /&gt;
Hey Tefçi Efendi, bana bir şarkı çal&lt;br /&gt;
Çınlat sabahı da peşinden geleyim&lt;br /&gt;
&lt;br /&gt;
Bilsem de gecenin krallığı&lt;br /&gt;
Toz toprak olmuş&lt;br /&gt;
Ellerimden yok olmuş&lt;br /&gt;
Kör ve uykusuz bırakmış beni burada&lt;br /&gt;
&lt;br /&gt;
Bitkinliğim şaşırtıyor beni&lt;br /&gt;
Ayaklarım yere mıhlanmış gibi&lt;br /&gt;
Buluşacak kimsem de yok&lt;br /&gt;
Ve ne mümkün bu eski, boş sokaklarda hayal kurmak&lt;br /&gt;
&lt;br /&gt;
Hey Tefçi Efendi, bana bir şarkı çal&lt;br /&gt;
Ne uykum var ne de gidecek bir yerim&lt;br /&gt;
Hey Tefçi Efendi, bana bir şarkı çal&lt;br /&gt;
Çınlat sabahı da peşinden geleyim&lt;br /&gt;
&lt;br /&gt;
Büyülü bir sema içinde al götür beni geminle&lt;br /&gt;
Duyularımdan sıyrılmışım ve ellerim hissiz artık&lt;br /&gt;
Adım atmaya korkan ayak parmaklarım&lt;br /&gt;
Yalnızca topuklarını bekliyor çizmelerimin&lt;br /&gt;
&lt;br /&gt;
Hazırım gitmeye istediğin yere&lt;br /&gt;
Hazırım unutulmaya bu geziyle&lt;br /&gt;
Yap büyünü de raks edeyim&lt;br /&gt;
Söz veriyorum kendimden geçeceğim&lt;br /&gt;
&lt;br /&gt;
Hey Tefçi Efendi, bana bir şarkı çal&lt;br /&gt;
Ne uykum var ne de gidecek bir yerim&lt;br /&gt;
Hey Tefçi Efendi, bana bir şarkı çal&lt;br /&gt;
Çınlat sabahı da peşinden geleyim&lt;br /&gt;
&lt;br /&gt;
Güldüğümü, delice döndüğümü görsen de güneşe doğru&lt;br /&gt;
Yoktur kimseye kötülüğüm&lt;br /&gt;
Sadece kaçmak için her şey&lt;br /&gt;
Ve gökyüzünde çıkmaz karşımıza duvarlar&lt;br /&gt;
&lt;br /&gt;
Ve eğer fırıl fırıl tınılar işitirsen&lt;br /&gt;
Çaldığın teften bir gün&lt;br /&gt;
Garip bir palyaçonun işidir bu&lt;br /&gt;
Hiç kafana takma&lt;br /&gt;
Seni kovalayan o değil, gölgendir&lt;br /&gt;
&lt;br /&gt;
Hey Tefçi Efendi, bana bir şarkı çal&lt;br /&gt;
Ne uykum var ne de gidecek bir yerim&lt;br /&gt;
Hey Tefçi Efendi, bana bir şarkı çal&lt;br /&gt;
Çınlat sabahı da peşinden geleyim&lt;br /&gt;
&lt;br /&gt;
Sonra al götür beni, geçir zihnimin buğulu çemberlerinden&lt;br /&gt;
Zamanın sisli kalıntıları boyunca, donmuş yapraklardan uzağa&lt;br /&gt;
Rüzgarlı sahildeki lanetli, ürkütücü ağaçlardan uzağa&lt;br /&gt;
Çılgın kederimin ulaşamayacağı kadar uzağa&lt;br /&gt;
&lt;br /&gt;
Evet, yalnızca dans etmek için berrak gökyüzünden el sallayarak&lt;br /&gt;
Gölgem düşerken denize, çevrelenmişim sirkin kumlarıyla&lt;br /&gt;
Bütün hatıralar ve kader dalgalarla derinlere batarken&lt;br /&gt;
Unutayım bugünü yarına kadar&lt;br /&gt;
&lt;br /&gt;
Hey Tefçi Efendi, bana bir şarkı çal&lt;br /&gt;
Ne uykum var ne de gidecek bir yerim&lt;br /&gt;
Haydi Tefçi Efendi, bana bir şarkı çal&lt;br /&gt;
Çınlat sabahı da geleyim peşinden
&lt;/blockquote&gt;
  &lt;/td&gt;
  &lt;td style=&quot;vertical-align: top;&quot;&gt;
&lt;blockquote&gt;
Oh, fate tell me what I have to do&lt;br /&gt;
Life sucks, let's count this one out&lt;br /&gt;
Oh, fate tell me what I have to do&lt;br /&gt;
Life sucks, let's start over&lt;br /&gt;
&lt;br /&gt;
With everyone sorry for being born and I give up&lt;br /&gt;
Get out of my life&lt;br /&gt;
Get out of me, I don't want that kind of trouble&lt;br /&gt;
&lt;br /&gt;
That everyone sorry for being born, I can't bear anymore&lt;br /&gt;
Stay off my back&lt;br /&gt;
Go away fate, I despise your game&lt;br /&gt;
&lt;br /&gt;
Oh, fate tell me what I have to do&lt;br /&gt;
Life sucks, let's count this one out&lt;br /&gt;
Oh, fate tell me do I have to die&lt;br /&gt;
Life sucks, get your hunch out of my back&lt;br /&gt;
Let's start over
&lt;/blockquote&gt;
  &lt;/td&gt;
&lt;/tr&gt;
&lt;/table&gt;

&lt;b&gt;Çevirmenin Notu&lt;/b&gt;

&lt;p&gt;
Bob Dylan'ın &lt;i&gt;Mr. Tambourine Man&lt;/i&gt; adlı şarkısının sözleri 2013-05-24 tarihinde
&lt;a href=&quot;http://lyrics.wikia.com/Bob_Dylan:Mr._Tambourine_Man&quot;&gt;
  http://lyrics.wikia.com/Bob_Dylan:Mr._Tambourine_Man
&lt;/a&gt;
adresinden, Müslüm Gürses'in &lt;i&gt;Hayat Berbat&lt;/i&gt; adlı şarkısının sözleri ise yine 2013-05-24 tarihinde
&lt;a href=&quot;http://www.akormerkezi.com/muslum-gurses-hayat-berbat-sarki-sozu_sarki-jrhfdf.html&quot;&gt;
  http://www.akormerkezi.com/muslum-gurses-hayat-berbat-sarki-sozu_sarki-jrhfdf.html)
&lt;/a&gt;
adresinden alınmıştır. Çeviriler hakkındaki görüşleriniz ve eleştirilerinizin, &lt;b&gt;berbat olan
hayatını çekilir kılan tefçi kıza minnettar olan&lt;/b&gt; çevirmenin başının üstünde yeri vardır.
&lt;/p&gt;

&lt;b&gt;Güncellemeler&lt;/b&gt;

&lt;ul&gt;
  &lt;li&gt;2013-06-10:
    İlk şiir çevirisinin nakaratında geçen &lt;i&gt;&quot;bir şarkı çal bana&quot;&lt;/i&gt; kalıbı &lt;i&gt;&quot;bana bir şarkı çal&quot;&lt;/i&gt; olarak değiştirildi.&lt;/li&gt;
  &lt;li&gt;2013-06-10:
    İlk şiir çevirisinin son kıtasının son mısrası olan &lt;i&gt;&quot;Çınlat sabahı da peşinden geleyim&quot;&lt;/i&gt; cümlesi
    &lt;i&gt;&quot;Çınlat sabahı da geleyim peşinden&quot;&lt;/i&gt; olarak değiştirildi.
  &lt;/li&gt;
&lt;/ul&gt;
</content>
 </entry>
 
 <entry>
   <title>Sidik Zoru</title>
   <link href="https://alip.github.io/tr/blog/2013/04/03/sidik-zoru/"/>
   <updated>2013-04-03T00:00:00+00:00</updated>
   <id>https://alip.github.io/tr/blog/2013/04/03/sidik-zoru</id>
   <content type="html">&lt;ul&gt;
  &lt;li&gt;&lt;a href=&quot;https://groups.google.com/forum/?fromgroups=#!topic/kaotik/qou0kwn1-Dw&quot;&gt;kaotik/qou0kwn1-Dw&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;blockquote&gt;
  &lt;p&gt;sözüm ona başım darda&lt;br /&gt;
bırakmışım can dostumu bir çöp kovasında&lt;br /&gt;
bekler durur çöpçüleri avare&lt;br /&gt;
bense gülerim delice&lt;br /&gt;
rakı şişesinde balık olmaya para yok belki&lt;br /&gt;
ama bira şişesinde öyle bir arpa olmuşum ki&lt;br /&gt;
koca göbekleriniz&lt;br /&gt;
uzun sigaralarınız&lt;br /&gt;
yüzünüzdeki pişkin gülüş&lt;br /&gt;
üzmez, bitirmez beni&lt;br /&gt;
inadına gülerim&lt;br /&gt;
içten gülerim&lt;br /&gt;
gönülden gülerim&lt;br /&gt;
en önemlisi de sizler gibi&lt;br /&gt;
içine ettiğiniz şu koca dünyada&lt;br /&gt;
işemek için belki de tek temiz kalan yeri&lt;br /&gt;
yani helayı seçmem&lt;br /&gt;
utanmam, sıkılmam&lt;br /&gt;
köşebaşında çöp kovalarına işerim&lt;br /&gt;
çatallı da değil ha&lt;br /&gt;
sol yumruğum gibi düz, dimdik!&lt;/p&gt;
&lt;/blockquote&gt;
</content>
 </entry>
 
 <entry>
   <title>Hayal içinde Hayal</title>
   <link href="https://alip.github.io/tr/blog/2013/04/03/hayal-icinde-hayal/"/>
   <updated>2013-04-03T00:00:00+00:00</updated>
   <id>https://alip.github.io/tr/blog/2013/04/03/hayal-icinde-hayal</id>
   <content type="html">&lt;ul&gt;
  &lt;li&gt;&lt;a href=&quot;https://groups.google.com/forum/?fromgroups=#!topic/kaotik/Vsebxju0owk&quot;&gt;kaotik/Vsebxju0owk&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;blockquote&gt;
  &lt;p&gt;kuşlar bağdattan gelmiş o aydınlık gün&lt;br /&gt;
oturmuş, seyreylemişiz sinan ile ben&lt;br /&gt;
söz vermiş kuşlar, ayrılmayız gayrı bu diyardan diye&lt;br /&gt;
inanmışız, kanatlanmışız, uçmuşuz meriçe doğru&lt;/p&gt;

  &lt;p&gt;aylar geçmiş, yıllar geçmiş, asırlar geçmiş&lt;br /&gt;
sinanım ölmüş, ruhumu götürmüş&lt;br /&gt;
kuşlar eylemiş terk-i diyar&lt;br /&gt;
olmuşum hayali, zaman mekan bilmem&lt;/p&gt;

  &lt;p&gt;gayrı unutmuş herkes beni&lt;br /&gt;
ekmek çalarım görmez kimse elimi&lt;br /&gt;
şarap içerim ama tatmaz kimse yıllanmış dilimi&lt;br /&gt;
biliyorum, atlasam koca selimiyemin minaresinden&lt;br /&gt;
koklamayacaksınız bu hayali cesedimi…&lt;/p&gt;

  &lt;p&gt;aylar geçmiş, yıllar geçmiş, rüzgarlar esmiş&lt;br /&gt;
yağmurlarla sırılsıklam başım&lt;br /&gt;
düşündükçe bulanmış aklım&lt;br /&gt;
gün gelmiş, uzanmışım meriçin kıyısında&lt;br /&gt;
ben duyarım herkesi, kimse duymaz beni&lt;br /&gt;
gözlerim açık, benzim soluk dalmışım düşlere&lt;br /&gt;
bir güzel görmüşüm, o da beni görmüş&lt;br /&gt;
şaşırmışım, utanmışım, üstüm başım pislik&lt;br /&gt;
gülmüş bana, gelmiş yanıma&lt;br /&gt;
sevmişim, sevmiş beni&lt;/p&gt;

  &lt;p&gt;hayal içinde hayaliyim&lt;br /&gt;
sanki beklemişim, iple çekmişim&lt;br /&gt;
doğmuşum, aşk ile yoğrulmuşum&lt;br /&gt;
alev almış, yanmışım&lt;br /&gt;
gayrı ne sinan, ne kuşlar, ne bağdat&lt;br /&gt;
gayrı hem sinan, hem kuşlar…&lt;br /&gt;
ver elini bağdat!&lt;/p&gt;
&lt;/blockquote&gt;
</content>
 </entry>
 
 <entry>
   <title>Soyunmacasına Satrancın Resmi Kuralları</title>
   <link href="https://alip.github.io/tr/blog/2013/03/23/soyunmacasina-satrancin-resmi-kurallari/"/>
   <updated>2013-03-23T00:00:00+00:00</updated>
   <id>https://alip.github.io/tr/blog/2013/03/23/soyunmacasina-satrancin-resmi-kurallari</id>
   <content type="html">&lt;p&gt;&lt;strong&gt;Soyunmacasına Satrancın Resmi Kuralları (sürüm 1.1)&lt;/strong&gt;&lt;br /&gt;
&lt;em&gt;Ceribia, Keri’nin katkılarıyla&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;İçindekiler&lt;/strong&gt;&lt;/p&gt;

&lt;ol&gt;
  &lt;li&gt;Sorumluluk Reddi&lt;/li&gt;
  &lt;li&gt;Temel Sistem&lt;/li&gt;
  &lt;li&gt;Seyircilerin Uyması Gereken Kurallar&lt;/li&gt;
  &lt;li&gt;Özel Durumlar&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;&lt;strong&gt;1. Sorumluluk Reddi&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Soyunmacasına Satrancın Resmi Kuralları&lt;/strong&gt;‘nın yazarları olarak biz, bu belge
ve içeriği ile yapacaklarınızdan sorumlu değiliz. Bu, metnin içeriğindeki tasvir
edilen hareketlerin uygulanması sırasında ortaya çıkacak zararları kapsar ancak
sadece bunlarla sınırlı değildir. Eğer bu oyun yaşadığınız yörede yasalara
aykırı ise sakın oynamayın. Özetle bize dava açmayın.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;2. Temel Sistem&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Soyunmacasına Satranç&lt;/strong&gt;, birçok farklı soyunmacasına oynanan oyunda uygulanan
“Taş Başına Parça Kıyafet Sistemi” (asıl adıyla &lt;strong&gt;Piece per Piece System&lt;/strong&gt;) diye
adlandırılan sistemin bir çeşidi üzerine kuruludur. Sistem aşağıda belirtildiği
gibi tasarlanmıştır:&lt;/p&gt;

&lt;ul&gt;
  &lt;li&gt;
    &lt;p&gt;&lt;strong&gt;Piyon&lt;/strong&gt;:
  Kayıp, çorap veya herhangi farklı küçük bir kıyafet parçasının
  çıkartılmasını gerektirir. İlk kaybedilen piyonun ardından kaybedilen
  piyonlar için eğer oyuncunun başka küçük bir kıyafet parçası kalmamışsa ceza
  uygulanmaz.&lt;/p&gt;
  &lt;/li&gt;
  &lt;li&gt;
    &lt;p&gt;&lt;strong&gt;Filler ve/veya Atlar&lt;/strong&gt;:
  Bu iki taş tipinden kaybedilen her ikili oyuncunun üstünde giyili olan
  gömlek, mintan, atlet vs. gibi kıyafetlerin hepsini çıkarmasını gerektirir.
  Bu kıyafetler kızlar için sütyenin üstündeki bütün üst kıyafetleri, erkekler
  için ise deriye gelene kadar giyilmiş bütün üst kıyafetleri kapsar. Geriye
  kalan taş ikilisinin kaybedilmesi halinde uygulanan herhangi bir ceza
  yoktur. Sütyen giyilmemiş olması cezanın yaptırımında farklı bir uygulamaya
  yol açmaz.&lt;/p&gt;
  &lt;/li&gt;
  &lt;li&gt;
    &lt;p&gt;&lt;strong&gt;Kaleler&lt;/strong&gt;:
  İki kalesini birden kaybeden oyuncu alt kıyafetini (pantolon, etek vs.)
  çıkarmakla yükümlüdür. İç çamaşır giymemiş olmak oyuncunun sorunudur.&lt;/p&gt;
  &lt;/li&gt;
  &lt;li&gt;
    &lt;p&gt;&lt;strong&gt;Vezir&lt;/strong&gt;:
  Eğer oyuncu kızsa sütyenini çıkarmak durumundadır. Dikkat edilmesi gereken
  husus bu kuralın, oyuncunun sütyeninin üzerine giymiş olduğu herhangi bir
  kıyafeti çıkarması anlamına gelmediğidir. Şayet oyuncu sütyen giymiyorsa alt
  kıyafetini çıkarmak zorunda kalır. Buna ek olarak oyuncunun altında da
  herhangi bir kıyafet olmaması hali kurallar kapsamına henüz dahil edilmemiş
  bir haldir.&lt;/p&gt;

    &lt;p&gt;Eğer oyuncu erkekse, vezirini kaybetmesi durumunda üst kıyafetini mi alt
  kıyafetini mi çıkaracağı rakibinin kararına bırakılır.  İkisini de çıkarmış
  olması durumunda iç çamaşırını çıkarmalıdır.&lt;/p&gt;
  &lt;/li&gt;
  &lt;li&gt;
    &lt;p&gt;&lt;strong&gt;Şah&lt;/strong&gt;:
  Şah, mat veya terk etme sonrasında kaybedilmiş sayılır. Şahın kaybedilmesi
  iç çamaşırın çıkartılması anlamına gelir. Dikkat edilmesi gereken husus bu
  kuralın iç çamaşırın üstündeki herhangi bir kıyafeti bağlamamasıdır.
  Örneğin, iki kalesini kaybetmeden mat olan bir oyuncu, iç çamaşırını
  çıkarmak zorunda olsa da ardından pantolonunu tekrar giyme hakkına sahiptir.&lt;/p&gt;
  &lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;3. Seyircilerin Uyması Gereken Kurallar&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Bir soyunmacasına satranç oyununu izleyen her seyirci bir oyuncunun tarafını
tutmak zorundadır. Oyuncuya uygulanan her ceza bahsedilen oyuncunun tarafını
tutan tüm seyircilere de aynı şekilde uygulanır.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;4. Özel Durumlar&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Piyon Terfisi&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Eğer piyon son yataya ulaşarak terfi ederse piyonun sahibi olan oyuncu, piyonun
terfi ettiği taşın kaybı yüzünden ona uygulanan cezaları geri alabilir. Ancak
terfi edilen taşın bir at, fil veya kale olması durumunda terfi edilen taş ile
birlikte tahtada eşit değerde kabul edilen taşların sayısının ikiden fazla
olması gerekir. Terfi edilen bir piyon kaybedilmiş sayılmaz.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Örnek 1&lt;/strong&gt;: Oyuncu 1, piyonunu terfi ettirerek bir ata çevirmiştir ve oyunda
hali hazırda iki fili bulunmaktadır. Oyuncu üst kıyafetlerini geri giyebilir.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Örnek 2&lt;/strong&gt;: Oyuncu 1, piyonunu terfi ettirerek bir ata çevirmiştir ancak oyunda
yeni oyuna giren at dışında sadece bir atı vardır ve hiç fili yoktur. Oyuncu üst
kıyafetlerini geri giyemez.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Örnek 3&lt;/strong&gt;: Oyuncu 1, piyonunu terfi ettirerek bir kaleye çevirmiştir ancak
oyunda başka kalesi yoktur. Oyuncu alt kıyafetini geri giyemez.&lt;/p&gt;

&lt;p&gt;Bununla birlikte eğer piyon, oyuncunun kaybı vesilesiyle herhangi bir cezaya tabi
tutulmadığı bir taşa terfi ederse bu terfi ceza hesabına dahil edilmez.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Örnek 1&lt;/strong&gt;: Oyuncu 1, bir at kaybetmesinin ardından piyonlarından birini terfi
ettirerek bir ata çevirmiştir. Oyuncu 1, ikinci atını kaybettiğinde üst
kıyafetini çıkarmak zorundadır çünkü kaybedilen toplam at sayısı iki olmuştur.
Şayet ardından oyuncu piyonlarından bir başkasını terfi ettirerek ata çevirirse
üst kıyafetini geri giyebilir.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Çevirmenin Notu&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Bu resmi belge, Ceribia ve Keri tarafından kaleme alınan “The Official Rules of
Strip Chess v1.1” başlıklı belgenin Türkçe çevirisidir ve 22-03-2013 tarihinde
&lt;a href=&quot;http://www.textfiles.com/uploads/stripchess.txt&quot;&gt;http://www.textfiles.com/uploads/stripchess.txt&lt;/a&gt;
adresinden alınmıştır. Çeviri hakkındaki görüşleriniz ve eleştirilerinizin,
&lt;strong&gt;ne kadar rezil olursa o kadar iyi olacağını düşünen&lt;/strong&gt; çevirmenin başının
üstünde yeri vardır.&lt;/p&gt;
</content>
 </entry>
 
 <entry>
   <title>İlhamımız Linux</title>
   <link href="https://alip.github.io/tr/blog/2013/03/23/ilhamimiz-linux/"/>
   <updated>2013-03-23T00:00:00+00:00</updated>
   <id>https://alip.github.io/tr/blog/2013/03/23/ilhamimiz-linux</id>
   <content type="html">&lt;p&gt;&lt;img src=&quot;/images/2013-03-23-ilhamimiz-linux.jpg&quot; alt=&quot;Brian Beck'in T-Shirt Tasarımı&quot; title=&quot;Neden mi? İşte!&quot; /&gt;&lt;/p&gt;

&lt;p&gt;Gördüğünüz resim Brian Beck tarafından tasarlanan ve &lt;a href=&quot;https://www.linux.com/news/featured-blogs/200-libby-clark/591582-announcing-the-finalists-in-our-2012-t-shirt-design-contest&quot;&gt;2012 yılı Linux T-Shirt
Tasarım Yarışması&lt;/a&gt;‘nda birincilik ödülünü alan t-shirt tasarımıdır. Tasarımda
kullanılan metnin çevirisi ise şöyledir:&lt;/p&gt;

&lt;blockquote&gt;
  &lt;p&gt;çünkü… dünyanın bilmesi gerekli… çünkü… TAKIM olmak, birlikte daha
fazlasını başarmaktır… çünkü… bir çocuğun teknolojiye ulaşabilmesi, asla
satın alma gücüne bağlı olmamalıdır… çünkü… bir seçeneğimiz var… çünkü…
annem bana paylaşmayı öğretti… çünkü… biz insanlar, açık kaynak
topluluğunun bireyleriyiz… çünkü… paylaşmak önemsemektir… çünkü…
özgürlüğe aşığız… çünkü… sizin işletim sisteminiz çok kısıtlayıcı…
çünkü… biz erken ve sık yayınlarız… çünkü… bazı insanlar açgözlülük ile
güdülenmemiştir… çünkü… daha az ile daha da fazlasını yapabileceğimize
inanıyoruz… çünkü… bir ateşi yakmak için sadece bir kıvılcım gereklidir…
çünkü… onlara balık tutmayı öğretirsem hayatları boyunca balık yerler…
çünkü… biz açık fikirliyiz… çünkü… yazılımlarımızı yasalar dahilinde
armağan edebiliriz… çünkü… daha çok insanın hayatını etkileyebiliriz…
çünkü… kafesteki bir kuş uzaklara uçamaz… çünkü… bizim de bir fikrimiz
var… çünkü… bir karşılık verebiliriz… çünkü patent canavarları çirkin ve
iğrenç yaratıklardır…&lt;/p&gt;
&lt;/blockquote&gt;

&lt;blockquote&gt;
  &lt;p&gt;Linux’tan esinlenmiştir.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;&lt;strong&gt;Çevirmenin Notu&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Resim ve metin, 23-03-2013 tarihinde
&lt;a href=&quot;https://www.linux.com/news/featured-blogs/200-libby-clark/591582-announcing-the-finalists-in-our-2012-t-shirt-design-contest&quot;&gt;https://www.linux.com/news/featured-blogs/200-libby-clark/605715-congratulations-to-our-t-shirt-design-contest-winners&lt;/a&gt;
adresinden alınmıştır. Çeviri hakkındaki görüşleriniz ve eleştirilerinizin,
&lt;strong&gt;daha güzel bir dünya için penguenlerle omuz omuza yürüyen&lt;/strong&gt; çevirmenin başının
üstünde yeri vardır.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Güncellemeler&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
  &lt;li&gt;23-03-2013: Metindeki küçük bir yazım hatası düzeltildi.&lt;/li&gt;
&lt;/ul&gt;

</content>
 </entry>
 
 <entry>
   <title>Açılış Kitaplarına Güvenmeyin</title>
   <link href="https://alip.github.io/tr/blog/2013/03/23/acilis-kitaplarina-guvenmeyin/"/>
   <updated>2013-03-23T00:00:00+00:00</updated>
   <id>https://alip.github.io/tr/blog/2013/03/23/acilis-kitaplarina-guvenmeyin</id>
   <content type="html">&lt;p&gt;Hatasız kitap yoktur elbette ancak satranç oynuyorsanız özellikle açılış
safhasında itimat ettiğiniz kitapların hatalı olmasının büyük sonuçları
olabilir. 19. yüzyılda yazılmış bir açılış kitabında böyle çarpıcı bir hataya
rastlamak mümkün. Kitap, Kabul Edilmeyen Vezir Gambiti’nin şu devam yolunu
veriyor:&lt;/p&gt;

&lt;div class=&quot;highlighter-rouge&quot;&gt;&lt;div class=&quot;highlight&quot;&gt;&lt;pre class=&quot;highlight&quot;&gt;&lt;code&gt;    1. d4 d5 2. c4 e6 3. Ac3 c5 4. Af3 cxd4 5. Axd4 e5 6. Adb5 d4 7. Ad5 Aa6
    8. Va4 Fd7 9. e3 Ae7
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;

&lt;p&gt;&lt;img src=&quot;/images/2013-03-23-acilis-kitaplarina-guvenmeyin.png&quot; alt=&quot;Kabul Edilmeyen Vezir Gambiti&quot; title=&quot;Ahanda mat!&quot; /&gt;&lt;/p&gt;

&lt;p&gt;Yazarlara göre ortaya çıkan konumda üstün olan taraf siyahlardır. Sizce de bu
biraz iyimser bir değerlendirme değil mi?&lt;/p&gt;
</content>
 </entry>
 
 <entry>
   <title>Biçimbilim</title>
   <link href="https://alip.github.io/tr/blog/2013/03/22/bicimbilim/"/>
   <updated>2013-03-22T00:00:00+00:00</updated>
   <id>https://alip.github.io/tr/blog/2013/03/22/bicimbilim</id>
   <content type="html">&lt;div style=&quot;float: center&quot;&gt;
  &lt;img src=&quot;/images/2013-03-22-bicimbilim.jpeg&quot; alt=&quot;Vladimir Nabokov'un Dönüşüm kitabı&quot; title=&quot;Gregor, sen garip böceksin&quot; /&gt;
&lt;/div&gt;

&lt;p&gt;Gördüğünüz resim Vladimir Nabokov’a ait olan &lt;strong&gt;Franz Kafka&lt;/strong&gt;‘nın yazdığı
&lt;strong&gt;Dönüşüm&lt;/strong&gt; kitabının ilk sayfasıdır. Böcekbilim eğitimi almış olan Nabokov,
Kafka’nın bu kısa romanına özel bir ilgi duymaktaydı. Aşağıdaki metin
Cornell’deki ders notlarından bir alıntıdır:&lt;/p&gt;

&lt;blockquote&gt;
  &lt;p&gt;Pekala, zavallı, köhne bir satış elemanı olan Gregor’un aniden dönüştüğü
‘haşarat’ tam olarak hangi türdendir? Böcekler, örümcekler, kırkayaklar ve
kabukluların dahil olduğu “eklembacaklılar” (Arthropoda) ailesinin bir üyesi
olduğu açıktır. … Sıradaki soru: Hangi böcek? Eleştirmenlerin hamamböceği
olduğunu ifade etmeleri açıkça mantık dışıdır. Hamamböceği yayvan şekilli uzun
bacaklı bir böcektir ancak Gregor kesinlikle böyle bir şekle sahip değildir:
hem karın hem de sırt tarafı dışbükey bir biçimdedir ve bacakları kısadır.
Hamamböceğine benzediği bir tek nokta vardır: rengi kahverengidir. Sadece bu
kadar. Bunun dışında, parçalara ayrılmış büyük, tümsek karnı ile sert,
yuvarlak sırtı kanatlı türleri andırmaktadır. Kınkanatlılarda bu tip
özellikler, küçük ve zayıf kanatlara işaret eder. Bu kanatlar açılarak
kınkanatlıyı hantal bir uçuşun sonrasında kilometrelerce uzağa taşıyabilir.
… Ayrıca, alt çene kemikleri güçlüdür. Çenesini, üçüncü arka ayak çiftinin
(küçük, güçlü bir çift arka ayak) üzerinde dik dururken kilitteki anahtarı
çevirmek için kullanır ve bu da bize gövde boyunun bir metre civarında
olduğunu gösterir. … Metnin Almanca aslında yaşlı hizmetçi kadın ona
seslenirken ‘bokböceği’ anlamına gelen &lt;strong&gt;Mistkafer&lt;/strong&gt; kelimesini kullanır. İyi
bir kadın olan hizmetçinin bu lakabı cana yakın olmak için kullandığı açıktır.
Gregor, teknik olarak bir bokböceği değildir. Sadece büyük bir kınkanatlıdır.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;“İşin ilginç yanı”, diye ekliyor Nabokov, “Böcek Gregor sırtını kaplayan sert
kabuğun altında bir çift kanadı olduğunu hiç öğrenemiyor. Bu, bana göre, hayatın
kıymeti adına yapılmış çok güzel bir gözlemdir. Bazı &lt;em&gt;Gregor&lt;/em&gt;lar, &lt;em&gt;Joe&lt;/em&gt;lar ve
&lt;em&gt;Jane&lt;/em&gt;ler kanatları olduğunun hiç farkına varmıyorlar.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Çevirmenin Notu&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Bu alıntı, &lt;em&gt;Futility Closet&lt;/em&gt; editörleri tarafından kaleme alınan “Morphology”
başlıklı yazının Türkçe çevirisidir ve 22-03-2013 tarihinde
&lt;a href=&quot;http://www.futilitycloset.com/2013/01/15/morphology/&quot;&gt;http://www.futilitycloset.com/2013/01/15/morphology/&lt;/a&gt;
adresinden alınmıştır. Çeviri hakkındaki görüşleriniz ve eleştirilerinizin,
&lt;strong&gt;kanatları olduğunun henüz yeni farkına varan&lt;/strong&gt; çevirmenin başının üstünde yeri
vardır.&lt;/p&gt;
</content>
 </entry>
 
 <entry>
   <title>Johnny Cash - Folsom Prison Blues</title>
   <link href="https://alip.github.io/tr/blog/2013/03/21/johnny-cash-folsom-prison-blues/"/>
   <updated>2013-03-21T00:00:00+00:00</updated>
   <id>https://alip.github.io/tr/blog/2013/03/21/johnny-cash-folsom-prison-blues</id>
   <content type="html">&lt;p&gt;&lt;strong&gt;Folsom Prison Blues&lt;/strong&gt;&lt;br /&gt;
&lt;em&gt;Johnny Cash&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;duyuyorum geldiğini trenin&lt;br /&gt;
raylarda delice giden&lt;br /&gt;
ve güneş ışığına hasretim&lt;br /&gt;
kim bilir ne zamandır&lt;br /&gt;
tıkılmışım folsom hapishanesine&lt;br /&gt;
ve zaman geçmek bilmiyor&lt;br /&gt;
ama gitmeye devam ediyor tren&lt;br /&gt;
ta san antone’a kadar&lt;/p&gt;

&lt;p&gt;daha ben bir bebekken&lt;br /&gt;
annem bana dedi ki, “oğlum,&lt;br /&gt;
iyi bir çocuk ol hep,&lt;br /&gt;
sakın oynama silahlarla”&lt;br /&gt;
ama birini vurdum reno’da&lt;br /&gt;
sadece ölüşünü izlemek için&lt;br /&gt;
duyduğumda trenin düdüğünü&lt;br /&gt;
başımı öne eğer ağlarım&lt;/p&gt;

&lt;p&gt;eminim yemek yiyen zenginler vardır&lt;br /&gt;
süslü bir yemek vagonunun içinde&lt;br /&gt;
ve kalın purolarını tüttürüyorlardır&lt;br /&gt;
ama hak ettiğimi biliyorum&lt;br /&gt;
özgür olamam biliyorum&lt;br /&gt;
ama o insanlar hayatlarını yaşıyorlar&lt;br /&gt;
ve bu bana ıstırap veriyor&lt;/p&gt;

&lt;p&gt;eğer bu hapishaneden kurtulsaydım&lt;br /&gt;
eğer o tren benim olsaydı&lt;br /&gt;
eminim uzaklara giderdim&lt;br /&gt;
tren yolu boyunca uzaklara&lt;br /&gt;
folsom hapishanesinden uzağa&lt;br /&gt;
ondan uzakta yaşamak istiyorum&lt;br /&gt;
ve bırakmak kendimi trenin düdüğüne&lt;br /&gt;
içimdeki &lt;em&gt;blues&lt;/em&gt;‘u uzaklara üflesin diye&lt;/p&gt;

&lt;iframe width=&quot;420&quot; height=&quot;315&quot; src=&quot;https://www.youtube.com/embed/i1xSt7iganA?rel=0&quot; frameborder=&quot;0&quot;&gt;
&lt;/iframe&gt;

&lt;p&gt;&lt;strong&gt;Çevirmenin Notu&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Bu şarkı sözleri, sözü ve müziği &lt;em&gt;Johnny Cash&lt;/em&gt;‘in olan &lt;em&gt;Folsom Prison Blues&lt;/em&gt;
şarkısına aittir ve 21-03-2013 tarihinde
&lt;a href=&quot;http://www.lyrics007.com/Johnny%20Cash%20Lyrics/Folsom%20Prison%20Blues%20Lyrics.html&quot;&gt;http://www.lyrics007.com/Johnny Cash Lyrics/Folsom Prison Blues Lyrics.html&lt;/a&gt;
adresinden alınmıştır. Çeviri hakkındaki görüşleriniz ve eleştirilerinizin,
&lt;strong&gt;kendini, tıkılı kaldığı şehirde tutsak hisseden&lt;/strong&gt; çevirmenin başının üstünde
yeri vardır.&lt;/p&gt;
</content>
 </entry>
 
 <entry>
   <title>Bebeğinize Okumayı Öğretmeyin</title>
   <link href="https://alip.github.io/tr/blog/2013/03/20/bebeginize-okumayi-ogretmeyin/"/>
   <updated>2013-03-20T00:00:00+00:00</updated>
   <id>https://alip.github.io/tr/blog/2013/03/20/bebeginize-okumayi-ogretmeyin</id>
   <content type="html">&lt;p&gt;&lt;strong&gt;Bebeğinize Okumayı Öğretmeyin&lt;/strong&gt;&lt;br /&gt;
&lt;em&gt;Marya Bloom&lt;/em&gt;&lt;br /&gt;
&lt;em&gt;CoEvolution Quarterly (Kış 1981)&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;Sevgili Stewart Brandt:&lt;/p&gt;

&lt;p&gt;Size &lt;em&gt;CoEvolution Quarterly&lt;/em&gt;‘nin sonbahar sayısına dahil ettiğiniz Lois
Britton’un kaleme aldığı, Glen Doman’ın &lt;strong&gt;Bebeğinize Okumayı Nasıl
Öğretirsiniz&lt;/strong&gt; (&lt;strong&gt;How to Teach Your Baby to Read&lt;/strong&gt;) başlıklı yazısı ile ilgili
incelemeyi eleştirmek için yazıyorum.&lt;/p&gt;

&lt;p&gt;Eski bir ilkokul öğretmeni olarak okuma mevzusunun üstünde çok durmamızın
çocuklara verdiği zarar konusunda bilgiye sahibim. Çocukların büyük çoğunluğu üç
ve sekiz yaşları arasında, insanın konuşmaya olan dürtüsünün doğal bir uzantısı
olarak, okuma ve yazmaya hazır oldukları ciddi bir döneme girer. Bu hazır oluşa
uygun davranmanın yolu okumaya uygun bir bakış açısıyla yaklaşarak öğretmenin
rolünü cana yakın olacak şekilde en aza indirgemektir. Çocuğu okumayı sökmesi
için acele ettirmek (dersler ne kadar kısa, öğretmen ne kadar cana yakın ve
çocuk ne kadar hevesli olursa olsun) hem çocuğu hem de okuma eylemini hor
görmektir.&lt;/p&gt;

&lt;p&gt;Benim için 15 aylık bir çocuğun okumayı söktüğünü görmek şaşırtıcı değildir. 15
aylık çocuklar parlak zekalıdır ve zekice (ve çoğu kez hatalı da olsa) günün her
dakikasında etraflarındaki dünyaya anlam vermeye uğraşırlar. Piaget’in ifade
ettiği gibi düşünsel anlayış gelişime bağlıdır. Çocukların sözsel yetenekleri,
taklit becerileri ve sosyal ustalıkları, bizleri (farkına vardığımız anlarda)
sık sık şaşırtan ve hoşnut eden karmaşaları gizlemektedir. Bu karmaşalar, çocuk
adamakıllı konuşmaya başlamadan önce okumayı sökmesi istendiğinde katlanarak
artmaktadır.&lt;/p&gt;

&lt;p&gt;Bayan Britton’un örneğini ele alalım. 15 aylık oğlu, 10 kiloluk bir “Friskies
okyanus aromalı kedi maması” paketine bakıp “Balık” kelimesini okuyor. Çocuğun
evinde kedi olmadığını ve (daha az muhtemel olsa da) televizyondaki Friskies
reklamlarını izlemediğini varsayalım. Bu açık renkli tepenin aslında bir kese
kağıdı olduğunu fark edebilir miydi? Peki ya açılabileceğini ve içinde bir
şeylerin olduğunu? Aklına bir balık gelir miydi? Paketin içinde yüzen bir
balığın olduğunu mu düşünürdü? “Balık Aromalı” yazısının, çuvalın içinde ne
olduğunu anlamak için etiketin geri kalanını okuması gerektiği anlamına
geldiğini idrak eder miydi?&lt;/p&gt;

&lt;p&gt;Bayan Britton otobanda araba kullanırken henüz bir yaşındaki çocuğunun yol
kenarında duran 10 metre uzunluğundaki &lt;em&gt;“KOOL”&lt;/em&gt; marka sigara reklamlarına bakıp
sigara içmenin havalı, mantıklı ve doğru bir şey olduğunu düşünmesini mi
istiyor? 5 yaşındaki bir çocuğun dahi bize okudukları hakkında yönelttiği
soruları yanıtlamak zordur. 2 yaşındaki bir çocuğun ise doğru ve yanlış
reklamlar hakkında bir ayırım yapmasına imkan yoktur; doğruluğun ve yanlışlığın
ne olduğunu henüz anlayabilecek yaşta değildir. Merak ettiği soruları açık bir
şekilde ifade etmesinin bir yolu yoktur.&lt;/p&gt;

&lt;p&gt;Bir çocuk okur-yazar hale geldiğinde, artık geriye dönüş imkansızdır.  Bir
müzenin içinde gezinin. Okur-yazar yetişkinlerin, neyi göreceklerinden emin
olmak için, tablolardan önce, bu tabloların altındaki tanıtıcı kartları
okuduklarını göreceksiniz. Hatta, sadece kartları okuyup, tabloları tamamen es
geçmelerine bile tanık olabilirsiniz… Okuma-yazma öğrenme kitaplarında da
belirtildiği gibi, okuma kişinin önüne çeşitli kapılar açar. Ne var ki, bu
kapılar bir kez açıldığında, bu kapılardan bakmaksızın dünyayı görmek neredeyse
imkansız hale gelir. Ve çocukluğun fotoğrafsı anıları ile sözsel anlatımını geri
getirmenin bir yolu yoktur.&lt;/p&gt;

&lt;p&gt;Doman’ın yazısıyla alakalı önemli bir sorun daha vardır ve bu sorun
ebeveyn-çocuk ilişkisi ile ilgili olup ebeveynin kendi rolünü tanımlaması ve
anlamasında yatar. Çocuklarımıza bir şeyler öğretmemiz kaçınılmazdır. Çoğu kez
kızımın benden bir şeyler öğrenmeyi bırakarak daha iyi bir model seçmesini
dilerim. Genellikle bizim onlara öğrettiğimizi düşündüklerimiz ile onların
aslında öğrendikleri arasında farklar vardır. Okumayı 5 yaşında söken bir çocuk,
hazır olduğunu hissederek kendi rızasıyla bunu yapar. Okuma öğretilen bir bebek
ise okumayı bunun annesine vereceği zevk yüzünden öğrenir. Sevgiyi bu şekilde
kullanmak büyük bir sorumluluktur. Britton’un çocuğunun başarısından aldığı haz
açıkça üzücüdür. Çocuk için okumaya orantısız bir önem verilmiştir ve bu,
gelecekte, ebeveyn-çocuk ilişkilerinin kızıştığı zamanlarda ters tepebilir.
Komşusunun kıskanarak izlediği Britton’un çocuğuna asıl öğrettiği şey ise kendi
güvensizliği ve çocuğunun gelişimsel bütünlüğünü kabul edemeyişidir; kendi
güven eksikliğini çocuğuna taşımaktadır.&lt;/p&gt;

&lt;p&gt;2 yaşında bir çocuk annesi olarak çocuğuma bir şeyler öğretmekten kaçınmayı bir
şeyler öğretmeye göre daha zor buluyorum. Kendi kitaplarımı sevdiğim gibi onun
kitaplarını da seviyorum ve ona kitap okumak benim için bir huzur ve neşe
kaynağı. Daha çok çaba gerektirse de nihayetinde dünyayı onun gözlerinden
görmeye çalışmak ona dünyayı benim gözlerimden görmesine “yardım” etmekten daha
tatmin edici. Bu karışık ve genellikle zor dönemlerde küçük çocuğun kendi
kaynaklarını korumak önemlidir; onu yazılı değil gerçek olan dünyanın içine
sokmak; yazılı kelimeleri öğretmeden önce sözsel anlatımı öğretmek;
aceleciliğimiz yüzünden onları zorlamak yerine hazır olup olmadıklarını anlamaya
çalışmak. Çocuklar zaten çok hızlı büyürler ve bizler de aynı şekilde
yaşlanıyoruz.&lt;/p&gt;

&lt;p&gt;&lt;em&gt;CoEvolution Quarterly&lt;/em&gt;‘nin uzun zamandır sıkı bir takipçisiyim ve sizlerden
birçok şey öğrendim. Ancak ebeveynlik ve çocuk yetiştirme konusunda &lt;em&gt;Parent’s
Magazine&lt;/em&gt;‘in durduğu yere yakın duruyorsunuz. Bu konu, hasta olduğumuzda çare
aramak konusundan daha detaylı olmakla birlikte en az güneş enerjisi ile ısınma
gibi konular kadar önemlidir.&lt;/p&gt;

&lt;p&gt;En içten dileklerimle,&lt;br /&gt;
Mayra Bloom&lt;br /&gt;
Nyack, New York&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Çevirmenin Notu&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Bu metin, Mayra Bloom’un &lt;em&gt;CoEvolution Quarterly&lt;/em&gt; dergisinin editörü Stewart
Brandt’a yazdığı ve derginin 1981 Kış sayısında yayımlanan mektubunun
çevirisidir. Çeviri hakkındaki görüşleriniz ve eleştirilerinizin, &lt;strong&gt;bilinçli
varlıkların üremesinin mantıklı olup olmadığı konusunda derin şüpheleri olan&lt;/strong&gt;
çevirmenin başının üstünde yeri vardır.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Güncellemeler&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
  &lt;li&gt;20-03-2013: Glenn Doman’ın yazısının başlık çevirisi düzeltildi.&lt;/li&gt;
  &lt;li&gt;21-03-2013: Altıncı paragrafta yer alan bir yazım hatası düzeltildi.&lt;/li&gt;
&lt;/ul&gt;
</content>
 </entry>
 
 <entry>
   <title>İnsan Kendi Dedesi Olabilir</title>
   <link href="https://alip.github.io/tr/blog/2013/03/19/insan-kendi-dedesi-olabilir/"/>
   <updated>2013-03-19T00:00:00+00:00</updated>
   <id>https://alip.github.io/tr/blog/2013/03/19/insan-kendi-dedesi-olabilir</id>
   <content type="html">&lt;div style=&quot;float: left&quot;&gt;
  &lt;img src=&quot;/images/2013-03-19-insan-kendi-dedesi-olabilir.png&quot; alt=&quot;İnsan kendi dedesi olabilir&quot; title=&quot;Dedem kim lan benim?&quot; /&gt;
&lt;/div&gt;

&lt;p&gt;&lt;em&gt;The World of Wonders, 1883&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;“Hikayenin kahramanları &lt;em&gt;Anne&lt;/em&gt; adlı bir dul kadın, kızı &lt;em&gt;Jane&lt;/em&gt; ile &lt;em&gt;George&lt;/em&gt;
isimli bir adam ve oğlu &lt;em&gt;Henry&lt;/em&gt;‘dir. Dul kadın adamın oğluyla, kız ise adam ile
evlenir. Dolayısıyla dul kadın, kocasının babasının (kayın) annesi ve kendi
kocasının ise büyük annesi olur. Kadının bu kocasından &lt;em&gt;David&lt;/em&gt; isimli bir oğlu
olur. Kadın aynı zamanda çocuğunun büyük büyük annesidir. Bir büyük büyük
annenin çocuğu ise annesinin büyük büyük annesi olduğu kişinin ya büyük babası
ya da büyük amcası/dayısıdır. Ancak &lt;em&gt;Anne&lt;/em&gt;, &lt;em&gt;David&lt;/em&gt;‘in büyük büyük annesidir.
Yani &lt;em&gt;David&lt;/em&gt; kendisinin dedesidir.”&lt;/p&gt;

&lt;p&gt;&lt;em&gt;Hood’s Magazine (1846)&lt;/em&gt; şöyle ekler: “Bu durum Norwich’te bir okulda okuyan bir
çocuk için gerçekten de doğrudur.”&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Çevirmenin Notu&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Bu kısa metin, &lt;em&gt;Futility Closet&lt;/em&gt; editörleri tarafından kaleme alınan “Proof That
a Man Can Be His Own Grandfather” başlıklı yazının Türkçe çevirisidir ve
19-03-2013 tarihinde
&lt;a href=&quot;http://www.futilitycloset.com/2009/05/06/proof-that-a-man-can-be-his-own-grandfather/&quot;&gt;http://www.futilitycloset.com/2009/05/06/proof-that-a-man-can-be-his-own-grandfather/&lt;/a&gt;
adresinden alınmıştır. Çeviri hakkındaki görüşleriniz ve eleştirilerinizin,
&lt;strong&gt;dedelerini görme şansı yakalayamadığı için kendi dedesi olmayı bir hayat amacı
edinen&lt;/strong&gt; çevirmenin başının üstünde yeri vardır.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Güncellemeler&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
  &lt;li&gt;22-03-2013: Resim ve çevirmenin notu eklendi.&lt;/li&gt;
&lt;/ul&gt;
</content>
 </entry>
 
 <entry>
   <title>Çağdaş Düzyazı için İnanç ve Teknik</title>
   <link href="https://alip.github.io/tr/blog/2013/03/19/cagdas-duzyazi-icin-inanc-ve-teknik/"/>
   <updated>2013-03-19T00:00:00+00:00</updated>
   <id>https://alip.github.io/tr/blog/2013/03/19/cagdas-duzyazi-icin-inanc-ve-teknik</id>
   <content type="html">&lt;p&gt;&lt;strong&gt;Çağdaş Düzyazı için İnanç ve Teknik&lt;/strong&gt;&lt;br /&gt;
&lt;em&gt;Jack Kerouac&lt;/em&gt;&lt;/p&gt;

&lt;ol&gt;
  &lt;li&gt;Kendi zevkin için gizli karalama defterleri ve daktiloyla hoyratça yazılmış sayfalar&lt;/li&gt;
  &lt;li&gt;Herkese karşı alçakgönüllü, açık ve herkesi dinleyen&lt;/li&gt;
  &lt;li&gt;Kendi evinin dışında sarhoş olmamaya çalış&lt;/li&gt;
  &lt;li&gt;Hayatına aşk ile bağlı ol&lt;/li&gt;
  &lt;li&gt;Hissettiğin şeyler kendi biçimini bulacaktır&lt;/li&gt;
  &lt;li&gt;Aklına yararlı olmak için çılgın, dilsiz bir aziz ol&lt;/li&gt;
  &lt;li&gt;Düşebildiğin kadar derine düş&lt;/li&gt;
  &lt;li&gt;Ne istiyorsan onu, zihninin en derininden getirerek sınırsızca yaz&lt;/li&gt;
  &lt;li&gt;Bireyin kelimelerle anlatılamaz önsezileri&lt;/li&gt;
  &lt;li&gt;Şiir için zaman yoksa ne için var ki&lt;/li&gt;
  &lt;li&gt;Göğsünü titreten hayalperest çarpıntılar&lt;/li&gt;
  &lt;li&gt;Kendinden geçmiş bir hareketsizlikle karşında duran nesneyi düşlemek&lt;/li&gt;
  &lt;li&gt;Yazınsal, dilbilgisel ve sözdizinsel engelleri kaldır&lt;/li&gt;
  &lt;li&gt;
    &lt;p&gt;Proust gibi döneminin bunak bir ayyaşı ol&lt;/p&gt;
  &lt;/li&gt;
  &lt;li&gt;Dünyanın gerçek hikayesini içsel monolog ile anlatmak&lt;/li&gt;
  &lt;li&gt;İlginin kıymetli merkezi gözün içindeki gözdür&lt;/li&gt;
  &lt;li&gt;Kendini hatırlayarak ve gönlünü eğlendirerek yaz&lt;/li&gt;
  &lt;li&gt;Keskin üçüncü gözünden yola çık, dil denizlerinde yüzen&lt;/li&gt;
  &lt;li&gt;Sonsuza dek yenilgiyi kabul et&lt;/li&gt;
  &lt;li&gt;Yaşamın yüceliğine inan&lt;/li&gt;
  &lt;li&gt;Zihinde eksiksiz var olan akıntının taslağını çizmek için uğraş&lt;/li&gt;
  &lt;li&gt;Takıldığında kelimeleri düşünme, resmi daha iyi görmeye çalış&lt;/li&gt;
  &lt;li&gt;Sabahında yüceltilmiş her günün, tarihin farkında ol&lt;/li&gt;
  &lt;li&gt;Tecrübenin, dilinin ve bilginin yaratacağı itibardan korku veya utanç duyma&lt;/li&gt;
  &lt;li&gt;Dünyanın okuması için ve onu nasıl hayal ettiğini görmesi için yaz&lt;/li&gt;
  &lt;li&gt;Kitap filmi kelimelerin filmidir, görsel Amerikan biçimi&lt;/li&gt;
  &lt;li&gt;Kasvetli, acımasız yalnızlığın kişiliğine olan övgü&lt;/li&gt;
  &lt;li&gt;Vahşi, disiplinsiz, saf, içinden gelerek, ne kadar çılgın olursa o kadar iyi&lt;/li&gt;
  &lt;li&gt;Tüm zamanların dahisi sensin&lt;/li&gt;
  &lt;li&gt;Cennetin sponsorluğunda melekleştirilen dünyevi filmlerin yazarı ve yönetmeni&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;&lt;strong&gt;Çevirmenin Notu&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Bu metin, Jack Kerouac tarafından kaleme alınan “Belief &amp;amp; Technique for Modern
Prose” başlıklı yazının çevirisidir ve 19-03-2013 tarihinde
&lt;a href=&quot;http://www.writing.upenn.edu/~afilreis/88/kerouac-technique.html&quot;&gt;http://www.writing.upenn.edu/~afilreis/88/kerouac-technique.html&lt;/a&gt;
adresinden alınmıştır. Çeviri hakkındaki görüşleriniz ve eleştirilerinizin,
&lt;strong&gt;kalbinin bir köşesinde çiçek çocuklarıyla çırılçıplak koşmakta olan&lt;/strong&gt; çevirmenin
başının üstünde yeri vardır.&lt;/p&gt;
</content>
 </entry>
 
 <entry>
   <title>Bir Programı Akılda Tutmak</title>
   <link href="https://alip.github.io/tr/blog/2013/03/18/bir-programi-akilda-tutmak/"/>
   <updated>2013-03-18T00:00:00+00:00</updated>
   <id>https://alip.github.io/tr/blog/2013/03/18/bir-programi-akilda-tutmak</id>
   <content type="html">&lt;p&gt;&lt;strong&gt;Bir Programı Akılda Tutmak&lt;/strong&gt;&lt;br /&gt;
&lt;em&gt;Paul Graham&lt;/em&gt;&lt;br /&gt;
Ağustos 2007&lt;/p&gt;

&lt;p&gt;Tıpkı bir matematikçinin çözmeye çalıştığı bir problemi aklında tutması gibi
kendi yazdığı bir program üzerinde yoğun olarak çalışmakta olan iyi bir
programcı da bu programı aklında tutabilir. Matematikçiler, okulda çocuklara
öğretilenin aksine sorulara kağıt kalem ile çözüm aramazlar. Zihinlerinde daha
fazlasını yaparlar: problemi etraflıca anlamaya çalışıp böylece tıpkı sizin
büyüdüğünüz evin hatıraları arasında gezinebileceğiniz gibi bu problem uzayında
dolaşabilirler. Uygun hallerde programcılık da bu şekildedir. Bütün programı
aklınızda tutar, onu dilediğiniz şekilde işlersiniz.&lt;/p&gt;

&lt;p&gt;Bu özellikle bir projenin başlangıç aşamasında önemlidir çünkü öncelikle en
önemli olan şey yaptığınızı değiştirebilmektir. Problemi farklı bir yolla
çözmenin yanı sıra çözdüğünüz problemi de değiştirmek.&lt;/p&gt;

&lt;p&gt;Yazmakta olduğunuz kod, keşfetmekte olduğunuz problemi anlayışınızı yansıtır.
Dolayısıyla ancak bu kod zihninizde bir yer edindiğinde gerçekten problemi
anlamışsınız demektir.&lt;/p&gt;

&lt;p&gt;Bir programın zihninizde yer etmesi kolay değildir. Bir projeye birkaç ay
boyunca ara verirseniz geri döndüğünüzde onu tekrar anlamanız günlerinizi
alabilir. Program üzerinde etkin olarak çalıştığınız zamanlarda bile her gün
çalışmaya başlarken onu zihninize yüklemeniz yarım saatinizi alabilir.&lt;/p&gt;

&lt;p&gt;En iyi programcılar dahi her zaman üzerinde çalıştıkları programın tümünü
zihinlerinde taşımazlar. Ancak yapabileceğiniz birkaç şey işinizi
kolaylaştırabilir:&lt;/p&gt;

&lt;ol&gt;
  &lt;li&gt;
    &lt;p&gt;&lt;strong&gt;Dikkatinizin dağılmasını önleyin.&lt;/strong&gt; Dikkat dağınıklığı, çeşitli birçok iş
için kötü olmasının yanı sıra program yazarken özellikle kötüdür çünkü
programcılar ancak üstesinden gelebilecekleri seviye ölçüsünde detaylı
çalışabilirler.&lt;/p&gt;

    &lt;p&gt;Dikkat dağınıklığının yol açtığı risk, ne kadar sürdüğüne değil
aklınızı ne kadar karıştırdığına bağlıdır. Bir programcı zihnindeki kodu
unutmadan ofisinden ayrılarak bir sandviç alıp gelebilir. Ancak yanlış tipte
bir kesinti 30 saniyede zihninizi boşaltabilir.&lt;/p&gt;

    &lt;p&gt;İşin tuhaf tarafı ise planlı oyalanmaların planlı olmayanlara göre daha kötü
olabilmesidir. Şayet bir saat sonra bir toplantınız varsa meşakatli bir şey
üzerinde çalışmaya başlamazsınız bile.&lt;/p&gt;
  &lt;/li&gt;
  &lt;li&gt;
    &lt;p&gt;&lt;strong&gt;Çalışmalarınızı uzun zamanlara yayın.&lt;/strong&gt; Program üzerinde çalışmaya her
başladığınızda belirli bir çaba harcamak zorunda olduğunuzu dikkate alırsak
çalışmanızı birçok kısa oturum yerine birkaç uzun oturuma bölmeniz daha
verimli olacaktır. Elbette yorulduğunuz için saçmalamaya başladığınız anlar
gelecektir. Bu zaman dilimi kişiden kişiye değişir. 36 saat boyunca durmadan
program yazabilen insanlar olduğunu duydum fakat benim altından kalkabildiğim
en uzun süre 18 saattir ve işimi 12 saati geçmeyen zaman dilimlerine böldüğüm
zaman aldığım verim en üst düzeyde oluyor.&lt;/p&gt;

    &lt;p&gt;İdeal olanı ise fiziksel olarak kaldırabileceğiniz limit değildir. Bir
projeyi parçalara ayırmanın yararlarının yanı sıra bedelleri de vardır. Bazen
dinlendikten sonra bir probleme geri döndüğünüzde bilinçaltınızın sizin için
bir cevap bulduğunu görürsünüz.&lt;/p&gt;
  &lt;/li&gt;
  &lt;li&gt;
    &lt;p&gt;&lt;strong&gt;Kısa ve öz olan programlama dilleri kullanın.&lt;/strong&gt; Programlama dili ne kadar
güçlüyse yazılan programlar da o denli kısa olur. Ve programcılar yazdıkları
programı kısmen de olsa yazdıkları dilin çerçevesinde düşünürler. Dilin ifade
gücü ne denli yüksekse program da o kadar kısa olur ve zihninize yükleyerek
hatırda tutmanız da o kadar kolay olur.&lt;/p&gt;

    &lt;p&gt;Alttan üste diye tabir edilen programlama tarzıyla yazdığınız programı alt
katmanların üst katmanlar için bir programlama dili vazifesi göreceği birçok
parçaya bölebilirsiniz. Bunu doğru yapabilirseniz sadece en üstteki katmanı
aklınızda tutmanız yeterli olacaktır.&lt;/p&gt;
  &lt;/li&gt;
  &lt;li&gt;
    &lt;p&gt;&lt;strong&gt;Programınızı yeniden yazmaktan vazgeçmeyin.&lt;/strong&gt; Programı yeniden yazmak
sıklıkla daha sade bir tasarım üretmenizi sağlar. Böyle bir tasarım ortaya
çıkmasa da yeniden yazmanın yararları vardır: bir programı yeniden yazmak
için onu bütünüyle anlamalısınız. Yani programı zihninize yüklemenin daha iyi
bir yolu yoktur.&lt;/p&gt;
  &lt;/li&gt;
  &lt;li&gt;
    &lt;p&gt;&lt;strong&gt;Yeniden okunabilir kod yazın.&lt;/strong&gt; Her programcı okunabilir kod yazmanın iyi
olduğunu bilir. Ancak en önemli okuyucunun kendiniz olduğunu unutmayın.
Özellikle başlangıçta; programın ön modeli kendinizle yaptığınız bir
söyleşiden ibarettir. Başkaları için yazıyorsanız kodun anlaşılmasının güç
olmamasına özen gösterebilirsiniz. Programın belli bölümleri geniş
tutulduğunda tıpkı başlangıç seviyesinde bir ders kitabı gibi okuması kolay
hale gelir. Bununla birlikte eğer zihninize yüklenmesi kolay olacak şekilde
kod yazmak istiyorsanız kısa ve öz olmak en iyi tercih olabilir.&lt;/p&gt;
  &lt;/li&gt;
  &lt;li&gt;
    &lt;p&gt;&lt;strong&gt;Küçük gruplar halinde çalışın.&lt;/strong&gt; Zihninizde bir programla oynarken ufkunuz
kendi yazdığınız kodun sınırlarının sonuna kadardır. Diğer kısımları ise
anlamıyor ve daha da önemlisi üzerilerinde serbestçe oynamalar yapamıyor
olabilirsiniz. Dolayısıyla programcıların sayısı ne kadar azsa proje de o
denli eksiksiz evrilebilir. Eğer sadece bir programcı varsa - başlarken
neredeyse hep böyledir - projeyi bütünüyle yeniden tasarlayabilirsiniz.&lt;/p&gt;
  &lt;/li&gt;
  &lt;li&gt;
    &lt;p&gt;&lt;strong&gt;Birden fazla kişi aynı anda aynı kodu değiştirmesin.&lt;/strong&gt; Başkalarının yazdığı
kodu hiçbir zaman kendinizinkiler kadar iyi anlayamazsınız. Ne kadar dikkatli
okursanız okuyun sadece okumuş olursunuz, yazmış olmazsınız. Yani bir kod
parçası birden fazla yazar tarafından yazıldıysa hiçbiri kodu tek bir yazarın
anlayacağı kadar iyi anlayamaz.&lt;/p&gt;

    &lt;p&gt;Ve elbette diğer insanların üzerinde çalıştıkları bir şeyi kolayca yeniden
tasarlayamazsınız. İzin istemeniz gerekeceğinden değil böyle şeyleri yapmayı
düşünmekten bile kendinizi alıkoyduğunuz için bunu yapmazsınız. Birden fazla
yazarı olan kodu değiştirmek yasaları değiştirmeye benzer; yalnız kendi
kontrolünüzde olan kodu yeniden tasarlamak ise çok anlamlı bir resmi farklı
bir biçimde yorumlamak gibidir.&lt;/p&gt;

    &lt;p&gt;Eğer birden fazla kişiyi bir projede çalıştırmak istiyorsanız projeyi
bölümlere ayırın ve her bölümü bir kişiye verin.&lt;/p&gt;
  &lt;/li&gt;
  &lt;li&gt;
    &lt;p&gt;&lt;strong&gt;Kolay işlerle başlayın.&lt;/strong&gt; Bir programa aşina oldukça onu zihninizde
tutmanız da kolaylaşacaktır. Henüz bütünüyle keşfetmediğiniz bölümleri kara
kutu gibi görmekle başlayabilirsiniz. Ancak ilk kez bir proje üzerinde
çalışmaya başlıyorsanız her şeyi görmeye mecbursunuz. Çözmek için gereğinden
büyük bir problem ile işe başlarsanız bu problemi hiçbir zaman bütünüyle
çözemeyebilirsiniz. Dolayısıyla eğer büyük, karmaşık bir program yazmak
zorundaysanız işe başlamanın en iyi yolu program için bir tanımlama yazmaktan
ziyade problemin sadece belli bir kısmını çözen öncül bir model yazmaktır.
Plan yapmak yararlı olsa da çoğu kez programı zihninizde tutabilmenin
getirdiği yararlar daha ağır basar.&lt;/p&gt;
  &lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;Programcıların sıklıkla bu sekiz noktaya rastlantı sonucu ulaşmaları çarpıcıdır.
Bir programcının aklına yeni bir proje fikri gelir fakat resmi olarak
onaylanmadığı için bu proje üzerinde boş vakitlerinde çalışmak durumunda kalır
ve bu durum dikkatini daha az dağıttığı için daha üretken olmasına yol açar.
Yeni bir projeye başlamanın verdiği coşku ile uzun saatler boyunca çalışır.
Başlangıçta bir deneyden ibaret olduğu için bir “üretim” dilinden ziyade aslında
daha güçlü olan bir “betik” dili kullanır. Programı defalarca yeniden yazar;
resmi bir projede bu mazur görülemez olsa da bu bir aşk işidir ve onun mükemmel
olmasını ister. Ve kendinden başka kimse görmeyeceği için kendi için yazdığı
notlardan başka herhangi bir açıklama yazmaz. Belki bu fikri başkasına henüz
açmadığından belki de başkalarının program üzerinde çalışmasına izin
vermeyişinin projeyi gelecek vadetmeyen bir proje gibi göstermesinden, çaresiz
sadece küçük bir grup ile çalışır. Bir grup olsalar bile aynı anda aynı kodu
değiştirmezler çünkü kod bunu mümkün kılamayacak seviyede hızlı gelişmektedir.
Ve proje küçük işlerle başlar çünkü fikir başlangıçta basittir; sadece denemek
istediği havalı bir hack.&lt;/p&gt;

&lt;p&gt;Daha da çarpıcı olan bütün bu sekiz noktayı da yanlış yapan resmi izinli
projelerin sayısıdır. Gerçekten de çoğu kurumda yazılımların nasıl yazıldığına
bakarsanız sanki bunları özellikle yanlış yapmaya çalışmaktadırlar. Aslında bir
anlamda da öyledir. Bireyleri değiştirilebilir parçalar olarak görmek kurumların
miladından bu yana onları tanımlayan özelliklerden biri olagelmiştir. Bu
yaklaşım daha çok paralelleştirilebilen görevler için işe yarar, örneğin bir
savaşta çarpışmak gibi. Tarih boyunca profesyonel askerlerden oluşan ordular,
yiğit, bireysel savaşçılardan oluşan ordular üzerinde üstünlük sağlamıştır.
Ancak bir fikir sahibi olmak pek de paralelleştirilebilir değildir. Ve
programlar da aslında fikirlerin bir yansımasıdır.&lt;/p&gt;

&lt;p&gt;Kurumların bireysel dahilere bel bağlamaktan hoşlanmadığı doğru olduğu gibi
bahsedileni ifade etmenin farklı bir yoludur. Bu tavır kurum olma tanımının bir
parçasıdır. En azından şimdiki kurum kavramımız için.&lt;/p&gt;

&lt;p&gt;Belki de bireylerin çabalarını, onların değiştirilebilir olmalarını
gerektirmeden, birleştiren yeni bir kurum çeşidi tanımlayabiliriz. Tartışmaya
açık olsa da pazar bu tip bir yapıdır. Yine de pazarı bozulmuş bir durumun
sonucu olarak tanımlamak daha doğru olacaktır zira bir kurum oluşturmanın mümkün
olmadığı noktada önümüze çıkan şey odur.&lt;/p&gt;

&lt;p&gt;Belki de yapılabilecek en iyi şey bir çeşit cinlik yaparak kurumun program yazan
parçalarının diğerlerine göre farklı çalışmalarını sağlamaktır. Belki büyük
şirketler için en iyi çözüm fikir geliştirmeye çalışmak yerine fikir satın
almaktır. Çözüm ne olacaksa olsun, ilk adım bir sorun olduğunu kabul etmektir.
“Yazılım şirketi” ifadesinde bile bir çelişki vardır. İki kelime farklı yönleri
göstermektedir. Büyük bir kurumun içindeki her iyi programcı kurumla itilaf
halinde olacaktır zira kurumlar programcıların arzuladıkları şeyleri
engelleyecek şekilde tasarlanmıştır.&lt;/p&gt;

&lt;p&gt;Her şeye rağmen iyi programcılar iyi bir iş çıkarmayı başarıyorlar. Ancak bu,
çoğu kez kendilerini işe alan kuruma karşı pratik olarak isyankar sayılabilecek
bir tavır takınmalarını gerektirir. Programcıların yaptıkları işin gerektirdiği
gibi davranmaya çalıştıklarını daha fazla insanın anlaması belki işe
yarayabilir.  Uzun süreler boyunca hiçbir zorunluluğu kafaya takmadan
çalışmaları, başlangıçta herhangi bir tanımlama yazmadan hemen programlamaya
girişmeleri ve zaten çalışmakta olan bir kodu yeniden yazmaları
sorumsuzluklarından değildir. Yalnız çalışmayı tercih etmeleri ve geçerken selam
veren insanlara hayıflanmaları arkadaş canlısı olmadıklarından değildir. Bu
gelişigüzel görünen rahatsız edici alışkanlıklar bütü&lt;span style=&quot;color:#f5a2c6&quot;&gt;n&lt;/span&gt;&lt;span style=&quot;color:#23af4c&quot;&gt;ü&lt;/span&gt;&lt;span style=&quot;color:#fba919&quot;&gt;n&lt;/span&gt;&lt;span style=&quot;color:#ff5356&quot;&gt;ü&lt;/span&gt;
n tek bir
açıklaması vardır: programı zihinde tutma gayreti.&lt;/p&gt;

&lt;p&gt;Bunu anlamak büyük kurumlara yardım eder mi bilinmez ama rakiplerine yardım
edeceği kesin. Büyük şirketlerin en zayıf noktası bireysel programcılara
muhteşem işler çıkarma şansını tanımamalarıdır. İşe yeni başlıyorsanız onları
eleştireceğiniz nokta bu olmalıdır. Bir büyük beyin tarafından çözülmesi gereken
sorunlar üzerine yoğunlaşın.&lt;/p&gt;

&lt;p&gt;Sam Altman, David Greenspan, Aaron Iba, Jessica Livingston, Robert
Morris, Peter Norvig, Lisa Randall, Emmett Shear, Sergei Tsarev, and Stephen
Wolfram’a bu yazının taslağını okudukları için teşekkür ederim.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Çevirmenin Notu&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Bu metin, Paul Graham tarafından yazılan “Holding a Program In One’s Head”
başlıklı yazının Türkçe çevirisidir ve 18-03-2013 tarihinde
&lt;a href=&quot;http://www.paulgraham.com/head.html&quot;&gt;http://www.paulgraham.com/head.html&lt;/a&gt;
adresinden alınmıştır. Çeviri hakkındaki görüşleriniz ve eleştirilerinizin,
&lt;strong&gt;bir programı aklında tutmak şöyle dursun, dostlarının yüzlerini bile unutmaya
başlayan&lt;/strong&gt; çevirmenin başının üstünde yeri vardır.&lt;/p&gt;
</content>
 </entry>
 
 <entry>
   <title>İlkelciliğe Karşı Sık Yapılan 5 İtiraz</title>
   <link href="https://alip.github.io/tr/blog/2013/03/15/ilkelcilige-karsi-sik-yapilan-5-itiraz/"/>
   <updated>2013-03-15T00:00:00+00:00</updated>
   <id>https://alip.github.io/tr/blog/2013/03/15/ilkelcilige-karsi-sik-yapilan-5-itiraz</id>
   <content type="html">&lt;p&gt;&lt;strong&gt;İlkelciliğe Karşı Sık Yapılan 5 İtiraz&lt;/strong&gt;&lt;br /&gt;
&lt;strong&gt;ve Neden Yanlış Olduklarına Dair&lt;/strong&gt;&lt;br /&gt;
&lt;em&gt;Jason Godesky&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;1. İlkelcilerin çağdaş teknolojiyi kullanmaları ikiyüzlülük değil midir? Şayet
ilkelce yaşamayı bu denli çok istiyorlarsa neden ormanlara kaçıp istedikleri
gibi yaşamıyorlar?&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;İlkelcilerin hepsi özünde teknolojiye karşı değildir. Birçok ilkelci
teknolojinin belirsiz bir doğası ve önemi olduğu görüşünü savunurlar. Tüm
“ilkel” toplumlarda teknolojiye belli ölçülerde rastlamak mümkündür, dolayısıyla
kabul edilebilir bir teknolojik düzeyin varlığı aşikardır. İlkelciler arasında
bu düzeyin ne olduğu konusunda büyük anlaşmazlıklar vardır. Ancak hepsinin kabul
ettiği nokta bahsedilen düzeyin günümüzdeki teknolojik düzey olmadığıdır. Evet,
teknolojinin daha düşük bir seviyede olmasını istiyoruz fakat teknolojinin
kendisiyle bir sorunumuz olmadığını göz önünde bulundurursak çağımızın durmadan
gelişen teknolojilerini kullanmaktan neden kaçınalım ki? Sonuç olarak bir
insanın çekiç ile çivi çakmak için bu çekicin insanlığın en büyük eseri
olduğuna, bizleri bütün hayvanlardan daha asil kıldığına ve dünya üzerindeki
hakimiyetimizi meşrulaştırdığına inanması gerekmez. Aynı husus bilgisayar için
de geçerlidir. Bir yandan bilime büyük bir değer verirken diğer yandan bilimin
gerçekliğin tek veya en kuvvetli otoritesi olmadığına inanmak olasıdır zira bu
iki görüş birbiriyle çelişmez. Ve internet, bu “uluslararası ağ” ile onu
destekleyen altyapının sonunun geleceğini ifade eden bir iletiyi yaymak için
kullanılabilir.&lt;/p&gt;

&lt;p&gt;Dolayısıyla ikiyüzlülükten bahsetmek ancak kimi ilkelcilerin inançlarını bütün
ilkelcilere veya ilkelciliğin kendisine mal edersek mümkündür. Şimdi ikinci
soruya gelelim, neden ilkelciler ormanlara kaçmıyorlar?&lt;/p&gt;

&lt;p&gt;Bu konudaki iki sorundan ilki eğitimdir. Hepimiz, çocuklarına haklı sebeplerle
onların diğer insanlardan bağımsız hayatta kalmalarının değersiz olduğunu
benimseten medeniyetin içinde yetiştirildik. Uygar kültürel sistem ise iyi uyum
sağladı; kendini tam da bireylerin kişisel yeterliliğe en yakın olduğu alanlarda
memetik olarak güçlendirdi, böylece aslında herhangi bir bağımlılıktan bahsetmek
zorken bir bağımlılık hissi yaratmış oldu. Her şeye rağmen altı yaşına giren
her “ilkel”in sahip olabileceği hayatta kalma yeteneği, çoğu ilkelcide ortalama
bir insandakine göre daha fazla değildir. Çoğu ilkelci bu durumu iyileştirmek
üzerinde çalışmaktadır fakat sizlerin nasıl borsada bankerlik yapma hayalleri
kuran bir !Kong yerlisine hemen Wall Street’e gitmesini söylemek yerine önce
borsa hakkında birkaç şey öğrenmesini tavsiye edeceğiniz gibi bizler de
yaşamlarımızı belli yeteneklere bağlamadan önce bu yetenekleri geliştiriyoruz.
“Ormanlara kaçmak” bir amaçtır fakat bu hemen karar verip uygulanacak bir amaç
olmaktan ziyade nihai bir amaçtır. Eğri oturalım doğru konuşalım, eğer bu denli
kolay olsaydı sizi temin ederim bu yazıyı okuyor olmazdınız.&lt;/p&gt;

&lt;p&gt;İkinci sorun ise toprak ve yasalar ile ilgilidir. Medeniyet, “ormanlara
kaçmanın” bir seçenek olmasının ö&lt;span style=&quot;color:#f5a2c6&quot;&gt;n&lt;/span&gt;&lt;span style=&quot;color:#23af4c&quot;&gt;ü&lt;/span&gt;&lt;span style=&quot;color:#fba919&quot;&gt;n&lt;/span&gt;&lt;span style=&quot;color:#ff5356&quot;&gt;ü&lt;/span&gt;
 epey iyi kapatmıştır. Avcılık
düzenlemeleri ciddi engeller oluşturmaktadır. Avcılık ve balıkçılık
ruhsatlarının yanı sıra toprağa biçilen verginin ödenmesi için belli bir gelir
gereklidir. Nihayetinde bu tip bir “küçük çaplı göç” medeniyet var olduğu sürece
ihtimaller dahilinde değildir; giderek artan güçlüklerin doğuracağı ihtiyaçlar
ve dolayısıyla uygulanacak baskı bizlerin medeniyete, gerekirse zorla, geri
döndürülmemiz ile sonuçlanacaktır. Önemli olan çıkmaz şudur: eğer medeniyet
bizlerle beraber var olmak hususunda istekli olsaydı, bizler de aynı şekilde
istekli olmaktan mutlu olurduk. Fakat nihayetinde medeniyet kendinden başka bir
şeyin var olmasına izin vermek gibi bir yetiye sahip değildir.  Bizlerle yan
yana yaşamak isteyen herkes ile bu hayatı paylaşmaktan mutluluk duyarız fakat
medeniyet bunu istememektedir. Medeniyet var olduğu sürece “ormanlara kaçmak”
ancak bizlerin medeniyet tarafından eninde sonunda vahşice yok edilmemizi
garanti edecektir.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;2. Besinlerimiz bol ve düzenli olarak sağlanıyor. İlkelciler hayatımızın geri
kalanını bir sonraki yemeğin nereden geleceğini çaresizce bekleyerek geçirmemizi
istiyorlar.&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;İyi o zaman da neden yalnız tarımcılar açlıktan ölür? Aslında medeniyetin besin
temini hep güvenilmez ve yetersiz olagelmiştir. Sanayileşen milletler henüz
yakın zamanda üretimi “kötü beslenme bolluğu”ndan kar etmeye yetecek kadar
arttırmışlardır. Çağdaş yaşamda başarının anahtarı budur. Hala fizyolojimize
bütünüyle uyumsuz olan besinler tüketiyoruz fakat bu besinleri öylesine
olağanüstü miktarlarda yiyoruz ki 70 sene olan normal insan yaşam süresi boyunca
(sağlıksız ve güçten düşmüş dahi olsak) hayatta kalabiliyoruz. Bu yaşam süresi
Orta Çağ Avrupası’ndaki soyluların yaşam süresinden daha uzun olsa da Orta Taş
Çağı’ndaki (Mezolitik Çağ’daki) atalarımızınkinden daha kısadır.&lt;/p&gt;

&lt;p&gt;Dünya sistemimizin seçkin kısmı olan sanayileşmiş dünyanın bu yaşam koşullarının
tadını çıkarması, sanayileşmemiş dünyanın müzmin beslenme yetersizliği ve açlığı
sayesinde mümkün olabiliyor. Buna karşın hem etçil hem otçul olan avcı ve
toplayıcılar bu gezegendeki en kolay uyum sağlayabilen yaratıklardır. Avcı ve
toplayıcılar Tierra del Fuego Adaları, Kuzey Kutbu’nun donmuş arazileri,
Kalahari Çölü ve Kongo’nun balta girmemiş ormanları gibi herhangi bir ekinin
yetişemeyeceği öylesine sapa ve ıssız yerleri kendilerine ev
belleyebilmişlerdir. Avcı ve toplayıcıların açlıktan ölmeleri tarihin henüz
tanık olmadığı derecede büyük ve neredeyse tüm çok hücreli hayatın son bulacağı
çapta bir toplu yok oluşu gerektirir. Ancak birkaç çiftçinin açlıktan ölmesi
için kuru geçen bir yaz mevsimi yeterlidir.&lt;/p&gt;

&lt;p&gt;Tarımın bereketli ve düzenli bir besin temini sağladığı fikri bariz bir biçimde
bir hatadan ibarettir. Hayal ürünüdür. Tarımcılar, evcilleştirilebilen birkaç
türe bel bağlamaktadır ve bu türler de birbirleriyle yakından ilişkilidir. Bu
tutum, “bütün yumurtalarını bir sepete koymak” benzeri bir safsatadır. Buna
karşın avcı ve toplayıcılar çok daha fazla sayıda türün yanında daha geniş
çeşitlilikte olan türlere bel bağlamaktadır. Yani aslında ilkelciler gerçekten
düzenli ve bereketli olan bir besin temini için güvenilirliği şüpheli ve kıt bir
besin temini yönteminden vazgeçmek gerektiğini savunurlar.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;3. İlkelcilik yaşam kalitesinde muazzam bir düşüş anlamına gelir. İlaçlar yok,
sanat ve müzik yok. Buna karşılık elimize geçecekler ise ötenazi, çok büyük
yüzdelerde bebek ölümleri ve 30 yaş civarında bir ortalama yaşam süresidir.&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;“Ötenazi” suçlaması bir dönem üzerilerine, yaşlılarını yüzen buz kütlelerinin
üzerinde ölüme terk ettikleri iftirası atılan Inuitler’den kaynaklanmaktadır. Bu
nadir geleneğin aslı, yaşlıların bazen kendilerini topluluklarının iyiliği adına
ve topluluk üyelerinin yalvaran itirazlarına rağmen gönüllü olarak kurban
etmeleri şeklindeydi. Inuitler’in yaşamı bu tür, kuralı kanıtlayan istisnalarla
doludur çünkü bir avcı ve toplayıcı için dahi Kuzey Kutbu sert ve acımasız bir
yerdir.&lt;/p&gt;

&lt;p&gt;Bebek ölümleri ise tamamen yanlış yorumlanmıştır. Evet, bebek ölümleri avcı ve
toplayıcılar arasında fazladır fakat bahsedilen suçlamanın ardında yatan
nedenlerden ötürü değil. Yani neden salgın hastalıklar ya da kötü beslenme
değildir. Zira bu sorunlar çağdaş toplumlara özgüdür. Tıpkı bizim hayatın
gebelikle mi yoksa doğumla mı başladığını tartışmamız gibi avcı ve toplayıcılar
genellikle yaşamın ikinci yaşa kadar başlamadığına inanırlar. Avcı ve
toplayıcılar yeni doğmuş bebeklerin öldürülmesine bizim kürtaja bakış açımıza
çok benzeyen bir şekilde bakarlar. !Kung bir hamile kadın doğum sırasında
çalılıkların içine doğru yürür. (Bana çocuk doğurmanın kötü beslenmeyenler için
kayda değer derecede az çileli olduğu söylendi.) Ya bir bebek ile geri döner ya
da bebeksiz. Her halükarda hiçbir soru sorulmaz. Dolayısıyla avcı ve toplayıcı
yaşam sürelerini hesaplama yöntemimiz hiç de adil değildir. Şayet onların bebek
ölümlerini hesaba katacaksak bizim de kürtajlarımızı hesaba katmamız gereklidir.
Gerçekten bunlar hesaba katıldığında avcı ve toplayıcıların yaşam sürelerinin
bizimkilerle hemen hemen aynı ve hatta bazı dönemler daha uzun olduğunu görürüz.&lt;/p&gt;

&lt;p&gt;İlaçlar ile ilgili suçlama yaygındır fakat ekseriyetle insan merkezlidir. İlaç
antropolojisinde bir kültürün “ilaç” olarak kabul ettiği her şeye “etnik ilaç”
adı verilir. İlaç olarak kullanılan besinler ile olan çakışmalar göz önüne
alındığında bu tanım bir kültürün renk tayfını bölümlemesi kadar keyfidir.
Batının ilaçları &lt;em&gt;bizim&lt;/em&gt; etnik ilaçlarımızdır. Her kültür &lt;em&gt;kendi&lt;/em&gt; etnik
ilaçlarının değerli olduğuna ve diğer hepsinin önemsiz ve boş inançların ürünü
olduğuna inanır. Yani açıkça etnik merkezlilik söz konusudur. İlkelcilik,
bahsedilen suçlamanın temelinde bu etnik merkezliliğin yattığını öne sürer.
Gerçekte dünyadaki çeşitli etnik ilaçların asıl tesirine bakarsak çok az
çeşitlilik olduğunu görürüz. Çoğu etnik ilaç bizimkiler gibi oldukça etkilidir;
çoğunun açıkça başarısız olduğu bir veya birden fazla alan mevcuttur (biz
plaseboyu kullanmaktan ziyade göz ardı ederiz; şamanizm ise tam tersidir ancak
herhangi bir ameliyat kavramı yoktur, vesaire) ve hepsi tesirleri çerçevesinde
ele alındığında birbirlerinin yerini alabilir. Dolayısıyla ilkelcilik herhangi
bir şekilde ilaçların sonunun gelişi anlamına gelmez. İfade ettiği şey oldukça
farklı fakat eşit düzeyde etkili bir tıp şeklidir. Şayet çeşitli etnik ilaçların
en iyilerini birleştirmeyi amaç edinen bir tıp yaratmaya çabalarsak belki de
gerçekten daha etkili olan bir tıbbi sistem geliştirebiliriz.&lt;/p&gt;

&lt;p&gt;Son olarak ilkelciliğin sanatın ve müziğin sonu anlamına geleceği suçlaması
düpedüz yanlıştır. Sanat, müzik ve diğerlerinin 30000 yıl önce dahi, henüz
medeniyet ortada yokken, ilkeller arasında evrensel bir yeri vardı. Bu olgulara
medeniyetin varoluş süresinin dört katı bir süredir sahipler. Lascaux
mağaralarındaki mağara sanatını Michelangelo ile karşılaştırabiliriz ve
Kongo’daki Pygmy kabilelerinin söylediği şarkılar Avrupa’nın 14. yüzyıla kadar
erişemediği seviyede çok sesli bir çeşitlilik içerir. İlkel insanların sanat ve
müzikten bihaber olduklarını iddia etmenin tek yolu ancak “sanat”ı ve “müzik”i
etnik merkezli bir biçimde “beyaz adam yapmadıysa sayılmaz” diyerek
tanımlamaktır. &lt;strong&gt;“Vahşiler ve Medeniyet”&lt;/strong&gt; (&lt;strong&gt;Savages &amp;amp; Civilization&lt;/strong&gt;) adlı
kitabında Jack Weatherford medeniyetin bilimsel, sanatsal ve müziksel
alanlardaki bütün edinimlerini vahşilerle olan iletişimine borçlu olduğu ilham
ile kotardığı savını ortaya atar. Eğer herhangi bir kültürün “üstün” olması
mümkünse, ilkelciler böyle bir kültürün ilkellere ait olduğunu savunurlar; bizim
bütün başarılarımıza ilham veren ve hiçbir kusurumuza sahip olmayan ilkellerin
kültürü.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;4. İlkeller insancıl değildir.&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Bu suçlama “insancıl” olmak kavramının eşsiz bir tanımlamasını gerektirir fakat
sık sık aşağıda bahsedilecek olan itiraz ile ilintilendirilir. Bu savı öne sürmek
için konuşmacı önce insanlık ve medeniyeti, medeniyetin geçici bir anormallikten
ziyade insanoğlunun doğal olan alın yazısı olduğunu ifade eden efsanelerle
harmanlar. Aslında medenileşmiş &lt;em&gt;Homo Sapiens&lt;/em&gt; bütünüyle uyumsuz olduğu, can
çekişen bir varoluşa bağımlıdır ve acınacak bir tutsaklık hali içindedir. Vahşi
doğadaki insanlar hayatı, medenileşmiş olanların idrak edemeyeceği seviyede bir
özgürlükle ve bolluk içinde yaşar. Tıpkı Eflatun’un baş kahramanının duvara
çivilenmiş zavallı insanlara mağara alegorisiyle ile açıklayamadığı gibi.
İlkelciliğin hedefi vahşi dünyaya geri dönüştür, mümkün olduğu kadar çok sayıda
&lt;em&gt;Homo Sapiens&lt;/em&gt;‘i o mutlu, doğal hale geri döndürmek.&lt;/p&gt;

&lt;p&gt;İlkelciye göre aslında insancıl olmayanlar ilericilerdir. O ilericiler ki
insanlık için doğal olanın diğerlerinin iyiliği için uğraşmak ve despotlar
tarafından yönetilmek olduğunu savunurlar; en iyi ihtimalle iyi yürekli ve
kanunlara uygun olarak seçilmiş despotlar, yine de despot despottur. O
ilericiler ki insanlığın kendi kendine yetemeyeceğini, ancak Bilim ve Felsefe ile
kendini yüceltip ilkel korku ve şiddetten Teknoloji ile kurtulabileceğini
düşünürler. İlericiler, geçmişimizde acıdan başka bir şey görmedikleri gibi
ruhumuzda reddedilmesi, sindirilmesi gereken bir vahşilik ve geleceğimizde ise
soğuk, ilgisiz bir tanrılık, nanoteknoloji ile gelecek ilahlaşma ve dünya
hakimiyetimizin getirdiği, bu dünyanın bir &lt;em&gt;parçası&lt;/em&gt; olduğumuz fikrinin dahi
önüne geçen bir yabancılaşma görürler. İlericiler insan olgusuna gerçekten
soğuk bakarlar: tutkular bastırılmalı, vahşi olan doğasından arıtılmalı ve
normal hali, hiç bitmeyen bir Hobbes kabusu olmalı.&lt;/p&gt;

&lt;p&gt;İlkelci bunların hepsinin peri masallarından ibaret olduğunu bilir. İlkel
toplulukların böyle bir kabustan ziyade Marshal Sahlins’in ifade ettiği gibi
“asıl zengin topluluklar” olduklarını biliyoruz. Dünya üzerinde bu gezegene
kolay uyum sağlayamayan tek tür olarak evrimin unutulmuş çocukları olmadığımızı
biliyoruz. İnsan doğasının ne şeytani ne de melek gibi olmadığını biliyoruz.
İnsanı günahkar ve düzeltilmesi gereken bir varlık olarak görmüyoruz; belli
sayıda tanrı inancına göre (birçok, tek veya hiç olması fark etmez) ya da
felsefeye veya teknolojiye göre. İnsan olmanın muhteşem bir şey olduğuna
inanıyoruz. Ayrıca ilerici tutumun insanlığa köstek olduğunu ve medeniyetin bizi
insanlığımızdan ederek türümüz ile ilgili güzel olan her şeyi bizden aldığını
görebiliyoruz.&lt;/p&gt;

&lt;p&gt;İşte insanlığa olan inancımıza sadık kalmamızdan ve insanlığın kesinlikle
bozulmuş olmadığını ve bizim “tamir” etmemize ihtiyaç duymadığını savunan
görüşümüzden dolayı bizler için “İnsancıl” (Antropik) adını seçtim. “Hümanist”
terimi eğer ilericilerin belli bir grubu için (bence uygunsuz bir şekilde)
kullanılıyor olmasaydı iş görebilirdi. Verdiğim isim “misantropik” (insan
sevmeyen) teriminin karşısında da güzel duruyor. İlericiler misantropiktir;
antropik olanlar ise ilkelcilerdir.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;5. İlkelcilerin planladıkları “ütopya”, bu soykırımcı manyakların insan
nüfusunun %99’unu topyekün katletmelerini gerektirir.&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;En iyisini sona sakladım. Bu itiraz ilerici kamp tarafından ilkelcilere karşı
yapılan en güçlü saldırıdır.&lt;/p&gt;

&lt;p&gt;Dünya nüfusunun çağdaş medeniyet olmadan aynı seviyede tutulamayacağı
reddedilemez bir gerçektir. Elbette, çağdaş medeniyetin de sürdürülebilir
olmadığı fazlasıyla açıktır. Bu iki gerçek göz önünde bulundurulduğunda bir tür
toplu ölümün kaçınılmaz olduğu ortaya çıkar. Bu toplu ölüm bir soykırım yoluyla
olabilir ancak ilkelcilerin çok küçük bir azınlık olduğu (ve hep öyle kalacağı)
göz önünde bulundurulursa bu kırımın sorumlusunun bizler olacağı olasılık
dışıdır. Bizim olup olacağımız yakınlıkla karşılaştırılamayacak ölçüde iktidara
yakın olan birçok partinin kendi menfaatleri için soykırımlara çok daha büyük
ilgisi vardır. Diğer seçeneğin açlık ya da salgın hastalıklar sebebiyle yok
olmak olduğu düşünülürse soykırım, can çekişen bir hayvanın acısına son vermek
için vurulan son bir darbe gibi nazik bir yöntem olarak görülebilir. Ancak en
nihayetinde bu çapta bir soykırım kesinlikle olanaklar dahilinde değildir ve
ölümler kaçınılmaz olsa da bu ölümlerin bir soykırım ile gelmeyeceği neredeyse
kesindir.&lt;/p&gt;

&lt;p&gt;Bilakis, bir çöküşün gerçekleşmesi ihtimali her zamanki gibi daha büyük bir
olasılıktır. Karmaşanın veriminin azalması artık medeniyetimizi öyle bir hale
getirdi ki artık eskiden kolaylıkla üstesinden gelinebilecek küçük bir çalkantı
bile onu yok edebilir - tıpkı bir AIDS hastasının AIDS yüzünden değil de
sağlıklı bir insanın dert etmeyeceği basit bir hastalık yüzünden ölmesi gibi.
Belki petrol krizi, belki de küresel ısınma… Zararı doğuracak sebep ne olursa
olsun besin üretme kabiliyetimiz son bulacak. Açlık, besin kaynaklı
ayaklanmalara sebep olacak ta ki sonunda hayatta kalanlar yamyamlaşana dek.
Şehirler savaş alanlarına dönüşecek ve ancak yüzünü doğaya çevirip onun içinde
yaşayabilenler, birilerinin onlar için yetiştirmesine gerek duymadan besin
bulabilenler - yani tekrar ilkelleşebilenler - diğerlerinin aklından bile
geçmeyen zengin kaynaklara erişebilecekler.&lt;/p&gt;

&lt;p&gt;Evrim hep böyle süregelmiştir. “Oksijen Felaketi”, karbondioksit soluyarak
dışarı oksijen gazı veren mikropların aşırı artışı sebebiyle meydana gelmiştir.
Sonunda atmosferin alaşımını değiştirdiler ve oluşan zehirli ortamda boğularak
öldüler. Ancak zehirli oksijeni soluyabilecek şekilde uyum sağlayan mikroplar su
yüzüne çıktı ve hızla çoğaldı. Böylece ataları olan karbondioksit soluyan
mikroplarla bir denge kurdular ve günümüzde de atmosferi düzenleyen oksijen
döngüsü başlamış oldu. Yani şimdi de çöküş, medeniyete, dolayısıyla insanlıktan
çıkmış uygarlaşmaya ve &lt;em&gt;Homo Sapiens&lt;/em&gt;‘in tutsaklığına son verirken dünyayı
tekrar ilkelleşen insanlara miras bırakacaktır.&lt;/p&gt;

&lt;p&gt;Hayal ürünü olan soykırım senaryosu bazı ilkelciler tarafından sahipleniliyor
olsa da bu açıkça deliliktir ve tarif edilemez derecede şeytanidir. Daha önce de
ifade ettiğim gibi ölmek üzere olanlar için bir silah atışı ile çabuk ölmek,
açlıktan veya salgın hastalıktan ölmeye göre tercih edilebilir olabilir, veya
şehirlerinin savaşçı yamyam çetelerce yerle bir edildiğini görmekten… Ancak
böyle bir seçeneğin ihmal ettiği evrimsel bir incelik vardır. Dünyadaki her
bireyin bir seçimi olacaktır. Acı sona kadar kültürlerinin bir parçası olmayı ve
onunla ölmeyi ya da yeni bir kültürü ve kendi insanlıklarını benimseyerek yeni
bir dünyada var olmayı seçmekte özgür olacaklardır. Soykırım eylemi bunu ihlal
eder. Böyle bir eylemi gerçekleştirmek suçunu işlemek kendini tanrı yerine
koymaktır (tıpkı ilericilerin insanlarla gezegendeki diğer bütün canlıları
birbirinden ayıran saçma, mantıksız ve insan merkezli endişeleri olmasaydı
yapacakları gibi), yani kimin yaşayıp kimin yaşamayacağına karar vermektir. İşte
bu yüzden Ted Kazcynski’nin yaptıklarının şeytani olduğuna inanıyorum: sorumlu
olduğu terörün bütünüyle yararsız olmasını bir kenara bırakın, medeniyetin de
işlemiş olduğu en büyük günahı işledi. Kendini ölümü ve yaşamı dikte eden bir
tanrı yerine koydu.&lt;/p&gt;

&lt;p&gt;Çoğunluk ölmeyi seçecektir belki; bunu değiştiremeyiz. Tıpkı Kaczynski’nin
diğerlerini ölmeye zorladığı gibi onları da yaşamaya zorlamak yanlış olur.
Elimizden geldiğince uğraşmamız &lt;em&gt;gereken&lt;/em&gt; şey ise bunun herkesin yüzleşeceği bir
tercih olacağını anlamasını sağlamaktır.&lt;/p&gt;

&lt;p&gt;Bu savunmayı duyan birçok ilerici, bizlerin böyle bir şeyin olmasına “izin”
vermeye istekli olmamızın canavarca olduğunu iddia edecektir. Öncelikle bu tip
bir ifadenin altında yatan böbürlenme manasızdır; bizim böyle şeylerin olmasına
“izin” vermek gibi bir durumumuz yok. Güneşin doğmasına ya da yağmurun yağmasına
“izin” vermediğimiz gibi. Buna karşın ilkelciler bir şemsiye veya güneş kremi
yaparken ilericiler havayı nasıl kontrol edebileceklerini bulmanın bir yolunu
düşlerler. Aramızdaki fark budur; ilericiler bu tip bir kutsal kontrolü
arzularken ilkelciler bu dünyanın tanrısı değil bir parçası olduklarını
kabullenirler ve buna göre davranırlar.&lt;/p&gt;

&lt;p&gt;Ancak böyle saçma bir ifadenin ana fikrine değinmek gerekirse - yani bizlerin
böyle bir çöküşü durdurmak için ahlaki bir zorunluluğumuz olduğu fikrine - hasta
bir çocuğu düşünün. Kardeşimi düşünün. Bu benim en eski hatıralarımdan biridir.
Doktorlar bütün belirtiler bunu gösterse de hastalığının menenjit olmadığını
söylediler - elbette, bu nasıl mümkün olabilirdi ki? Henüz birkaç gün önce
vücuduna büyük miktarda menenjit patojeni enjekte edilmişti ve aşılandığı
düşünüldüğünde bu ihtimaller dahilinde olamazdı. Böyle bir şeyin olması bilimin
ve tıbbın hatalı olduğu anlamına gelirdi.&lt;/p&gt;

&lt;p&gt;Annem izlemememi söylese de gizlice izledim ve gördüklerim sonsuza dek beynime
kazındı. Küçük kardeşim acılar içinde çığlık atarken vücudu babam ve bir doktor
tarafından hareketsiz tutuluyordu ve diğer bir doktor ise küçük kardeşimin
neredeyse boyu uzunluğunda bir iğneyi onun omurgasına sokuyordu.&lt;/p&gt;

&lt;p&gt;Kardeşimin çektiği acıyı hayal bile edemiyorum - veya babamın onu böyle bir şey
için tutuşunu. Ancak o doğru olanı yaptı - zor olanı yaptı. Kardeşim o gece öldü
ancak babam bu acıdan kaçmanın tek yolunun ölüm olduğunu biliyordu ve yaşamayı
seçti. Büyük bir acıydı fakat geçtiğinde tekrar hayata döndük.&lt;/p&gt;

&lt;p&gt;Bu olay tıpkı insan ırkının şu anki durumuna benzemektedir. Medeniyetimiz eğer
Tunç Devri’nde çökseydi milyonlarca ölüme ve Akdeniz boyunca ekolojik tahribata
neden olurdu. Bu gerçekleşmedi ve bunun yerine savaşları, imparatorlukları ve
Yeni Dünya’daki katliamları gördük. Şimdi yine aynı uçurumun kenarında
duruyoruz. Çöküş bugün milyarlarca insanı yok edebilir ve geri dönüp
baktığımızda medeniyetimiz Tunç Devri’ni atlatmasaydı daha iyi olurdu
diyebiliriz. Ancak medeniyetimiz, bizleri bugün de ilerlemeye iten baskılar
yüzünden bunu atlattı. Şayet mucizevi şekilde bir “deus ex machina” (ç.n. tanrı
makinesi) daha bulursak işler yine kötüye gidecek - trilyonların ölümü,
türümüzün ve dünyadaki diğer bütün çok hücreli canlıların yok oluşunun gerçek
bir ihtimal haline gelmesi…&lt;/p&gt;

&lt;p&gt;Çöküşün bedeli büyüktür. Atalarımız tarafından ödenmeliydi bu bedel ve lanet
olsun onlara bunu ödemedikleri için! Bedeli çok daha küçük olabilirdi. Bunun
yerine sorumluluk bizim üstümüze kaldı ve bu bedel katlanabileceğimizden fazla
olabilir. Fakat buna katlanmalı ve bu bedeli ödemeliyiz. Eğer yaparsak insanlık
yeniden özgür olacaktır. Yapmazsak bedelini çocuklarımız ödeyecek ve bunun yükü
katlanabileceklerinin ötesinde olacak - bizleri tıpkı bizim atalarımızın
zayıflıklarını lanetleyişimiz gibi lanetleyecekler zira bizim zayıflığımız
yüzünden artık bedelin ödenmesinin ardından parıldayan bir umut olmayacak. Onlar
için bedel öyle büyük olacak ki türümüzün yok oluşuyla ödemeleri gerekecek.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Çevirmenin Notu&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Bu metin, Jason Godesky tarafından yazılan “5 Common Objections to Primitivism,
and Why They’re Wrong” başlıklı yazının Türkçe çevirisidir ve 15-03-2013
tarihinde
&lt;a href=&quot;http://theanarchistlibrary.org/library/jason-godesky-5-common-objections-to-primitivism-and-why-they-re-wrong&quot;&gt;http://theanarchistlibrary.org/library/jason-godesky-5-common-objections-to-primitivism-and-why-they-re-wrong&lt;/a&gt;
adresinden alınmıştır. Çeviri hakkındaki görüşleriniz ve eleştirilerinizin,
&lt;strong&gt;rüyalarında tarzan ile aşık atan&lt;/strong&gt; çevirmenin başının üstünde yeri vardır.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Güncellemeler&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
  &lt;li&gt;2013-03-15: 5. maddenin başlığındaki anlam düşüklüğü giderildi.&lt;/li&gt;
  &lt;li&gt;2013-03-20: 5. maddenin başlığı yeniden, daha açık olarak ifade edildi.&lt;/li&gt;
&lt;/ul&gt;
</content>
 </entry>
 
 <entry>
   <title>İlkelcilik Nedir?</title>
   <link href="https://alip.github.io/tr/blog/2013/03/14/ilkelcilik-nedir/"/>
   <updated>2013-03-14T00:00:00+00:00</updated>
   <id>https://alip.github.io/tr/blog/2013/03/14/ilkelcilik-nedir</id>
   <content type="html">&lt;p&gt;&lt;strong&gt;İlkelcilik Nedir?&lt;/strong&gt; (sürüm: 1)&lt;br /&gt;
&lt;em&gt;John Filiss&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;Bu yazıda ilkelciliği kendi cümlelerimle ifade etmeye çalışacağım.&lt;/p&gt;

&lt;p&gt;İlkelcilik teknolojik gelişime, onun yabancılaştıran atalarına ve bu unsurlar
tarafından yapılmış değişimlerin bütününe karşı duran yaşam yollarının
izlenmesidir.&lt;/p&gt;

&lt;p&gt;Teknoloji burada iş bölümüne dayalı alet kullanımı olarak tanımlanmıştır… Yani
alet üretimi ve kullanımı öyle karmaşık hale gelmiştir ki uzmanlaşmayı zorunlu
kılmıştır. İçinde hem bölünmeyi hem de toplumdaki bireyler arasındaki nihai
sınıf ayrımını barındıran uzmanlaşma ise özelleşen ve tekrarlanan işler yoluyla
emeğin artmasına yol açmıştır.&lt;/p&gt;

&lt;p&gt;Teknolojik gelişimin geçmişi hakkında çeşitli varsayımlar vardır fakat sorunun
cevabı henüz açıklık kazanmış değildir. Bu konuda en iyi bilinen yazılar
sembolik kültürü ve bu kültürün sayı, dil, din ve adetlerdeki göstergelerini
sorgulayan &lt;em&gt;John Zerzan&lt;/em&gt;‘a aittir. İlk öne sürüldüğü dönem anarşist çevreler
tarafından tam anlaşılmamış olsa da bu tür araştırmalar özellikle konunun
iç yüzünü anlamaya ve çözümler geliştirmeye yarayacak çıkarımlar içerdiği için
değerlidir.&lt;/p&gt;

&lt;p&gt;Belki de ilkelciliği anlamanın en kolay yolu onu teknolojinin çekim kuvvetine
karşı koyan bir kuvvet olarak düşünmektir. İlkelcilik bütünüyle teknolojik
ilerlemenin itiş gücüne karşı yönde bir güç uygulamaktır. Teknolojik gelişimin
bütünleşmiş doğası göz önüne alındığında ilkelcilik teknolojiye karşı verilen
ve teknoloji kapsamında sınıflandırılamayacak ölçüde ileri giden tek insan
merkezli yanıt&lt;sup id=&quot;fnref:1&quot;&gt;&lt;a href=&quot;#fn:1&quot; class=&quot;footnote&quot;&gt;1&lt;/a&gt;&lt;/sup&gt; olabilir.&lt;/p&gt;

&lt;p&gt;İlkelciliğin gerekliliğini gösteren birçok etmen sayılabilir. Bunlardan birkaçı
şöyle sıralanabilir:&lt;/p&gt;

&lt;ul&gt;
  &lt;li&gt;
    &lt;p&gt;Tarih boyunca ve tarih öncesinde bazı toplulukların bizlere göre birçok açıdan
daha önde olmalarının farkında olmak. Bunun en iyi örneği göçebe
avcı, toplayıcı topluluklardaki insanların hiç durmadan işleyen çağdaş sanayi
toplumundaki insanlara göre daha fazla boş zamanlarının olması olabilir.&lt;/p&gt;
  &lt;/li&gt;
  &lt;li&gt;
    &lt;p&gt;Teknolojik gelişime görünüşe göre kaçınılmaz olarak eşlik eden çevresel yıkımı
idrak etmek.&lt;/p&gt;
  &lt;/li&gt;
  &lt;li&gt;
    &lt;p&gt;Teknolojik ilerleme hakkında &lt;em&gt;Kurzweil&lt;/em&gt;, &lt;em&gt;Moravec&lt;/em&gt; ve diğerlerinin &lt;sup id=&quot;fnref:2&quot;&gt;&lt;a href=&quot;#fn:2&quot; class=&quot;footnote&quot;&gt;2&lt;/a&gt;&lt;/sup&gt; yaptığı
genetik mühendislik, nanoteknoloji ve bilhassa yapay zeka sistemlerinin hızlı
gelişiminin insanları türümüzün başa çıkamayacağı seviyede ekonomik ve
çevresel baskılara maruz bırakacağını tasvir eden öngörüleri hakkında endişe
duymak.&lt;/p&gt;
  &lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Aslında ilkelci kuramın olası değerini kabul etmek teknolojiye inanan bakış
açısından ufak da olsa bir sapma ile mümkün olabilir… Teknolojik ilerlemeye
karşı duyduğu hatırı sayılır ölçüdeki inancına rağmen toplumumuzda neredeyse
geniş kapsamlı olan bir sapmadan söz ediyorum.&lt;/p&gt;

&lt;p&gt;Günümüzde ilkelcilik özellikle amacının ne denli büyük olduğu göz önünde
bulundurulduğunda henüz gelişmemiş bir eğilimden ibarettir. Özgür bir toplumun
kapsamı içinde ilkelciliğin başarılı olması ilkelci yaklaşımın teknolojik
yaklaşıma insanlığın refahı ile ilgili olan hemen her alanda açıkça üstünlük
sağlamasını gerektirir. Bunun üstesinden gelme konusunda yetersiz kalan her şey
ilkelci yaklaşımın teknolojik yaklaşımın yerini almasından ziyade toplumumuzda
bu yaklaşımların bir sentezine yol açabilir.&lt;/p&gt;

&lt;p&gt;Çağdaş ilkelciliğin birçok anlayışının aksine burada ifade edilen temel mesele
siyasi bir sorun olmaktan ziyade birçok teknik sorun içerir&lt;sup id=&quot;fnref:3&quot;&gt;&lt;a href=&quot;#fn:3&quot; class=&quot;footnote&quot;&gt;3&lt;/a&gt;&lt;/sup&gt; ve siyasi kuramlar
hakkında yapılan birçok tartışmadan farklı olarak ilkelci tasarıları, örneğin
sağlık konusunda yapılabilecek iyileştirmeleri, geliştirmek için gerekli olan
sorun çözme ve farkındalık yaratma yolları çoğu zaman zihinsel hobilerin
ötesinde kişisel amaçlara hizmet edebilir ve hatta toplumda genel olarak kabul
görmeyi amaçlayabilir. İlkelciliği araştırma alanı olarak seçmek bireye siyasi
felsefelerin birçoğuyla ilgilenmek ile karşılaştırıldığında çok daha tatmin
edici bir uğraşı alanı sunmaktadır. İddialarının gerçekleşmesi sorunsalı ise
toplumsal çerçevede başarılı olup olmayacağı ile ilgilidir.&lt;/p&gt;

&lt;p&gt;İlkelciliğin izlediği yol başlı başına insanlara en iyi varoluş biçimini
sunabilir mi? Bu soru kimsenin yanıtlayamayacağı türdendir. Önümüzdeki günlerde
açıkça düşünmemiz gereken asıl soru ise yolumuzun ilkelcilik mi, teknoloji mi
yoksa bu ikisinin bir sentezi mi olduğudur. Önemli olan yaşam koşullarını
iyileştirecek bir dizi seçenek üretmektir ve ancak bu seçeneklerin artmasıyla
mümkün olan en iyi yaşama giden yolu bulabiliriz.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Çevirmenin Notu&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Bu metin, John Filiss tarafından yazılan “What is Primitivism? (v. 1)” başlıklı
yazının Türkçe çevirisidir ve 14-03-2013 tarihinde
&lt;a href=&quot;http://www.primitivism.com/what-is-primitivism.htm&quot;&gt;http://www.primitivism.com/what-is-primitivism.htm&lt;/a&gt;
adresinden alınmıştır. Çeviri hakkındaki görüşleriniz ve eleştirilerinizin, &lt;strong&gt;ne
kadar kötü kokarsa o kadar iyi olacağını düşünen&lt;/strong&gt; çevirmenin başının üstünde yeri vardır.&lt;/p&gt;

&lt;div class=&quot;footnotes&quot;&gt;
  &lt;ol&gt;
    &lt;li id=&quot;fn:1&quot;&gt;
      &lt;p&gt;Derin ekoloji ve benzer aşırı çevreci yaklaşımlar genellikle sanayi toplumunun teknoloji sebebiyle meydana gelen çevresel bozulmaların getireceği farkındalık ile oluşacak iyi niyet tarafından kurban edileceğini savunur. Çok az insan bu tip bir görüşü ilgi çekici bulmaktadır. &lt;a href=&quot;#fnref:1&quot; class=&quot;reversefootnote&quot;&gt;&amp;#8617;&lt;/a&gt;&lt;/p&gt;
    &lt;/li&gt;
    &lt;li id=&quot;fn:2&quot;&gt;
      &lt;p&gt;&lt;em&gt;Ray Kurzweil&lt;/em&gt; başarılı bir mucit ve &lt;strong&gt;Ruhani Makineler Çağı&lt;/strong&gt; (&lt;strong&gt;The Age of Spiritual Machines&lt;/strong&gt;) kitabının yazarıdır. Hans Moravec dünyanın önde gelen robotik bilimcilerinden olup başta &lt;strong&gt;Zihin Çocukları&lt;/strong&gt; (&lt;strong&gt;Mind Children&lt;/strong&gt;) olmak üzere iki kitabın ve pek çok makalenin yazarıdır. Her ikisi de gelecek teknolojilerin yönüne ilgi duyanlar için okumaya değerdir. Her ikisi de teknolojiye iyimser baksalar da özellikle &lt;em&gt;Moravec&lt;/em&gt;‘in öngörüleri benimkilerin bile ötesine geçecek derecede ciddidir… Elbette onun insanların yapay zeka nedeniyle yüzleşecek oldukları müthiş sıkıntı konusundaki farkındalığını sorgulamıyorum. &lt;a href=&quot;#fnref:2&quot; class=&quot;reversefootnote&quot;&gt;&amp;#8617;&lt;/a&gt;&lt;/p&gt;
    &lt;/li&gt;
    &lt;li id=&quot;fn:3&quot;&gt;
      &lt;p&gt;Öne sürdüğü tasarının neredeyse tümünün özel siyasi çözümlerin bulunduğu alanın dışında kalmasına rağmen ilkelciliğin çoğunluk tarafından siyasi bir bakış açısı gibi görülmesi bir talihsizliktir. &lt;a href=&quot;#fnref:3&quot; class=&quot;reversefootnote&quot;&gt;&amp;#8617;&lt;/a&gt;&lt;/p&gt;
    &lt;/li&gt;
  &lt;/ol&gt;
&lt;/div&gt;
</content>
 </entry>
 
 <entry>
   <title>Nurlu Bakkal</title>
   <link href="https://alip.github.io/tr/blog/2013/02/27/nurlu-bakkal/"/>
   <updated>2013-02-27T00:00:00+00:00</updated>
   <id>https://alip.github.io/tr/blog/2013/02/27/nurlu-bakkal</id>
   <content type="html">&lt;p&gt;&lt;a href=&quot;http://tr.wikipedia.org/wiki/Ebru&quot;&gt;Ebru&lt;/a&gt; sanatı gerçekten değişik hisleri insanın bünyesinde buluşturabiliyor.
Bunun çok güzel örneklerini &lt;a href=&quot;http://nurlubakkal.blogspot.com/&quot;&gt;Nurlu Bakkal&lt;/a&gt; isimli internet günlüğünde
sergilenen çalışmalarda bulabilirsiniz. Battal ebru üzerine akrilik boya ile
yapılan portreler bir yandan ebrunun mistik güzelliğini taşırken diğer yandan da
desenlerin yarattığı ahenk insana 60’lı yılların çiçek çocuklarını hatırlatıyor.&lt;/p&gt;

&lt;p&gt;Günlüğün adresi: &lt;a href=&quot;http://nurlubakkal.blogspot.com/&quot;&gt;http://nurlubakkal.blogspot.com&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Sanatçının diğer çalışmaları: &lt;a href=&quot;http://monkeydelic.deviantart.com/&quot;&gt;http://monkeydelic.deviantart.com&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Yüreğinizden aşk eksik olmasın!&lt;/p&gt;

</content>
 </entry>
 
 <entry>
   <title>Recent Linux changes to help sandboxing</title>
   <link href="https://alip.github.io/en/blog/2013/02/22/recent-linux-changes-help-sandboxing/"/>
   <updated>2013-02-22T00:00:00+00:00</updated>
   <id>https://alip.github.io/en/blog/2013/02/22/recent-linux-changes-help-sandboxing</id>
   <content type="html">&lt;p&gt;&lt;a href=&quot;https://lkml.org/lkml/2013/2/18/476&quot;&gt;Linux kernel 3.8&lt;/a&gt; has been released this week which reminded me to write
about recent Linux kernel changes which may help in improving sydbox. Below is a
short summary of new, and not so new, features merely to get myself to stop
slacking and start coding again.&lt;/p&gt;

&lt;h4 id=&quot;per-process-namespace-support&quot;&gt;Per-process namespace support&lt;/h4&gt;

&lt;p&gt;Per-process namespace support is completed with linux-3.8. This feature provides
a nice way to separate resources on a per-process basis, for example a process
might see a set mountpoints, PID numbers, and network stack state, and a process
in other namespace might see others. For more information see the
&lt;a href=&quot;http://kernelnewbies.org/Linux_3.8#head-789c8108e8185c402b6583480cbab3664882dfd0&quot;&gt;Linux-3.8 Changes&lt;/a&gt; page on &lt;a href=&quot;http://kernelnewbies.org/&quot;&gt;kernelnewbies&lt;/a&gt; and
the &lt;a href=&quot;https://lwn.net/Articles/531114/&quot;&gt;Namespaces in Operation&lt;/a&gt; articles on &lt;a href=&quot;https://lwn.net/&quot;&gt;LWN&lt;/a&gt;.&lt;/p&gt;

&lt;h4 id=&quot;ptrace_o_exitkill&quot;&gt;PTRACE_O_EXITKILL&lt;/h4&gt;

&lt;p&gt;New in linux-3.8, this &lt;code class=&quot;highlighter-rouge&quot;&gt;ptrace(2)&lt;/code&gt; option makes the tracer send &lt;code class=&quot;highlighter-rouge&quot;&gt;SIGKILL&lt;/code&gt; to
tracees on exit. This is useful for &lt;code class=&quot;highlighter-rouge&quot;&gt;ptrace(2)&lt;/code&gt; based sandboxes for which a
resumed tracee is a security risk. See &lt;a href=&quot;https://git.kernel.org/linus/992fb6e170639b0849bace8e49bf31bd37c4123c&quot;&gt;the related commit&lt;/a&gt; for more
information.&lt;/p&gt;

&lt;h4 id=&quot;seccomp_mode_filter&quot;&gt;SECCOMP_MODE_FILTER&lt;/h4&gt;

&lt;p&gt;This is by far my favourite feature. Introduced with &lt;a href=&quot;https://lkml.org/lkml/2012/7/21/114&quot;&gt;Linux kernel 3.5&lt;/a&gt; and
also known as &lt;a href=&quot;http://kernelnewbies.org/Linux_3.5#head-c48d6a7a26b6aae95139358285eee012d6212b9e&quot;&gt;seccomp mode 2&lt;/a&gt; or user filters this feature lets you add
basic system call filters expressed as &lt;a href=&quot;http://en.wikipedia.org/wiki/Berkeley_Packet_Filter&quot;&gt;Berkeley Packet Filter&lt;/a&gt; programs.
Even though sydbox still has to use &lt;code class=&quot;highlighter-rouge&quot;&gt;ptrace(2)&lt;/code&gt; to do more sophisticated
argument checking, this feature removes the need to stop the tracee on every
system call entry and exit which is a PITA especially when tracing multithreaded
programs. &lt;a href=&quot;http://git.exherbo.org/sydbox-1.git/&quot;&gt;sydbox-1&lt;/a&gt; takes advantage of this feature using
&lt;code class=&quot;highlighter-rouge&quot;&gt;SECCOMP_RET_TRACE&lt;/code&gt; which signals the tracer with the new &lt;code class=&quot;highlighter-rouge&quot;&gt;ptrace(2)&lt;/code&gt; event
&lt;code class=&quot;highlighter-rouge&quot;&gt;PTRACE_EVENT_SECCOMP&lt;/code&gt;.&lt;/p&gt;

&lt;p&gt;Here are some useful links:&lt;/p&gt;

&lt;ul&gt;
  &lt;li&gt;&lt;a href=&quot;http://outflux.net/teach-seccomp/&quot;&gt;Using simple seccomp filters&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://lwn.net/Articles/494252/&quot;&gt;A library for seccomp filters&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;ftp://vsftpd.beasts.org/users/cevans/untar/vsftpd-3.0.0/seccompsandbox.c&quot;&gt;vsftpd’s seccomp sandbox&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;http://hg.mindrot.org/openssh/rev/f40779d28db5&quot;&gt;openssh’s seccomp filter&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://plus.google.com/115547683951727699051/posts/cb3uNFMNUyK&quot;&gt;seccomp filtering with systemd&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;h4 id=&quot;ptrace_seize--ptrace_interrupt&quot;&gt;PTRACE_SEIZE &amp;amp; PTRACE_INTERRUPT&lt;/h4&gt;

&lt;p&gt;Probably even older than seccomp user filters, these ptrace requests allow the
tracer to attach to tracee without trapping it or affecting its job control
states. See,
&lt;a href=&quot;http://thread.gmane.org/gmane.linux.kernel/1136930&quot;&gt;http://thread.gmane.org/gmane.linux.kernel/1136930&lt;/a&gt;
for more information.&lt;/p&gt;

</content>
 </entry>
 
 <entry>
   <title>The Wall</title>
   <link href="https://alip.github.io/en/blog/2013/02/15/the-wall/"/>
   <updated>2013-02-15T00:00:00+00:00</updated>
   <id>https://alip.github.io/en/blog/2013/02/15/the-wall</id>
   <content type="html">&lt;p&gt;As I took a sip from my tea, the room felt a bit different. Different in such a
way that it enabled me to let my unconscious take over.&lt;/p&gt;

&lt;p&gt;The wall I was leaning against seemed to change. It was turning into a door. A
door made of small curved mirrors… All paintings on the wall faded away
slowly. There I was, left alone with a door to enter. Was this a question of
bravery? “Temptation, temptation…” So I heard the voices sing. I must admit, I
felt kind of scared. Like a baby felt giving birth to her first mother.  Before
I could change my mind, I quickly grabbed my book and opened the door. I was
expecting a divine forest, green and huge. Quite the contrary, the door led me
to another room with mirrors on all of its walls, ceiling and floor. I could see
the reflection of everything in the room but not myself. The door had vanished
and my book looked a lot different to me. What was it that I was to do here?
What exactly did I leave behind? This thought made me smile, like a mother
smiled while giving birth to her own mother…&lt;/p&gt;

&lt;p&gt;Leaving my book in a corner of the room, I observed the mirrors. Why was my
reflection not there? In a room like this, how could I see what differences this
journey might have made in me? After a couple of minutes, I was surprised to
discover that I couldn’t see the reflections of the things that “touched” me.
My clothes, my shoes, my earring… All became visible as I took them off.  “The
book!” I said, “where is it?” turning into the corner where I left it.  Its
reflection was still there. Looking at me and smiling like my mother smiled,
giving birth to my grandmother…&lt;/p&gt;

&lt;p&gt;Somehow, I knew the cure was in this room but where? The endlessness, which the
mirrors have formed, gave me an idea. Why was I thinking that the other side of
the mirror was inaccessible to me? “Temptation, temptation…” So I heard the
voices sing. I must admit, I felt kind of scared. Like a warrior felt, being
slain by his new-born baby… Feeling I might have found the cure, I took a step
into the mirror. There I saw my “other” self sitting in that room, looking at
the wall, writing a truly odd story… I can’t say he was astonished though,
seeing me standing against him, naked.&lt;/p&gt;
</content>
 </entry>
 
 <entry>
   <title>Easy on the Eyes</title>
   <link href="https://alip.github.io/en/blog/2012/10/23/easy-on-the-eyes/"/>
   <updated>2012-10-23T00:00:00+00:00</updated>
   <id>https://alip.github.io/en/blog/2012/10/23/easy-on-the-eyes</id>
   <content type="html">&lt;p&gt;Writing with the intention to grow up:&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Rule 1&lt;/strong&gt;: Stay out of the magical world. This your subconscious speaking.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Rule 2&lt;/strong&gt;: Never underestimate the power of goats.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Rule 3&lt;/strong&gt;: Pink Floyd after midnight is easy on the eyes.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Rule ?&lt;/strong&gt;: Numbers are bad.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Rule&lt;/strong&gt;: Actually they have no reason whatsoever to even exist.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;?&lt;/strong&gt;: No rule, no pain.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Love&lt;/strong&gt;: You are on the right path, Watson.&lt;/p&gt;

&lt;p&gt;Do not define &lt;code class=&quot;highlighter-rouge&quot;&gt;sizeof(void *)&lt;/code&gt;. Because in what you would call a primitive
world you would only need love, pure, endless love.&lt;/p&gt;

&lt;p&gt;Ooomray!&lt;/p&gt;

&lt;p&gt;Now look at the sky, look at the river. Isn’t it good?&lt;/p&gt;

&lt;p&gt;If not, return to &lt;strong&gt;rule 3&lt;/strong&gt;.&lt;/p&gt;
</content>
 </entry>
 
 <entry>
   <title>Hiçe Üç Kala</title>
   <link href="https://alip.github.io/tr/blog/2012/10/21/hice-uc-kala/"/>
   <updated>2012-10-21T00:00:00+00:00</updated>
   <id>https://alip.github.io/tr/blog/2012/10/21/hice-uc-kala</id>
   <content type="html">&lt;ul&gt;
  &lt;li&gt;&lt;a href=&quot;https://groups.google.com/forum/?fromgroups=#!topic/kaotik/hyhlvtFwdYE&quot;&gt;&lt;code class=&quot;highlighter-rouge&quot;&gt;kaotik/hyhlvtFwdYE&lt;/code&gt;&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;blockquote&gt;
  &lt;p&gt;Vakit yokken de vardı insan&lt;br /&gt;
Tarih yokken de bildi insan&lt;br /&gt;
Lisan yokken de sevdi insan&lt;br /&gt;
Hem de ne sevmek!&lt;/p&gt;

  &lt;p&gt;Taşı cilalamadan önce insan&lt;br /&gt;
Taşı yontmadan önce insan&lt;br /&gt;
Taşı tanımadan önce insan&lt;br /&gt;
Reddi karanlığından değil aşkındandı!&lt;/p&gt;

  &lt;p&gt;Vakite nakit dedik&lt;br /&gt;
Tarihe bilim dedik&lt;br /&gt;
Lisana sanat dedik&lt;br /&gt;
Aşksız kaldık delirdik!&lt;/p&gt;

  &lt;p&gt;Delirdik ekin ektik&lt;br /&gt;
Delirdik adam kestik&lt;br /&gt;
Delirdik bina diktik&lt;br /&gt;
Çağdaş dediğimiz karanlıktır bilemedik!&lt;/p&gt;

  &lt;p&gt;Hayali der ki harbe oturak&lt;br /&gt;
İlkel geçmişten gelecek getirek&lt;br /&gt;
Nerde taş var orda bitirek&lt;br /&gt;
Koşun hayallerim Hiç’e doğru!&lt;/p&gt;
&lt;/blockquote&gt;
</content>
 </entry>
 
 <entry>
   <title>Deve</title>
   <link href="https://alip.github.io/tr/blog/2012/10/20/deve/"/>
   <updated>2012-10-20T00:00:00+00:00</updated>
   <id>https://alip.github.io/tr/blog/2012/10/20/deve</id>
   <content type="html">&lt;ul&gt;
  &lt;li&gt;&lt;a href=&quot;https://groups.google.com/forum/?fromgroups=#!topic/kaotik/p-_QWAGKgO8&quot;&gt;&lt;code class=&quot;highlighter-rouge&quot;&gt;kaotik/p-_QWAGKgO8&lt;/code&gt;&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Mutlu, mesut kayığına binip açılmak varken beklemeyi yeğlemişti. Henüz
bir gün önce boylu poslu bir delikanlıyken sabah uyandığında kendini
evinde bir böcek olarak bulan adaşı Gregor’a atıfta bulunan bir şiir
yazmayı düşündü. Zira küçük dünyasında daha yakın hissettiği kimse
yoktu. Aylardır eve hapsettiği bedeni artık aynalarda kendisine
görünmüyordu. Banyodaki bir dönem ona yaşama sevinci veren aynaya
baktığında gördüğü varlık yansıması değildi. Kesinlikle emindi. Kuş
kafalı bir deveye benziyordu. Hörgüçleri su ile değil, intikam
duygusuyla doluydu. Kendini bu hale getiren canavar bunu canıyla
ödemeliydi.&lt;/p&gt;

&lt;p&gt;Planı hazırlamıştı ve geriye kalan sadece son adımı oynamaktı. Telefonu
açtı ve numarayı çevirdi:&lt;/p&gt;

&lt;ul&gt;
  &lt;li&gt;Wulf, ben Gregor. Evde misin?&lt;/li&gt;
  &lt;li&gt;Evet dostum. Evdeyim. Sen nerelerdesin?&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Wulf’un sesindeki pişkinlik Gregor’un kararında ne kadar haklı olduğunu
kanıtlar gibiydi. Canavar Wulf’un işini bugün bitireceklerdi. Gregor
önce duraksadı. Sonra cesaretini topladı ve şeytani oyununu oynamaya
koyuldu.&lt;/p&gt;

&lt;ul&gt;
  &lt;li&gt;Aşağıdayım, Wulf. Kapıyı aç dostum. İlaçlarım bitti. Aylardır evden
 çıkamıyorum.&lt;/li&gt;
  &lt;li&gt;Ne? Aşağıda mısın? Yukarı gel, konuşalım Gregor.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Evin önünde bekleyen kiralık katil açık kapıdan girerek merdivenleri
çıkmaya başladı. Wulf’un odasına yavaşça girerek onu ince bir bıçakla
doğramaya girişti. Gregor ise açık kalmış telefondan olanları dinlerken
garip bir haz duyuyordu.&lt;/p&gt;
</content>
 </entry>
 
 <entry>
   <title>Çocuğunuza Okumayı Öğretmeyin!</title>
   <link href="https://alip.github.io/tr/blog/2012/10/19/cocugunuza-okumayi-ogretmeyin/"/>
   <updated>2012-10-19T00:00:00+00:00</updated>
   <id>https://alip.github.io/tr/blog/2012/10/19/cocugunuza-okumayi-ogretmeyin</id>
   <content type="html">&lt;ul&gt;
  &lt;li&gt;&lt;a href=&quot;https://groups.google.com/forum/?fromgroups=#!topic/kaotik/mrQ0KgITOYk&quot;&gt;&lt;code class=&quot;highlighter-rouge&quot;&gt;kaotik/mrQ0KgITOYk&lt;/code&gt;&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;blockquote&gt;
  &lt;p&gt;Merhaba,&lt;/p&gt;

  &lt;p&gt;Gecenin bu vakti önemli olduğunu düşündüğüm birkaç paylaşım yapmak
istiyorum:&lt;/p&gt;

&lt;/blockquote&gt;
&lt;blockquote&gt;
  &lt;span&gt;
    Bir çocuk okur-yazar hale geldiğinde, artık geriye dönüş imkânsızdır.
    Bir müzenin içinde gezinin. Okur-yazar yetişkinlerin, neyi
    göreceklerinden emin olmak için, tablolardan önce, bu tabloların
    altındaki tanıtıcı kartları okuduklarını göreceksiniz. Hatta, sadece
    kartları okuyup, tabloları tamamen es geçmelerine bile tanık
    olabilirsiniz... Okuma-yazma öğrenme kitaplarında da belirtildiği gibi,
    okuma kişinin önüne çeşitli kapılar açar. Ne var ki, bu kapılar bir kez
    açıldığında, bu kapılardan bakmaksızın dünyayı görmek neredeyse
    imkânsızdır.&quot;
  &lt;/span&gt;
&lt;/blockquote&gt;
&lt;blockquote&gt;
  &lt;p&gt;Mayra. Bloom, “Çocuğunuza Okumayı Öğretmeyin,” (editöre mektup),
Co-Evolution Quarterly (Kış 1981), s.102.&lt;/p&gt;

  &lt;p&gt;Doğru söze ne hacet, bir kapıyı açan insanoğlu, ne yazık ki farkında&lt;br /&gt;
olmadan(!) binlerce kapıyı kapatmıştır…&lt;/p&gt;

&lt;/blockquote&gt;
&lt;blockquote&gt;
  &lt;span&gt;
    &quot;Aşıkların kelimelere ihtiyacı yoktur&quot; deyiminde oldukça derin bir
    gerçek yatmaktadır. Mesele tam da böyle bir dünyaya sahip olmaktır;
    aşıkların dünyasına, isimlerin bile unutulabileceği bir dünyaya,
    cahilliğin karşıtının büyülenmişlik olduğunu bilen bir dünyaya sahip
    olmak. Bu yüzden, anlamlı olabilecek tek politika, dili ve zamanı
    ortadan kaldıran ve böylece şehvet derecesinde bir vizyon sahibi olan
    politikadır.
  &lt;/span&gt;
&lt;/blockquote&gt;
&lt;blockquote&gt;
  &lt;p&gt;John Zerzan, “dil: kökeni ve anlamı”,
Gelecekteki İlkel, Kaos Yayınları (Kasım 2009), s.82.&lt;/p&gt;

  &lt;p&gt;Okumak köreltmiş, yazmak köleleştirmiştir. Ancak çağırarak
özgürleşebiliriz artık! Hepinize kolay gele, iyi geceler…&lt;/p&gt;
&lt;/blockquote&gt;
</content>
 </entry>
 
 <entry>
   <title>sydbox-1 is nearly there</title>
   <link href="https://alip.github.io/en/blog/2012/09/29/sydbox-1-is-nearly-there/"/>
   <updated>2012-09-29T00:00:00+00:00</updated>
   <id>https://alip.github.io/en/blog/2012/09/29/sydbox-1-is-nearly-there</id>
   <content type="html">&lt;p&gt;After nearly two years I began working on a sydbox replacement&lt;sup id=&quot;fnref:1&quot;&gt;&lt;a href=&quot;#fn:1&quot; class=&quot;footnote&quot;&gt;1&lt;/a&gt;&lt;/sup&gt; she is
finally nearing completion. This post is meant both as a preliminary
announcement and help request.&lt;/p&gt;

&lt;p&gt;sydbox-1 has been in ::arbor for sometime as sydbox-scm&lt;sup id=&quot;fnref:2&quot;&gt;&lt;a href=&quot;#fn:2&quot; class=&quot;footnote&quot;&gt;2&lt;/a&gt;&lt;/sup&gt; and paludis
supports it since version
&lt;a href=&quot;http://ciaranm.wordpress.com/2012/08/13/paludis-0-78-1-released/&quot;&gt;0.78.1&lt;/a&gt;.
The git repository is hosted on exherbo.org&lt;sup id=&quot;fnref:3&quot;&gt;&lt;a href=&quot;#fn:3&quot; class=&quot;footnote&quot;&gt;3&lt;/a&gt;&lt;/sup&gt;. Before going on to tell you about
her I want to kindly ask you to help me with some tasks:&lt;/p&gt;

&lt;ul&gt;
  &lt;li&gt;
    &lt;p&gt;Proof read the manual page&lt;sup id=&quot;fnref:4&quot;&gt;&lt;a href=&quot;#fn:4&quot; class=&quot;footnote&quot;&gt;4&lt;/a&gt;&lt;/sup&gt;. I am still unsure about the configuration
file format and the magic command API so now is the time to share your
ideas and views to help make sydbox-1 better.&lt;/p&gt;
  &lt;/li&gt;
  &lt;li&gt;
    &lt;p&gt;For brave souls, unmask it and install it. Especially important is to
run its tests. To do that you have to set the environment variable
PALUDIS_DO_NOTHING_SANDBOXY&lt;sup id=&quot;fnref:5&quot;&gt;&lt;a href=&quot;#fn:5&quot; class=&quot;footnote&quot;&gt;5&lt;/a&gt;&lt;/sup&gt;. You will notice that it doesn’t depend
on pinktrace anymore. This is because sydbox-1 includes a rewrite of
pinktrace which will eventually be released as pinktrace-1.&lt;/p&gt;
  &lt;/li&gt;
  &lt;li&gt;
    &lt;p&gt;Once again for brave souls, use it on your system. I am especially
interested in how it performs during the &lt;code class=&quot;highlighter-rouge&quot;&gt;src_test&lt;/code&gt; phase of
exhereseses so please make sure tests are enabled if you do so and
report back any issues (accompanied with a poem of your choosing!).
It is always a good idea to have a pbin of the package in question
to easily rollback changes in case you hit a severe bug[^6].&lt;/p&gt;
  &lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;If you are bored, you can stop reading now. I will go on to introduce
sydbox-1.&lt;/p&gt;

&lt;h3 id=&quot;why&quot;&gt;Why?&lt;/h3&gt;
&lt;p&gt;I am not a professional programmer. However, I have gained many
experiences after writing sydbox-0 and watching it perform as the
default sandbox of Exherbo. sydbox-0 has many shortcomings and drawbacks
which made it rather hard to maintain. Such as:&lt;/p&gt;

&lt;ul&gt;
  &lt;li&gt;sydbox-0 was based on the now unmaintained &lt;code class=&quot;highlighter-rouge&quot;&gt;catbox&lt;/code&gt; initially.
There are many design issues which didn’t fit with our use
cases for Exherbo.&lt;/li&gt;
  &lt;li&gt;Being GPL-2 licensed it was problematic to share code with
the well-established &lt;code class=&quot;highlighter-rouge&quot;&gt;ptrace(2)&lt;/code&gt; based projects like &lt;code class=&quot;highlighter-rouge&quot;&gt;strace&lt;/code&gt;
and &lt;code class=&quot;highlighter-rouge&quot;&gt;truss&lt;/code&gt; (of FreeBSD). I have partially solved this problem
by writing pinktrace - a BSD3 licensed library providing thin
wrappers around certain &lt;code class=&quot;highlighter-rouge&quot;&gt;ptrace(2)&lt;/code&gt; calls but this was not
enough. (See below about &lt;code class=&quot;highlighter-rouge&quot;&gt;pinktrace-easy&lt;/code&gt;)&lt;/li&gt;
  &lt;li&gt;Being a crucial part of the system set, dependencies like
&lt;code class=&quot;highlighter-rouge&quot;&gt;GLib&lt;/code&gt; was obviously a bad idea.&lt;/li&gt;
  &lt;li&gt;Over the years as sydbox-0 codebase grew there were unforeseen
code maintenance problems making it difficult to add new
features.&lt;/li&gt;
&lt;/ul&gt;

&lt;h3 id=&quot;features-of-sydbox-1&quot;&gt;Features of sydbox-1&lt;/h3&gt;

&lt;p&gt;Below are main features of sydbox-1. You may consult the manual page³
for more information.&lt;/p&gt;

&lt;ul&gt;
  &lt;li&gt;No external dependencies. &lt;code class=&quot;highlighter-rouge&quot;&gt;GLib&lt;/code&gt; dependency is gone for good
among with the ini-format configuration file. sydbox-1 uses
JSON format for configuration.&lt;/li&gt;
  &lt;li&gt;Most of the &lt;code class=&quot;highlighter-rouge&quot;&gt;ptrace(2)&lt;/code&gt; work is now abstracted by a
callback-driven higher-level BSD3 licensed library called
&lt;code class=&quot;highlighter-rouge&quot;&gt;pinktrace-easy&lt;/code&gt;. This makes both the maintenance easier and
code sharing with &lt;code class=&quot;highlighter-rouge&quot;&gt;strace&lt;/code&gt; less problematic.&lt;/li&gt;
  &lt;li&gt;Well designed, well documented magic command API which fits in
with the configuration file format and provides an easier
experience during command line invocation.&lt;/li&gt;
  &lt;li&gt;Process dump can be obtained by sending sydbox-1 the &lt;code class=&quot;highlighter-rouge&quot;&gt;SIGUSR1&lt;/code&gt;
signal (or &lt;code class=&quot;highlighter-rouge&quot;&gt;SIGUSR2&lt;/code&gt; for a more verbose dump). This makes it
easier to debug sydbox hangs.&lt;/li&gt;
  &lt;li&gt;Better signal handling to make sydbox more immune to
interrupts.&lt;/li&gt;
  &lt;li&gt;More powerful and configurable rsync-like pattern matching.&lt;/li&gt;
  &lt;li&gt;Support for secure computing mode aka seccomp[^7]. This requires
Linux-3.5 or newer and &lt;code class=&quot;highlighter-rouge&quot;&gt;CONFIG_SECCOMP=y&lt;/code&gt; and
&lt;code class=&quot;highlighter-rouge&quot;&gt;CONFIG_SECCOMP_FILTER=y&lt;/code&gt; kernel configuration options. sydbox-scm
exheres has a seccomp option to pass &lt;code class=&quot;highlighter-rouge&quot;&gt;--enable-seccomp&lt;/code&gt; to
econf. This is one of the key features which may make sydbox-1
faster compared to sydbox-0 because in this mode sydbox only
traces the sandboxed system calls. Tracing other commonly used
system calls - think threaded applications calling
sched_yield() - is therefore avoided.&lt;/li&gt;
  &lt;li&gt;Logging is easier to filter. This still needs some work
though.&lt;/li&gt;
  &lt;li&gt;Port numbers can now be entered as service names which will be
queried from the &lt;code class=&quot;highlighter-rouge&quot;&gt;services(5)&lt;/code&gt; database.&lt;/li&gt;
  &lt;li&gt;Unsupported socket families can be whitelisted/blacklisted.&lt;/li&gt;
  &lt;li&gt;New magic commands exec/resume_if_match and
exec/kill_if_match are added. These commands may be used to
resume or kill matching binaries upon successful execution.
Paludis has &lt;code class=&quot;highlighter-rouge&quot;&gt;esandbox resume&lt;/code&gt; and &lt;code class=&quot;highlighter-rouge&quot;&gt;esandbox kill&lt;/code&gt; commands as
an interface for exheres-0 (Make sure &lt;code class=&quot;highlighter-rouge&quot;&gt;esandbox api&lt;/code&gt; returns 1
before using them). See systemd.exlib as an example on
how we can now restart services from within exhereseses
without worrying about sandboxing.&lt;/li&gt;
  &lt;li&gt;Read sandboxing to prevent unwanted filesytem reads.&lt;/li&gt;
  &lt;li&gt;Black listing is now also supported in addition to
white listing. This may be used to make an “allow by default
and black list unwanted accesses” sandboxing policy.&lt;/li&gt;
  &lt;li&gt;Many bugs fixed, some new system calls are sandboxed.&lt;/li&gt;
&lt;/ul&gt;

&lt;h3 id=&quot;how-can-i-thank-you&quot;&gt;How can I thank you?&lt;/h3&gt;

&lt;p&gt;Send me poems[^8]!&lt;/p&gt;

&lt;p&gt;be more convenient.
[^6]: sydbox-1 has been tested for some time by kind people and I have
     heard about only one such issue so far but it is always a good idea
     to be cautious.
[^7]: &lt;a href=&quot;http://lwn.net/Articles/475043/&quot;&gt;http://lwn.net/Articles/475043/&lt;/a&gt;
[^8]: &lt;a href=&quot;http://dev.exherbo.org/~alip/sydbox/poems.txt&quot;&gt;http://dev.exherbo.org/~alip/sydbox/poems.txt&lt;/a&gt;&lt;/p&gt;
&lt;div class=&quot;footnotes&quot;&gt;
  &lt;ol&gt;
    &lt;li id=&quot;fn:1&quot;&gt;
      &lt;p&gt;She used to be called &lt;code class=&quot;highlighter-rouge&quot;&gt;pandora&lt;/code&gt; in the early days. &lt;a href=&quot;#fnref:1&quot; class=&quot;reversefootnote&quot;&gt;&amp;#8617;&lt;/a&gt;&lt;/p&gt;
    &lt;/li&gt;
    &lt;li id=&quot;fn:2&quot;&gt;
      &lt;p&gt;Not sydbox-0-scm which is the old one. &lt;a href=&quot;#fnref:2&quot; class=&quot;reversefootnote&quot;&gt;&amp;#8617;&lt;/a&gt;&lt;/p&gt;
    &lt;/li&gt;
    &lt;li id=&quot;fn:3&quot;&gt;
      &lt;p&gt;&lt;a href=&quot;http://git.exherbo.org/sydbox-1.git/&quot;&gt;http://git.exherbo.org/sydbox-1.git/&lt;/a&gt; &lt;a href=&quot;#fnref:3&quot; class=&quot;reversefootnote&quot;&gt;&amp;#8617;&lt;/a&gt;&lt;/p&gt;
    &lt;/li&gt;
    &lt;li id=&quot;fn:4&quot;&gt;
      &lt;p&gt;&lt;a href=&quot;http://dev.exherbo.org/~alip/sydbox/sydbox.html&quot;&gt;http://dev.exherbo.org/~alip/sydbox/sydbox.html&lt;/a&gt; &lt;a href=&quot;#fnref:4&quot; class=&quot;reversefootnote&quot;&gt;&amp;#8617;&lt;/a&gt;&lt;/p&gt;
    &lt;/li&gt;
    &lt;li id=&quot;fn:5&quot;&gt;
      &lt;p&gt;Eventually sydbox-1 will install its tests so this phase is going to &lt;a href=&quot;#fnref:5&quot; class=&quot;reversefootnote&quot;&gt;&amp;#8617;&lt;/a&gt;&lt;/p&gt;
    &lt;/li&gt;
  &lt;/ol&gt;
&lt;/div&gt;
</content>
 </entry>
 
 <entry>
   <title>Cüce</title>
   <link href="https://alip.github.io/tr/blog/2012/09/19/cuce/"/>
   <updated>2012-09-19T00:00:00+00:00</updated>
   <id>https://alip.github.io/tr/blog/2012/09/19/cuce</id>
   <content type="html">&lt;ul&gt;
  &lt;li&gt;&lt;a href=&quot;https://groups.google.com/forum/?fromgroups=#!topic/kaotik/By6cSXjxt_4&quot;&gt;&lt;code class=&quot;highlighter-rouge&quot;&gt;kaotik/By6cSXjxt_4&lt;/code&gt;&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;blockquote&gt;
  &lt;p&gt;Papatya gözlü cüce çiçekleri koklarken aldığı hazzı bu çölün ortasında
bulamıyordu. Belki seraplar bile daha yakındı uzak düşlerinden. Güneş
cılız gövdesini yakarken bu cüce sudan çok karanlığı özlüyordu.
Düşüncelerinin karmaşasına aldırmadan sol cebinden aynasını sağ cebinden
de cımbızını çıkardı. Papatyaların yapraklarını birer birer çekmeye
başladı. Bir adım, bir adım, bir adım… Yaprakların gölgesinden
sıyrılan gözleri daha da fazla kamaşmıştı. Artık hiçbir şey göremez
olmuş, ışıyan karanlığına geri dönmüştü. Çiçeğinden koparılan yapraklar
ise çöl rüzgarıyla uçuşurlarken ağlamıyorlardı. Ölüme yakınlardı ve
dermanı da yoktu. Solup toprak olma vakti geldiğinde huzurlu olan her
yaprak gibi heyecanlıydılar.&lt;/p&gt;

  &lt;p&gt;“İşte ölüm” dedi minik cüce. “Bu ışıl ışıl karanlığın içinde beni asla
bulamayacak.” Haklıydı. Günlerdir kaçtığı ölüm meleği onu bu koca çölün
ortasında nasıl bulabilirdi ki? Kaçmak, saklanmak onun işiydi. Yıllarca
kendisine ucube gibi bakan insanlardan kaçmıştı. Küçük gövdesi ile
sığınacak bir delik bulması zor olmuyordu. Elbette, aradan geçen yıllar
koca bir ormanı çöle dönüştürmüş ve onu bu ıssız çölün ortasında
yapayalnız bırakmıştı. Artık etrafta ne bir ağaç kovuğu ne de bir yaprak
gölgesi kalmıştı. Cehennem sıcağında sesi ölüme çalan rüzgarın uğultusu
dışında bir çıt bile çıkmıyordu. Korkusunu dizginleyemediğinden tek
yoldaşı olan canım yaprakları da yolmuştu.&lt;/p&gt;

  &lt;p&gt;Bir adım, bir adım, bir adım… Gittiği yoldan, varacağı yerden bihaber
umarsızca yürüdü. Zamanın unuttuğu bu çölde saatler, günler ve belki de
aylar geçti. Gözlerini görmez eyleyen koca güneşe aşık oldu. Artık
geceleri de gözlerini açmıyordu. Bütün yaprakların kanını donduran bu
karanlık onun huzuru olmuştu.&lt;/p&gt;

  &lt;p&gt;Ölüm meleği olanca heybetiyle cücenin karşısına çıkıp “Merhaba, eski
dost” dediğinde cüce ancak bir ayyaşın takınacağı bir tavırla mutluluğu
bütün benliğinde hissederek gülmeye başladı. Korkusundan eser yoktu.
Melek şaşırdı. Nasıl olmuştu da gözleri görmez bir cüce koca bir çölün
ortasında içindeki bu büyük aşkı anlayabilmişti? Merakla sordu:
“Biliyorsun ki senin canını almaya geldim. Bu tebessümün sebebi nedir?
Büyük bir çelişkinin ortasında aklını kaçırmış gibisin.” Cüce heyecanını
gizlemekte zorlanıyordu. Diz çökerek kollarını havaya kaldırdı ve
yanıtladı: “Melek kardeşim, vakit bir olup göğe yükselme vaktidir.
Hasret kaldığım ateşin kıvılcımını çakmaya geldin. Minnetim sana,
gövdemi kavuran aşkım ise gökleredir. Artık beni yakabilirsin.”
Melek hafif tebessüm ederek cüceyi ateşe verdi. Dumanı soluyan bütün
yapraklar bildiler ki bu koku, bu ışık, bu ateş aşktan gelir ve yine
aşka gider…&lt;/p&gt;
&lt;/blockquote&gt;
</content>
 </entry>
 
 <entry>
   <title>Korku</title>
   <link href="https://alip.github.io/tr/blog/2012/08/18/korku/"/>
   <updated>2012-08-18T00:00:00+00:00</updated>
   <id>https://alip.github.io/tr/blog/2012/08/18/korku</id>
   <content type="html">&lt;ul&gt;
  &lt;li&gt;&lt;a href=&quot;https://groups.google.com/forum/?fromgroups=#!topic/kaotik/OzGUQO42WFY&quot;&gt;&lt;code class=&quot;highlighter-rouge&quot;&gt;kaotik/OzGUQO42WFY&lt;/code&gt;&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;http://sutros.com/songs/24519&quot;&gt;&lt;code class=&quot;highlighter-rouge&quot;&gt;sutros/24519&lt;/code&gt;&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Merhaba,&lt;/p&gt;

&lt;blockquote&gt;
  &lt;p&gt;Yüzleşmedikçe yüz bulan korkularımız beyni yemeye başladığında insan
ister istemez tutunacak bir dal arıyor. Oysa bu bulanık sularda
yüzebilmek güç olmasa gerek, değil mi? Kuralı, kaidesi değişmedi ki
yüzyıllardır. Balık olsaydım diye hayıflandıkça ağırlaşırsın.
Ağırlaşırsan da batarsın. Hafiflemek için artık atılacak torba
kalmadığında balondan, çaresizim sanarsın.&lt;/p&gt;

  &lt;p&gt;Ağlarsın…&lt;br /&gt;
Ağladıkça,&lt;br /&gt;
Ağladıkça,&lt;br /&gt;
Ağladıkça,&lt;br /&gt;
Hafifler gövden&lt;br /&gt;
Su yüzüne çıkarsın…&lt;/p&gt;
&lt;/blockquote&gt;
</content>
 </entry>
 
 <entry>
   <title>Yol</title>
   <link href="https://alip.github.io/tr/blog/2012/08/09/yol/"/>
   <updated>2012-08-09T00:00:00+00:00</updated>
   <id>https://alip.github.io/tr/blog/2012/08/09/yol</id>
   <content type="html">&lt;ul&gt;
  &lt;li&gt;&lt;a href=&quot;https://groups.google.com/forum/?fromgroups=#!topic/kaotik/c5FThXcrfbo&quot;&gt;&lt;code class=&quot;highlighter-rouge&quot;&gt;kaotik/c5FThXcrfbo&lt;/code&gt;&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;blockquote&gt;
  &lt;p&gt;Güzelliğin, kabusların ve yolların&lt;br /&gt;
Sonu vardır elbet&lt;br /&gt;
Ama başından bunu kestirmek ne olası ne de öngörülesi&lt;br /&gt;
Evet! Onlar benim cinlerim!&lt;br /&gt;
Utancım yoktur&lt;br /&gt;
Yazıyorsam&lt;br /&gt;
Haklı olduğumdan değil&lt;br /&gt;
Bir ışık yaktığındandır&lt;br /&gt;
Böyle biline&lt;br /&gt;
Benim güzelim, ışığım&lt;br /&gt;
Bir eski şehirdedir&lt;br /&gt;
Kazınmış kafatasımın çölünde güller açıyorsa&lt;br /&gt;
O şehirden&lt;br /&gt;
O ışıktan&lt;br /&gt;
O güzeldendir&lt;br /&gt;
Böyle biline&lt;br /&gt;
Ana rahminde aradığın ışık&lt;br /&gt;
Nefes alırken bulamadığın huzur&lt;br /&gt;
Yürüdükçe bitmeyen yolun başı da sonu da O’dur&lt;br /&gt;
O’ndan ötürüdür&lt;br /&gt;
Gayrı bu garip adama dert yoktur&lt;br /&gt;
Sahilde kumlarda&lt;br /&gt;
Kanlar içinde yatıyorsam&lt;br /&gt;
Bilin ki gitmiştir&lt;br /&gt;
Yoktur demek olmaz&lt;br /&gt;
Zira oradadır ve buradadır&lt;br /&gt;
Nereye baksam,&lt;br /&gt;
Neye dokunsam,&lt;br /&gt;
Ne içsem,&lt;br /&gt;
Ne solusam,&lt;br /&gt;
Neyi bilsem,&lt;br /&gt;
Neyi merak etsem,&lt;br /&gt;
Ne kadar uğraşsam,&lt;br /&gt;
Ne kadar yürüsem,&lt;br /&gt;
Ne denli düşünsem nafile&lt;br /&gt;
Başı da sonu da O’ndandır&lt;br /&gt;
Basit olduğu kadar şaşkınlık vericidir&lt;br /&gt;
Büyüler ve gözden kaybolur&lt;br /&gt;
Evlat acısı gibi burkar yüreği gitmek&lt;br /&gt;
Ne başka bir ışık paklar adamı&lt;br /&gt;
Ne de başka bir ıslığı duyar kulakları&lt;br /&gt;
Kardeşini öldüren çekmez bu acıyı&lt;br /&gt;
Ölmek istersin&lt;br /&gt;
Öldürmez&lt;br /&gt;
Düğümlenir boğazına&lt;br /&gt;
Boğar&lt;br /&gt;
Ama öldürmez&lt;br /&gt;
Sevdiğin, sevebileceğin gayrı dahası yoktur&lt;br /&gt;
Yazmaya kalem, anlatmaya dil yetmez&lt;br /&gt;
Yine de anlatır&lt;br /&gt;
İster istemez yazarsın&lt;br /&gt;
Ama o kıvılcımı sen yakamazsın&lt;br /&gt;
Ne yakana mani&lt;br /&gt;
Ne yanana derman olabilirsin&lt;br /&gt;
Yanarsın&lt;br /&gt;
Saatler, günler, aylar sürer&lt;br /&gt;
Sönmezsin&lt;br /&gt;
Ateş bir türlü sönmez&lt;br /&gt;
Sen yanmaya devam edersin&lt;br /&gt;
Yanarken anlamak da&lt;br /&gt;
Yanana meram anlatmak da&lt;br /&gt;
Zordur&lt;br /&gt;
İç çekersin&lt;br /&gt;
Anlar dersin&lt;br /&gt;
İlla ki anlar&lt;br /&gt;
Yanarsa anlar&lt;br /&gt;
Yandıkça anlar&lt;br /&gt;
Sönmeyince ateş&lt;br /&gt;
Dinmeyince duman&lt;br /&gt;
Allah’ın en avare kulu olsa dahi anlar&lt;br /&gt;
Bitmeyen ateşi yakan neyse&lt;br /&gt;
Sen de O’sun&lt;br /&gt;
Birdir ve gerisi hiçtir…&lt;/p&gt;

  &lt;p&gt;demişti kraliçe karınca. Yağmur yağdıkça inşa ettikleri devasa delik
kapanıyordu. Hazırlıklar tamamdı ama nedense havadaki felaket kokusu bütün
karıncaların iliklerine işlemişti. Biri hariç… İşte o kraliçe karınca son
vaazında “Bizi çirkin yapan hırstır yavrularım” diye vurgulamıştı. Kraliçe
içeri, deliğe girmeyecekti. Düşen yağmur taneleri onu boğacaktı ama aynı
zamanda da söndürecekti. O yüce yükseklikten düşen tanrısal su aklını alsa da
bitirecekti yangını. Narin kafasına bir damla vurdu. Sol antenini kırdı.
Gözünden bir damla yaş aktı. İnadına güldü. Ölse de sönecekti çünkü sönmezse
ölecekti. Diğerleri onu anlamıyorlardı. Anlayamadıkça, çare bulamıyor, deliği
kapatamıyor ve onlar da boğuluyorlardı. Yasa kutsaldı. Kraliçe içeri
girmedikçe delik kapanmazdı. Yaşayacak başka günlerinin kalmadığını bilseler
yine böyle davranırlar mıydı? Elbette, hayır. Kim evinde boğulmak ister ki?&lt;/p&gt;

  &lt;p&gt;Kim?&lt;/p&gt;

  &lt;p&gt;“Ben!” dedi küçük velet. O evi ben yaktım. Hakim şaşırmıştı. Yedi
yaşında küçük bir çocuk nasıl olmuş da evini yakabilmişti? Neden mi? Çünkü ona
kimse koşmayı öğretmemişti. Kapatıldığı delik, örülen duvarlar, kırılan
kanatlar ve zamanı asla gelmeyen özgürlük… Nasıl mı? Bir mum dibini
aydınlatmaz belki ama ona bir tekme atarsan bütün şehri aydınlatabilirsin.
Elbette annesi sevmişti onu. Elbette babası da… Ama çocuğun minik aklında
sevgi duvarsız olmalıydı.&lt;/p&gt;

  &lt;p&gt;Yandı&lt;br /&gt;
Yaktı&lt;br /&gt;
Buz eridi ve geldiği gibi suyun dibine geri döndü.&lt;br /&gt;
Gerçek değil bir yalandı belki&lt;br /&gt;
Ancak ölesiye doğru, ölesiye aşık&lt;br /&gt;
Barut gibi de sarhoştu!&lt;/p&gt;
&lt;/blockquote&gt;
</content>
 </entry>
 
 <entry>
   <title>Ölüm</title>
   <link href="https://alip.github.io/tr/blog/2012/04/03/olum/"/>
   <updated>2012-04-03T00:00:00+00:00</updated>
   <id>https://alip.github.io/tr/blog/2012/04/03/olum</id>
   <content type="html">&lt;ul&gt;
  &lt;li&gt;&lt;a href=&quot;https://groups.google.com/forum/?fromgroups=#!topic/kaotik/ImCMgXvP_J8&quot;&gt;&lt;code class=&quot;highlighter-rouge&quot;&gt;kaotik/ImCMgXvP_J8&lt;/code&gt;&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;blockquote&gt;
  &lt;p&gt;Papatyaların içinde buldum ölümü&lt;br /&gt;
Uçsuz bucaksız sarının içinde&lt;br /&gt;
Boylu boyunca yatmış deli mi ne&lt;br /&gt;
Kanatlarını vermiş şehvete&lt;br /&gt;
Nefesini almak için geriye&lt;br /&gt;
İmkansız karanlığımı bırakıp ellerimden&lt;br /&gt;
Sarıldım beline&lt;br /&gt;
Şehvetin dalgınlığını fırsat bilip&lt;br /&gt;
Teni tenime&lt;br /&gt;
Tenim tenine&lt;br /&gt;
Nefes nefese&lt;br /&gt;
Ölümün bacaklarını ayırdım o gece…&lt;/p&gt;
&lt;/blockquote&gt;
</content>
 </entry>
 
 <entry>
   <title>Kayıkçı</title>
   <link href="https://alip.github.io/tr/blog/2012/03/30/kayikci/"/>
   <updated>2012-03-30T00:00:00+00:00</updated>
   <id>https://alip.github.io/tr/blog/2012/03/30/kayikci</id>
   <content type="html">&lt;ul&gt;
  &lt;li&gt;&lt;a href=&quot;https://groups.google.com/forum/?fromgroups=#!topic/kaotik/A71vr5p1kxo&quot;&gt;&lt;code class=&quot;highlighter-rouge&quot;&gt;kaotik/A71vr5p1kxo&lt;/code&gt;&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;blockquote&gt;
  &lt;p&gt;Bir durakta durmuşum&lt;br /&gt;
Rüya mı gerçek mi bilmem&lt;br /&gt;
Yanımda huysuz bir leylek&lt;br /&gt;
Üstümüz başımız hep tezek&lt;br /&gt;
Ucuz şairlere inat&lt;br /&gt;
Kendimize inat&lt;br /&gt;
Hem aşk hem bok kokuyoruz&lt;/p&gt;

  &lt;p&gt;Yine bir durak&lt;br /&gt;
Düşündükçe bulanan aklım&lt;br /&gt;
Gözlerimden fışkırmış&lt;br /&gt;
Parmaklarımın arasından&lt;br /&gt;
Meriçe dalıyor&lt;br /&gt;
Battıkça sövüyorum&lt;br /&gt;
Leyleğin şarap çanağına&lt;br /&gt;
Arşimete inat&lt;br /&gt;
Kendime inat&lt;br /&gt;
Hem aşk hem yosun kokuyorum&lt;/p&gt;

  &lt;p&gt;Artık rüyadayım belli&lt;br /&gt;
Üstüm başım temiz pak&lt;br /&gt;
Sol elimde bir demet çiçek&lt;br /&gt;
Sağ elimde istekli bir kürek&lt;br /&gt;
Almışım kayığı çıkmışım yola&lt;br /&gt;
Dönüyorum etrafımda&lt;br /&gt;
Çarptıkça alevlenen kalbim&lt;br /&gt;
Ciğerimi delmiş&lt;br /&gt;
Kaburgalarımı kırmış&lt;br /&gt;
Porsuktan çıkıyor&lt;br /&gt;
Gün yüzüne&lt;br /&gt;
Gül yüzlüme&lt;br /&gt;
Yine aşk hep aşk kokuyorsun&lt;/p&gt;
&lt;/blockquote&gt;
</content>
 </entry>
 
 <entry>
   <title>Döl</title>
   <link href="https://alip.github.io/tr/blog/2012/03/29/dol/"/>
   <updated>2012-03-29T00:00:00+00:00</updated>
   <id>https://alip.github.io/tr/blog/2012/03/29/dol</id>
   <content type="html">&lt;ul&gt;
  &lt;li&gt;&lt;a href=&quot;https://groups.google.com/forum/?fromgroups=#!topic/kaotik/3zL1EEv9KCM&quot;&gt;&lt;code class=&quot;highlighter-rouge&quot;&gt;kaotik/3zL1EEv9KCM&lt;/code&gt;&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;blockquote&gt;
  &lt;p&gt;Tarihçiler şaraplarını yudumlayadursun&lt;br /&gt;
Şu cahil kunduz yavrusu işgal etti&lt;br /&gt;
Kafatasımı, aklımı, karanlığımı…&lt;br /&gt;
Yalnız beraberken doğan güneş döndü yüzünü&lt;br /&gt;
Günahlarıma tav olan İsa’ya,&lt;br /&gt;
Anlamsız huzuruma, umutlarıma, yalnızlığıma…&lt;br /&gt;
Aşka giden patikada ciğerini yardığında Sinan,&lt;br /&gt;
Garda buldular cesedimi&lt;br /&gt;
Açlık, susuzluk, uykusuzluk…&lt;br /&gt;
Akıl yenik düştü tutkulara&lt;br /&gt;
Emdiler kanımı,&lt;br /&gt;
Kemirdiler etimi,&lt;br /&gt;
Yaktılar kemiklerimi,&lt;br /&gt;
Bulutsuz gökyüzünü sardı duman&lt;br /&gt;
İsa’yı gördüm&lt;br /&gt;
O’nu gördüm&lt;br /&gt;
Kendime öldüm&lt;br /&gt;
Gayrı dölüm hükümsüzdür…&lt;/p&gt;
&lt;/blockquote&gt;
</content>
 </entry>
 
 <entry>
   <title>Üzüm</title>
   <link href="https://alip.github.io/tr/blog/2012/02/14/uzum/"/>
   <updated>2012-02-14T00:00:00+00:00</updated>
   <id>https://alip.github.io/tr/blog/2012/02/14/uzum</id>
   <content type="html">&lt;p&gt;&lt;a href=&quot;https://groups.google.com/forum/?fromgroups=#!topic/kaotik/-9sv6xoslw4&quot;&gt;kaotik/-9sv6xoslw4&lt;/a&gt;&lt;/p&gt;

&lt;blockquote&gt;
  &lt;p&gt;sözüm meclisten dışarı dostlar&lt;br /&gt;
bu günlerde kendimi üzüm gibi hissediyorum&lt;br /&gt;
hani koparıp sapımı ezseler beni&lt;br /&gt;
marmara ege karadeniz ve hatta akdeniz&lt;br /&gt;
şarap olur diyorum&lt;/p&gt;

  &lt;p&gt;sevgim öylesine büyük ki dostlar&lt;br /&gt;
kırka yarıp yine kırka bölseler&lt;br /&gt;
ve kırk bebeğe balon diye verseler&lt;br /&gt;
kırk bin tane zeplin olur da&lt;br /&gt;
kırk bin aşığa kanat olur diyorum&lt;/p&gt;

  &lt;p&gt;ne oldu bana böyle durup dururken&lt;br /&gt;
şermin aldı başını gitti&lt;br /&gt;
babu zaten lafımı dinlemezdi&lt;br /&gt;
elim kesik kulağım delik&lt;br /&gt;
oraya buraya kaçan keçiler&lt;br /&gt;
bir de keçiler inatçıdır derler&lt;br /&gt;
penguenin de kafası delik suratında iğneler&lt;br /&gt;
uğurböceği bile suratıma bakıp bakıp susuyor&lt;/p&gt;

  &lt;p&gt;övünmek gibi olmasın ama dostlar&lt;br /&gt;
kendimi üzüm gibi hissediyorum&lt;br /&gt;
hani soyup kabuğumu ezseler beni&lt;br /&gt;
akdeniz şarap olur diyorum&lt;br /&gt;
ve hatta atlas okyanusu&lt;br /&gt;
ve hatta hint okyanusu&lt;br /&gt;
ve hatta hatta porsuk çayı bile&lt;br /&gt;
şarap olur diyorum&lt;br /&gt;
böyle şaraba aşık mı dayanır&lt;/p&gt;

  &lt;p&gt;çivi çiviyi söker derler&lt;br /&gt;
soğuktan donanı buzla ovarlar&lt;br /&gt;
ben zaten yanmışım dostlar&lt;br /&gt;
peki beni askere mi alsalar&lt;/p&gt;

  &lt;p&gt;ılık süt ile kuru ekmek&lt;br /&gt;
böyle gelmiş böyle gidecek&lt;/p&gt;
&lt;/blockquote&gt;
</content>
 </entry>
 
 <entry>
   <title>Keçice Felsefe</title>
   <link href="https://alip.github.io/tr/blog/2011/12/15/kecice-felsefe/"/>
   <updated>2011-12-15T00:00:00+00:00</updated>
   <id>https://alip.github.io/tr/blog/2011/12/15/kecice-felsefe</id>
   <content type="html">&lt;ul&gt;
  &lt;li&gt;&lt;a href=&quot;https://groups.google.com/forum/?fromgroups=#!topic/kaotik/XFohgvE9cTw&quot;&gt;&lt;code class=&quot;highlighter-rouge&quot;&gt;kaotik/XFohgvE9cTw&lt;/code&gt;&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Şems, ki bence Ay’a giden ilk ve tek insandır, bir keçi bulsaydı orda
adını Rûmi koymazdı. Hâl böyle olunca, “eğer bir insanı Ay’a
koyduklarına inandıysan ve kart sakladığına da inanmıyorsan, yolunda
giden hiçbir şey yok!”¹&lt;/p&gt;

&lt;p&gt;¹: &lt;a href=&quot;http://www.youtube.com/watch?v=1hKSYgOGtos&quot;&gt;&lt;code class=&quot;highlighter-rouge&quot;&gt;youtube/1hKSYgOGtos&lt;/code&gt;&lt;/a&gt;&lt;/p&gt;

&lt;blockquote&gt;
  &lt;p&gt;Mors alfabesiyle konuşmak bu kadar mı zor? Sürreal sandığımız altı gözlü
keçiler bir gün kanatlanıp gökyüzünde halaya durursa, hislerimizi tarif
edecek gücü bize kim verecek?&lt;/p&gt;

  &lt;p&gt;Konuşurken ustalar, susmak yanlış, hep yanlış, en yanlış! Çünkü susmanın
zıttı konuşmak değil, düşünmemektir! Düşüncesizlik ile kontrolsüz salt
farkındalık ne kadar yakın gözükse de aldatıcı bir yakınlıktır kanımca.
Tam aksine, beklemek ile umut etmek yakın anlamlıdır.&lt;/p&gt;

  &lt;p&gt;Kelimelerin renkleri olsa ya, sarı kelimeler, mavi kelimeler… Yazın
daha kolaylaşır mıydı? Yoksa aralarındaki uyumu arayan
mükemmeliyetçiliğimiz yine her şeyi berbat mı ederdi?&lt;/p&gt;

&lt;/blockquote&gt;
</content>
 </entry>
 
 <entry>
   <title>Kadim Krallık</title>
   <link href="https://alip.github.io/tr/blog/2011/12/15/kadim-krallik/"/>
   <updated>2011-12-15T00:00:00+00:00</updated>
   <id>https://alip.github.io/tr/blog/2011/12/15/kadim-krallik</id>
   <content type="html">&lt;ul&gt;
  &lt;li&gt;&lt;a href=&quot;https://groups.google.com/forum/?fromgroups=#!topic/kaotik/2qIJoI5JgsY&quot;&gt;&lt;code class=&quot;highlighter-rouge&quot;&gt;kaotik/2qIJoI5JgsY&lt;/code&gt;&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Evi düzenlerken birkaç çağrışıma rastladım.&lt;br /&gt;
Paylaşmak istedim.&lt;br /&gt;
Çağırın! Kuşların zaptı yakın!&lt;/p&gt;

&lt;blockquote&gt;
  &lt;p&gt;Yoldayım, sapa caddeler… Hafif tedirginim. Saat gece yarısını geçmiş.
Nasıl da unuttum? Atın da yemini vermedim bu sabah. Hava sıcak.
Terliyim. Rahip azarlayacak. Kim bilir kaç saattir bekliyor. Durağa da
epey uzağım. Aptal kafam! Düşüneceğine koşsana be adam!&lt;/p&gt;

  &lt;p&gt;Cadde, nefesime uzun geldi. Kesildim. Yürümeye devam… Acaba aldığım
boyaları beğenir mi? Aksi şeytan, para da ancak buna yetti. Ara bir
sokağa girdim. Burası daha kestirme olmalı. Arkamdan da talihsizlik
dönmüş olacak, ayakkabımın bağları çözüldü. Eğildim. Etraf karanlık.
“Miyav” dedi. Kafamı kaldırdım. Gözlerimi de iyice açtım. Ne tatlı kedi!
Karnı da aç belli. Yürü dedim gidelim, takıldı peşime. Eski hayatında
Bâbil’de ressammış. Zaten bu kedi bedenine sığamadığı belliydi. Gözleri
fal taşı gibi açıktı. Efkarlısındır, dedim. Şeytana uyduk. Köşedeki
meyhaneye girdik. İnanın, rakı su gibi gitti. Muhabbetler devlet
kurtarırken, boyaları uzattım. Al dedim, belki algılarına tercüman
olurlar. Öyle bir resim çizdi ki yerden tavana, sahne değişti. Karşımda
rahip, yanında da kedisi Nünü…&lt;/p&gt;
&lt;/blockquote&gt;
</content>
 </entry>
 
 <entry>
   <title>Denemeler</title>
   <link href="https://alip.github.io/tr/blog/2011/12/15/denemeler/"/>
   <updated>2011-12-15T00:00:00+00:00</updated>
   <id>https://alip.github.io/tr/blog/2011/12/15/denemeler</id>
   <content type="html">&lt;ul&gt;
  &lt;li&gt;&lt;a href=&quot;https://groups.google.com/forum/?fromgroups=#!topic/kaotik/WzAgtHfYcew&quot;&gt;&lt;code class=&quot;highlighter-rouge&quot;&gt;kaotik/WzAgtHfYcew&lt;/code&gt;&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Sayıların ifade ettiği bir anlam yoktur(!)&lt;/p&gt;

&lt;blockquote&gt;
  &lt;h3 id=&quot;dakika-3---deneme-1&quot;&gt;Dakika 3 - Deneme 1&lt;/h3&gt;

  &lt;p&gt;Geliyorum dedi çocuk. Biraz ürkmüştü. Onu çağıran tavşan, daha önce
gördüğü tavşanlara hiç benzemiyordu. “Hayatın boyunca koşsan da bana
yetişemezsin!” dedi tavşan. Gülüşü epey kibirliydi. En azından çocuğa
öyle gelmişti. Merağı, korkusunu yendi. Tavşansa dönüp koşmaya
başlamıştı…&lt;/p&gt;

  &lt;h3 id=&quot;dakika-8---deneme-2&quot;&gt;Dakika 8 - Deneme 2&lt;/h3&gt;

  &lt;p&gt;Sabırsız unutkan vücutlar&lt;br /&gt;
Çağrışım yoksunu karanlık beyinler&lt;br /&gt;
Sessiz şarkılar,&lt;br /&gt;
Noktasız cümleler&lt;br /&gt;
Birleşmek yerine başkalaşan toplumlar&lt;br /&gt;
Girdaplar, dikkatsiz çığlıklar!&lt;br /&gt;
Seslenmiyorum, çağırmıyorum…&lt;br /&gt;
Acımıyorum, şefkat beslemiyorum.&lt;br /&gt;
Sadece bir bardak soğuk su içiyorum.&lt;br /&gt;
Nefes aldıkça, ağladıkça…&lt;/p&gt;

  &lt;h3 id=&quot;dakika-17---deneme-3&quot;&gt;Dakika 17 - Deneme 3&lt;/h3&gt;

  &lt;p&gt;Çığlıklar içinde, dümdüz bir yolda görmüştü çocuk ilk defa tavşanı…
Davul çalan çekirge ile aslan miyavlıyorlardı. Yoldan geçen yavru
kurbağa, tavşana döndü ve sordu:&lt;/p&gt;

  &lt;p&gt;- Burdan Venüs’e nasıl giderim?&lt;/p&gt;

  &lt;p&gt;Kurbağanın annesi Venüs’te yaşıyordu. Çocuğun telaşlı bakışları arasında
bir uzay gemisi yapmaya koyuldular…&lt;/p&gt;
&lt;/blockquote&gt;
</content>
 </entry>
 
 <entry>
   <title>Kuş -- Radyo Yayını Provası</title>
   <link href="https://alip.github.io/tr/blog/2011/12/10/radyo/"/>
   <updated>2011-12-10T00:00:00+00:00</updated>
   <id>https://alip.github.io/tr/blog/2011/12/10/radyo</id>
   <content type="html">&lt;ul&gt;
  &lt;li&gt;&lt;a href=&quot;https://groups.google.com/forum/?fromgroups=#!topic/kaotik/cUY3beYkZjo&quot;&gt;&lt;code class=&quot;highlighter-rouge&quot;&gt;kaotik/cUY3beYkZjo&lt;/code&gt;&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;http://sutros.com/songs/20057&quot;&gt;&lt;code class=&quot;highlighter-rouge&quot;&gt;sutros/20057&lt;/code&gt;&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;blockquote&gt;
  &lt;p&gt;İyi sabahlar sayın dinleyenler!&lt;br /&gt;
Civataları gevşemiş radyomuz ile güne merhaba demeye hazır olun!&lt;/p&gt;

  &lt;p&gt;Bugünkü söyleşimizin konusu kuştur. İstatistiklere göre kuş olma vakası
yüksek eğitimlilerde, yalnızlarda ve işsizlerde daha çok görülür. Daha
da ilginç bir istatistiğe göre ise kışın doğanların kuş olma olasılığı,
yazın doğanlara göre yüzde on daha fazladır.&lt;/p&gt;

  &lt;p&gt;Değerli dinleyenler, bu uykunuzu açmadıysa hâlâ bir de şunu dinleyin.
Uzmanlara göre, annenin hamileliğinin ikinci döneminde geçirdiği grip
bebeğin kuş doğma olasılığını arttırır.&lt;/p&gt;

  &lt;p&gt;Dostlarım, sizi müzikle başbaşa bırakmadan kuş olma belirtilerini de
anlatmak isterim ki farkında olasınız. Kuşlar ağır ilgisizlerdir. Tike
benzer devinimsel hareketler yapabilirler. Duygu azalması ve göz
iletişiminin eksikliği dikkat çeker.&lt;/p&gt;

  &lt;p&gt;Son olarak sayın dinleyenler, ego sınırlarını yıkan kuşlar
şüphelendikleri ya da korktukları kuşlardan bahsederken gülerler.&lt;/p&gt;

  &lt;p&gt;Sabrınız için teşekkür ederim.&lt;/p&gt;

  &lt;p&gt;Bu sıcak Mayıstos sabahı Erkin Koray’dan geliyor, Şaşkın!&lt;/p&gt;
&lt;/blockquote&gt;
</content>
 </entry>
 
 <entry>
   <title>Mevlana'ya Mektup</title>
   <link href="https://alip.github.io/tr/blog/2011/12/10/mevlanaya/"/>
   <updated>2011-12-10T00:00:00+00:00</updated>
   <id>https://alip.github.io/tr/blog/2011/12/10/mevlanaya</id>
   <content type="html">&lt;ul&gt;
  &lt;li&gt;&lt;a href=&quot;https://groups.google.com/forum/?fromgroups=#!topic/kaotik/qad3PC6MyaE&quot;&gt;&lt;code class=&quot;highlighter-rouge&quot;&gt;kaotik/qad3PC6MyaE&lt;/code&gt;&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;blockquote&gt;
  &lt;div class=&quot;highlighter-rouge&quot;&gt;&lt;div class=&quot;highlight&quot;&gt;&lt;pre class=&quot;highlight&quot;&gt;&lt;code&gt;                            Hiç Olduğum Ev
                            AyşeKadın/Edirne

                            6 Kasım 2011
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;  &lt;/div&gt;

  &lt;p&gt;Mevlana Celaleddin-i Belhi Rumi&lt;br /&gt;
Ne Başı Ne Sonu Olan Ülke&lt;/p&gt;

  &lt;p&gt;Aynaların Gerçek Sahibi’ne,&lt;/p&gt;

  &lt;p&gt;Efendim, yüzyıllar önce ya da yüzyıllar sonra buluştuğumuz bugün, sizin
deyiminizle “Vuslat”a giden yolun hem başındayım hem de sonundayım. Bu
mektubumda, sizi gördüğüm, sizinle konuştuğum bir rüyadan bahsedeceğim.
Işığımı etrafımdaki bütün ışıklara gözümü kapatıp içime yöneldiğim bu
derin uykudayken buldum.&lt;/p&gt;

  &lt;p&gt;Adım Nünü, Selimiye’nin şehri Edirne’de bir öğrenciyim. Gündüzleri
okuluma gider, geceleri ise küçük ve şirin evimde otururum. Aynalarda
kendimi seyrederim. Birbirlerine, daha da acınası kendilerine
yabancılaşan insanlara inat, hayata dair, aşka dair düşler kurarım. Buna
rağmen benim de içimden çözümünü bulamadığım bir umutsuzluk hiç eksik
olmadı. Ta ki o güne kadar…&lt;/p&gt;

  &lt;p&gt;Bir sabah kapı sesine uyandım. Sabahın bu erken saatinde kimin bana bir
söyleyeceği olabilirdi ki? Yavaşça doğruldum ve kapıya yöneldim. Üstüme
çekidüzen verip kapıyı açtım. Kimsecikler yoktu. Etrafa bakınırken yerde
bir mektup gördüm. Merak içinde eğilip mektubu aldım. Odama geri döndüm
ve köşedeki koltuğa oturdum. Zarfı hızlıca yırttım. Okumaya başladım.
Mektubu “Canbaz” isimli biri yazmıştı. Yazısı hiç okunaklı değildi.
Aceleyle yazdığını düşündüm.  Nereye gidiyordu acaba?&lt;/p&gt;

  &lt;p&gt;Yazısının aksine anlatımı epey hoşuma gitti. Kendimi kelimelerin
büyüsüne kaptırdım. Zaman zaman anlamakta zorlandım. Anlamadığımı
anladıkça hevesim arttı. Okumaya devam ettim. Eski bir şarkıdan yaptığı
alıntıyla düşüncelere daldım. Mektup kısaydı ama ben sonuna gelene kadar
uzun bir zaman geçti.  Neredeyse her satırında aşktan bahsediyordu.
Dediğine göre aynaya baktığımda gördüğüm kendim değildi. Gerçek yüzümü
görmem için aşık olmam gerekiyordu.&lt;/p&gt;

  &lt;p&gt;Kendimle başbaşa, düşüncelerimin olanca kargaşasına aldırmadan,
kahvaltımı yaptım. Giyindim ve okula gittim. Sınıfa giden koridor bana
uzun bir yol gibi geldi. İki yanındaki öğretmen odaları ve kapılarında
yazan isimler, sanki hepsi birden anlam kazanmaya başlamıştı…&lt;/p&gt;

  &lt;p&gt;O gece rüyamda, ucu bucağını gözlerimin seçemediği bir yolun ortasında,
yalnız, küçük bir çocuktum. Önce ne yapacağımı bilemedim. Biraz etrafıma
bakındıktan sonra usulca yere oturdum. Gözlerimi ovuşturmaya başladım.
Nemli olduklarını hissettim. Belli ki ağlamıştım. Çaresizlik içinde
düşünürken yolun iki yanındaki ağaçların hışırtıları dikkatimi çekti.
Fazla zaman geçmeden anladım. Hep bir ağızdan “aşk” diyorlardı. Ayağa
kalkıp yürümeye koyuldum. Yolun sonu hiç gelmeyecek gibiydi. Yürüdükçe
uzuyordu yol, uzadıkça umudum azalıyordu.&lt;/p&gt;

  &lt;p&gt;Sabaha karşı, güneşin doğuşuna yakın, ter içinde uyandım. Bu rüyayı pek
umursamadım. İkinci gece uykuya daldığımda yine aynı yolda küçük bir
çocuktum.  Bu sefer ağaçlara yolun sonunu sordum. Yanıt alamadım.
Sinirlendim. Koşmaya başladım. Yolun sonu olduğunu düşündüğüm yere
gitgide yaklaşıyordum. Hırsım arttıkça hızlanıyordum. Aradan ne kadar
zaman geçti bilinmez ama rüyada bana bir ömür gibi geldi. İstediğim yere
vardığımda, karşımda bir çıkış değil devasa bir ayna vardı.&lt;/p&gt;

  &lt;p&gt;Yine sırılsıklam uyandım. Uzun uzun düşündüm ama bir anlam veremedim.
Üçüncü gece, yanlış yönü seçtiğimden emindim. Yüzümü diğer tarafa
döndüm. Var gücümle koştum. Sonuç farksızdı. Karşımda yine bir ayna
vardı. Çıkışı olmayan, bir yere varmayan bu yolun ortasında ben ne
arıyordum?  Ağaçların yükselen sesleri eşliğinde başka bir yol aradım.
Bir patika bile bulamadım. Yoruldum. Üzüldüm çünkü kendimi tutsak gibi
hissettim.&lt;/p&gt;

  &lt;p&gt;Ustam, gecelerin birbirine benzemesi, gündüzlerin de benzemesine neden
olmuştu. Odamda bütün gün ileri geri yürüyor ve kendimi dinliyordum.
Duvara astığım bir sözünüz ise aklımdan hiç çıkmıyordu:&lt;/p&gt;

  &lt;p&gt;“Yanlış ve doğru davranmayla ilgili fikirlerin ötesinde bir yer var.
Seninle orada buluşacağım…”&lt;/p&gt;

  &lt;p&gt;Benimle buluşacağınızdan şüphem yoktu ama neredeydiniz? Gecelerim sizi
aramakla geçti. Altıncı gece, yine rüyamda, arayışımın yersiz olduğuna
karar verip aynanın karşısına geçtim. Uzun süre kendime baktım durdum.
Yansımamı değil düşüncelerimi izlediğimi hissettim. Yuvasına yiyecek
getiren bir kuşun telaşında kafamın içine girip fazla duraksamadan
ayrılıyorlardı. Denediğim diğer yolların aksine bu beni epey rahatlattı.
Gözlerim yavaş yavaş yolun diğer ucundaki aynayı seçmeye başladı.
Sonrasında diğer aynanın içinden karşısında durduğum aynayı gördüm. Sizi
gitgide daha iyi anladım.  Sonsuzluğun yanı başında, düşüncelerimin,
yargılarımın esiri olmuştum.&lt;/p&gt;

  &lt;p&gt;Pirim, ardına kadar açılan gözlerim bir garipliği sezmeme yardım etti.
İki ayna içinden, olmam gereken yere baktığımda karşıma yansımam değil,
alevi gittikçe büyüyen bir mum çıktı. Bir süre sonra pırıl pırıl
parlayan alevin kamaştırdığı gözlerim başka bir şey görmez oldu. Kalbim
ölesiye çarpıyordu.  Ağlarken gülümsüyordum. Karşımda olanca
güzelliğiyle duran muma kavuşmak için can atıyordum. Cesaretimi topladım
ve aynanın içine bir adım attım.&lt;/p&gt;

  &lt;p&gt;Benim için tarifi güç bir andı. Yüreğim yerinden çıkacaktı. Aynanın
içinden yavaşça geçtim. Etrafa bakındım. Önce bir fark sezemedim.
Geldiğim yere geri dönmüş gibi hissettim. Şaşkın bir halde yüzümü tekrar
aynaya döndüğümde anladım. Biraz önce uçan kuşlar gibi kafamda süzülen
düşünceler gitmişlerdi.  Benliğimi, “ölüm zehiri ile dolu beden
testimi”, aynanın diğer tarafında bırakmıştım.&lt;/p&gt;

  &lt;p&gt;Mirim, artık gözlerim her şeyi daha iyi seçiyordu. Biraz önce mumu
gördüğüm yerde bu sefer siz de vardınız. Olanca heybetinizle karşımda
duruyordunuz. Mum ile bir olmuş yanıyordunuz. Küçük fakat hızlı
adımlarla yanınıza geldim. İkimizin de o sırada aklına gelmiş olacak ki
aynı anda birbirimize soruverdik:&lt;/p&gt;

  &lt;p&gt;“Madem ki sen bensin, ben de senim, niceye şu senlik benlik?”&lt;/p&gt;

  &lt;p&gt;Gülüyorduk. Yürekten gülüyorduk. “Ab-ı hayat ile dopdoluyduk.”&lt;/p&gt;

  &lt;p&gt;Yedinci gün yine erkenden, sabaha karşı uyandım. İçim huzur doluydu.
“Aşk” deyip duruyordum. Baktığım her varlık mumun farklı bir görünüşü,
farklı bir yüzü gibiydi. Hislerime hükmetmek için hiç gayret etmedim. En
sevdiğim kıyafetlerimi giydim. Dışarı çıkacaktım. Önce kapının
deliğinden bakmak istedim.  Bir türlü yetişemedim. Şaşkınlıkla cebimdeki
küçük aynayı çıkarıp kendime baktım. Boyum iyice kısalmıştı. Küçük bir
çocuk olmuştum.&lt;/p&gt;

  &lt;p&gt;Bir süre öylece kalsam da içimde giderek büyüyen huzurun şaşkınlığımı
yenmesi uzun sürmedi. Odama geri döndüğümde yatakta uyumakta olan
kendimi gördüm. Ona bir mektup yazmaya karar verdim. Hemen bir kağıt
kalem buldum. Nedense her zaman kalem tutan sağ elimle değil sol elimle
yazmaya başladım. Yazarken zorlansam da kağıda içimdeki bütün aşkı
döktüm. Bir süre mektubu nereye bıraksam diye düşündüm. Rafta duran
zarflardan birini aldım. Gözlerimin yaşını kağıda sildim. Sonra zarfın
içine koydum kağıdı ve kapının önüne bıraktım.  Zili çalıp koşarak
kaçtım. Bastıran yağmura aldırmadan okula doğru yürümeye koyuldum.&lt;/p&gt;

  &lt;p&gt;Okula vardığımda sırılsıklam olmuştum ama nedense üşümüyordum. Sınıfa
giden koridor yavaş yavaş rüyamdaki yola benzemeye başladı. Bense yolun
sonunun nerede olduğunu hiç umursamıyordum. Yürüdükçe uzuyordu yol,
uzadıkça umudum artıyordu. Ağlarken gülümsüyordum. Yolun iki yanında,
öğretmen odalarının olduğu yerde, birer birer yükselen ağaçları gördüm.
İşte o ağaçlar, tek sözü “aşk” olan bir şarkı söylerlerken, ben artık
ucu bucağını gözlerimin seçemediği bu yolun ortasında yalnız başınaydım.&lt;/p&gt;

  &lt;p&gt;Sevgili dost, gerçekten uyandığımda, artık içimde umutsuzluktan eser
yoktu.  Rüyada geçen yedi gün aslında uykuda geçirdiğim yedi saatti.
Prensesim Nünü’nün yatağımın yanı başında asılı olan resmine baktım.
Işıl ışıldı. Aklıma aynaların ardında gördüğüm mum geldi. Yatağımdan
kalktım. Yavaşça kapıya yöneldim. Üstüme çekidüzen verip kapıyı açtım.
Hızla uzaklaşan çocuğu seyrederken yüzümde güller açtı. Gözlerimin yaşı
ile ıslanan bu mektup, yağmura aldırmadan koşan çocuğun kapımın önüne
bıraktığı mektuptur.&lt;/p&gt;

  &lt;p&gt;Anladım ki insan aynaları görünce, karşısında bütün çıplaklığıyla duran
gerçeğe sırt çevirip geri dönebilir. Yolun sonuna geldiğini zanneder ve
baştan başlar. Oysa yol aynanın içinden geçer. İnsan, benliğinden
sıyrılıp aynanın içine adım atınca uyanır. “Bütün benlikler onun
olur.” Kavramak güç de olsa aynalar mumdan başkasını yansıtmazlar.
Ağaçlar “aşk” diye hep ona seslenirler. Muma, yani aşka giden yol da
aşkın ta kendisidir. Düşüncelerimin artık beni rahatlatan bu
kargaşasında eski bir şarkıya kulak veriyorum ve seni anıyorum.&lt;/p&gt;

  &lt;p&gt;“Her tutsağın bir kaçışı, uykunun uyanışı da vardır…”&lt;/p&gt;

  &lt;p&gt;İşte divane aşık, akıp geçen yüzyıllar ile birlikte insanoğlu
aldanmaların, uyutan dikkat dağıtışlarının tutsağı oldu. Bu büyüyü
kırmak için, akıllarımızın açık kapıları ardında yatan “gizli
merdivenlere” tırmanmaya ihtiyacımız var. Rüyama girip bana gerçek
yüzümü göstermeseydin, belki ben de bunu hiç anlamayacaktım. İçtenlikle
teşekkür ederim.&lt;/p&gt;

  &lt;p&gt;Geçen zaman isimleri değiştirdi belki,&lt;br /&gt;
Rumi ile Şems, Nünü ile Canbaz…&lt;br /&gt;
Oysa yazılan mektup da edilen söz de bir.&lt;br /&gt;
“Belki dünü, bugünü, yarını olmayan bir sohbet.”&lt;br /&gt;
Aşktan gelip, aşka gider.&lt;br /&gt;
Aynalar şahidim olsun ki seni seviyorum.&lt;br /&gt;
Gönül aynamda güneş gibi doğan Nünü’yü seviyorum.&lt;br /&gt;
Alınır, satılır, doğar, ölür ya aynalar,&lt;br /&gt;
Ama yansıttıkları da sahipleri de birdir ya,&lt;br /&gt;
İşte ben o Bir’i seviyorum.&lt;br /&gt;
Aşığım, dürüstçe, özgürce ve ışıl ışıl…&lt;/p&gt;

  &lt;div class=&quot;highlighter-rouge&quot;&gt;&lt;div class=&quot;highlight&quot;&gt;&lt;pre class=&quot;highlight&quot;&gt;&lt;code&gt;            Küçük dostun,
            Canbaz
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;  &lt;/div&gt;
&lt;/blockquote&gt;
</content>
 </entry>
 
 <entry>
   <title>İlginç Bir Deneme / An İnteresting Attempt</title>
   <link href="https://alip.github.io/tr/blog/2011/10/17/interesting-attempt/"/>
   <updated>2011-10-17T00:00:00+00:00</updated>
   <id>https://alip.github.io/tr/blog/2011/10/17/interesting-attempt</id>
   <content type="html">&lt;ul&gt;
  &lt;li&gt;&lt;a href=&quot;https://groups.google.com/forum/?fromgroups=#!topic/kaotik/jjWIO2JriPg&quot;&gt;&lt;code class=&quot;highlighter-rouge&quot;&gt;kaotik/jjWIO2JriPg&lt;/code&gt;&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Merhaba,&lt;/p&gt;

&lt;p&gt;Serbest çağrışımlarımızı anadilimiz olmayan bir dilde anlatmaya çalışmak
ne kadar farklıdır? Benim için değişik bir tecrübeydi, paylaşmak
istedim.&lt;/p&gt;

&lt;p&gt;Greetings to non-Turkish readers,&lt;/p&gt;

&lt;p&gt;How different is it to explain our free associations in a non-native
language? It was a different experience for me, which I’d like to share.&lt;/p&gt;

&lt;blockquote&gt;
  &lt;h2 id=&quot;the-wall&quot;&gt;The Wall&lt;/h2&gt;

  &lt;p&gt;The theory that my “other” personality might be an English speaker made
me give this a try. As I took another sip from my tea, this room felt a
bit different. Different in such a way that is enabling me to let my
subconsciousness take over.&lt;/p&gt;

  &lt;p&gt;Staring at the wall against me, I realized how it started to turn into a
door. A door, made of small curved mirrors… All the paintings on the
wall faded away slowly. There I was, left alone with a door to enter.
Was this a question of bravery? I was astonished to dream where the door
might lead me to. “Temptation, temptation…” So I heard the voices
sing. I must admit, I felt kind of scared. Like a baby felt giving birth
to her first mother. Feeling I might change my mind, I quickly grabbed
my book and opened the door. I was expecting a forest, green and huge.
Quite the contrary, the door led me to another room with mirrors on all
of its walls, ceiling and base. I could see the reflection of everything
but myself. The door was no longer there and my book looked a lot
different to me. What was I about to do here? What exactly did I leave
behind? The lack of which made me smile like a mother smiled giving
birth to her own mother…&lt;/p&gt;

  &lt;p&gt;Leaving my book in a corner of the room, I started observing the
mirrors. Why was my reflection not there? In a room like that, how could
I figure out the difference this journey might have caused? After a
couple of minutes, I was shocked when I started to wonder why I couldn’t
see the reflections of the things that “touch” me, unlike all the other
things in the room. My clothes, my shoes, my earring… All became
visible as I took them off. “The book!”, I said, “where is it?” turning
to the corner where I left it. Its reflection was there though. Looking
at me and smiling like my mother smiled, giving birth to my
grandmother…&lt;/p&gt;

  &lt;p&gt;Somehow, I knew the cure was in this room but where? The endlessness,
which the mirrors have formed, gave me an idea. Why was I thinking that
the other side of the mirror was inaccessible to me? “Temptation,
temptation…” So I heard the voices sing. I must admit, I felt kind of
scared. Like a warrior felt, being slain by his new-born baby… Feeling
I might have found the cure, I took a step into the mirror. There I saw
my “other” self sitting in that room, looking at the wall, writing a
truly weird story… I can’t say he was astonished though, seeing me
standing against him, naked.&lt;/p&gt;
&lt;/blockquote&gt;
</content>
 </entry>
 
 <entry>
   <title>Tibetten Esen Rüzgar</title>
   <link href="https://alip.github.io/tr/blog/2011/10/15/tibet/"/>
   <updated>2011-10-15T00:00:00+00:00</updated>
   <id>https://alip.github.io/tr/blog/2011/10/15/tibet</id>
   <content type="html">&lt;ul&gt;
  &lt;li&gt;&lt;a href=&quot;https://groups.google.com/forum/?fromgroups=#!topic/kaotik/99QUfEq20ak&quot;&gt;&lt;code class=&quot;highlighter-rouge&quot;&gt;kaotik/99QUfEq20ak&lt;/code&gt;&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Chögyam Trungpa’nın “ilk düşünce, en iyi düşünce” isimli şiir
kitabından bu şiir ilginizi çeker diye düşünüyorum:&lt;/p&gt;

&lt;blockquote&gt;
  &lt;h3 id=&quot;dohadan-derlenen&quot;&gt;Doha’dan Derlenen&lt;/h3&gt;

  &lt;p&gt;Doğmamış kaya&lt;br /&gt;
Donakalmış gökyüzü&lt;br /&gt;
Topallayan “rüzgar atı”¹&lt;br /&gt;
Dilsiz kafatası&lt;br /&gt;
Mavi kırmızı –&lt;br /&gt;
Bunları düzene sokamazsan,&lt;br /&gt;
Dilini, bala bulanmış usturayla kesme:&lt;br /&gt;
İğnenin üstünde dans ederek neşelen.&lt;/p&gt;

  &lt;p&gt;¹: “rüzgar atı” ya da Tibetçesiyle “lungta” Orta Asyadaki şaman
geleneğinin insan ruhu için kullandığı bir kinâyedir.&lt;/p&gt;
&lt;/blockquote&gt;
</content>
 </entry>
 
 <entry>
   <title>Nokta</title>
   <link href="https://alip.github.io/tr/blog/2011/10/15/nokta/"/>
   <updated>2011-10-15T00:00:00+00:00</updated>
   <id>https://alip.github.io/tr/blog/2011/10/15/nokta</id>
   <content type="html">&lt;ul&gt;
  &lt;li&gt;&lt;a href=&quot;https://groups.google.com/forum/?fromgroups=#!topic/kaotik/iux776Oye-4&quot;&gt;&lt;code class=&quot;highlighter-rouge&quot;&gt;kaotik/iux776Oye-4&lt;/code&gt;&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Aşağıda yazılı kısa çağrışımla geldiğim noktada, ya da sizin
çağırdığınız başka bir noktada görüşelim, tartışalım!&lt;/p&gt;

&lt;blockquote&gt;
  &lt;p&gt;Bakır eldivenlerini çıkar.&lt;br /&gt;
Koşarak yanıma git.&lt;br /&gt;
Kopan tüylerimi kanat yapıp tak.&lt;br /&gt;
Gizlediklerin çıkacak karşına.&lt;br /&gt;
Aşkı hisset ama ona felsefende yer ayırma.&lt;br /&gt;
Çünkü varlığımız karşında duran devenin ayak ucunda.&lt;/p&gt;

  &lt;p&gt;Not: Yedinci gün damdan düşmüşüm. Kirpi kurtarmış beni. Berberin
çizdiği resime inanmış sincap sanıyor kendini…&lt;/p&gt;
&lt;/blockquote&gt;
</content>
 </entry>
 
 <entry>
   <title>Efkâr</title>
   <link href="https://alip.github.io/tr/blog/2011/10/15/efkar/"/>
   <updated>2011-10-15T00:00:00+00:00</updated>
   <id>https://alip.github.io/tr/blog/2011/10/15/efkar</id>
   <content type="html">&lt;ul&gt;
  &lt;li&gt;&lt;a href=&quot;https://groups.google.com/forum/?fromgroups=#!topic/kaotik/W63GFV1yg7A&quot;&gt;&lt;code class=&quot;highlighter-rouge&quot;&gt;kaotik/W63GFV1yg7A&lt;/code&gt;&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;blockquote&gt;
  &lt;p&gt;Efkârı giderek artan bir dostumuza acele ışık nakli gerekmektedir. An
itibariyle ona içindeki zehiri emme çabasında bir şaman refakâtçilik
etmektedir. Ne yazık ki dostumuz hâlâ kendine gelememiş, refakatçisini
etrafında uçan bir sinek sanmaktadır. Vuku bulan farkındalığı, dostumuza
birleşme ve göğe fışkırma duygusunu beraberinde getirmiştir.&lt;/p&gt;

  &lt;p&gt;Sol kulağımdan beynime doğru yavaş yavaş yürümeye koyulan bu dostumuzdan
yakamoz tadında, ışıl ışıl çağrışımlarınızı eksik etmeyiniz!&lt;/p&gt;
&lt;/blockquote&gt;
</content>
 </entry>
 
 <entry>
   <title>Samuel Beckett Hakkında</title>
   <link href="https://alip.github.io/tr/blog/2011/10/13/samuel-beckett/"/>
   <updated>2011-10-13T00:00:00+00:00</updated>
   <id>https://alip.github.io/tr/blog/2011/10/13/samuel-beckett</id>
   <content type="html">&lt;ul&gt;
  &lt;li&gt;&lt;a href=&quot;https://groups.google.com/forum/?fromgroups=#!topic/kaotik/pPgrZ3dcqTo&quot;&gt;&lt;code class=&quot;highlighter-rouge&quot;&gt;kaotik/pPgrZ3dcqTo&lt;/code&gt;&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Merhaba,&lt;/p&gt;

&lt;p&gt;Gecenin bu saati politik ve paranormal bir çağrışım amaçlıyorum…&lt;/p&gt;

&lt;blockquote&gt;
  &lt;p&gt;İrlandalı bir sanatçı olan Samuel, avangard tarzı ve “arıza” sözleriyle
benim için bu gecenin önemli insanlarından biri oldu. Biraz paylaşmam
gerekirse:&lt;/p&gt;

  &lt;ul&gt;
    &lt;li&gt;“…like a hunk of meat. There was no-one there. He was absent.”&lt;/li&gt;
  &lt;/ul&gt;

  &lt;p&gt;diyerek tasvir ediyor bir hastayı Samuel. Baktığı varlığın sadece iri
bir et parçası olduğunu ve “o”nun artık orda olmadığından bahsediyor.&lt;/p&gt;

  &lt;ul&gt;
    &lt;li&gt;“We are all born mad. Some remain so.”&lt;/li&gt;
  &lt;/ul&gt;

  &lt;p&gt;Samuel’in hepimizin deli doğduğunu ve bazılarımızın öyle kaldığını
anlattığı bu söz amiyane tabiriyle çok iddialı. Beni özellikle doğumumuz
hakkında düşünmeye itiyor.&lt;/p&gt;

  &lt;p&gt;Samuel Beckett, 1969 tarihinde Nobel Edebiyat ödülüne layık görülmüş
fakat ödülü almaya gitmemiştir. Karısı bu ödülü onu yalnız yaşamaktan
alıkoyacağı için bir felaket olarak nitelendirmiştir. İsveç Akademisi’ne
göre “modern insanın çektiği yokluğu yüceltmesi” ona bu ödülü
kazandırmıştır.&lt;/p&gt;

  &lt;p&gt;1969 senesinde olan diğer olaylar düşünüldüğünde, modern insanın çektiği
yokluk ve girdiği büyük arayış iyice açığa çıkıyor.&lt;/p&gt;

  &lt;p&gt;5 Ocak: Sovyetler Birliği “Venera 5” adlı uzay aracını Venüs’e gönderdi.&lt;/p&gt;

  &lt;p&gt;6 Ocak: ABD Büyükelçisi Komer’in arabası ODTÜ’de yakıldı, ve ertesi gün
ODTÜ işgal edildi.&lt;/p&gt;

  &lt;p&gt;16 Ocak: Öğrenci Jan Palach, Prag’ın Wenceslas Meydanı’nda Sovyetlerin
Çekoslovakya’yı işgalini protesto etmek için kendini ateşe verdi ve üç
gün sonra öldü.&lt;/p&gt;

  &lt;p&gt;… ve artarak devam ediyor:&lt;/p&gt;

  &lt;p&gt;20 Temmuz : Tarihte ilk kez insanlı bir uzay aracı Ay’a ulaştı.&lt;/p&gt;

  &lt;p&gt;15 Ağustos - 18 Ağustos: İlk Woodstock Festivali, “çiçekler” açtı!&lt;/p&gt;

  &lt;p&gt;23 Eylül: Dünyanın dört bir yanında Vietnam savaşı karşıtı eylemler
sürerken, ODTÜ işgaline önderlik edenlerden Taylan Özgür, İstanbul’da
vurularak öldürüldü.&lt;/p&gt;

  &lt;p&gt;Bir de ‘69 senesinde doğanlara baktığımızda bu arayışın insanların
içinde yarattığı büyük enerji göze çarpıyor:&lt;/p&gt;

  &lt;p&gt;12 Şubat: Darren Aronofsky
18 Ağustos: Edward Norton
28 Aralık: Linus Benedict Torvalds&lt;/p&gt;

  &lt;p&gt;Buna ek olarak, UNIX tabanlı işletim sistemlerinde 31 Aralık 1969
tarihinin sıfır noktası yani “tarihin başı” olarak kabul edilmiş olması
bana biraz da olsa tesadüften öte geliyor.&lt;/p&gt;

  &lt;p&gt;Soru: İçimizdeki çiçeklerin tekrar açması için ne gerekiyor?&lt;/p&gt;
&lt;/blockquote&gt;
</content>
 </entry>
 
 <entry>
   <title>Akıl Nefis midir?</title>
   <link href="https://alip.github.io/tr/blog/2011/10/13/nefis/"/>
   <updated>2011-10-13T00:00:00+00:00</updated>
   <id>https://alip.github.io/tr/blog/2011/10/13/nefis</id>
   <content type="html">&lt;ul&gt;
  &lt;li&gt;&lt;a href=&quot;https://groups.google.com/forum/?fromgroups=#!topic/kaotik/5tqEiv6iSaM&quot;&gt;&lt;code class=&quot;highlighter-rouge&quot;&gt;kaotik/5tqEiv6iSaM&lt;/code&gt;&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Merhaba,&lt;/p&gt;

&lt;p&gt;Bu yazımda, İskoç psikiyatrist Ronald David Laing’den bir alıntı yapıp
bunun üzerinden nefsi öldürmenin aklı öldürmekle eş değer olup
olmadığını “serbest” tartışacağım.&lt;/p&gt;

&lt;p&gt;Tunca, bu konuda beni anlaman önemli, yapacağın yorum da değerlidir,
paylaşırsan sevinirim.&lt;/p&gt;

&lt;p&gt;Yazıma yapacağım alıntının “serbest” tercümesiyle başlayacağım.
Aslını merak edenler için:&lt;/p&gt;

&lt;blockquote&gt;
  &lt;p&gt;“he is an alien, a stranger, signalling us from the void in which he is
foundering, a void which may be peopled by presences that we do not even
dream of. They used to be called demons and spirits, and they used to be
known and named. He has lost his sense of self, his feelings, his place
in the world as we know it. He tells us he is dead.”&lt;/p&gt;

  &lt;div class=&quot;highlighter-rouge&quot;&gt;&lt;div class=&quot;highlight&quot;&gt;&lt;pre class=&quot;highlight&quot;&gt;&lt;code&gt;            (Laing 1967, sayfa: 110)
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;  &lt;/div&gt;
&lt;/blockquote&gt;

&lt;p&gt;Bu alıntı yardımıyla “hasta”yı hayalimde canlandırarak e-postamın
konusunda belirttiğim soruya yanıt arayacağım. Çağrışım boyunca bu
“hasta”dan “Ay” diye söz edeceğim.&lt;/p&gt;

&lt;blockquote&gt;
  &lt;p&gt;“o bir uzaylı, bir yabancı… bize kendi yarattığı hiçlikten sinyaller
gönderiyor. Hayal bile edemediğimiz varlıkların insanın yerini aldığı
bir hiçlik. Eskiden onları iblisler ve ruhlar diye isimlendirirdi, yani
bilinirler ve adlandırılırlardı. Gözlerimizin önünde, benlik duygusunu
diğer duygularıyla beraber yitirdi. Dünyadaki varlığını da öyle…
Bize ölü olduğunu söylüyor.”&lt;/p&gt;

  &lt;p&gt;Soru 1: Ay’ın mutlu olması olası mıdır?&lt;/p&gt;

  &lt;p&gt;Öncelikle sınırlı fizik bilgim yardımıyla söyleyebilirim ki bize göre
Ay hem mutludur, hem de mutsuzdur. Çünkü onun gözlerinden Güneş’e
bakmamız mümkün değildir. Sorunun yanıtı bu olasılığın varlığında
gizlidir.&lt;/p&gt;

  &lt;p&gt;Soru 2: Saçtığı ışığın kendine ait olmayışı, Ay’ı değersizleştirir mi?&lt;/p&gt;

  &lt;p&gt;Yine görecelik üzerinden hareketle, “değer” kavramının referans
aldığımız sisteme bağlı olduğunu söyleyebiliriz ama soruya verilen bu
yanıtın eksikliği apaçıktır.&lt;/p&gt;

  &lt;p&gt;Ay, Güneş’in etrafında dönen Dünya’nın etrafında dönmektedir. Tahmin
ediyorum ki uzaktan bakıldığında spiraller çizdiği gözlemlenebilir. Bu
tahmin, bana yanıta giden yolda bir fikir veriyor. Dünya’yı küçük bir
çocuğa, Ay’ı da çocuğun elindeki pırıl pırıl parıldayan fosfor yeşili
oyuncağa benzetiyorum. Çocuk için bu oyuncağın ışığı nasıl emdiğinin, ya
da ürettiğinin göreli olarak değeri varsa bile çok azdır. Çocuğu asıl
eğlendiren, güldüren ve mutlu eden Ay’ın karanlıkta bütün saflığıyla
ışıl ışıl olmasıdır.&lt;/p&gt;

  &lt;p&gt;Soru 3: Nefsini öldüren bir dervişle Ay arasındaki fark nedir?&lt;/p&gt;

  &lt;p&gt;Bu iki yaratık arasındaki benzerlikler sayılamayacak kadar çoktur.
Kuşkusuz iki varlık da bir döngü içinde ya da diğer bir bakış açısıyla
“zikr” halindedir. Fark, yaptıkları yolculuğun yönüne dikkat ettiğimde
karşıma çıktı.&lt;/p&gt;

  &lt;p&gt;Derviş saat yönünde, yani soldan sağa doğru döner. Bilinen her varlık
gibi zamanın akışına karşı koymaz. O, Abdülcanbaz misali, “bazen masal
dünyalarında, bazen günümüzde sürdürür yaşantısını, bazen de uzayı
adımlar…”&lt;/p&gt;

  &lt;p&gt;Ay ise zamana karşı durur. Aynı Dünya’nın Güneş etrafında döndüğü yön
gibi, Ay da saatin ters yönünde döner. Bu haliyle diğer varlıklarla
uyumsuzdur, iletişim kurması çok zor, anlaşılması ise imkansız gibidir.
Sadece zaman zaman, yarattığı ya da kavuştuğu hiçliğin içinden göz
kırpar bu aleme…&lt;/p&gt;
&lt;/blockquote&gt;
</content>
 </entry>
 
 <entry>
   <title>Biliç Seviyeleri Hakkında</title>
   <link href="https://alip.github.io/tr/blog/2011/10/12/seviyeler/"/>
   <updated>2011-10-12T00:00:00+00:00</updated>
   <id>https://alip.github.io/tr/blog/2011/10/12/seviyeler</id>
   <content type="html">&lt;p&gt;&lt;a href=&quot;https://groups.google.com/forum/?fromgroups=#!topic/kaotik/4jElxgUbKJQ&quot;&gt;&lt;code class=&quot;highlighter-rouge&quot;&gt;kaotik/4jElxgUbKJQ&lt;/code&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Merhaba,&lt;/p&gt;

&lt;p&gt;John Smotherman isimli tip şu yazısında bilinç seviyelerinden bahsetmiş:
&lt;a href=&quot;http://www.pagannews.com/cgi-bin/spirit.pl?50&quot;&gt;http://www.pagannews.com/cgi-bin/spirit.pl?50&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Ben de bu maddeler üzerinden kısa kısa çağrışıyım dedim. Başlık
çevirilerinin bazıları aklıma yatmadı, her zaman olduğu gibi yeni
fikirlere açığım.&lt;/p&gt;

&lt;blockquote&gt;
  &lt;h3 id=&quot;önsöz&quot;&gt;Önsöz&lt;/h3&gt;

  &lt;p&gt;Dünyaya iletmek istediğim herhangi bir ileti yoktur. Tek amaç, serbest
çağrışım temelli kavram kargaşasıdır.&lt;/p&gt;

  &lt;h3 id=&quot;i̇çgüdü&quot;&gt;İçgüdü&lt;/h3&gt;

  &lt;p&gt;Mutluluğun temeli hayatta kalmak değil midir? Dini ya da öğretiyi bir
kenara bırakırsak kaos içinde de mutlu olunabileceğini söyleyen biri
bize göz kırpar. O halde düzeni mi bozmalı? Ne gerekli? Düzenin karşıtı
düzensizlik… Tabii düzen de göreli, kaynağı beyin olduğuna göre basit
bir seçenek karşıma çıktı: “Aklını öldür, mutlu ol!”&lt;/p&gt;

  &lt;h3 id=&quot;birey&quot;&gt;Birey&lt;/h3&gt;

  &lt;p&gt;Birey olduğunun kâbulü “hiçlik” duygusuna zıt mıdır? Bence, tam aksine,
farkındalık “hiçlik” yolundaki ilk adımdır. Takdir edersiniz ki bir
koyun kendini yok etmez fakat bir çoban için bu görece daha fazla imkan
dahilindedir.&lt;/p&gt;

  &lt;p&gt;Yokluk ile hiçlik aynı kavram mıdır? Bence yokluk genel bir kavramdır,
hiçlik ise yokluğun kişiye indirgenmiş halidir.&lt;/p&gt;

  &lt;p&gt;Salt yokluk diye bir çözüm olabilir, fakat öyle bir çözüm yoktur…&lt;/p&gt;

  &lt;h3 id=&quot;toplum&quot;&gt;Toplum&lt;/h3&gt;

  &lt;p&gt;Benim toplum içindeki bireyi tasvir etmem son derece güç. Hele bir de
aklıma bir prenses takıldıysa! Kuş uğultusu ve uğultu kuşu…&lt;/p&gt;

  &lt;p&gt;“Plastik fakat fantastik oyuncaklar adlı bir hayvan ailesi yoktur, fakat
olmalıdır, olacaktır!”
                - Mohandas Karamchand Ghandi&lt;/p&gt;

  &lt;h3 id=&quot;mantık&quot;&gt;Mantık&lt;/h3&gt;

  &lt;p&gt;Çok korkarken insan mantığının kontrolünde midir? Sen eğer mantığını
kontrol ediyorsan, bu “kontrolcü” sen de kim? Peki mantığın “sen” değil
misin? Kimsin? Kimiz? Önemi var mı bilinmez ama eğer yoksa bir hiçsin,
su götürmez…&lt;/p&gt;

  &lt;h3 id=&quot;çoğul&quot;&gt;Çoğul&lt;/h3&gt;

  &lt;p&gt;Düzensizliğin çoğullaştırılması mümkün müdür? Peki ya düzen çoğul mudur?
Kısmi bir çoğunluğun olduğu kuşkusuz fakat salt bir çoğunluğun olmadığı
da aşikâr…&lt;/p&gt;

  &lt;h3 id=&quot;bütün&quot;&gt;Bütün&lt;/h3&gt;

  &lt;p&gt;Bir merdiven olarak farkındalığı değerlendirdiğimizde, karşımıza önce üç
kavram belirir:&lt;/p&gt;

  &lt;ul&gt;
    &lt;li&gt;Birey olduğunun farkına varmak&lt;/li&gt;
    &lt;li&gt;Toplumun içinde “mucizevi” bir tip misin?&lt;/li&gt;
    &lt;li&gt;3 yok! Bütünsün artık! Hem herkessin, hem de hiç kimse!&lt;/li&gt;
  &lt;/ul&gt;

  &lt;h3 id=&quot;sınırların-ardında&quot;&gt;Sınırların Ardında&lt;/h3&gt;

  &lt;p&gt;Birden renkler ya da senin renklere verdiğin anlam değişirse, belki de
olmuştur. Bulutlu bir gün masmavi gökyüzü göründü mü parıldayan
gözlerine, belki tam ordasındır. Yine günlerden bir gün, bir ışık tanesi
sana diğer tanelerden farklı görünürse, yakınındasın, çok yakınındasın
artık…&lt;/p&gt;

  &lt;p&gt;Aydınsın, ışıl ışıl aydınlanmışsın!&lt;/p&gt;
&lt;/blockquote&gt;
</content>
 </entry>
 
 <entry>
   <title>Chapter 24 Eserinin Serbest Tercümesi</title>
   <link href="https://alip.github.io/tr/blog/2011/10/12/serbest/"/>
   <updated>2011-10-12T00:00:00+00:00</updated>
   <id>https://alip.github.io/tr/blog/2011/10/12/serbest</id>
   <content type="html">&lt;ul&gt;
  &lt;li&gt;&lt;a href=&quot;https://groups.google.com/forum/?fromgroups=#!topic/kaotik/0gLupX7BgeQ&quot;&gt;&lt;code class=&quot;highlighter-rouge&quot;&gt;kaotik/0gLupX7BgeQ&lt;/code&gt;&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Merhaba,&lt;/p&gt;

&lt;p&gt;Bence “Chapter 24” Pink Floyd’un kaotik eserlerinden biri. Şarkının
sözlerini yazarken kuş adamın kadim Çin kitaplığının “I Ching” yani
“Değişimler Kitabı” isimli eserinin 24. bölümünden esinlendiği söylenir.&lt;/p&gt;

&lt;p&gt;Şarkının asıl sözleri ve benim serbest çağrışım temelli tercümem
aşağıdadır. Çevirimi okurken bir insanın işlerinin rastgitmesine neden
“şansı dönmek” tabirinin kullanıldığına değişik, “serbest” bir açıklama
getirdiğimi düşündüm. Benim için daha da ilginci, yedi sayısının “genç
ışığın sayısı” olarak nitelendirilmesidir. Karanlığımızı yok eden, bizi
ise hiç eden genç ışık, ve onun sayısı yedi.&lt;/p&gt;

&lt;p&gt;Neden? Sormadan edemedim. Biraz araştırdım.
&lt;a href=&quot;http://en.wikipedia.org/wiki/Chapter_24&quot;&gt;http://en.wikipedia.org/wiki/Chapter_24&lt;/a&gt;
bağlantısındaki viki sayfasında şarkının kuş adamın esinlendiği söylenen
kitapla arasındaki bağlar biraz yorumlanmış. Yazıda, eserin “…for
seven is number of the young light…” yani Türkçe’siyle “…çünkü yedi
genç ışığın sayısıdır…” dediği kısmın kuş adamın esinlendiği söylenen
değişim kitabında olmadığı ve bunun bir “bozulma” olduğundan
bahsediliyor.&lt;/p&gt;

&lt;p&gt;Kuş adam bu “bozulma” ile neyi amaçlamış olabilir? Tunca, Can belki
yorumlarınızla yardım edebilirsiniz. Yazımın karbon kopyasını bu
yüzden size de gönderiyorum.&lt;/p&gt;

&lt;blockquote&gt;
  &lt;h3 id=&quot;chapter-24&quot;&gt;Chapter 24&lt;/h3&gt;

  &lt;p&gt;All movement is accomplished in six stages,&lt;br /&gt;
and the seventh brings return.&lt;br /&gt;
The seven is the number of the young light.&lt;br /&gt;
It forms when darkness is increased by one.&lt;br /&gt;
Change return success.&lt;br /&gt;
Going and coming without error.&lt;br /&gt;
Action brings good fortune…&lt;br /&gt;
Sunset.&lt;/p&gt;

  &lt;p&gt;The time is with the month of winter solstice,&lt;br /&gt;
when the change is due to come.&lt;br /&gt;
Thunder in the Earth, the course of Heaven.&lt;br /&gt;
Things cannot be destroyed once and for all.&lt;/p&gt;

  &lt;p&gt;Change return success.&lt;br /&gt;
Going and coming without error.&lt;br /&gt;
Action brings good fortune…&lt;br /&gt;
Sunset.&lt;br /&gt;
Sunrise.&lt;/p&gt;

  &lt;p&gt;All movement is accomplished in six stages,&lt;br /&gt;
and the seventh brings return.&lt;br /&gt;
The seven is the number of the young light.&lt;br /&gt;
It forms when darkness is increased by one.&lt;/p&gt;

  &lt;p&gt;Change return success.&lt;br /&gt;
Going and coming without error.&lt;br /&gt;
Action brings good fortune…&lt;br /&gt;
Sunset.&lt;br /&gt;
Sunrise.&lt;/p&gt;

  &lt;h3 id=&quot;bölüm-24&quot;&gt;Bölüm 24&lt;/h3&gt;

  &lt;p&gt;Hareket altı safhadan ibarettir,&lt;br /&gt;
ve yedinci safha geri dönüşün habercisidir.&lt;br /&gt;
Çünkü genç ışığa aittir yedi.&lt;br /&gt;
Karanlıkta uyanan genç ışığa…&lt;br /&gt;
Geri dönüş başarıya dönüşür.&lt;br /&gt;
Gidip gelmek hatasız,&lt;br /&gt;
ve ayağa kalkmaktır şans.&lt;br /&gt;
Güneş batar.&lt;/p&gt;

  &lt;p&gt;Zaman, kış dönümüne doğru aktığında,&lt;br /&gt;
Dönüşümün geleceği ana doğru gittiğinde,&lt;br /&gt;
Dünyaya düşen yıldırım, cennet yönündedir.&lt;br /&gt;
Her şeyi bir anda yokedemezsin.&lt;/p&gt;

  &lt;p&gt;Dönüşmeyi başarmalı,&lt;br /&gt;
bu çemberin üzerinde hatasız dönerek.&lt;br /&gt;
Talih, dönenlerin yanındadır…&lt;br /&gt;
Gün batar,&lt;br /&gt;
ve gün doğar.&lt;/p&gt;

  &lt;p&gt;Her adım, altı çizgidir,&lt;br /&gt;
ve yedinci çizgi dönüşümdür.&lt;br /&gt;
Çünkü yedi, genç ışığın sayısıdır.&lt;br /&gt;
Karanlığını aydınlatan genç bir ışığın.&lt;/p&gt;

  &lt;p&gt;Dönüştün ve başardın.&lt;br /&gt;
Git gel artık bu çemberin üstünde hatasız,&lt;br /&gt;
Talih yürüyenin yanındadır.&lt;br /&gt;
Gün batar,&lt;br /&gt;
ve bambaşka bir gün doğar.&lt;/p&gt;
&lt;/blockquote&gt;
</content>
 </entry>
 
 <entry>
   <title>Hamile Kunduz ile Bakire Su Samuru</title>
   <link href="https://alip.github.io/tr/blog/2011/10/12/kunduz/"/>
   <updated>2011-10-12T00:00:00+00:00</updated>
   <id>https://alip.github.io/tr/blog/2011/10/12/kunduz</id>
   <content type="html">&lt;ul&gt;
  &lt;li&gt;&lt;a href=&quot;https://groups.google.com/forum/?fromgroups=#!topic/kaotik/VZTnYtSVEXI&quot;&gt;&lt;code class=&quot;highlighter-rouge&quot;&gt;kaotik/VZTnYtSVEXI&lt;/code&gt;&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Merhaba,&lt;/p&gt;

&lt;p&gt;Aşağıda yazılı olan üç günlük bir çağrışım derlemesidir.
Mükemmelden mükemmele geri gelene kadar çağırdıklarımdır.&lt;/p&gt;

&lt;blockquote&gt;
  &lt;p&gt;Dönüp durmak gereksiz. Dalıp gitmek de anlamsız. Bunun gibi kılıf
taktığımız onlarca davranış ya da düşünce kalıbını mükemmeliyetçiliğimiz
yüzünden terk etmiyor muyuz?&lt;/p&gt;

  &lt;p&gt;Uyum sorunu, anlatım bozukluğu, yaşanmışlığın eksikliği, küfür gibi
insanın suratına vurur. Anlamak güç de olsa “hiç” umursamamak, varlığın
yanında yok olduğunu hissetmek ve bunun verdiği dinginlik paha biçilmez.&lt;/p&gt;

  &lt;p&gt;Arayışı bırakıp içine dönünce yaşadığını sandığın kavram kargaşası
aslında sensin, benim. Lanet olası bir kaos bu, ancak farkındalık işe
yarıyor gibi…&lt;/p&gt;

  &lt;p&gt;Çoğu azı yok! Hep yazmak… Güvercinlerin uçması kadar doğal. Mesela,
hamile kalan genç bir kunduz ile yaşlı ve bakire bir su samuru
karşılaşırsa ne olur? Bir dönem üçgenlerin, piramitlerin hükmettiği
dünyanın bugünkü hakimi hangi şekil? Hiç ayağında sandalet ile gezen bir
şövalye gördün mü? Nefes alıyor musun? Elbette, ama aldığın derin
nefeslerin gücünün farkında mısın? Doğuyoruz, büyüyoruz, ölüyoruz fakat
ölüm ile bitiyor mu? Aynı şekilde, ürüyoruz, doğuyoruz, çoğalıyoruz
fakat salt çoğunluk muyuz? Çözüm daha erken ölmek ya da daha hızlı
çoğalmakta mı yatıyor? Yoksa umursamazlığın verdiği huzur ve dinginlikte
mi? Çemberin dışında değil, içinde “hiç” değil! Yerden bağımsız olmak
için arsa mı satın alırdın? Zamandan bağımsız olmak için saat takar
mısın? Farklı görüşlerin bütünleştiği anda koşarak çamurlu suya atlamak
istediğin oldu mu?&lt;/p&gt;

  &lt;p&gt;Ölümü hatırlamak, hatırlatmak… Şaşılacak bir olay olmasa gerek fakat
ölümün ne kadar değişik bir kavram olduğunu düşünmeye itiyor. Çimenlerde
uyuyan köpekler, yağmur yağarken de huzurlu mudur? İşçiler, köylüler,
tavşanlar ve bir de kocaman bir denizanası… Dünya’nın kocaman bir
denizanası olduğunu varsayıp, bizlerin de içine sıkışmış olduğunu kâbul
edersek ilerleme kaydeder miyiz?&lt;/p&gt;

  &lt;p&gt;Çabalamak zor olsa da düşüncelerini serbest bırakmak rahatlatıcı. Freud
sadece seks yapmamış! Daha da ileri gidip denizanasının gövdesine bir
çomak sokup, dışarıya uzanan bir delik açmış da olabilir. Öyle ya bu
denizanasının şeffaf vücudunun ardında neler görüyoruz? Gezegenleri mi?
Onlar da birer denizanası, Güneş de bir çeşme… Denizanaları yavaş
yavaş Güneş’e yaklaşıyorlar ve akan su gövdelerini paramparça ediyor.
Haydi çık işin içinden! Sadece sus ve onların çığlığını dinle!&lt;/p&gt;

  &lt;p&gt;Bu yol yürüdükçe uzasa da, sanki yazdıkça kısalıyor. Mors alfabesiyle
konuşmak bu kadar mı zor? Gerçek dışı sandığın altı gözlü keçiler bir
gün kanatlanıp gökyüzünde halaya dururlarsa, hislerini tarif edecek gücü
bana kim verecek?&lt;/p&gt;

  &lt;p&gt;Yaş, kuru, yaşlı, sınır, eski, ahşap ve ustalar… Konuşsa da ustalar,
susmak yanlış, hep yanlış, en yanlış! Susmanın zıttı konuşmak değil
düşünmemektir. Düşüncesizlik ile kontrolsüz salt farkındalık ne kadar
yakın görünse de aldatıcıdır. Peki beklemek ile umut etmek yakın
anlamlı mıdır?&lt;/p&gt;

  &lt;p&gt;Ah kelimelerin renkleri olsa… Sarı kelimeler, pembe, mavi, yeşil…
Yazmak daha kolaylaşır mıydı? Yoksa aradaki uyumu arayan
mükemmeliyetçiliğimiz yine her şeyi berbat eder miydi?&lt;/p&gt;
&lt;/blockquote&gt;
</content>
 </entry>
 
 <entry>
   <title>Kaotik</title>
   <link href="https://alip.github.io/tr/blog/2011/10/12/kaotik/"/>
   <updated>2011-10-12T00:00:00+00:00</updated>
   <id>https://alip.github.io/tr/blog/2011/10/12/kaotik</id>
   <content type="html">&lt;p&gt;&lt;em&gt;Kaotik Çağrışımlar&lt;/em&gt; serbest çağrışım temelli, anadili Türkçe olan bir e-posta
listesidir. Detaylar için aşağıdaki bağlantılara bakabilirsiniz.&lt;/p&gt;

&lt;ul&gt;
  &lt;li&gt;Ana Sayfa:
&lt;a href=&quot;http://groups.google.com/group/kaotik&quot;&gt;group/kaotik&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;E-posta Adresi:
&lt;a href=&quot;mailto:kaotik@googlegroups.com&quot;&gt;kaotik@googlegroups.com&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;Beslemeler:
&lt;a href=&quot;http://groups.google.com/group/kaotik/feeds&quot;&gt;group/kaotik/feeds&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;Manifesto:
&lt;a href=&quot;http://groups.google.com/group/kaotik/browse_thread/thread/4f7789fe8b596e15&quot;&gt;thread:4f7789fe8b596e15&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
</content>
 </entry>
 
 <entry>
   <title>pinktrace-0.1.2</title>
   <link href="https://alip.github.io/en/blog/2011/06/28/pinktrace-0.1.2/"/>
   <updated>2011-06-28T00:00:00+00:00</updated>
   <id>https://alip.github.io/en/blog/2011/06/28/pinktrace-0.1.2</id>
   <content type="html">&lt;p&gt;pinktrace-0.1.2 is &lt;a href=&quot;http://dev.exherbo.org/~alip/pinktrace/#news&quot;&gt;released&lt;/a&gt; with
a minor change to recognize Linux-3.0 and a new function
&lt;code class=&quot;highlighter-rouge&quot;&gt;pink_name_lookup_with_length()&lt;/code&gt;&lt;/p&gt;
</content>
 </entry>
 
 <entry>
   <title>Multilingual Site using Jekyl &amp; Liquid</title>
   <link href="https://alip.github.io/en/blog/2011/06/09/jekyll-multilingual/"/>
   <updated>2011-06-09T00:00:00+00:00</updated>
   <id>https://alip.github.io/en/blog/2011/06/09/jekyll-multilingual</id>
   <content type="html">&lt;p&gt;Here is a tip to make a multilingual site using
&lt;a href=&quot;http://www.liquidmarkup.org/&quot;&gt;Liquid&lt;/a&gt; templates and
&lt;a href=&quot;http://jekyllrb.com/&quot;&gt;Jekyll&lt;/a&gt; relatively easily and with few duplications.&lt;/p&gt;

&lt;p&gt;I will be giving examples from my own experience for
&lt;a href=&quot;https://alip.github.io/&quot;&gt;https://alip.github.io/&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Start by specifying the language in
&lt;a href=&quot;http://github.com/mojombo/jekyll/wiki/YAML-Front-Matter&quot;&gt;YAML Front Matter&lt;/a&gt;
using a custom tag like &lt;code class=&quot;highlighter-rouge&quot;&gt;lang&lt;/code&gt;:&lt;/p&gt;

&lt;figure class=&quot;highlight&quot;&gt;&lt;pre&gt;&lt;code class=&quot;language-yaml&quot; data-lang=&quot;yaml&quot;&gt;    &lt;span class=&quot;s&quot;&gt;---&lt;/span&gt;
    &lt;span class=&quot;s&quot;&gt;layout&lt;/span&gt;&lt;span class=&quot;pi&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;s&quot;&gt;default&lt;/span&gt;
    &lt;span class=&quot;na&quot;&gt;title&lt;/span&gt;&lt;span class=&quot;pi&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;s&quot;&gt;Projelerim&lt;/span&gt;
    &lt;span class=&quot;na&quot;&gt;lang&lt;/span&gt;&lt;span class=&quot;pi&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;s&quot;&gt;tr&lt;/span&gt;
    &lt;span class=&quot;s&quot;&gt;---&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/figure&gt;

&lt;p&gt;Here &lt;code class=&quot;highlighter-rouge&quot;&gt;lang&lt;/code&gt; is just a custom tag which we can make use via &lt;code class=&quot;highlighter-rouge&quot;&gt;page.lang&lt;/code&gt; variable
from within our pages.&lt;/p&gt;

&lt;p&gt;Next, change your _layouts/ and _includes/ to be multilingual using simple
&lt;code class=&quot;highlighter-rouge&quot;&gt;case&lt;/code&gt; statements:&lt;/p&gt;

&lt;figure class=&quot;highlight&quot;&gt;&lt;pre&gt;&lt;code class=&quot;language-html&quot; data-lang=&quot;html&quot;&gt;    &lt;span class=&quot;nt&quot;&gt;&amp;lt;h3&amp;gt;&lt;/span&gt;{% case page.lang %}{% when 'tr' %}Etiket Bulutu{% else %}Tag Cloud{% endcase %}&lt;span class=&quot;nt&quot;&gt;&amp;lt;/h3&amp;gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/figure&gt;

&lt;p&gt;Make note of the &lt;code class=&quot;highlighter-rouge&quot;&gt;else&lt;/code&gt; statements which we use to specify a default
language. So pages without the &lt;code class=&quot;highlighter-rouge&quot;&gt;lang&lt;/code&gt; tag will be in English.&lt;/p&gt;

&lt;p&gt;That’s all!&lt;/p&gt;

&lt;p&gt;For more information, feel free to play with the source code of my blog:
&lt;a href=&quot;http://github.com/alip/alip.github.com&quot;&gt;http://github.com/alip/alip.github.com&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Now I’ll be writing a Turkish translation of this post and see if it works :)&lt;/p&gt;

&lt;p&gt;Note to self: writing literal Liquid inside Liquid requires some weird syntax mentioned
&lt;a href=&quot;http://tesoriere.com/2010/08/25/liquid-code-in-a-liquid-template-with-jekyll/&quot;&gt;here&lt;/a&gt;.&lt;/p&gt;

&lt;!-- vim: set tw=0 nowrap ft=markdown spell spelllang=en sw=4 sts=4 et : --&gt;
</content>
 </entry>
 
 <entry>
   <title>Jekyll ve Liquid ile Çok dilli Siteler</title>
   <link href="https://alip.github.io/tr/blog/2011/06/09/jekyll-cokdilli/"/>
   <updated>2011-06-09T00:00:00+00:00</updated>
   <id>https://alip.github.io/tr/blog/2011/06/09/jekyll-cokdilli</id>
   <content type="html">&lt;p&gt;Burada &lt;a href=&quot;http://www.liquidmarkup.org/&quot;&gt;Liquid&lt;/a&gt; şablonları ve
&lt;a href=&quot;http://jekyllrb.com/&quot;&gt;Jekyll&lt;/a&gt; ile nasıl basitçe çok dilli bir site
tasarlayabileceğinizden bahsedeceğim.&lt;/p&gt;

&lt;p&gt;Örnekleri &lt;a href=&quot;https://alip.github.io/&quot;&gt;https://alip.github.io/&lt;/a&gt; sitesini
tasarlarkenki tecrübelerimden vereceğim.&lt;/p&gt;

&lt;p&gt;Öncelikle dili özel bir etiket ile - ben bunun için &lt;code class=&quot;highlighter-rouge&quot;&gt;lang&lt;/code&gt; kelimesini seçtim -
&lt;a href=&quot;http://github.com/mojombo/jekyll/wiki/YAML-Front-Matter&quot;&gt;YAML Front Matter&lt;/a&gt;‘da
belirtiyoruz:&lt;/p&gt;

&lt;figure class=&quot;highlight&quot;&gt;&lt;pre&gt;&lt;code class=&quot;language-yaml&quot; data-lang=&quot;yaml&quot;&gt;    &lt;span class=&quot;s&quot;&gt;---&lt;/span&gt;
    &lt;span class=&quot;s&quot;&gt;layout&lt;/span&gt;&lt;span class=&quot;pi&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;s&quot;&gt;default&lt;/span&gt;
    &lt;span class=&quot;na&quot;&gt;title&lt;/span&gt;&lt;span class=&quot;pi&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;s&quot;&gt;Projelerim&lt;/span&gt;
    &lt;span class=&quot;na&quot;&gt;lang&lt;/span&gt;&lt;span class=&quot;pi&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;s&quot;&gt;tr&lt;/span&gt;
    &lt;span class=&quot;s&quot;&gt;---&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/figure&gt;

&lt;p&gt;Burda &lt;code class=&quot;highlighter-rouge&quot;&gt;lang&lt;/code&gt; özel etiketini sayfalarımızdan &lt;code class=&quot;highlighter-rouge&quot;&gt;page.lang&lt;/code&gt; değişkeni ile
kullanabileceğiz.&lt;/p&gt;

&lt;p&gt;Daha sonra, _layouts ve _includes dizinlerindeki taslaklarınızı basit
&lt;code class=&quot;highlighter-rouge&quot;&gt;case&lt;/code&gt; ifadeleriyle çok dilli yapın:&lt;/p&gt;

&lt;figure class=&quot;highlight&quot;&gt;&lt;pre&gt;&lt;code class=&quot;language-html&quot; data-lang=&quot;html&quot;&gt;    &lt;span class=&quot;nt&quot;&gt;&amp;lt;h3&amp;gt;&lt;/span&gt;{% case page.lang %}{% when 'tr' %}Etiket Bulutu{% else %}Tag Cloud{% endcase %}&lt;span class=&quot;nt&quot;&gt;&amp;lt;/h3&amp;gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/figure&gt;

&lt;p&gt;Burada dikkat edilmesi gereken &lt;code class=&quot;highlighter-rouge&quot;&gt;else&lt;/code&gt; ifadesiyle öntanımlı bir dil
belirtmemiz. Yani &lt;code class=&quot;highlighter-rouge&quot;&gt;lang&lt;/code&gt; etiketi olmayan sayfalar İngilizce olacak.&lt;/p&gt;

&lt;p&gt;İşte bu kadar!&lt;/p&gt;

&lt;p&gt;Daha fazla bilgi için günlüğümün kaynak kodlarını kurcalayabilirsiniz:
&lt;a href=&quot;http://github.com/alip/alip.github.com&quot;&gt;http://github.com/alip/alip.github.com&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Kişisel not: Liquid ifadelerini olduğu gibi yazmak
&lt;a href=&quot;http://tesoriere.com/2010/08/25/liquid-code-in-a-liquid-template-with-jekyll/&quot;&gt;burada&lt;/a&gt;
bahsedildiği üzere garip bir sözdizimi gerektiriyor.&lt;/p&gt;

&lt;!-- vim: set tw=80 ft=markdown sw=4 sts=4 et : --&gt;
</content>
 </entry>
 
 <entry>
   <title>For Hrant</title>
   <link href="https://alip.github.io/en/blog/2011/01/19/hrant/"/>
   <updated>2011-01-19T00:00:00+00:00</updated>
   <id>https://alip.github.io/en/blog/2011/01/19/hrant</id>
   <content type="html">&lt;p&gt;19th January 2007 was a black day. Journalist
&lt;a href=&quot;http://en.wikipedia.org/wiki/Hrant_dink&quot;&gt;Hrant Dink&lt;/a&gt; was assassinated by a
Turkish nationalist. Hrant was a brave man who refused to remain silent despite
threats on his life. Today - after four years - the pain is still fresh. The
anger towards fascism and the will to &lt;em&gt;escape from our stinking black-minded
ignorance&lt;/em&gt; keeps growing.&lt;/p&gt;

&lt;p&gt;Just like other intellectuals of this land whose lives were taken away -
&lt;a href=&quot;http://en.wikipedia.org/wiki/Ahmet_Taner_K%C4%B1%C5%9Flal%C4%B1&quot;&gt;Ahmet Taner Kışlalı&lt;/a&gt;,
&lt;a href=&quot;http://en.wikipedia.org/wiki/Bahriye_%C3%9C%C3%A7ok&quot;&gt;Bahriye Üçok&lt;/a&gt; and
&lt;a href=&quot;http://en.wikipedia.org/wiki/U%C4%9Fur_Mumcu&quot;&gt;Uğur Mumcu&lt;/a&gt; to name a few -
he has a place in our hearts. Their ideas and thoughts shed light on our path to
peace.&lt;/p&gt;
</content>
 </entry>
 
 <entry>
   <title>Doxygen and Git</title>
   <link href="https://alip.github.io/en/blog/2010/12/14/doxygen-git/"/>
   <updated>2010-12-14T00:00:00+00:00</updated>
   <id>https://alip.github.io/en/blog/2010/12/14/doxygen-git</id>
   <content type="html">&lt;p&gt;If you have a project using &lt;a href=&quot;http://www.doxygen.org/&quot;&gt;Doxygen&lt;/a&gt; for documentation
and &lt;a href=&quot;http://git-scm.com/&quot;&gt;Git&lt;/a&gt; for source control management you may use this
trick in &lt;code class=&quot;highlighter-rouge&quot;&gt;doxygen.conf&lt;/code&gt;:&lt;/p&gt;

&lt;div class=&quot;highlighter-rouge&quot;&gt;&lt;div class=&quot;highlight&quot;&gt;&lt;pre class=&quot;highlight&quot;&gt;&lt;code&gt;FILE_VERSION_FILTER = &quot;/bin/sh -c 'git log --pretty=\&quot;format:%ci\&quot; -1 \&quot;${1}\&quot; || echo no git'&quot;
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;

&lt;p&gt;This will show date of the last commit in the header:&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/images/2010-12-14-doxygen-git/simple.png&quot; alt=&quot;simple&quot; title=&quot;Simple date with Doxygen and Git&quot; /&gt;&lt;/p&gt;

&lt;p&gt;You can give even more useful information using git’s pretty formats:&lt;/p&gt;

&lt;div class=&quot;highlighter-rouge&quot;&gt;&lt;div class=&quot;highlight&quot;&gt;&lt;pre class=&quot;highlight&quot;&gt;&lt;code&gt;FILE_VERSION_FILTER = &quot;/bin/sh -c 'git log --pretty=\&quot;format:%ci, author:%aN &amp;lt;%aE&amp;gt;, commit:%h\&quot; -1 \&quot;${1}\&quot; || echo no git'&quot;
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;

&lt;p&gt;This looks like:&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/images/2010-12-14-doxygen-git/detailed.png&quot; alt=&quot;detailed&quot; title=&quot;Detailed information with Doxygen and Git&quot; /&gt;&lt;/p&gt;

&lt;p&gt;Note this may vastly increase runtime of &lt;a href=&quot;http://www.doxygen.org/&quot;&gt;Doxygen&lt;/a&gt; if
you have lots of files to process, but I think it is a nice way to give
information to project users.&lt;/p&gt;
</content>
 </entry>
 
 <entry>
   <title>Hayat</title>
   <link href="https://alip.github.io/tr/blog/2010/11/23/hayat/"/>
   <updated>2010-11-23T00:00:00+00:00</updated>
   <id>https://alip.github.io/tr/blog/2010/11/23/hayat</id>
   <content type="html">&lt;p&gt;Yeter!&lt;br /&gt;
Kendi mutluluğumu kendim yaratacağım bugünden sonra.&lt;br /&gt;
Kolay olacağını iddia ettiğim yok.&lt;br /&gt;
Sadece artık içimde bir ışık var, onu kovalamak istiyorum.&lt;br /&gt;
Taş attığın polisten kaçar gibi, aşık olduğun kıza koşar gibi, nedensiz,
sebepsiz mutlu olup umarsızca oynar gibi ve kendi içinden geldiği gibi mutlu
olmak istiyorum artık.&lt;br /&gt;
Hayatı seçiyorum kısacası artık. Bir seçim bu, doğru ya da yanlışlığı görelidir
kuşkusuz. Ama referans sistemi bensem doğru da yanlış da budur…&lt;/p&gt;
</content>
 </entry>
 
 <entry>
   <title>Pembe</title>
   <link href="https://alip.github.io/tr/blog/2010/10/24/pembe/"/>
   <updated>2010-10-24T00:00:00+00:00</updated>
   <id>https://alip.github.io/tr/blog/2010/10/24/pembe</id>
   <content type="html">&lt;p&gt;Pembe kokuyorsun sevdiğim, pespembe kokuyorsun…&lt;br /&gt;
Kokladıkça sarhoş oluyorum, incitiyorum kendimi…&lt;br /&gt;
İncittikçe çoğalıyorum, devrim gibi sevdiğim…&lt;/p&gt;
</content>
 </entry>
 
 <entry>
   <title>Şehir</title>
   <link href="https://alip.github.io/tr/blog/2010/10/16/sehir/"/>
   <updated>2010-10-16T00:00:00+00:00</updated>
   <id>https://alip.github.io/tr/blog/2010/10/16/sehir</id>
   <content type="html">&lt;p&gt;Bir şehir takıldı kafama, bir şiir takıldı kafama…&lt;br /&gt;
Başka bir şey umduğum yok, dönüp dolaşıp &lt;a href=&quot;http://tr.wikipedia.org/wiki/%C4%B0stanbul&quot;&gt;O&lt;/a&gt;‘na gitmek istiyorum…&lt;/p&gt;

&lt;blockquote&gt;
  &lt;span&gt;
    Yeni bir ülke bulamazsın
    Başka bir deniz bulamazsın
    Bu şehir ardından gelecektir
    Sen yine aynı sokakta dolaşacaksın
    Aynı mahallede kocayacaksın
    Yeni bir ülke bulamazsın
    Başka bir deniz bulamazsın
    Bu şehir arkandan gelecektir
    Aynı evde kır düşecek saçlarına
    Dönüp dolaşıp bu şehre geleceksin
    Geleceksin bu şehre sonunda
    Başka bir şey umma
    Başka şey umma!
  &lt;/span&gt;
&lt;/blockquote&gt;

&lt;p&gt;Konstantinos babaya saygı, kendi dilinde de yazayım…&lt;/p&gt;

&lt;blockquote&gt;
  &lt;span&gt;
    Η Πόλις
    Είπες· «Θα πάγω σ' άλλη γή, θα πάγω σ' άλλη θάλασσα,
    Μια πόλις άλλη θα βρεθεί καλλίτερη από αυτή.
    Κάθε προσπάθεια μου μια καταδίκη είναι γραφτή·
    κ' είν' η καρδιά μου -- σαν νεκρός -- θαμένη.
    Ο νους μου ως πότε μες στον μαρασμό αυτόν θα μένει.
    Οπου το μάτι μου γυρίσω, όπου κι αν δω
    ερείπια μαύρα της ζωής μου βλέπω εδώ,
    που τόσα χρόνια πέρασα και ρήμαξα και χάλασα».

    Καινούριους τόπους δεν θα βρεις, δεν θάβρεις άλλες θάλασσες.
    Η πόλις θα σε ακολουθεί. Στους δρόμους θα γυρνάς
    τους ίδιους. Και στες γειτονιές τες ίδιες θα γερνάς·
    και μες στα ίδια σπίτια αυτά θ' ασπρίζεις.
    Πάντα στην πόλι αυτή θα φθάνεις. Για τα αλλού -- μη ελπίζεις --
    δεν έχει πλοίο για σε, δεν έχει οδό.
    Ετσι που τη ζωή σου ρήμαξες εδώ
    στην κώχη τούτη την μικρή, σ' όλην την γή την χάλασες.

    Κωνσταντίνος Π. Καβάφης (1910)
  &lt;/span&gt;
&lt;/blockquote&gt;
</content>
 </entry>
 
 <entry>
   <title>Updates from pinktrace.git</title>
   <link href="https://alip.github.io/en/blog/2010/10/02/updates-from-pinktrace/"/>
   <updated>2010-10-02T00:00:00+00:00</updated>
   <id>https://alip.github.io/en/blog/2010/10/02/updates-from-pinktrace</id>
   <content type="html">&lt;p&gt;Here are some new stuff that has been cooking in
&lt;a href=&quot;git://github.com/alip/pinktrace.git&quot;&gt;pinktrace.git&lt;/a&gt;:&lt;/p&gt;

&lt;h4 id=&quot;arm-port&quot;&gt;ARM port&lt;/h4&gt;
&lt;p&gt;I’ve ported &lt;a href=&quot;http://dev.exherbo.org/~alip/pinktrace&quot;&gt;PinkTrace&lt;/a&gt; to
&lt;a href=&quot;http://en.wikipedia.org/wiki/ARM_architecture&quot;&gt;ARM&lt;/a&gt;. Thanks to dagger and
arachnist who have given me access to their ARM boxes. If you want to know the
technical details of this port, have a look at the file
&lt;a href=&quot;http://github.com/alip/pinktrace/blob/master/src/pink-linux-trace-arm.c&quot;&gt;pink-linux-trace-arm.c&lt;/a&gt;.&lt;/p&gt;

&lt;h4 id=&quot;haskell-bindings&quot;&gt;Haskell bindings&lt;/h4&gt;
&lt;p&gt;I’ve started writing &lt;a href=&quot;http://www.haskell.org/&quot;&gt;Haskell&lt;/a&gt; bindings. This is a work
in progress which you can find in the
&lt;a href=&quot;http://github.com/alip/pinktrace/tree/haskell&quot;&gt;haskell&lt;/a&gt; branch.&lt;/p&gt;

&lt;h4 id=&quot;sydbox--pinktrace&quot;&gt;Sydbox &amp;amp; PinkTrace&lt;/h4&gt;
&lt;p&gt;&lt;a href=&quot;http://git.exherbo.org/?p=sydbox.git;a=summary&quot;&gt;Sydbox&lt;/a&gt; requires
&lt;tt&gt;PinkTrace&lt;/tt&gt; in the
&lt;a href=&quot;http://git.exherbo.org/?p=sydbox.git;a=shortlog;h=refs/heads/next&quot;&gt;next&lt;/a&gt;
branch. I’ll merge &lt;tt&gt;next&lt;/tt&gt; to &lt;tt&gt;master&lt;/tt&gt; after I’m done with testing,
for which you may be of
&lt;a href=&quot;http://lists.exherbo.org/pipermail/exherbo-dev/2010-September/000718.html&quot;&gt;help&lt;/a&gt;.&lt;/p&gt;

&lt;h4 id=&quot;todo&quot;&gt;TODO&lt;/h4&gt;
&lt;p&gt;I’ve also written a
&lt;a href=&quot;http://github.com/alip/pinktrace/blob/master/TODO.mkd&quot;&gt;TODO&lt;/a&gt; file and added a
link to it from &lt;a href=&quot;http://www.exherbo.org&quot;&gt;Exherbo&lt;/a&gt;’s
&lt;a href=&quot;http://www.exherbo.org/docs/project-ideas.html&quot;&gt;project-ideas&lt;/a&gt; page.&lt;/p&gt;

&lt;p&gt;This is all for now!&lt;/p&gt;

&lt;p&gt;I’ve started a new university in a different city by the way and don’t have a
stable internet connection these days. So if you’re trying to contact me via IRC
and I’m not responding, try &lt;a href=&quot;mailto:alip@exherbo.org&quot;&gt;email&lt;/a&gt;.&lt;/p&gt;
</content>
 </entry>
 
 <entry>
   <title>Diğer Ben</title>
   <link href="https://alip.github.io/tr/blog/2010/08/21/diger-ben/"/>
   <updated>2010-08-21T00:00:00+00:00</updated>
   <id>https://alip.github.io/tr/blog/2010/08/21/diger-ben</id>
   <content type="html">&lt;p&gt;Mesele içindeki diğer kendini bulmak…
Bulduktan sonrası kolay. Ya onu öldürür kötü olursun, ya ona izin verir deli
olursun, ya da onunla yaşamayı öğrenir insan olursun.&lt;/p&gt;

&lt;p&gt;Ben insan olmayı seçtim, peki ya diğer ben? O fincana kahve koymuş
oturuyor beynimin bir lobunda.&lt;/p&gt;

&lt;p&gt;“Ahtapotlara özgürlük!” diye bağırasım var ama bağırmıyorum, sırf diğer ben
uyanmasın diye… Ben bağırmadıkça o da susuyor, sessizlik sürüyor.&lt;/p&gt;
</content>
 </entry>
 
 <entry>
   <title>PinkTrace relicensed to BSD-3</title>
   <link href="https://alip.github.io/en/blog/2010/08/05/pinktrace-relicensed/"/>
   <updated>2010-08-05T00:00:00+00:00</updated>
   <id>https://alip.github.io/en/blog/2010/08/05/pinktrace-relicensed</id>
   <content type="html">&lt;p&gt;I’ve relicensed &lt;a href=&quot;http://dev.exherbo.org/~alip/pinktrace&quot;&gt;pinktrace&lt;/a&gt; from
&lt;a href=&quot;http://en.wikipedia.org/wiki/GNU_Lesser_General_Public_License&quot;&gt;LGPL-2.1&lt;/a&gt; to
&lt;a href=&quot;http://en.wikipedia.org/wiki/BSD_licenses&quot;&gt;BSD-3&lt;/a&gt;. This should fit this project
better as it uses some code from projects like
&lt;a href=&quot;http://sourceforge.net/projects/strace/&quot;&gt;strace&lt;/a&gt; and FreeBSD’s
&lt;a href=&quot;http://en.wikipedia.org/wiki/Truss_%28Unix%29&quot;&gt;truss&lt;/a&gt;.&lt;/p&gt;
</content>
 </entry>
 
 <entry>
   <title>Unutmadık</title>
   <link href="https://alip.github.io/tr/blog/2010/07/01/unutmadik/"/>
   <updated>2010-07-01T00:00:00+00:00</updated>
   <id>https://alip.github.io/tr/blog/2010/07/01/unutmadik</id>
   <content type="html">&lt;p&gt;Unutmadık be Kâzım ağbi, unutamadık be Kâzım ağbi…&lt;/p&gt;

&lt;blockquote&gt;
  &lt;span&gt;
    Bu arada; hiç başımızdan eksik olmayan gökyüzüne, günün karanlık saatlerine,
    ara sıra kopsa da fırtınalara, bir gün boğulacağımız denizlere, eski günlere,
    neler olacağını bilmesek de geleceğe, kötülüklerle dolu olsa bile tarihe,
    tarihin akışını düze çıkarmaya çalışan tüm güzel yüzlü çocuklara, Donkişotlar
    'a, ateş hırsızlarına, Ernesto &quot;Çe&quot; Guevara'ya, yollara-yolculuklara,
    sevgililere, sevişmelere, sadece düşleyebildiğimiz olamamazlıklara, üşürken
    ısınmalara, her şeyden sıcak annelere, babalara ve tadını bütün bunlardan alan
    şarkılara kendi sıcaklığımızı gönderiyoruz. Kötü şeyler gördük. Savaşlar,
    katliamlar, ölen-öldürülen çocuklar gördük. Kendi dilini, kendi kültürünü,
    kendisini kaybeden insanlar, topluluklar gördük. Yanan köyler, kentler,
    ormanlar, hayvanlar gördük. Yoksul insanlar, ağlayan anneler, babalar, her gün
    bile bile sokaklarda ölüme koşan tinerci çocuklar gördük. Biz de öldük. Ama her
    şeye rağmen bu yeryüzünde şarkılar söyledik. Teşekkürler dünya.
  &lt;/span&gt;
&lt;/blockquote&gt;
</content>
 </entry>
 
 <entry>
   <title>Editing SPL playlists using VIM</title>
   <link href="https://alip.github.io/en/blog/2010/07/01/editing-spl-playlists/"/>
   <updated>2010-07-01T00:00:00+00:00</updated>
   <id>https://alip.github.io/en/blog/2010/07/01/editing-spl-playlists</id>
   <content type="html">&lt;p&gt;I’ve bought a &lt;a href=&quot;http://bit.ly/yp-u4&quot;&gt;Samsung YP-U4&lt;/a&gt; media player recently. It can
play &lt;a href=&quot;http://www.vorbis.com/&quot;&gt;Vorbis&lt;/a&gt; files, in addition to &lt;tt&gt;mp3&lt;/tt&gt; files.&lt;/p&gt;

&lt;p&gt;One problem I’ve faced was its weird format for playlists. To edit these files
with &lt;a href=&quot;http://www.vim.org/&quot;&gt;VIM&lt;/a&gt; I’ve edited my &lt;tt&gt;.vimrc&lt;/tt&gt; like this:&lt;/p&gt;

&lt;figure class=&quot;highlight&quot;&gt;&lt;pre&gt;&lt;code class=&quot;language-vim&quot; data-lang=&quot;vim&quot;&gt;    augroup spl
    &lt;span class=&quot;k&quot;&gt;au&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;!&lt;/span&gt;

    &lt;span class=&quot;k&quot;&gt;au&lt;/span&gt; &lt;span class=&quot;nb&quot;&gt;BufRead&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;,&lt;/span&gt;&lt;span class=&quot;nb&quot;&gt;BufNewFile&lt;/span&gt; *&lt;span class=&quot;p&quot;&gt;.&lt;/span&gt;spl &lt;span class=&quot;k&quot;&gt;setlocal&lt;/span&gt; bomb ff&lt;span class=&quot;p&quot;&gt;=&lt;/span&gt;dos fenc&lt;span class=&quot;p&quot;&gt;=&lt;/span&gt;utf&lt;span class=&quot;m&quot;&gt;-16&lt;/span&gt;&lt;span class=&quot;k&quot;&gt;le&lt;/span&gt;
    augroup END &quot; augroup spl&lt;/code&gt;&lt;/pre&gt;&lt;/figure&gt;

&lt;p&gt;Another thing to note is &lt;tt&gt;&amp;lt;/tt&amp;gt; is used as the path separator. Here’s how a
playlist looks like:&lt;/tt&gt;&lt;/p&gt;

&lt;div class=&quot;highlighter-rouge&quot;&gt;&lt;div class=&quot;highlight&quot;&gt;&lt;pre class=&quot;highlight&quot;&gt;&lt;code&gt;SPL PLAYLIST
VERSION 1.00

\Music\soundtracks\crossing_the_bridge\02-tavus_havasi-live.ogg
\Music\soundtracks\crossing_the_bridge\13-ehmedo-live.ogg
\Music\zulfu_livaneli\cd_2\2-07_merhaba.ogg
\Music\zulfu_livaneli\cd_2\2-12_duvarlar.ogg
\Music\zulfu_livaneli\cd_2\2-09_o_zgu_rlu_k.ogg
\Music\ciwan_haco\le_dine.ogg

END PLAYLIST
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;
</content>
 </entry>
 
 <entry>
   <title>sydbox-0.6.8</title>
   <link href="https://alip.github.io/en/blog/2010/06/14/sydbox-0.6.8/"/>
   <updated>2010-06-14T00:00:00+00:00</updated>
   <id>https://alip.github.io/en/blog/2010/06/14/sydbox-0.6.8</id>
   <content type="html">&lt;p&gt;sydbox-0.6.8 is
&lt;a href=&quot;http://lists.exherbo.org/pipermail/exherbo-dev/2010-June/000701.html&quot;&gt;released&lt;/a&gt;.
(
&lt;a href=&quot;http://dev.exherbo.org/~alip/sydbox/sydbox-0.6.8.tar.bz2&quot;&gt;tarball&lt;/a&gt;,
&lt;a href=&quot;http://dev.exherbo.org/~alip/sydbox/sydbox-0.6.8.tar.bz2.asc&quot;&gt;sign&lt;/a&gt;,
&lt;a href=&quot;http://dev.exherbo.org/~alip/sydbox/sydbox-0.6.8.tar.bz2.sha1sum&quot;&gt;sha1sum&lt;/a&gt;
)&lt;/p&gt;

&lt;ul&gt;
  &lt;li&gt;Add support for network aliases&lt;/li&gt;
  &lt;li&gt;Fix handling of &lt;code class=&quot;highlighter-rouge&quot;&gt;rmdir()&lt;/code&gt; which doesn’t resolve symlinks&lt;/li&gt;
&lt;/ul&gt;
</content>
 </entry>
 
 <entry>
   <title>ptrace on BSD (part 2)</title>
   <link href="https://alip.github.io/en/blog/2010/05/08/ptrace-on-bsd-2/"/>
   <updated>2010-05-08T00:00:00+00:00</updated>
   <id>https://alip.github.io/en/blog/2010/05/08/ptrace-on-bsd-2</id>
   <content type="html">&lt;p&gt;On my &lt;a href=&quot;/2010/01/16/ptrace-on-bsd/&quot;&gt;first post&lt;/a&gt; with the same $topic, I’ve
described a ptrace bug on FreeBSD. I’ve reported this issue on
&lt;a href=&quot;http://marc.info/?l=freebsd-hackers&amp;amp;m=126367014218610&amp;amp;w=2&quot;&gt;freebsd-hackers&lt;/a&gt;
mailing list and submitted a
&lt;a href=&quot;http://www.freebsd.org/cgi/query-pr.cgi?pr=kern/142958&quot;&gt;PR&lt;/a&gt; and FreeBSD
developers have fixed the problem.&lt;/p&gt;

&lt;p&gt;Here’s how they did it:&lt;/p&gt;
&lt;ul&gt;
  &lt;li&gt;&lt;a href=&quot;http://svnweb.freebsd.org/viewvc/base?view=revision&amp;amp;revision=202882&quot;&gt;r202882&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;http://svnweb.freebsd.org/viewvc/base?view=revision&amp;amp;revision=203608&quot;&gt;r203608&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;A big thanks!&lt;/p&gt;
</content>
 </entry>
 
 <entry>
   <title>Pink's Tracing Library</title>
   <link href="https://alip.github.io/en/blog/2010/05/07/pinktrace/"/>
   <updated>2010-05-07T00:00:00+00:00</updated>
   <id>https://alip.github.io/en/blog/2010/05/07/pinktrace</id>
   <content type="html">&lt;p&gt;As many of you know I’ve written
&lt;a href=&quot;http://projects.0x90.dk/projects/show/sydbox&quot;&gt;sydbox&lt;/a&gt;, the default sandbox of
&lt;a href=&quot;http://www.exherbo.org&quot;&gt;Exherbo&lt;/a&gt; &lt;a href=&quot;http://kernel.org&quot;&gt;Linux&lt;/a&gt; distribution. For a
long time I’ve been meaning to move the platform-dependent parts of
&lt;tt&gt;sydbox&lt;/tt&gt; to a library, so that others can make use of it.&lt;/p&gt;

&lt;p&gt;Last week, I’ve started writing a library called
&lt;a href=&quot;http://dev.exherbo.org/~alip/pinktrace&quot;&gt;pinktrace&lt;/a&gt; aka Pink’s Tracing Library.
This library is aimed to be a cross-platform lightweight
&lt;a href=&quot;http://en.wikipedia.org/wiki/Ptrace&quot;&gt;ptrace&lt;/a&gt; library. It provides:&lt;/p&gt;

&lt;ul&gt;
  &lt;li&gt;Wrappers around different &lt;tt&gt;ptrace&lt;/tt&gt; requests.&lt;/li&gt;
  &lt;li&gt;An API for decoding arguments (strings, socket addresses, …)&lt;/li&gt;
  &lt;li&gt;An &lt;strong&gt;experimental&lt;/strong&gt; API for encoding arguments.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;You can read more about it &lt;a href=&quot;http://dev.exherbo.org/~alip/pinktrace&quot;&gt;here&lt;/a&gt;.&lt;br /&gt;
An extensive API reference is available
&lt;a href=&quot;http://dev.exherbo.org/~alip/pinktrace/api/c&quot;&gt;here&lt;/a&gt;.&lt;br /&gt;
&lt;a href=&quot;http://dev.exherbo.org/~alip/pinktrace/api/python&quot;&gt;Python&lt;/a&gt; and
&lt;a href=&quot;http://dev.exherbo.org/~alip/pinktrace/api/ruby&quot;&gt;Ruby&lt;/a&gt; bindings are available
as well.&lt;/p&gt;

&lt;p&gt;So what’s next? I’ll write another library, which will probably be called
&lt;tt&gt;libsydbox&lt;/tt&gt;, which builds on top of &lt;tt&gt;pinktrace&lt;/tt&gt; and &lt;tt&gt;GLib&lt;/tt&gt;.
This will be a sandboxing library which can be used to sandbox untrusted
applications. I’ll also write Python bindings for it which will hopefully
replace &lt;a href=&quot;http://svn.pardus.org.tr/uludag/trunk/catbox/&quot;&gt;catbox&lt;/a&gt; of
&lt;a href=&quot;http://www.pardus.org.tr/eng/&quot;&gt;Pardus&lt;/a&gt; Linux distribution.
Here’s how it will look like:&lt;/p&gt;

&lt;div class=&quot;highlighter-rouge&quot;&gt;&lt;div class=&quot;highlight&quot;&gt;&lt;pre class=&quot;highlight&quot;&gt;&lt;code&gt;                Sydbox (A simple
                  ^     application using libsydbox)
                  |
                  |-------&amp;gt; pysydbox (Python bindings for libsydbox
                  |                   which aims to replace catbox)
                  |
              libsydbox (Implements
                  ^      sandboxing
                  |      as a library)
                  |
    -----------------------------
    ^                           ^
    |                           |
    |                           |
 pinktrace                    GLib
 (Implements                  (Implements
  cross-platform               the required data structures;
  tracing functions)           like hashtables, linked lists etc.)
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;

&lt;p&gt;Let’s see what the next days bring :-)&lt;/p&gt;
</content>
 </entry>
 
 <entry>
   <title>sydbox-0.6.7</title>
   <link href="https://alip.github.io/en/blog/2010/04/19/sydbox-0.6.7/"/>
   <updated>2010-04-19T00:00:00+00:00</updated>
   <id>https://alip.github.io/en/blog/2010/04/19/sydbox-0.6.7</id>
   <content type="html">&lt;p&gt;sydbox-0.6.7 is released. (
&lt;a href=&quot;http://dev.exherbo.org/~alip/sydbox/sydbox-0.6.7.tar.bz2&quot;&gt;tarball&lt;/a&gt;,
&lt;a href=&quot;http://dev.exherbo.org/~alip/sydbox/sydbox-0.6.7.tar.bz2.asc&quot;&gt;sign&lt;/a&gt;,
&lt;a href=&quot;http://dev.exherbo.org/~alip/sydbox/sydbox-0.6.7.tar.bz2.sha1sum&quot;&gt;sha1sum&lt;/a&gt;
)&lt;/p&gt;

&lt;ul&gt;
  &lt;li&gt;Regression: Duplicating network address information introduced a bug which
cause sydbox to hang. This is now fixed.&lt;/li&gt;
  &lt;li&gt;Added more unit tests.&lt;/li&gt;
  &lt;li&gt;Miscellaneous performance fixes.&lt;/li&gt;
&lt;/ul&gt;
</content>
 </entry>
 
 <entry>
   <title>Batch tagging of audio files from the command line</title>
   <link href="https://alip.github.io/en/blog/2010/01/27/batch-tagging-of-audio-files/"/>
   <updated>2010-01-27T00:00:00+00:00</updated>
   <id>https://alip.github.io/en/blog/2010/01/27/batch-tagging-of-audio-files</id>
   <content type="html">&lt;p&gt;As many of you know &lt;a href=&quot;http://en.wikipedia.org/wiki/MusicDNS&quot;&gt;MusicDNS&lt;/a&gt; is an
acoustic fingerprinting service and a software development kit provided by
MusicIP. The fingerprinting client library that looks up and identifies audio
files based on existing fingerprints is called
&lt;a href=&quot;http://code.google.com/p/musicip-libofa/&quot;&gt;libofa&lt;/a&gt;.
&lt;a href=&quot;http://musicbrainz.org/&quot;&gt;MusicBrainz&lt;/a&gt; has a great audio tagger called
&lt;a href=&quot;http://musicbrainz.org/doc/MusicBrainz_Picard&quot;&gt;Picard&lt;/a&gt; which can tag audio
files by querying this &lt;a href=&quot;http://en.wikipedia.org/wiki/MusicDNS&quot;&gt;MusicDNS&lt;/a&gt;
service.&lt;/p&gt;

&lt;p&gt;There is, however, a simple problem.
&lt;a href=&quot;http://musicbrainz.org/doc/MusicBrainz_Picard&quot;&gt;Picard&lt;/a&gt; is a
&lt;a href=&quot;http://en.wikipedia.org/wiki/Graphical_user_interface&quot;&gt;GUI&lt;/a&gt; and thus doesn’t
allow batch tagging of audio files from command line.&lt;/p&gt;

&lt;p&gt;Hence I decided to write my own tool for generating acoustic fingerprints and
for querying &lt;a href=&quot;http://en.wikipedia.org/wiki/MusicDNS&quot;&gt;MusicDNS&lt;/a&gt; service. I’ve
chosen to use &lt;a href=&quot;http://www.mega-nerd.com/libsndfile/&quot;&gt;libsndfile&lt;/a&gt; to do the
decoding as &lt;a href=&quot;http://code.google.com/p/musicip-libofa/&quot;&gt;libofa&lt;/a&gt; expects raw audio
data. &lt;a href=&quot;http://www.mega-nerd.com/libsndfile/&quot;&gt;libsndfile&lt;/a&gt; is a C library for
reading and writing files containing sampled sound through one standard library
interface. It’s pretty easy to use and its
&lt;a href=&quot;http://en.wikipedia.org/wiki/API&quot;&gt;API&lt;/a&gt; hides most of the low-level details from
the programmer.&lt;/p&gt;

&lt;p&gt;The tool is named &lt;a href=&quot;http://github.com/alip/afprint&quot;&gt;afprint&lt;/a&gt;, released under
&lt;a href=&quot;http://en.wikipedia.org/wiki/GPLv2#Version_2&quot;&gt;GPLv2&lt;/a&gt;. Following the
&lt;a href=&quot;http://en.wikipedia.org/wiki/Unix&quot;&gt;UNIX&lt;/a&gt; philosophy it just does one thing,
calculation of acoustic fingerprint and duration of the given audio file.&lt;/p&gt;

&lt;p&gt;Usage is simple:&lt;/p&gt;

&lt;div class=&quot;highlighter-rouge&quot;&gt;&lt;div class=&quot;highlight&quot;&gt;&lt;pre class=&quot;highlight&quot;&gt;&lt;code&gt;alip@harikalardiyari&amp;gt; afprint -h
afprint-0.1.0-7b17577 audio fingerprinting tool
Usage: afprint [-hVv0] &amp;lt;infile&amp;gt;

Options:
    -h, --help      Display usage and exit
    -V, --version   Display version and exit
    -v, --verbose   Be verbose
    -0, --print0    Delimit path and fingerprint by null character instead of space
If &amp;lt;infile&amp;gt; is '-' afprint reads from standard input.
alip@harikalardiyari&amp;gt; afprint -v sample.ogg
[dump_print.294] Format: OGG (OGG Container format)
[dump_print.295] Frames: 2188368
[dump_print.296] Channels: 1
[dump_print.297] Samplerate: 44100Hz
[dump_print.298] Duration: 49735ms
[dump_print.302] essential frames: 5953500 &amp;gt; frames: 2188368, adjusting
sample.ogg 49735 ARaJDAgL...
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;

&lt;p&gt;&lt;a href=&quot;http://github.com/alip/afprint&quot;&gt;afprint&lt;/a&gt; decodes the audio data using
&lt;a href=&quot;http://www.mega-nerd.com/libsndfile/&quot;&gt;libsndfile&lt;/a&gt; and feeds it to
&lt;a href=&quot;http://code.google.com/p/musicip-libofa/&quot;&gt;libofa&lt;/a&gt;. It also calculates the
duration of the audio file and prints them in format:
&lt;code class=&quot;highlighter-rouge&quot;&gt;FILENAME DURATION FINGERPRINT&lt;/code&gt;&lt;/p&gt;

&lt;p&gt;Reading from standard input is tricky because pipes aren’t seekable thus it’s
not possible to calculate the duration of the audio file. For this reason, when
the audio data is fed via standard input, when &lt;code class=&quot;highlighter-rouge&quot;&gt;&amp;lt;infile&amp;gt;&lt;/code&gt; is &lt;code class=&quot;highlighter-rouge&quot;&gt;-&lt;/code&gt;,
&lt;a href=&quot;http://github.com/alip/afprint&quot;&gt;afprint&lt;/a&gt; saves this data into a temporary file
and reads from it. This makes it possible to calculate acoustic fingerprints of
&lt;a href=&quot;http://en.wikipedia.org/wiki/Mp3&quot;&gt;Mp3&lt;/a&gt; files, which
&lt;a href=&quot;http://www.mega-nerd.com/libsndfile/&quot;&gt;libsndfile&lt;/a&gt; doesn’t
&lt;a href=&quot;http://www.mega-nerd.com/libsndfile/FAQ.html#Q020&quot;&gt;support&lt;/a&gt;, easily.&lt;/p&gt;

&lt;div class=&quot;highlighter-rouge&quot;&gt;&lt;div class=&quot;highlight&quot;&gt;&lt;pre class=&quot;highlight&quot;&gt;&lt;code&gt;alip@harikalardiyari&amp;gt; mpg123 -q --au - 01_san_francisco.mp3|afprint -v -
[wav.c:388] warning: Cannot rewind AU file. File-format isn't fully conform now.
[wav.c:388] warning: Cannot rewind AU file. File-format isn't fully conform now.
[dump_print.294] Format: AU (Sun/NeXT)
[dump_print.295] Frames: 8000111
[dump_print.296] Channels: 2
[dump_print.297] Samplerate: 44100Hz
[dump_print.298] Duration: 181820ms
/dev/stdin.au 181820 AQMZN...
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;

&lt;p&gt;Note the &lt;code class=&quot;highlighter-rouge&quot;&gt;--au&lt;/code&gt; option passed to &lt;a href=&quot;http://www.mpg123.de/&quot;&gt;mpg123&lt;/a&gt; as &lt;code class=&quot;highlighter-rouge&quot;&gt;--wav&lt;/code&gt;
doesn’t work.&lt;/p&gt;

&lt;p&gt;So far so good, now we need a tool to query the
&lt;a href=&quot;http://en.wikipedia.org/wiki/MusicDNS&quot;&gt;MusicDNS&lt;/a&gt; server to find out the
&lt;a href=&quot;http://en.wikipedia.org/wiki/Portable_Unique_IDentifier&quot;&gt;PUID&lt;/a&gt; of the audio
file and query &lt;a href=&quot;http://musicbrainz.org/&quot;&gt;MusicBrainz&lt;/a&gt; to get the audio tags.&lt;/p&gt;

&lt;p&gt;I’ve written a simple &lt;a href=&quot;http://www.perl.org/&quot;&gt;Perl&lt;/a&gt; script to do the job. The
script, which has the name
&lt;a href=&quot;http://github.com/alip/afprint/blob/master/scripts/puidlookup.in&quot;&gt;puidlookup&lt;/a&gt;,
reads audio fingerprints from standard input and queries the
&lt;a href=&quot;http://en.wikipedia.org/wiki/MusicDNS&quot;&gt;MusicDNS&lt;/a&gt; server. Optionally it can
query &lt;a href=&quot;http://musicbrainz.org/&quot;&gt;MusicBrainz&lt;/a&gt; as well to receive the tags.&lt;/p&gt;

&lt;p&gt;Here are the requirements:&lt;/p&gt;

&lt;ul&gt;
  &lt;li&gt;&lt;a href=&quot;http://www.perl.org&quot;&gt;Perl&lt;/a&gt; (obviously)&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;http://search.cpan.org/~gaas/libwww-perl/&quot;&gt;libwww-perl&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;http://search.cpan.org/~grantm/XML-Simple/&quot;&gt;XML-Simple&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;http://search.cpan.org/~bfaist/WebService-MusicBrainz/&quot;&gt;WebService-MusicBrainz&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;http://search.cpan.org/~jhi/Time-HiRes/&quot;&gt;Time-HiRes&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Usage is simple, just pipe &lt;a href=&quot;http://github.com/alip/afprint&quot;&gt;afprint&lt;/a&gt;’s output to
&lt;a href=&quot;http://github.com/alip/afprint/blob/master/scripts/puidlookup.in&quot;&gt;puidlookup&lt;/a&gt;.&lt;/p&gt;

&lt;div class=&quot;highlighter-rouge&quot;&gt;&lt;div class=&quot;highlight&quot;&gt;&lt;pre class=&quot;highlight&quot;&gt;&lt;code&gt;alip@harikalardiyari&amp;gt; puidlookup -h
Usage: puidlookup [-hVv0]
    -h, --help          Display usage and exit
    -V, --version       Display version and exit
    -v, --verbose       Be verbose
    -0, --null          Expect input is null delimited
    -m, --musicbrainz   Look up PUIDs from MusicBrainz
                        (requires WebService-MusicBrainz)
    -l, --limit         Limit results to the given number
puidlookup reads filename, duration and audio fingerprint from standard input
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;

&lt;p&gt;The &lt;code class=&quot;highlighter-rouge&quot;&gt;--null&lt;/code&gt; option responds to &lt;a href=&quot;http://github.com/alip/afprint&quot;&gt;afprint&lt;/a&gt;’s
&lt;code class=&quot;highlighter-rouge&quot;&gt;--print0&lt;/code&gt; option. These options are useful if filenames have spaces or other
weird characters in it.&lt;/p&gt;

&lt;p&gt;By default it only queries &lt;a href=&quot;http://en.wikipedia.org/wiki/MusicDNS&quot;&gt;MusicDNS&lt;/a&gt;:&lt;/p&gt;

&lt;div class=&quot;highlighter-rouge&quot;&gt;&lt;div class=&quot;highlight&quot;&gt;&lt;pre class=&quot;highlight&quot;&gt;&lt;code&gt;alip@harikalardiyari&amp;gt; afprint 04sheep.ogg | puidlookup
ARTIST='Pink Floyd'
TITLE='Sheep'
PUID=930806c1-e1e0-588a-b7de-2dacb1b8b11e
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;

&lt;p&gt;The &lt;code class=&quot;highlighter-rouge&quot;&gt;--musicbrainz&lt;/code&gt; option can be used to query
&lt;a href=&quot;http://musicbrainz.org/&quot;&gt;MusicBrainz&lt;/a&gt;:&lt;/p&gt;

&lt;div class=&quot;highlighter-rouge&quot;&gt;&lt;div class=&quot;highlight&quot;&gt;&lt;pre class=&quot;highlight&quot;&gt;&lt;code&gt;alip@harikalardiyari&amp;gt; afprint 04sheep.ogg | puidlookup --musicbrainz
PUID=930806c1-e1e0-588a-b7de-2dacb1b8b11e
TRACKID=431a85dd-e22b-4626-91c9-c0abb8058d3f
ARTISTID=83d91898-7763-47d7-b03b-b92132375c47
ARTIST='Pink Floyd'
TITLE='Sheep'
TRACK=4
ALBUM='Animals'
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;

&lt;p&gt;The output is quoted so it’s safe to pass to &lt;code class=&quot;highlighter-rouge&quot;&gt;eval&lt;/code&gt;, making it easy to integrate
with shell scripts.&lt;/p&gt;

&lt;p&gt;Last step is writing a tagger script to tag audio files. I’ve written a shell script
called &lt;a href=&quot;http://github.com/alip/afprint/blob/master/scripts/ofatag&quot;&gt;ofatag&lt;/a&gt; which
uses &lt;a href=&quot;http://github.com/alip/envtag&quot;&gt;envtag&lt;/a&gt;. It recognizes
&lt;a href=&quot;http://en.wikipedia.org/wiki/Mp3&quot;&gt;Mp3&lt;/a&gt; files using the &lt;code class=&quot;highlighter-rouge&quot;&gt;file&lt;/code&gt; command and
decodes using &lt;code class=&quot;highlighter-rouge&quot;&gt;mpg123&lt;/code&gt;, other formats are directly fed to
&lt;a href=&quot;http://github.com/alip/afprint&quot;&gt;afprint&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;Now, to tag your files using MusicBrainz web services just do&lt;br /&gt;
&lt;code class=&quot;highlighter-rouge&quot;&gt;ofatag /path/to/music/*.mp3 /path/to/music/*.ogg&lt;/code&gt;&lt;br /&gt;
etc.&lt;/p&gt;

&lt;p&gt;I haven’t released a version yet because it’s all pretty new and needs testing.
So please test it and report back! Any comments, thoughts, patches are
appreciated.&lt;/p&gt;
</content>
 </entry>
 
 <entry>
   <title>sydbox-0.6.3</title>
   <link href="https://alip.github.io/en/blog/2010/01/23/sydbox-0.6.3/"/>
   <updated>2010-01-23T00:00:00+00:00</updated>
   <id>https://alip.github.io/en/blog/2010/01/23/sydbox-0.6.3</id>
   <content type="html">&lt;p&gt;sydbox-0.6.3 is released. (
&lt;a href=&quot;http://dev.exherbo.org/~alip/sydbox/sydbox-0.6.3.tar.bz2&quot;&gt;tarball&lt;/a&gt;,
&lt;a href=&quot;http://dev.exherbo.org/~alip/sydbox/sydbox-0.6.3.tar.bz2.asc&quot;&gt;sign&lt;/a&gt;,
&lt;a href=&quot;http://dev.exherbo.org/~alip/sydbox/sydbox-0.6.3.tar.bz2.sha1sum&quot;&gt;sha1sum&lt;/a&gt;
)&lt;/p&gt;

&lt;ul&gt;
  &lt;li&gt;Resolve path of non-abstract UNIX sockets&lt;/li&gt;
  &lt;li&gt;Intercept dup family calls and fcntl calls to see if a socket descriptor we
care about has been duplicated&lt;/li&gt;
&lt;/ul&gt;
</content>
 </entry>
 
 <entry>
   <title>ptrace on BSD</title>
   <link href="https://alip.github.io/en/blog/2010/01/16/ptrace-on-bsd/"/>
   <updated>2010-01-16T00:00:00+00:00</updated>
   <id>https://alip.github.io/en/blog/2010/01/16/ptrace-on-bsd</id>
   <content type="html">&lt;p&gt;&lt;code class=&quot;highlighter-rouge&quot;&gt;ptrace&lt;/code&gt; is a system call which is used for process tracing
and debugging. This system call is available on many operating systems.
However each operating system has different versions.&lt;/p&gt;

&lt;p&gt;I want to explain about my efforts to port
&lt;a href=&quot;http://projects.0x90.dk/projects/show/sydbox&quot;&gt;sydbox&lt;/a&gt; to
&lt;a href=&quot;http://www.freebsd.org/&quot;&gt;FreeBSD&lt;/a&gt;. The
&lt;a href=&quot;http://www.freebsd.org/cgi/man.cgi?query=ptrace&amp;amp;apropos=0&amp;amp;sektion=0&amp;amp;manpath=FreeBSD+8.0-RELEASE&amp;amp;format=html&quot;&gt;ptrace implementation&lt;/a&gt;
of &lt;a href=&quot;http://www.freebsd.org/&quot;&gt;FreeBSD&lt;/a&gt; is similar to
&lt;a href=&quot;http://www.kernel.org/&quot;&gt;Linux&lt;/a&gt;’. The request
&lt;code class=&quot;highlighter-rouge&quot;&gt;PT_SYSCALL&lt;/code&gt; is available to stop the traced process at every system call and
exit similar to &lt;code class=&quot;highlighter-rouge&quot;&gt;PTRACE_SYSCALL&lt;/code&gt; of &lt;a href=&quot;http://www.kernel.org/&quot;&gt;Linux&lt;/a&gt;.
In addition to that &lt;a href=&quot;http://www.freebsd.org/&quot;&gt;FreeBSD&lt;/a&gt; has the requests
&lt;code class=&quot;highlighter-rouge&quot;&gt;PT_TO_SCE&lt;/code&gt; and &lt;code class=&quot;highlighter-rouge&quot;&gt;PT_TO_SCX&lt;/code&gt; which stops the traced process &lt;strong&gt;only&lt;/strong&gt; at the
beginning of system call entry or exit.  This is a feature I really miss on
Linux.&lt;/p&gt;

&lt;p&gt;There is, however, a big difference, I’m inclined to call it a bug, about
&lt;code class=&quot;highlighter-rouge&quot;&gt;ptrace&lt;/code&gt; on &lt;a href=&quot;http://www.freebsd.org/&quot;&gt;FreeBSD&lt;/a&gt;. When a traced process is stopped
at the entry of a system call, there’s no way to prevent the execution of this
system call. On Linux this is done by changing the system call number to either
something invalid like &lt;code class=&quot;highlighter-rouge&quot;&gt;0xbadca11&lt;/code&gt; or something harmless like &lt;code class=&quot;highlighter-rouge&quot;&gt;getpid&lt;/code&gt;.&lt;/p&gt;

&lt;p&gt;&lt;a href=&quot;/code/ptrace-linux-deny.c&quot;&gt;Here&lt;/a&gt; is an example:&lt;/p&gt;

&lt;figure class=&quot;highlight&quot;&gt;&lt;pre&gt;&lt;code class=&quot;language-c&quot; data-lang=&quot;c&quot;&gt;    &lt;span class=&quot;cm&quot;&gt;/* denying system calls using ptrace on Linux
     */&lt;/span&gt;

    &lt;span class=&quot;cp&quot;&gt;#include &amp;lt;assert.h&amp;gt;
&lt;/span&gt;    &lt;span class=&quot;cp&quot;&gt;#include &amp;lt;fcntl.h&amp;gt;
&lt;/span&gt;    &lt;span class=&quot;cp&quot;&gt;#include &amp;lt;signal.h&amp;gt;
&lt;/span&gt;    &lt;span class=&quot;cp&quot;&gt;#include &amp;lt;stdio.h&amp;gt;
&lt;/span&gt;    &lt;span class=&quot;cp&quot;&gt;#include &amp;lt;stdlib.h&amp;gt;
&lt;/span&gt;    &lt;span class=&quot;cp&quot;&gt;#include &amp;lt;unistd.h&amp;gt;
&lt;/span&gt;    &lt;span class=&quot;cp&quot;&gt;#include &amp;lt;sys/reg.h&amp;gt;
&lt;/span&gt;    &lt;span class=&quot;cp&quot;&gt;#include &amp;lt;sys/types.h&amp;gt;
&lt;/span&gt;    &lt;span class=&quot;cp&quot;&gt;#include &amp;lt;sys/wait.h&amp;gt;
&lt;/span&gt;    &lt;span class=&quot;cp&quot;&gt;#include &amp;lt;sys/ptrace.h&amp;gt;
&lt;/span&gt;    &lt;span class=&quot;cp&quot;&gt;#include &amp;lt;linux/ptrace.h&amp;gt;
&lt;/span&gt;
    &lt;span class=&quot;cp&quot;&gt;#if defined(__x86__)
&lt;/span&gt;    &lt;span class=&quot;cp&quot;&gt;#define ORIG_ACCUM    (4 * ORIG_EAX)
&lt;/span&gt;    &lt;span class=&quot;cp&quot;&gt;#elif defined(__x86_64__)
&lt;/span&gt;    &lt;span class=&quot;cp&quot;&gt;#define ORIG_ACCUM    (8 * ORIG_RAX)
&lt;/span&gt;    &lt;span class=&quot;cp&quot;&gt;#else
&lt;/span&gt;    &lt;span class=&quot;cp&quot;&gt;#error unsupported architecture
&lt;/span&gt;    &lt;span class=&quot;cp&quot;&gt;#endif
&lt;/span&gt;
    &lt;span class=&quot;kt&quot;&gt;int&lt;/span&gt; &lt;span class=&quot;nf&quot;&gt;main&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;kt&quot;&gt;void&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;)&lt;/span&gt;
    &lt;span class=&quot;p&quot;&gt;{&lt;/span&gt;
            &lt;span class=&quot;kt&quot;&gt;int&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;status&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;;&lt;/span&gt;
            &lt;span class=&quot;n&quot;&gt;pid_t&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;pid&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;;&lt;/span&gt;

            &lt;span class=&quot;k&quot;&gt;if&lt;/span&gt; &lt;span class=&quot;p&quot;&gt;((&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;pid&lt;/span&gt; &lt;span class=&quot;o&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;fork&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;())&lt;/span&gt; &lt;span class=&quot;o&quot;&gt;&amp;lt;&lt;/span&gt; &lt;span class=&quot;mi&quot;&gt;0&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;)&lt;/span&gt; &lt;span class=&quot;p&quot;&gt;{&lt;/span&gt;
                    &lt;span class=&quot;n&quot;&gt;perror&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;s&quot;&gt;&quot;fork&quot;&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;);&lt;/span&gt;
                    &lt;span class=&quot;n&quot;&gt;abort&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;();&lt;/span&gt;
            &lt;span class=&quot;p&quot;&gt;}&lt;/span&gt;
            &lt;span class=&quot;k&quot;&gt;else&lt;/span&gt; &lt;span class=&quot;k&quot;&gt;if&lt;/span&gt; &lt;span class=&quot;p&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;pid&lt;/span&gt; &lt;span class=&quot;o&quot;&gt;==&lt;/span&gt; &lt;span class=&quot;mi&quot;&gt;0&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;)&lt;/span&gt; &lt;span class=&quot;p&quot;&gt;{&lt;/span&gt;
                    &lt;span class=&quot;n&quot;&gt;ptrace&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;PTRACE_TRACEME&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;mi&quot;&gt;0&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;nb&quot;&gt;NULL&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;nb&quot;&gt;NULL&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;);&lt;/span&gt;
                    &lt;span class=&quot;n&quot;&gt;kill&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;getpid&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;(),&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;SIGSTOP&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;);&lt;/span&gt;
                    &lt;span class=&quot;n&quot;&gt;open&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;s&quot;&gt;&quot;foo.bar&quot;&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;O_WRONLY&lt;/span&gt; &lt;span class=&quot;o&quot;&gt;|&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;O_CREAT&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;);&lt;/span&gt;
                    &lt;span class=&quot;n&quot;&gt;_exit&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;mi&quot;&gt;0&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;);&lt;/span&gt;
            &lt;span class=&quot;p&quot;&gt;}&lt;/span&gt;

            &lt;span class=&quot;k&quot;&gt;if&lt;/span&gt; &lt;span class=&quot;p&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;waitpid&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;pid&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;o&quot;&gt;&amp;amp;&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;status&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;mi&quot;&gt;0&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;)&lt;/span&gt; &lt;span class=&quot;o&quot;&gt;&amp;lt;&lt;/span&gt; &lt;span class=&quot;mi&quot;&gt;0&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;)&lt;/span&gt; &lt;span class=&quot;p&quot;&gt;{&lt;/span&gt;
                    &lt;span class=&quot;n&quot;&gt;perror&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;s&quot;&gt;&quot;waitpid&quot;&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;);&lt;/span&gt;
                    &lt;span class=&quot;n&quot;&gt;abort&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;();&lt;/span&gt;
            &lt;span class=&quot;p&quot;&gt;}&lt;/span&gt;

            &lt;span class=&quot;n&quot;&gt;assert&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;WIFSTOPPED&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;status&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;));&lt;/span&gt;
            &lt;span class=&quot;n&quot;&gt;assert&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;WSTOPSIG&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;status&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;)&lt;/span&gt; &lt;span class=&quot;o&quot;&gt;==&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;SIGSTOP&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;);&lt;/span&gt;

            &lt;span class=&quot;k&quot;&gt;if&lt;/span&gt; &lt;span class=&quot;p&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;ptrace&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;PTRACE_SYSCALL&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;pid&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;nb&quot;&gt;NULL&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;nb&quot;&gt;NULL&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;)&lt;/span&gt; &lt;span class=&quot;o&quot;&gt;&amp;lt;&lt;/span&gt; &lt;span class=&quot;mi&quot;&gt;0&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;)&lt;/span&gt; &lt;span class=&quot;p&quot;&gt;{&lt;/span&gt;
                    &lt;span class=&quot;n&quot;&gt;perror&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;s&quot;&gt;&quot;ptrace(PTRACE_SYSCALL, ...)&quot;&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;);&lt;/span&gt;
                    &lt;span class=&quot;n&quot;&gt;ptrace&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;PTRACE_KILL&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;pid&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;nb&quot;&gt;NULL&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;nb&quot;&gt;NULL&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;);&lt;/span&gt;
                    &lt;span class=&quot;n&quot;&gt;abort&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;();&lt;/span&gt;
            &lt;span class=&quot;p&quot;&gt;}&lt;/span&gt;

            &lt;span class=&quot;k&quot;&gt;if&lt;/span&gt; &lt;span class=&quot;p&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;waitpid&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;pid&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;o&quot;&gt;&amp;amp;&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;status&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;mi&quot;&gt;0&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;)&lt;/span&gt; &lt;span class=&quot;o&quot;&gt;&amp;lt;&lt;/span&gt; &lt;span class=&quot;mi&quot;&gt;0&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;)&lt;/span&gt; &lt;span class=&quot;p&quot;&gt;{&lt;/span&gt;
                    &lt;span class=&quot;n&quot;&gt;perror&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;s&quot;&gt;&quot;waitpid&quot;&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;);&lt;/span&gt;
                    &lt;span class=&quot;n&quot;&gt;ptrace&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;PTRACE_KILL&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;pid&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;nb&quot;&gt;NULL&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;nb&quot;&gt;NULL&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;);&lt;/span&gt;
                    &lt;span class=&quot;n&quot;&gt;abort&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;();&lt;/span&gt;
            &lt;span class=&quot;p&quot;&gt;}&lt;/span&gt;

            &lt;span class=&quot;n&quot;&gt;assert&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;WIFSTOPPED&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;status&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;));&lt;/span&gt;
            &lt;span class=&quot;n&quot;&gt;assert&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;WSTOPSIG&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;status&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;)&lt;/span&gt; &lt;span class=&quot;o&quot;&gt;==&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;SIGTRAP&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;);&lt;/span&gt;

            &lt;span class=&quot;cm&quot;&gt;/* Change the system call to something invalid, so it will be denied.
             */&lt;/span&gt;
            &lt;span class=&quot;k&quot;&gt;if&lt;/span&gt; &lt;span class=&quot;p&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;ptrace&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;PTRACE_POKEUSER&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;pid&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;ORIG_ACCUM&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;mh&quot;&gt;0xbadca11&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;)&lt;/span&gt; &lt;span class=&quot;o&quot;&gt;&amp;lt;&lt;/span&gt; &lt;span class=&quot;mi&quot;&gt;0&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;)&lt;/span&gt; &lt;span class=&quot;p&quot;&gt;{&lt;/span&gt;
                    &lt;span class=&quot;n&quot;&gt;perror&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;s&quot;&gt;&quot;ptrace(PTRACE_POKEUSER, ...)&quot;&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;);&lt;/span&gt;
                    &lt;span class=&quot;n&quot;&gt;ptrace&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;PTRACE_KILL&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;pid&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;nb&quot;&gt;NULL&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;nb&quot;&gt;NULL&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;);&lt;/span&gt;
                    &lt;span class=&quot;n&quot;&gt;abort&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;();&lt;/span&gt;
            &lt;span class=&quot;p&quot;&gt;}&lt;/span&gt;

            &lt;span class=&quot;cm&quot;&gt;/* Let the process continue */&lt;/span&gt;
            &lt;span class=&quot;n&quot;&gt;ptrace&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;PTRACE_CONT&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;pid&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;nb&quot;&gt;NULL&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;nb&quot;&gt;NULL&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;);&lt;/span&gt;

            &lt;span class=&quot;n&quot;&gt;waitpid&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;pid&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;o&quot;&gt;&amp;amp;&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;status&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;mi&quot;&gt;0&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;);&lt;/span&gt;
            &lt;span class=&quot;n&quot;&gt;assert&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;WIFEXITED&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;status&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;));&lt;/span&gt;
            &lt;span class=&quot;n&quot;&gt;exit&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;WEXITSTATUS&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;status&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;));&lt;/span&gt;
    &lt;span class=&quot;p&quot;&gt;}&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/figure&gt;

&lt;!-- _ --&gt;

&lt;p&gt;Now although the traced process calls &lt;code class=&quot;highlighter-rouge&quot;&gt;open(&quot;foo.bar&quot;, O_WRONLY | O_CREAT)&lt;/code&gt;
the file &lt;code class=&quot;highlighter-rouge&quot;&gt;foo.bar&lt;/code&gt; won’t be created because the tracer process denies the system
call.&lt;/p&gt;

&lt;p&gt;&lt;a href=&quot;/code/ptrace-freebsd-deny.c&quot;&gt;Here&lt;/a&gt; is the same example for
&lt;a href=&quot;http://www.freebsd.org/&quot;&gt;FreeBSD&lt;/a&gt;:&lt;/p&gt;

&lt;figure class=&quot;highlight&quot;&gt;&lt;pre&gt;&lt;code class=&quot;language-c&quot; data-lang=&quot;c&quot;&gt;    &lt;span class=&quot;cm&quot;&gt;/* denying system calls using ptrace on FreeBSD
     */&lt;/span&gt;

    &lt;span class=&quot;cp&quot;&gt;#include &amp;lt;assert.h&amp;gt;
&lt;/span&gt;    &lt;span class=&quot;cp&quot;&gt;#include &amp;lt;fcntl.h&amp;gt;
&lt;/span&gt;    &lt;span class=&quot;cp&quot;&gt;#include &amp;lt;signal.h&amp;gt;
&lt;/span&gt;    &lt;span class=&quot;cp&quot;&gt;#include &amp;lt;stdio.h&amp;gt;
&lt;/span&gt;    &lt;span class=&quot;cp&quot;&gt;#include &amp;lt;stdlib.h&amp;gt;
&lt;/span&gt;    &lt;span class=&quot;cp&quot;&gt;#include &amp;lt;unistd.h&amp;gt;
&lt;/span&gt;    &lt;span class=&quot;cp&quot;&gt;#include &amp;lt;sys/types.h&amp;gt;
&lt;/span&gt;    &lt;span class=&quot;cp&quot;&gt;#include &amp;lt;sys/wait.h&amp;gt;
&lt;/span&gt;    &lt;span class=&quot;cp&quot;&gt;#include &amp;lt;sys/ptrace.h&amp;gt;
&lt;/span&gt;    &lt;span class=&quot;cp&quot;&gt;#include &amp;lt;machine/reg.h&amp;gt;
&lt;/span&gt;
    &lt;span class=&quot;kt&quot;&gt;int&lt;/span&gt; &lt;span class=&quot;nf&quot;&gt;main&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;kt&quot;&gt;void&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;)&lt;/span&gt;
    &lt;span class=&quot;p&quot;&gt;{&lt;/span&gt;
            &lt;span class=&quot;kt&quot;&gt;int&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;status&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;;&lt;/span&gt;
            &lt;span class=&quot;n&quot;&gt;pid_t&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;pid&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;;&lt;/span&gt;
            &lt;span class=&quot;k&quot;&gt;struct&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;reg&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;r&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;;&lt;/span&gt;

            &lt;span class=&quot;k&quot;&gt;if&lt;/span&gt; &lt;span class=&quot;p&quot;&gt;((&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;pid&lt;/span&gt; &lt;span class=&quot;o&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;fork&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;())&lt;/span&gt; &lt;span class=&quot;o&quot;&gt;&amp;lt;&lt;/span&gt; &lt;span class=&quot;mi&quot;&gt;0&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;)&lt;/span&gt; &lt;span class=&quot;p&quot;&gt;{&lt;/span&gt;
                    &lt;span class=&quot;n&quot;&gt;perror&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;s&quot;&gt;&quot;fork&quot;&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;);&lt;/span&gt;
                    &lt;span class=&quot;n&quot;&gt;abort&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;();&lt;/span&gt;
            &lt;span class=&quot;p&quot;&gt;}&lt;/span&gt;
            &lt;span class=&quot;k&quot;&gt;else&lt;/span&gt; &lt;span class=&quot;k&quot;&gt;if&lt;/span&gt; &lt;span class=&quot;p&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;pid&lt;/span&gt; &lt;span class=&quot;o&quot;&gt;==&lt;/span&gt; &lt;span class=&quot;mi&quot;&gt;0&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;)&lt;/span&gt; &lt;span class=&quot;p&quot;&gt;{&lt;/span&gt;
                    &lt;span class=&quot;n&quot;&gt;ptrace&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;PT_TRACE_ME&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;mi&quot;&gt;0&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;nb&quot;&gt;NULL&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;mi&quot;&gt;0&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;);&lt;/span&gt;
                    &lt;span class=&quot;n&quot;&gt;kill&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;getpid&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;(),&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;SIGSTOP&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;);&lt;/span&gt;
                    &lt;span class=&quot;n&quot;&gt;open&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;s&quot;&gt;&quot;foo.bar&quot;&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;O_WRONLY&lt;/span&gt; &lt;span class=&quot;o&quot;&gt;|&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;O_CREAT&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;);&lt;/span&gt;
                    &lt;span class=&quot;n&quot;&gt;_exit&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;mi&quot;&gt;0&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;);&lt;/span&gt;
            &lt;span class=&quot;p&quot;&gt;}&lt;/span&gt;

            &lt;span class=&quot;k&quot;&gt;if&lt;/span&gt; &lt;span class=&quot;p&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;waitpid&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;pid&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;o&quot;&gt;&amp;amp;&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;status&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;mi&quot;&gt;0&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;)&lt;/span&gt; &lt;span class=&quot;o&quot;&gt;&amp;lt;&lt;/span&gt; &lt;span class=&quot;mi&quot;&gt;0&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;)&lt;/span&gt; &lt;span class=&quot;p&quot;&gt;{&lt;/span&gt;
                    &lt;span class=&quot;n&quot;&gt;perror&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;s&quot;&gt;&quot;waitpid&quot;&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;);&lt;/span&gt;
                    &lt;span class=&quot;n&quot;&gt;abort&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;();&lt;/span&gt;
            &lt;span class=&quot;p&quot;&gt;}&lt;/span&gt;

            &lt;span class=&quot;n&quot;&gt;assert&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;WIFSTOPPED&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;status&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;));&lt;/span&gt;
            &lt;span class=&quot;n&quot;&gt;assert&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;WSTOPSIG&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;status&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;)&lt;/span&gt; &lt;span class=&quot;o&quot;&gt;==&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;SIGSTOP&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;);&lt;/span&gt;

            &lt;span class=&quot;k&quot;&gt;if&lt;/span&gt; &lt;span class=&quot;p&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;ptrace&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;PT_SYSCALL&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;pid&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;p&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;caddr_t&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;mi&quot;&gt;1&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;mi&quot;&gt;0&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;)&lt;/span&gt; &lt;span class=&quot;o&quot;&gt;&amp;lt;&lt;/span&gt; &lt;span class=&quot;mi&quot;&gt;0&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;)&lt;/span&gt; &lt;span class=&quot;p&quot;&gt;{&lt;/span&gt;
                    &lt;span class=&quot;n&quot;&gt;perror&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;s&quot;&gt;&quot;ptrace(PT_SYSCALL, ...)&quot;&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;);&lt;/span&gt;
                    &lt;span class=&quot;n&quot;&gt;ptrace&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;PT_KILL&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;pid&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;p&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;caddr_t&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;mi&quot;&gt;1&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;mi&quot;&gt;0&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;);&lt;/span&gt;
                    &lt;span class=&quot;n&quot;&gt;abort&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;();&lt;/span&gt;
            &lt;span class=&quot;p&quot;&gt;}&lt;/span&gt;

            &lt;span class=&quot;k&quot;&gt;if&lt;/span&gt; &lt;span class=&quot;p&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;waitpid&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;pid&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;o&quot;&gt;&amp;amp;&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;status&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;mi&quot;&gt;0&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;)&lt;/span&gt; &lt;span class=&quot;o&quot;&gt;&amp;lt;&lt;/span&gt; &lt;span class=&quot;mi&quot;&gt;0&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;)&lt;/span&gt; &lt;span class=&quot;p&quot;&gt;{&lt;/span&gt;
                    &lt;span class=&quot;n&quot;&gt;perror&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;s&quot;&gt;&quot;waitpid&quot;&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;);&lt;/span&gt;
                    &lt;span class=&quot;n&quot;&gt;ptrace&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;PT_KILL&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;pid&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;p&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;caddr_t&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;mi&quot;&gt;1&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;mi&quot;&gt;0&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;);&lt;/span&gt;
                    &lt;span class=&quot;n&quot;&gt;abort&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;();&lt;/span&gt;
            &lt;span class=&quot;p&quot;&gt;}&lt;/span&gt;

            &lt;span class=&quot;n&quot;&gt;assert&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;WIFSTOPPED&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;status&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;));&lt;/span&gt;
            &lt;span class=&quot;n&quot;&gt;assert&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;WSTOPSIG&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;status&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;)&lt;/span&gt; &lt;span class=&quot;o&quot;&gt;==&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;SIGTRAP&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;);&lt;/span&gt;

            &lt;span class=&quot;cm&quot;&gt;/* Change the system call to something invalid, so it will be denied.
             */&lt;/span&gt;
            &lt;span class=&quot;k&quot;&gt;if&lt;/span&gt; &lt;span class=&quot;p&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;ptrace&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;PT_GETREGS&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;pid&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;p&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;caddr_t&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;&amp;amp;&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;r&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;mi&quot;&gt;0&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;)&lt;/span&gt; &lt;span class=&quot;o&quot;&gt;&amp;lt;&lt;/span&gt; &lt;span class=&quot;mi&quot;&gt;0&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;)&lt;/span&gt; &lt;span class=&quot;p&quot;&gt;{&lt;/span&gt;
                    &lt;span class=&quot;n&quot;&gt;perror&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;s&quot;&gt;&quot;ptrace(PT_GETREGS, ...)&quot;&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;);&lt;/span&gt;
                    &lt;span class=&quot;n&quot;&gt;ptrace&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;PT_KILL&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;pid&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;p&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;caddr_t&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;mi&quot;&gt;1&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;mi&quot;&gt;0&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;);&lt;/span&gt;
                    &lt;span class=&quot;n&quot;&gt;abort&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;();&lt;/span&gt;
            &lt;span class=&quot;p&quot;&gt;}&lt;/span&gt;

            &lt;span class=&quot;n&quot;&gt;r&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;r_eax&lt;/span&gt; &lt;span class=&quot;o&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;mh&quot;&gt;0xbadca11&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;;&lt;/span&gt;

            &lt;span class=&quot;k&quot;&gt;if&lt;/span&gt; &lt;span class=&quot;p&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;ptrace&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;PT_SETREGS&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;pid&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;p&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;caddr_t&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;&amp;amp;&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;r&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;mi&quot;&gt;0&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;)&lt;/span&gt; &lt;span class=&quot;o&quot;&gt;&amp;lt;&lt;/span&gt; &lt;span class=&quot;mi&quot;&gt;0&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;)&lt;/span&gt; &lt;span class=&quot;p&quot;&gt;{&lt;/span&gt;
                    &lt;span class=&quot;n&quot;&gt;perror&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;s&quot;&gt;&quot;ptrace(PT_SETREGS, ...)&quot;&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;);&lt;/span&gt;
                    &lt;span class=&quot;n&quot;&gt;ptrace&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;PT_KILL&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;pid&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;p&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;caddr_t&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;mi&quot;&gt;1&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;mi&quot;&gt;0&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;);&lt;/span&gt;
                    &lt;span class=&quot;n&quot;&gt;abort&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;();&lt;/span&gt;
            &lt;span class=&quot;p&quot;&gt;}&lt;/span&gt;

            &lt;span class=&quot;cm&quot;&gt;/* Let the process continue */&lt;/span&gt;
            &lt;span class=&quot;n&quot;&gt;ptrace&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;PT_CONTINUE&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;pid&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;p&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;caddr_t&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;mi&quot;&gt;1&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;mi&quot;&gt;0&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;);&lt;/span&gt;

            &lt;span class=&quot;n&quot;&gt;exit&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;mi&quot;&gt;0&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;);&lt;/span&gt;
    &lt;span class=&quot;p&quot;&gt;}&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/figure&gt;

&lt;!-- _ --&gt;

&lt;p&gt;We expect the same to happen here, the file &lt;code class=&quot;highlighter-rouge&quot;&gt;foo.bar&lt;/code&gt; shouldn’t be created.
But it’s created. Replace the &lt;code class=&quot;highlighter-rouge&quot;&gt;PT_GETREGS&lt;/code&gt; and &lt;code class=&quot;highlighter-rouge&quot;&gt;PT_SETREGS&lt;/code&gt; calls with a
&lt;code class=&quot;highlighter-rouge&quot;&gt;PT_KILL&lt;/code&gt; to terminate process with signal &lt;code class=&quot;highlighter-rouge&quot;&gt;SIGKILL&lt;/code&gt;. The file will still
be created! So there’s no way to deny a system call using &lt;code class=&quot;highlighter-rouge&quot;&gt;ptrace&lt;/code&gt; which makes
it impossible to port &lt;a href=&quot;http://projects.0x90.dk/projects/show/sydbox&quot;&gt;sydbox&lt;/a&gt; to
&lt;a href=&quot;http://www.freebsd.org/&quot;&gt;FreeBSD&lt;/a&gt; without patching the kernel.&lt;/p&gt;

&lt;p&gt;None of the other BSD’s, neither
&lt;a href=&quot;http://netbsd.gw.com/cgi-bin/man-cgi?ptrace++NetBSD-current&quot;&gt;NetBSD&lt;/a&gt; nor
&lt;a href=&quot;http://leaf.dragonflybsd.org/cgi/web-man?command=ptrace&amp;amp;section=2&quot;&gt;DragonFlyBSD&lt;/a&gt; nor
&lt;a href=&quot;http://www.openbsd.org/cgi-bin/man.cgi?query=ptrace&amp;amp;sektion=2&amp;amp;format=html&quot;&gt;OpenBSD&lt;/a&gt;,
has the ptrace request &lt;code class=&quot;highlighter-rouge&quot;&gt;PT_SYSCALL&lt;/code&gt; so I haven’t checked if the behaviour is the
same on these systems.&lt;/p&gt;
</content>
 </entry>
 
 <entry>
   <title>sydbox-0.4</title>
   <link href="https://alip.github.io/en/blog/2010/01/07/sydbox-0.4/"/>
   <updated>2010-01-07T00:00:00+00:00</updated>
   <id>https://alip.github.io/en/blog/2010/01/07/sydbox-0.4</id>
   <content type="html">&lt;p&gt;sydbox-0.4 is released.&lt;/p&gt;

&lt;h4 id=&quot;whats-new&quot;&gt;What’s new?&lt;/h4&gt;
&lt;ul&gt;
  &lt;li&gt;Make network sandboxing on by default.&lt;/li&gt;
  &lt;li&gt;When bind’s port argument is zero, look up the actual port from /proc/net/tcp{,6}
after the subsequent listen call for network_restrict_connect.&lt;/li&gt;
  &lt;li&gt;GObject isn’t a dependency anymore.&lt;/li&gt;
  &lt;li&gt;Try hard to restore errno after ptrace errors.&lt;/li&gt;
  &lt;li&gt;Moved all check based unit tests to gtest. dev-libs/check isn’t a dependency anymore.&lt;/li&gt;
&lt;/ul&gt;

&lt;h4 id=&quot;download&quot;&gt;Download&lt;/h4&gt;
&lt;ul&gt;
  &lt;li&gt;tarball: &lt;a href=&quot;http://dev.exherbo.org/~alip/sydbox/sydbox-0.4.tar.bz2&quot;&gt;sydbox-0.4.tar.bz2&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;sign: &lt;a href=&quot;http://dev.exherbo.org/~alip/sydbox/sydbox-0.4.tar.bz2.asc&quot;&gt;sydbox-0.4.tar.bz2.asc&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;sha1sum: 67ef223d21571d42a4df122206ce22c9221b142e&lt;/li&gt;
&lt;/ul&gt;
</content>
 </entry>
 
 <entry>
   <title>Network sandboxing and /proc</title>
   <link href="https://alip.github.io/en/blog/2010/01/06/network-sandboxing-and-proc/"/>
   <updated>2010-01-06T00:00:00+00:00</updated>
   <id>https://alip.github.io/en/blog/2010/01/06/network-sandboxing-and-proc</id>
   <content type="html">&lt;p&gt;As many of you know &lt;a href=&quot;http://projects.0x90.dk/projects/show/sydbox&quot;&gt;sydbox&lt;/a&gt; can
do &lt;a href=&quot;/2009/08/27/proper-network-sandboxing&quot;&gt;network sandboxing&lt;/a&gt; but for some
reasons we didn’t have it on by default on
&lt;a href=&quot;http://www.exherbo.org&quot;&gt;Exherbo&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;For those who don’t know much about
&lt;a href=&quot;http://projects.0x90.dk/projects/show/sydbox&quot;&gt;sydbox&lt;/a&gt; and network sandboxing
let me explain it briefly. Network sandboxing has three modes:&lt;/p&gt;

&lt;ul&gt;
  &lt;li&gt;&lt;strong&gt;allow&lt;/strong&gt;: All network connections are allowed.&lt;/li&gt;
  &lt;li&gt;&lt;strong&gt;local&lt;/strong&gt;: Only local network connections are allowed.&lt;/li&gt;
  &lt;li&gt;&lt;strong&gt;deny&lt;/strong&gt;: No network connections are allowed.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;In addition to that there’s a &lt;strong&gt;restrict_connect&lt;/strong&gt; option which disallows
connects to all addresses except addresses that one of the parents has
&lt;a href=&quot;http://linux.die.net/man/2/bind&quot;&gt;bind()&lt;/a&gt;‘ed to.&lt;/p&gt;

&lt;p&gt;There’s also a network white list which specifies the additional
network addresses that are allowed in &lt;strong&gt;local&lt;/strong&gt; and &lt;strong&gt;deny&lt;/strong&gt; modes.&lt;/p&gt;

&lt;p&gt;On &lt;a href=&quot;http://www.exherbo.org&quot;&gt;Exherbo&lt;/a&gt; we use the mode &lt;strong&gt;local&lt;/strong&gt; with
&lt;strong&gt;restrict_connect&lt;/strong&gt; option enabled.&lt;/p&gt;

&lt;p&gt;One limitation of sydbox was it couldn’t white list
&lt;a href=&quot;http://linux.die.net/man/2/bind&quot;&gt;bind()&lt;/a&gt; addresses whose port were zero.
The reason is obvious. The only place we can look up the actual port is
&lt;tt&gt;/proc/net/tcp&lt;/tt&gt;, or &lt;tt&gt;/proc/net/tcp6&lt;/tt&gt; for
&lt;a href=&quot;http://en.wikipedia.org/wiki/Ipv6&quot;&gt;ipv6&lt;/a&gt;, and we need to do this before the
&lt;a href=&quot;http://linux.die.net/man/2/bind&quot;&gt;bind()&lt;/a&gt; call has completed. The problem arises
here. The &lt;tt&gt;/proc/net/tcp&lt;/tt&gt; entry is only created after the
&lt;a href=&quot;http://linux.die.net/man/2/bind&quot;&gt;bind()&lt;/a&gt; call has succeeded.&lt;/p&gt;

&lt;p&gt;The solution isn’t entirely trivial. We have to note the file descriptor
argument of &lt;a href=&quot;http://linux.die.net/man/2/bind&quot;&gt;bind()&lt;/a&gt; along with the socket
family and socket address and intercept the subsequent
&lt;a href=&quot;http://linux.die.net/man/2/listen&quot;&gt;listen()&lt;/a&gt; call. Only then we can look up
the port argument from &lt;tt&gt;/proc/net/tcp&lt;/tt&gt;.&lt;/p&gt;

&lt;p&gt;The &lt;a href=&quot;http://projects.0x90.dk/projects/show/sydbox&quot;&gt;sydbox&lt;/a&gt;
&lt;a href=&quot;http://projects.0x90.dk/repositories/show/sydbox&quot;&gt;master&lt;/a&gt; has a simple
implementation to solve this problem. If the port argument of a
&lt;a href=&quot;http://linux.die.net/man/2/bind&quot;&gt;bind()&lt;/a&gt; call is zero, we save the file
descriptor and the corresponding socket family and address to a
&lt;a href=&quot;http://library.gnome.org/devel/glib/stable/glib-Hash-Tables.html&quot;&gt;GHashTable&lt;/a&gt;.
After that the subsequent &lt;a href=&quot;http://linux.die.net/man/2/listen&quot;&gt;listen()&lt;/a&gt; call is
intercepted and if the file descriptor of the
&lt;a href=&quot;http://linux.die.net/man/2/listen&quot;&gt;listen()&lt;/a&gt; call matches a file descriptor in
the hash table, &lt;a href=&quot;http://projects.0x90.dk/projects/show/sydbox&quot;&gt;sydbox&lt;/a&gt; looks up the
port from &lt;tt&gt;/proc/net/tcp&lt;/tt&gt;, fills it in and white lists the address.&lt;/p&gt;

&lt;p&gt;With sydbox-0.4, which I’ll release after some testing, network sandboxing will
be on by default again for the &lt;a href=&quot;http://paludis.pioto.org&quot;&gt;Paludis&lt;/a&gt; profile.&lt;/p&gt;

&lt;p&gt;Just to be on the secure side ;)&lt;/p&gt;
</content>
 </entry>
 
 <entry>
   <title>mpdcron-0.3</title>
   <link href="https://alip.github.io/en/blog/2010/01/04/mpdcron-0.3/"/>
   <updated>2010-01-04T00:00:00+00:00</updated>
   <id>https://alip.github.io/en/blog/2010/01/04/mpdcron-0.3</id>
   <content type="html">&lt;p&gt;&lt;a href=&quot;/mpdcron&quot;&gt;mpdcron&lt;/a&gt;-0.3 is released:&lt;/p&gt;

&lt;h4 id=&quot;whats-new&quot;&gt;What’s new?&lt;/h4&gt;
&lt;ul&gt;
  &lt;li&gt;Added stats module to keep statistics of played songs in a sqlite database&lt;/li&gt;
  &lt;li&gt;Added notification module to send notifications via notify-send&lt;/li&gt;
  &lt;li&gt;Added scrobbler module to submit songs to &lt;a href=&quot;http://last.fm&quot;&gt;Last.fm&lt;/a&gt; or
&lt;a href=&quot;http://libre.fm&quot;&gt;Libre.fm&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;Added module support through
&lt;a href=&quot;http://library.gnome.org/devel/glib/unstable/glib-Dynamic-Loading-of-Modules.html&quot;&gt;GModule&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;Added initial
&lt;a href=&quot;http://github.com/alip/mpdcron/blob/master/data/mpdcron.1.pdc&quot;&gt;manpage&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;Changed name to &lt;tt&gt;mpdcron&lt;/tt&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;h4 id=&quot;download&quot;&gt;Download&lt;/h4&gt;

&lt;ul&gt;
  &lt;li&gt;Tarball: &lt;a href=&quot;http://dev.exherbo.org/~alip/mpdcron/mpdcron-0.3.tar.bz2&quot;&gt;mpdcron-0.3.tar.bz2&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;SHA1sum: &lt;a href=&quot;http://dev.exherbo.org/~alip/mpdcron/mpdcron-0.3.tar.bz2.sha1sum&quot;&gt;mpdcron-0.3.tar.bz2.sha1sum&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;Sign: &lt;a href=&quot;http://dev.exherbo.org/~alip/mpdcron/mpdcron-0.3.tar.bz2.asc&quot;&gt;mpdcron-0.3.tar.bz2.asc&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
</content>
 </entry>
 
 <entry>
   <title>Bringing Last.fm home with mpdcron (part 3)</title>
   <link href="https://alip.github.io/en/blog/2010/01/04/bring-lastfm-home-3/"/>
   <updated>2010-01-04T00:00:00+00:00</updated>
   <id>https://alip.github.io/en/blog/2010/01/04/bring-lastfm-home-3</id>
   <content type="html">&lt;p&gt;I wrote a script to import &lt;a href=&quot;http://last.fm&quot;&gt;Last.fm&lt;/a&gt; data to
&lt;a href=&quot;/mpdcron&quot;&gt;mpdcron&lt;/a&gt;’s statistics database with the name &lt;tt&gt;homescrape&lt;/tt&gt;.&lt;/p&gt;

&lt;p&gt;It’s written in &lt;a href=&quot;http://www.ruby-lang.org/&quot;&gt;ruby&lt;/a&gt; and requires
&lt;a href=&quot;http://nokogiri.org/&quot;&gt;nokogiri&lt;/a&gt; to parse HTML. Currently it can import play
count and loved songs. By default it will import all your
&lt;a href=&quot;http://last.fm&quot;&gt;Last.fm&lt;/a&gt; tracks and if you don’t want that you can pass a date
using the &lt;strong&gt;–since&lt;/strong&gt; option. Optionally &lt;tt&gt;homescrape&lt;/tt&gt; can make use of
&lt;a href=&quot;http://chronic.rubyforge.org/&quot;&gt;chronic&lt;/a&gt; to parse dates in a huge variety of
date and time formats.&lt;/p&gt;

&lt;p&gt;With this, the statistics module is complete feature-wise and I’ll release
&lt;tt&gt;mpdcron&lt;/tt&gt;-0.3 after some testing.&lt;/p&gt;
</content>
 </entry>
 
 <entry>
   <title>Bringing Last.fm home with mpdcron (part 2)</title>
   <link href="https://alip.github.io/en/blog/2010/01/02/bringing-lastfm-home-2/"/>
   <updated>2010-01-02T00:00:00+00:00</updated>
   <id>https://alip.github.io/en/blog/2010/01/02/bringing-lastfm-home-2</id>
   <content type="html">&lt;p&gt;First of all, happy new year to everyone!&lt;/p&gt;

&lt;p&gt;After my first &lt;a href=&quot;/2009/12/26/bringing-lastfm-home&quot;&gt;post&lt;/a&gt; I’ve done many things to
improve this statistics module of &lt;a href=&quot;/mpdcron&quot;&gt;mpdcron&lt;/a&gt;. Here’s a list of major
improvements:&lt;/p&gt;

&lt;h3 id=&quot;clientserver-protocol&quot;&gt;Client/Server protocol&lt;/h3&gt;
&lt;p&gt;After discussing on &lt;a href=&quot;irc://irc.freenode.net/mpd&quot;&gt;IRC&lt;/a&gt; with
&lt;a href=&quot;http://blog.sarine.nl/&quot;&gt;qball&lt;/a&gt;, we’ve decided that it’s a better idea to build
a network abstraction so that clients won’t access the
&lt;a href=&quot;http://www.sqlite.org/&quot;&gt;sqlite&lt;/a&gt; database directly.
The &lt;a href=&quot;/mpdcron/modules/protocol.html&quot;&gt;protocol&lt;/a&gt; will simply be like
&lt;a href=&quot;http://www.musicpd.org/doc/protocol/&quot;&gt;mpd protocol&lt;/a&gt; with minor differences.&lt;/p&gt;

&lt;p&gt;I used &lt;a href=&quot;http://library.gnome.org/devel/gio/unstable/&quot;&gt;GIO&lt;/a&gt;
to implement the server. GIO has a
&lt;a href=&quot;http://library.gnome.org/devel/gio/unstable/highlevel-socket.html&quot;&gt;high level network API&lt;/a&gt;
as of version 2.22.&lt;/p&gt;

&lt;h3 id=&quot;tagging&quot;&gt;Tagging&lt;/h3&gt;
&lt;p&gt;This was one of the things I really wanted to implement before releasing a new
version. Tagging songs as you would do with mail is a really nice way to sort
your music in my opinion. Tags are implemented as a colon delimited list and
uses just one &lt;strong&gt;TEXT&lt;/strong&gt; column of a row. This makes removing a tag a slow
operation but after reading the
&lt;a href=&quot;http://web.utk.edu/~jplyon/sqlite/SQLite_optimization_FAQ.html&quot;&gt;sqlite optimization FAQ&lt;/a&gt;
I managed to reduce this slowness a lot making it not noticeable.&lt;/p&gt;

&lt;p&gt;The documentation on the &lt;a href=&quot;/mpdcron&quot;&gt;website&lt;/a&gt; is up to date so if you want to
give it a shot you can read the &lt;a href=&quot;/mpdcron/modules/#stats&quot;&gt;documentation&lt;/a&gt; and start
using it right away. It’s very simple.&lt;/p&gt;
</content>
 </entry>
 
 <entry>
   <title>Bringing Last.fm home with mpdcron</title>
   <link href="https://alip.github.io/en/blog/2009/12/26/bringing-lastfm-home/"/>
   <updated>2009-12-26T00:00:00+00:00</updated>
   <id>https://alip.github.io/en/blog/2009/12/26/bringing-lastfm-home</id>
   <content type="html">&lt;p&gt;I’ve been working on an &lt;a href=&quot;/mpdcron&quot;&gt;mpdcron&lt;/a&gt; module to save
&lt;a href=&quot;http://mpd.wikia.com&quot;&gt;mpd&lt;/a&gt; song data, like play count, to a local
&lt;a href=&quot;http://www.sqlite.org&quot;&gt;sqlite&lt;/a&gt; database. Build mpdcron like:&lt;/p&gt;

&lt;div class=&quot;highlighter-rouge&quot;&gt;&lt;div class=&quot;highlight&quot;&gt;&lt;pre class=&quot;highlight&quot;&gt;&lt;code&gt;$&amp;gt; ./configure --enable-gmodule --with-standard-modules=all
$&amp;gt; make
$&amp;gt; sudo make install
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;

&lt;p&gt;Then add:&lt;/p&gt;

&lt;div class=&quot;highlighter-rouge&quot;&gt;&lt;div class=&quot;highlight&quot;&gt;&lt;pre class=&quot;highlight&quot;&gt;&lt;code&gt;[main]
modules = stats
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;

&lt;p&gt;to your configuration file.&lt;/p&gt;

&lt;p&gt;Of course just saving the data isn’t enough. We need a client to manipulate the
data and interact with &lt;a href=&quot;http://mpd.wikia.com&quot;&gt;mpd&lt;/a&gt; using this data.&lt;/p&gt;

&lt;p&gt;Thus &lt;tt&gt;eugene&lt;/tt&gt; was born.&lt;/p&gt;

&lt;h3 id=&quot;usage&quot;&gt;Usage:&lt;/h3&gt;
&lt;p&gt;First create your database:&lt;/p&gt;

&lt;div class=&quot;highlighter-rouge&quot;&gt;&lt;div class=&quot;highlight&quot;&gt;&lt;pre class=&quot;highlight&quot;&gt;&lt;code&gt;$&amp;gt; eugene update
Updating /
Successfully processed 12283 songs
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;

&lt;p&gt;Note this phase is optional. All other &lt;tt&gt;eugene&lt;/tt&gt; commands will create the
database if it doesn’t exist.&lt;/p&gt;

&lt;p&gt;Basic interaction with the database:&lt;/p&gt;

&lt;div class=&quot;highlighter-rouge&quot;&gt;&lt;div class=&quot;highlight&quot;&gt;&lt;pre class=&quot;highlight&quot;&gt;&lt;code&gt;# Love/Hate/Kill/Unkill the current playing song
$&amp;gt; eugene love/hate/kill/unkill
# Love/Hate/Kill/Unkill the current playing artist
$&amp;gt; eugene love/hate/kill/unkill --artist
# Love/Hate/Kill/Unkill the current playing album
$&amp;gt; eugene love/hate/kill/unkill --album
# Love/Hate/Kill/Unkill the current playing genre
$&amp;gt; eugene love/hate/kill/unkill --genre
# Give the current playing song a rating of 10
$&amp;gt; eugene rate 10
# Increase the rating of the current playing song by 5
$&amp;gt; eugene rate --add 5
# Decrease the rating of the current playing song by 10
$&amp;gt; eugene rate --substract 10
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;

&lt;p&gt;Advanced interaction with the database using the &lt;strong&gt;–expr&lt;/strong&gt; switch:&lt;/p&gt;

&lt;div class=&quot;highlighter-rouge&quot;&gt;&lt;div class=&quot;highlight&quot;&gt;&lt;pre class=&quot;highlight&quot;&gt;&lt;code&gt;# Love all songs whose artist includes the string Beatles
$&amp;gt; eugene love --expr 'artist like &quot;%Beatles%&quot;'
# Hate all songs whose genre is Pop
$&amp;gt; eugene hate --expr 'genre=&quot;Pop&quot;'
# Kill all songs whose duration is less than 10 seconds
$&amp;gt; eugene kill --expr 'duration &amp;lt; 10'
# Unkill all songs whose play count is more than 10
$&amp;gt; eugene unkill --expr 'play_count &amp;gt; 10'
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;

&lt;p&gt;For more information about the expression syntax see:&lt;br /&gt;
&lt;a href=&quot;http://www.sqlite.org/lang_expr.html&quot;&gt;http://www.sqlite.org/lang_expr.html&lt;/a&gt;&lt;br /&gt;
To learn more about the database layout see:&lt;br /&gt;
&lt;a href=&quot;http://github.com/alip/mpdcron/blob/master/src/gmodule/stats/stats-sqlite.c&quot;&gt;src/gmodule/stats/stats-sqlite.c&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Loading songs to &lt;a href=&quot;http://mpd.wikia.com&quot;&gt;mpd&lt;/a&gt; queue:&lt;/p&gt;

&lt;div class=&quot;highlighter-rouge&quot;&gt;&lt;div class=&quot;highlight&quot;&gt;&lt;pre class=&quot;highlight&quot;&gt;&lt;code&gt;# Load all loved songs, exclude killed ones
$&amp;gt; eugene load --expr 'love &amp;gt; 0 and kill != 0'
# Clear the playlist and load all songs with a duration less than 30 seconds
$&amp;gt; eugene load --clear --expr 'duration &amp;lt; 30'
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;

&lt;p&gt;This is all very basic right now and possibly buggy.&lt;br /&gt;
If you’re interested please check it out and tell me about it!
I plan to release &lt;tt&gt;mpdcron&lt;/tt&gt;-0.3 after some testing.&lt;/p&gt;

&lt;p&gt;Last but not least:&lt;br /&gt;
Careful with that axe, Eugene!&lt;br /&gt;
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa!&lt;/p&gt;
</content>
 </entry>
 
 <entry>
   <title>sydbox moved</title>
   <link href="https://alip.github.io/en/blog/2009/09/13/sydbox-moved/"/>
   <updated>2009-09-13T00:00:00+00:00</updated>
   <id>https://alip.github.io/en/blog/2009/09/13/sydbox-moved</id>
   <content type="html">&lt;p&gt;sydbox moved to &lt;a href=&quot;http://projects.0x90.dk&quot;&gt;projects.0x90.dk&lt;/a&gt;.&lt;br /&gt;
The new clone url is: &lt;a href=&quot;git://projects.0x90.dk/sydbox.git&quot;&gt;git://projects.0x90.dk/sydbox.git&lt;/a&gt;&lt;br /&gt;
The new wiki is on: &lt;a href=&quot;http://projects.0x90.dk/wiki/sydbox&quot;&gt;http://projects.0x90.dk/wiki/sydbox&lt;/a&gt;&lt;/p&gt;
</content>
 </entry>
 
 <entry>
   <title>sydbox-0.2_alpha</title>
   <link href="https://alip.github.io/en/blog/2009/09/03/sydbox-0.2_alpha/"/>
   <updated>2009-09-03T00:00:00+00:00</updated>
   <id>https://alip.github.io/en/blog/2009/09/03/sydbox-0.2_alpha</id>
   <content type="html">&lt;p&gt;sydbox-0.2_alpha is released.&lt;/p&gt;

&lt;ul&gt;
  &lt;li&gt;Wait for all children to exit by default. This can be unset using the command
line option -X or the magic command &lt;code class=&quot;highlighter-rouge&quot;&gt;wait/eldest&lt;/code&gt;.&lt;/li&gt;
  &lt;li&gt;Let the children continue their execution by calling
&lt;code class=&quot;highlighter-rouge&quot;&gt;ptrace(PTRACE_CONT, ...)&lt;/code&gt; instead of attempting to kill them during exit for
&lt;code class=&quot;highlighter-rouge&quot;&gt;wait/eldest&lt;/code&gt; mode.&lt;/li&gt;
&lt;/ul&gt;
</content>
 </entry>
 
 <entry>
   <title>sydbox-0.1</title>
   <link href="https://alip.github.io/en/blog/2009/09/02/sydbox-0.1/"/>
   <updated>2009-09-02T00:00:00+00:00</updated>
   <id>https://alip.github.io/en/blog/2009/09/02/sydbox-0.1</id>
   <content type="html">&lt;p&gt;sydbox-0.1 is released.&lt;/p&gt;

&lt;ul&gt;
  &lt;li&gt;Add magic commands &lt;code class=&quot;highlighter-rouge&quot;&gt;addexec&lt;/code&gt; and &lt;code class=&quot;highlighter-rouge&quot;&gt;rmexec&lt;/code&gt;.&lt;/li&gt;
  &lt;li&gt;Fix loading of options from environment.&lt;/li&gt;
  &lt;li&gt;Sandbox &lt;code class=&quot;highlighter-rouge&quot;&gt;sendto()&lt;/code&gt; calls.&lt;/li&gt;
  &lt;li&gt;Extend network whitelist to work for deny mode.&lt;/li&gt;
  &lt;li&gt;Intercept &lt;code class=&quot;highlighter-rouge&quot;&gt;lstat()&lt;/code&gt; calls for magic stat as well.&lt;/li&gt;
  &lt;li&gt;Exit with correct error code when child is terminated by a signal.&lt;/li&gt;
  &lt;li&gt;Many performance improvements.&lt;/li&gt;
&lt;/ul&gt;
</content>
 </entry>
 
 <entry>
   <title>Running untrusted binaries that access network</title>
   <link href="https://alip.github.io/en/blog/2009/08/31/running-untrusted-binaries/"/>
   <updated>2009-08-31T00:00:00+00:00</updated>
   <id>https://alip.github.io/en/blog/2009/08/31/running-untrusted-binaries</id>
   <content type="html">&lt;p&gt;To compensate for network latency during playing chess games over internet,
internet chess servers like &lt;a href=&quot;http://www.freechess.org&quot;&gt;Fics&lt;/a&gt; and
&lt;a href=&quot;http://www.chessclub.com&quot;&gt;Icc&lt;/a&gt; use proprietary protocols called
&lt;a href=&quot;http://www.freechess.org/Help/HelpFiles/timeseal.html&quot;&gt;timeseal&lt;/a&gt; and
&lt;a href=&quot;http://www.chessclub.com/help/timestamp&quot;&gt;timestamp&lt;/a&gt;. They distribute statically
linked stripped binaries which acts like a bridge between chess clients and the
chess server.&lt;/p&gt;

&lt;p&gt;To make sure these tools don’t do anything nasty, I use
&lt;a href=&quot;https://alip.github.io/sydbox&quot;&gt;sydbox&lt;/a&gt; to sandbox them.
&lt;a href=&quot;https://alip.github.io/sydbox&quot;&gt;Sydbox&lt;/a&gt;’
&lt;a href=&quot;http://github.com/alip/sydbox/tree/master&quot;&gt;master&lt;/a&gt; extends network
&lt;a href=&quot;http://en.wikipedia.org/wiki/Whitelist&quot;&gt;whitelisting&lt;/a&gt; support for network mode
deny. So I use it like:&lt;/p&gt;

&lt;figure class=&quot;highlight&quot;&gt;&lt;pre&gt;&lt;code class=&quot;language-bash&quot; data-lang=&quot;bash&quot;&gt;    alip@harikalardiyari&amp;gt; &lt;span class=&quot;nb&quot;&gt;cat&lt;/span&gt; ~/bin/timeseal
    &lt;span class=&quot;c&quot;&gt;#!/bin/sh&lt;/span&gt;

    &lt;span class=&quot;nv&quot;&gt;SYDBOX_NO_CONFIG&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;=&lt;/span&gt;1 &lt;span class=&quot;se&quot;&gt;\&lt;/span&gt;
    &lt;span class=&quot;nv&quot;&gt;SYDBOX_NET_WHITELIST&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;=&lt;/span&gt;inet://69.36.243.188:23 &lt;span class=&quot;se&quot;&gt;\&lt;/span&gt;
    sydbox &lt;span class=&quot;nt&quot;&gt;-N&lt;/span&gt; &lt;span class=&quot;nt&quot;&gt;-M&lt;/span&gt; deny &lt;span class=&quot;nt&quot;&gt;--&lt;/span&gt; &lt;span class=&quot;se&quot;&gt;\&lt;/span&gt;
    &lt;span class=&quot;s2&quot;&gt;&quot;&lt;/span&gt;&lt;span class=&quot;nv&quot;&gt;$HOME&lt;/span&gt;&lt;span class=&quot;s2&quot;&gt;&quot;&lt;/span&gt;/bin/ics/timeseal.Linux-i386 69.36.243.188 23
    alip@harikalardiyari&amp;gt;&lt;/code&gt;&lt;/pre&gt;&lt;/figure&gt;

&lt;p&gt;&lt;strong&gt;SYDBOX_NO_CONFIG&lt;/strong&gt; makes &lt;a href=&quot;https://alip.github.io/sydbox&quot;&gt;sydbox&lt;/a&gt; not read its
configuration file and &lt;strong&gt;SYDBOX_NET_WHITELIST&lt;/strong&gt; adds the address, in this case
&lt;a href=&quot;http://www.freechess.org&quot;&gt;freechess.org&lt;/a&gt;, to the network whitelist.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;edit&lt;/strong&gt;: Highlight code.&lt;/p&gt;
</content>
 </entry>
 
 <entry>
   <title>Proper network sandboxing</title>
   <link href="https://alip.github.io/en/blog/2009/08/27/proper-network-sandboxing/"/>
   <updated>2009-08-27T00:00:00+00:00</updated>
   <id>https://alip.github.io/en/blog/2009/08/27/proper-network-sandboxing</id>
   <content type="html">&lt;p&gt;Now that &lt;code class=&quot;highlighter-rouge&quot;&gt;addpredict&lt;/code&gt; is
&lt;a href=&quot;https://alip.github.io/english/2009/08/22/deprecating-addpredict.html&quot;&gt;dead&lt;/a&gt;, the next thing to
implement for &lt;a href=&quot;https://alip.github.io/sydbox&quot;&gt;sydbox&lt;/a&gt; is
proper network sandboxing. I’ve been working for the past three days to do that.&lt;/p&gt;

&lt;p&gt;First of all let’s define what we want:&lt;/p&gt;
&lt;ul&gt;
  &lt;li&gt;A way to intercept &lt;a href=&quot;http://linux.die.net/man/2/socket&quot;&gt;socket()&lt;/a&gt; family calls.&lt;/li&gt;
  &lt;li&gt;The ability to deny only non-local connections.&lt;/li&gt;
  &lt;li&gt;The ability to deny &lt;a href=&quot;http://linux.die.net/man/2/connect&quot;&gt;connect()&lt;/a&gt;’s to only
addresses that were &lt;a href=&quot;http://linux.die.net/man/2/bind&quot;&gt;bind()&lt;/a&gt;‘ed by
children that were running under the same &lt;a href=&quot;/sydbox&quot;&gt;sydbox&lt;/a&gt; instance.&lt;/li&gt;
  &lt;li&gt;Ability to &lt;a href=&quot;http://en.wikipedia.org/wiki/Whitelist&quot;&gt;whitelist&lt;/a&gt; certain addresses.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;The first is easy. We already have a framework for intercepting many system
calls and adding support for &lt;code class=&quot;highlighter-rouge&quot;&gt;socket()&lt;/code&gt; wasn’t a problem. The only problem is on
architectures which has the
&lt;a href=&quot;http://linux.die.net/man/2/socketcall&quot;&gt;socketcall()&lt;/a&gt; system call and implement
all other calls on top of this single system call, we need to decode this
&lt;code class=&quot;highlighter-rouge&quot;&gt;socketcall()&lt;/code&gt; into it’s subcalls. So we need two functions
&lt;code class=&quot;highlighter-rouge&quot;&gt;trace_decode_socketcall&lt;/code&gt; and &lt;code class=&quot;highlighter-rouge&quot;&gt;trace_get_addr&lt;/code&gt;. Implementing those were easy
because &lt;a href=&quot;http://sourceforge.net/projects/strace&quot;&gt;strace&lt;/a&gt; already has similar functions.&lt;/p&gt;

&lt;p&gt;Now that we can intercept socket calls the next step is to deny only non-local
connections. This means just checking the address of the connection if it
matches &lt;code class=&quot;highlighter-rouge&quot;&gt;127.0.0.1&lt;/code&gt; or &lt;code class=&quot;highlighter-rouge&quot;&gt;::1&lt;/code&gt;. Simple and efficient.&lt;/p&gt;

&lt;p&gt;The third step is somewhat complicated. We have to check the return value of
bind calls and if they succeeded, note these addresses and corresponding ports.
This means a form of whitelist is required.&lt;/p&gt;

&lt;p&gt;Having implemented the whitelist for step 3, it was easy to expand it to take its
elements from user configuration file or magic commands.&lt;/p&gt;

&lt;p&gt;It’s all done! Here’s how it looks like in the configuration file:&lt;/p&gt;

&lt;div class=&quot;highlighter-rouge&quot;&gt;&lt;div class=&quot;highlight&quot;&gt;&lt;pre class=&quot;highlight&quot;&gt;&lt;code&gt;[main]
...
# whether sydbox should do network sandboxing
# defaults to false
network = false
...
# Network specific options are specified in the net group
[net]
# Network sandboxing default
# One of allow, deny, local
# Defaults to allow
default = allow

# Whether connect(2) requests should be restricted to addresses that were
# bind(2)'ed by one of the parents.
# Defaults to false
restrict_connect = false

# Additional addresses to be allowed when restrict_connect is set.
# This is a list of addresses in one of the possible forms:
# unix:///path/to/socket
# inet://ipv4_address:port
# inet6://ipv6_address:port
whitelist = unix:///var/run/nscd/socket
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;

&lt;p&gt;In addition to that there are magic commands so that the package mangler can
change those options at runtime. See the manual page for more information.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Update&lt;/strong&gt; : Fixed links thanks to cuerty.&lt;/p&gt;
</content>
 </entry>
 
 <entry>
   <title>Deprecating addpredict</title>
   <link href="https://alip.github.io/en/blog/2009/08/22/deprecating-addpredict/"/>
   <updated>2009-08-22T00:00:00+00:00</updated>
   <id>https://alip.github.io/en/blog/2009/08/22/deprecating-addpredict</id>
   <content type="html">&lt;p&gt;&lt;code class=&quot;highlighter-rouge&quot;&gt;addpredict&lt;/code&gt; is one of the commands I hate. There are many reasons for
this. First of all it’s not a real fix, just a hack. If an
&lt;a href=&quot;http://www.exherbo.org/docs/exheres-for-smarties.html&quot;&gt;exheres&lt;/a&gt; needs
&lt;code class=&quot;highlighter-rouge&quot;&gt;addpredict&lt;/code&gt;, it usually means the package needs fixing.&lt;/p&gt;

&lt;p&gt;Second reason is it’s really difficult to implement and it’s error prone.
To implement &lt;code class=&quot;highlighter-rouge&quot;&gt;addpredict&lt;/code&gt; using
&lt;a href=&quot;http://linux.die.net/man/2/ptrace&quot;&gt;ptrace&lt;/a&gt; is especially difficult for system calls
that return a &lt;a href=&quot;http://en.wikipedia.org/wiki/File_descriptor&quot;&gt;file descriptor&lt;/a&gt;.
For predict you have to deny access to the system call but still return a valid
file descriptor. To do this we change the string argument of the system call
to &lt;code class=&quot;highlighter-rouge&quot;&gt;/dev/null&lt;/code&gt;. This is very dangerous because we’re writing to child’s
memory area.&lt;/p&gt;

&lt;p&gt;The only use case we have for &lt;code class=&quot;highlighter-rouge&quot;&gt;addpredict&lt;/code&gt; currently in
&lt;a href=&quot;http://www.exherbo.org/&quot;&gt;Exherbo&lt;/a&gt; is spurious
access violations. Thinking about this and after discussing in
&lt;a href=&quot;irc://irc.freenode.net/paludis&quot;&gt;#paludis&lt;/a&gt; we
decided that adding access violation filters is the easiest and most secure way
to solve this problem. I added two magic commands to &lt;a href=&quot;/sydbox&quot;&gt;sydbox&lt;/a&gt;, namely
&lt;code class=&quot;highlighter-rouge&quot;&gt;addfilter&lt;/code&gt; and &lt;code class=&quot;highlighter-rouge&quot;&gt;rmfilter&lt;/code&gt;. &lt;code class=&quot;highlighter-rouge&quot;&gt;addfilter&lt;/code&gt; takes a
&lt;a href=&quot;http://linux.die.net/man/3/fnmatch&quot;&gt;fnmatch&lt;/a&gt;
pattern as argument and &lt;a href=&quot;/sydbox&quot;&gt;sydbox&lt;/a&gt; doesn’t generate access violations for
paths that match this given pattern. The access to the system call is still
denied though. &lt;code class=&quot;highlighter-rouge&quot;&gt;rmfilter&lt;/code&gt; also takes a pattern as argument and removes
it from the list of patterns. More than one pattern can be added/removed this way.&lt;/p&gt;

&lt;p&gt;Today I added support for this to &lt;a href=&quot;http://paludis.pioto.org/&quot;&gt;Paludis&lt;/a&gt; and
started changing &lt;code class=&quot;highlighter-rouge&quot;&gt;addpredict&lt;/code&gt; calls with &lt;code class=&quot;highlighter-rouge&quot;&gt;addfilter&lt;/code&gt; in the
&lt;a href=&quot;http://www.exherbo.org&quot;&gt;Exherbo&lt;/a&gt; repositories. I plan to kill
&lt;code class=&quot;highlighter-rouge&quot;&gt;addpredict&lt;/code&gt; soon.&lt;/p&gt;
</content>
 </entry>
 
 <entry>
   <title>New Sydbox Logo</title>
   <link href="https://alip.github.io/en/blog/2009/08/21/new-logo/"/>
   <updated>2009-08-21T00:00:00+00:00</updated>
   <id>https://alip.github.io/en/blog/2009/08/21/new-logo</id>
   <content type="html">&lt;p&gt;The survey is closed.&lt;br /&gt;
The winner is:&lt;br /&gt;
&lt;img src=&quot;/sydbox/images/logo-omp.png&quot; alt=&quot;omp&quot; /&gt;&lt;/p&gt;

&lt;p&gt;Thanks everyone who voted and a lot of thanks to &lt;tt&gt;omp&lt;/tt&gt; and
&lt;tt&gt;replica&lt;/tt&gt;!&lt;/p&gt;
</content>
 </entry>
 
 <entry>
   <title>Sydbox Logo Survey</title>
   <link href="https://alip.github.io/en/blog/2009/08/20/sydbox-logo-survey/"/>
   <updated>2009-08-20T00:00:00+00:00</updated>
   <id>https://alip.github.io/en/blog/2009/08/20/sydbox-logo-survey</id>
   <content type="html">&lt;p&gt;After &lt;a href=&quot;/english/2009/08/19/sydbox-logo.html&quot;&gt;announcing&lt;/a&gt; that we need a logo,
two responses came.&lt;/p&gt;

&lt;p&gt;The first design is by &lt;a href=&quot;http://omp.am/&quot;&gt;David Shakaryan&lt;/a&gt; aka &lt;tt&gt;omp&lt;/tt&gt;. The
design uses spbecker’s idea which was the cover of
&lt;a href=&quot;http://en.wikipedia.org/wiki/The_Dark_Side_of_the_Moon&quot;&gt;dark side&lt;/a&gt;,
except with some representation of a box substituted for the prism. After
talking in &lt;a href=&quot;irc://irc.freenode.net/sydbox&quot;&gt;#sydbox&lt;/a&gt; he decided to add a
&lt;a href=&quot;http://en.wikipedia.org/wiki/Siamese_%28cat%29&quot;&gt;Siamese cat&lt;/a&gt; on top of the box making
the logo even nicer.&lt;/p&gt;

&lt;p&gt;The second design is by Sterling X. Winter aka &lt;tt&gt;replica&lt;/tt&gt;. It’s a simple
design featuring a
&lt;a href=&quot;http://en.wikipedia.org/wiki/I_Ching_hexagrams#Hexagram24&quot;&gt;Hexagram 24&lt;/a&gt;.
Quoting from &lt;a href=&quot;http://en.wikipedia.org&quot;&gt;Wikipedia&lt;/a&gt;:&lt;/p&gt;

&lt;div class=&quot;highlighter-rouge&quot;&gt;&lt;div class=&quot;highlight&quot;&gt;&lt;pre class=&quot;highlight&quot;&gt;&lt;code&gt;Hexagram 24 is named 復 (fù), &quot;Returning&quot;. Other variations include &quot;return (the
turning point)&quot;. Its inner trigram is ☳ (震 zhèn) shake = (雷) thunder, and its
outer trigram is ☷ (坤 kūn) field = (地) earth.
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;

&lt;p&gt;Of course this reminds me of the
&lt;a href=&quot;http://en.wikipedia.org/wiki/Chapter_24&quot;&gt;Chapter 24&lt;/a&gt; song by
&lt;a href=&quot;http://en.wikipedia.org/wiki/Pink_floyd&quot;&gt;Pink Floyd&lt;/a&gt; which goes like:&lt;/p&gt;

&lt;div class=&quot;highlighter-rouge&quot;&gt;&lt;div class=&quot;highlight&quot;&gt;&lt;pre class=&quot;highlight&quot;&gt;&lt;code&gt;...
Change returns success
Going and coming without error
Action brings good fortune
...
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;

&lt;p&gt;Both of these logos are really nice and I couldn’t choose one.&lt;br /&gt;
I started a
&lt;a href=&quot;http://www.survs.com/survey?id=TUN3T95O&amp;amp;channel=CJF449ZVOA&quot;&gt;survey&lt;/a&gt; so that
&lt;a href=&quot;http://www.exherbo.org&quot;&gt;Exherbo&lt;/a&gt; users can choose which one they like best.&lt;/p&gt;

&lt;p&gt;I’ll be very happy if you can be kind enough to participate in this
&lt;a href=&quot;http://www.survs.com/survey?id=TUN3T95O&amp;amp;channel=CJF449ZVOA&quot;&gt;survey&lt;/a&gt;.
Thanks in advance!&lt;/p&gt;
</content>
 </entry>
 
 <entry>
   <title>Sydbox needs a logo</title>
   <link href="https://alip.github.io/en/blog/2009/08/19/sydbox-logo/"/>
   <updated>2009-08-19T00:00:00+00:00</updated>
   <id>https://alip.github.io/en/blog/2009/08/19/sydbox-logo</id>
   <content type="html">&lt;p&gt;As &lt;strong&gt;$title&lt;/strong&gt; says &lt;a href=&quot;https://alip.github.io/sydbox/&quot;&gt;sydbox&lt;/a&gt; needs a
&lt;a href=&quot;http://en.wikipedia.org/wiki/Logo&quot;&gt;logo&lt;/a&gt;. We discussed this today in
&lt;a href=&quot;irc://irc.freenode.net/exherbo&quot;&gt;#exherbo&lt;/a&gt; and some good ideas came up.&lt;br /&gt;
I added a &lt;strong&gt;logo&lt;/strong&gt; section to our
&lt;a href=&quot;http://github.com/alip/sydbox/blob/master/TODO.mkd&quot;&gt;TODO&lt;/a&gt; writing down these
ideas so they aren’t forgotten.&lt;/p&gt;

&lt;p&gt;Vector format, ideally &lt;a href=&quot;http://en.wikipedia.org/wiki/Svg&quot;&gt;SVG&lt;/a&gt;, is preferred.&lt;/p&gt;
</content>
 </entry>
 
 <entry>
   <title>Sydbox, default sandbox of Exherbo</title>
   <link href="https://alip.github.io/en/blog/2009/08/17/sydbox-default-for-exherbo/"/>
   <updated>2009-08-17T00:00:00+00:00</updated>
   <id>https://alip.github.io/en/blog/2009/08/17/sydbox-default-for-exherbo</id>
   <content type="html">&lt;p&gt;Starting &lt;a href=&quot;http://bit.ly/pzJsr&quot;&gt;today&lt;/a&gt;, &lt;a href=&quot;http://www.exherbo.org&quot;&gt;Exherbo&lt;/a&gt;’s default
&lt;a href=&quot;http://en.wikipedia.org/wiki/Sandbox_%28computer_security%29&quot;&gt;sandbox&lt;/a&gt; is
&lt;a href=&quot;https://alip.github.io/sydbox/&quot;&gt;sydbox&lt;/a&gt;.&lt;br /&gt;
Yay!&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Important note&lt;/strong&gt; to &lt;a href=&quot;http://www.exherbo.org&quot;&gt;Exherbo&lt;/a&gt; users:&lt;br /&gt;
Make sure to use the newly released
&lt;a href=&quot;http://lists.exherbo.org/pipermail/exherbo-dev/2009-August/000521.html&quot;&gt;0.1_rc1&lt;/a&gt;
which contains the recent fixes, most important is the fix for bug
&lt;a href=&quot;https://bugs.exherbo.org/show_bug.cgi?id=213&quot;&gt;#213&lt;/a&gt;.&lt;/p&gt;
</content>
 </entry>
 
 <entry>
   <title>Sydbox-0.1_rc1</title>
   <link href="https://alip.github.io/en/blog/2009/08/17/sydbox-0.1_rc1/"/>
   <updated>2009-08-17T00:00:00+00:00</updated>
   <id>https://alip.github.io/en/blog/2009/08/17/sydbox-0.1_rc1</id>
   <content type="html">&lt;p&gt;Sydbox-0.1_rc1 is released.&lt;/p&gt;

&lt;ul&gt;
  &lt;li&gt;Don’t die when ptrace() fails with EIO, fixes
&lt;a href=&quot;https://bugs.exherbo.org/show_bug.cgi?id=213&quot;&gt;#213&lt;/a&gt;.&lt;/li&gt;
  &lt;li&gt;Don’t barf if configuration file doesn’t exist.&lt;/li&gt;
  &lt;li&gt;Fix segfaults due to using log functions in signal handler.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;tarball: &lt;a href=&quot;http://alip.anapnea.net/sydbox/sydbox-0.1_rc1.tar.bz2&quot;&gt;sydbox-0.1_rc1.tar.bz2&lt;/a&gt;&lt;br /&gt;
sign: &lt;a href=&quot;http://alip.anapnea.net/sydbox/sydbox-0.1_rc1.tar.bz2.asc&quot;&gt;sydbox-0.1_rc1.tar.bz2.asc&lt;/a&gt;&lt;br /&gt;
sha1sum: 404b20504b47071e4db7b1928bdf3eb894f2a4ea&lt;/p&gt;
</content>
 </entry>
 
 <entry>
   <title>Lua bindings for libmpdclient-2</title>
   <link href="https://alip.github.io/en/blog/2009/08/15/libmpdclient-2-lua-bindings/"/>
   <updated>2009-08-15T00:00:00+00:00</updated>
   <id>https://alip.github.io/en/blog/2009/08/15/libmpdclient-2-lua-bindings</id>
   <content type="html">&lt;p&gt;I started writing &lt;a href=&quot;http://www.lua.org/&quot;&gt;Lua&lt;/a&gt; bindings for
&lt;a href=&quot;http://mpd.wikia.com/wiki/ClientLib:libmpdclienthttp://mpd.wikia.com/wiki/ClientLib:libmpdclient&quot;&gt;libmpdclient-2&lt;/a&gt;.
It’s a thin wrapper around libmpdclient. Here is a simple example demonstrating
usage:&lt;/p&gt;

&lt;figure class=&quot;highlight&quot;&gt;&lt;pre&gt;&lt;code class=&quot;language-lua&quot; data-lang=&quot;lua&quot;&gt;    &lt;span class=&quot;nb&quot;&gt;require&lt;/span&gt; &lt;span class=&quot;s2&quot;&gt;&quot;mpdclient&quot;&lt;/span&gt;

    &lt;span class=&quot;n&quot;&gt;conn&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;errmsg&lt;/span&gt; &lt;span class=&quot;o&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;mpdclient&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;new&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;s2&quot;&gt;&quot;localhost&quot;&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;mi&quot;&gt;6600&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;mi&quot;&gt;10&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;)&lt;/span&gt;
    &lt;span class=&quot;k&quot;&gt;if&lt;/span&gt; &lt;span class=&quot;ow&quot;&gt;not&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;conn&lt;/span&gt; &lt;span class=&quot;k&quot;&gt;then&lt;/span&gt;
        &lt;span class=&quot;nb&quot;&gt;error&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;errmsg&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;)&lt;/span&gt;
    &lt;span class=&quot;k&quot;&gt;elseif&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;conn&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;:&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;get_error&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;()&lt;/span&gt; &lt;span class=&quot;o&quot;&gt;~=&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;mpdclient&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;MPD_ERROR_SUCCESS&lt;/span&gt; &lt;span class=&quot;k&quot;&gt;then&lt;/span&gt;
        &lt;span class=&quot;nb&quot;&gt;error&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;conn&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;:&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;get_error_message&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;())&lt;/span&gt;
    &lt;span class=&quot;k&quot;&gt;end&lt;/span&gt;

    &lt;span class=&quot;n&quot;&gt;conn&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;:&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;send_status&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;()&lt;/span&gt;
    &lt;span class=&quot;n&quot;&gt;status&lt;/span&gt; &lt;span class=&quot;o&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;conn&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;:&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;get_status&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;()&lt;/span&gt;
    &lt;span class=&quot;n&quot;&gt;conn&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;:&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;response_finish&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;()&lt;/span&gt;
    &lt;span class=&quot;nb&quot;&gt;print&lt;/span&gt; &lt;span class=&quot;s2&quot;&gt;&quot;Mpd Status&quot;&lt;/span&gt;
    &lt;span class=&quot;nb&quot;&gt;print&lt;/span&gt; &lt;span class=&quot;s2&quot;&gt;&quot;----------&quot;&lt;/span&gt;
    &lt;span class=&quot;nb&quot;&gt;print&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;s2&quot;&gt;&quot;Volume: &quot;&lt;/span&gt; &lt;span class=&quot;o&quot;&gt;..&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;status&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;volume&lt;/span&gt; &lt;span class=&quot;o&quot;&gt;..&lt;/span&gt; &lt;span class=&quot;s2&quot;&gt;&quot;%&quot;&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;)&lt;/span&gt;
    &lt;span class=&quot;nb&quot;&gt;print&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;s2&quot;&gt;&quot;Repeat: &quot;&lt;/span&gt; &lt;span class=&quot;o&quot;&gt;..&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;status&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;[&lt;/span&gt;&lt;span class=&quot;s1&quot;&gt;'repeat'&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;])&lt;/span&gt; &lt;span class=&quot;c1&quot;&gt;-- repeat is a reserved word in Lua ;)&lt;/span&gt;
    &lt;span class=&quot;nb&quot;&gt;print&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;s2&quot;&gt;&quot;Random: &quot;&lt;/span&gt; &lt;span class=&quot;o&quot;&gt;..&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;status&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;random&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;)&lt;/span&gt;
    &lt;span class=&quot;nb&quot;&gt;print&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;s2&quot;&gt;&quot;Single: &quot;&lt;/span&gt; &lt;span class=&quot;o&quot;&gt;..&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;status&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;single&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;)&lt;/span&gt;
    &lt;span class=&quot;nb&quot;&gt;print&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;s2&quot;&gt;&quot;Consume: &quot;&lt;/span&gt; &lt;span class=&quot;o&quot;&gt;..&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;status&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;consume&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;)&lt;/span&gt;
    &lt;span class=&quot;nb&quot;&gt;print&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;s2&quot;&gt;&quot;Playlist Length: &quot;&lt;/span&gt; &lt;span class=&quot;o&quot;&gt;..&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;status&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;playlist_length&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;)&lt;/span&gt;
    &lt;span class=&quot;nb&quot;&gt;print&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;s2&quot;&gt;&quot;Crossfade: &quot;&lt;/span&gt; &lt;span class=&quot;o&quot;&gt;..&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;status&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;crossfade&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;)&lt;/span&gt;
    &lt;span class=&quot;nb&quot;&gt;print&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;s2&quot;&gt;&quot;Song: &quot;&lt;/span&gt; &lt;span class=&quot;o&quot;&gt;..&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;status&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;song&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;)&lt;/span&gt;
    &lt;span class=&quot;nb&quot;&gt;print&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;s2&quot;&gt;&quot;Song ID: &quot;&lt;/span&gt; &lt;span class=&quot;o&quot;&gt;..&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;status&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;songid&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;)&lt;/span&gt;
    &lt;span class=&quot;nb&quot;&gt;print&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;s2&quot;&gt;&quot;Time: &quot;&lt;/span&gt; &lt;span class=&quot;o&quot;&gt;..&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;status&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;elapsed_time&lt;/span&gt; &lt;span class=&quot;o&quot;&gt;..&lt;/span&gt; &lt;span class=&quot;s2&quot;&gt;&quot;/&quot;&lt;/span&gt; &lt;span class=&quot;o&quot;&gt;..&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;status&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;total_time&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;)&lt;/span&gt;

    &lt;span class=&quot;k&quot;&gt;if&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;status&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;state&lt;/span&gt; &lt;span class=&quot;o&quot;&gt;==&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;mpdclient&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;MPD_STATE_PLAY&lt;/span&gt; &lt;span class=&quot;ow&quot;&gt;or&lt;/span&gt;
        &lt;span class=&quot;n&quot;&gt;status&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;state&lt;/span&gt; &lt;span class=&quot;o&quot;&gt;==&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;mpdclient&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;MPD_STATE_PAUSE&lt;/span&gt; &lt;span class=&quot;k&quot;&gt;then&lt;/span&gt;
        &lt;span class=&quot;n&quot;&gt;conn&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;:&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;send_currentsong&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;()&lt;/span&gt;
        &lt;span class=&quot;n&quot;&gt;entity&lt;/span&gt; &lt;span class=&quot;o&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;conn&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;:&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;get_next_entity&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;()&lt;/span&gt;
        &lt;span class=&quot;k&quot;&gt;if&lt;/span&gt; &lt;span class=&quot;ow&quot;&gt;not&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;entity&lt;/span&gt; &lt;span class=&quot;k&quot;&gt;then&lt;/span&gt;
            &lt;span class=&quot;nb&quot;&gt;error&lt;/span&gt; &lt;span class=&quot;s2&quot;&gt;&quot;Failed to find any entity!&quot;&lt;/span&gt;
        &lt;span class=&quot;k&quot;&gt;elseif&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;entity&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;type&lt;/span&gt; &lt;span class=&quot;o&quot;&gt;~=&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;mpdclient&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;MPD_ENTITY_TYPE_SONG&lt;/span&gt; &lt;span class=&quot;k&quot;&gt;then&lt;/span&gt;
            &lt;span class=&quot;nb&quot;&gt;error&lt;/span&gt; &lt;span class=&quot;s2&quot;&gt;&quot;Entity doesn't have to expected type!&quot;&lt;/span&gt;
        &lt;span class=&quot;k&quot;&gt;end&lt;/span&gt;
        &lt;span class=&quot;n&quot;&gt;song&lt;/span&gt; &lt;span class=&quot;o&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;entity&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;song&lt;/span&gt;
        &lt;span class=&quot;n&quot;&gt;artist&lt;/span&gt; &lt;span class=&quot;o&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;song&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;:&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;get_tag&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;mpdclient&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;MPD_TAG_ARTIST&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;mi&quot;&gt;0&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;)&lt;/span&gt;
        &lt;span class=&quot;n&quot;&gt;title&lt;/span&gt; &lt;span class=&quot;o&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;song&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;:&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;get_tag&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;mpdclient&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;MPD_TAG_TITLE&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;mi&quot;&gt;0&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;)&lt;/span&gt;
        &lt;span class=&quot;nb&quot;&gt;print&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;artist&lt;/span&gt; &lt;span class=&quot;o&quot;&gt;..&lt;/span&gt; &lt;span class=&quot;s2&quot;&gt;&quot; - &quot;&lt;/span&gt; &lt;span class=&quot;o&quot;&gt;..&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;title&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;)&lt;/span&gt;
    &lt;span class=&quot;k&quot;&gt;end&lt;/span&gt;
    &lt;span class=&quot;n&quot;&gt;conn&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;:&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;close&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;()&lt;/span&gt; &lt;span class=&quot;c1&quot;&gt;-- You can also let gc handle this&lt;/span&gt;
    &lt;span class=&quot;n&quot;&gt;conn&lt;/span&gt; &lt;span class=&quot;o&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;kc&quot;&gt;nil&lt;/span&gt; &lt;span class=&quot;c1&quot;&gt;-- Because using the connection object after closing it will kill your kittens!&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/figure&gt;

&lt;p&gt;There is no documentation yet and there are some more functions to wrap, see
&lt;a href=&quot;http://github.com/alip/luampdclient/blob/master/TODO.mkd&quot;&gt;TODO&lt;/a&gt;. Nevertheless
it should be usable at this stage.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;edit&lt;/strong&gt;: Highlight code.&lt;/p&gt;
</content>
 </entry>
 
 <entry>
   <title>Yol</title>
   <link href="https://alip.github.io/tr/blog/2009/07/31/yol/"/>
   <updated>2009-07-31T00:00:00+00:00</updated>
   <id>https://alip.github.io/tr/blog/2009/07/31/yol</id>
   <content type="html">&lt;p&gt;Yürüyorum umarsızca. Yalnızım, yanımda kimse yok. Eski bir şarkı var
dudaklarımda. Kafamda çınlayıp duruyor. Mutlu da değilim, mutsuz da. Ama
umutsuzum. Planlamıyorum geleceği; ne de hatırlayabiliyorum geçmişi. Yürüdükçe
uzuyor yol, uzadıkça umudum azalıyor. Kendimle çelişiyorum ama umursamıyorum.&lt;/p&gt;

&lt;p&gt;Küçük bir çocuk gibiyim, koskoca bir ormanda kaybolmuş küçük bir çocuk…
Telaş yok içimde, sadece merak. Ay ışığı vuruyor baykuşların gözlerine,
korkuyorum. Delicesine koşmak istiyorum ama ne tarafa koşacağımı bilmiyorum.
Bağırmak istiyorum ama ürkütmekten korkuyorum uyuyan kuşları. Bir yandan da
kimseler bulamasın istiyorum beni.&lt;/p&gt;

&lt;p&gt;Bir martının sırtındayım, uçuyoruz bilinmedik alemlere. Hava bulutlu, ama yağmur
yağmıyor. Oysa ben sadece ıslanmak istiyorum. Biraz açlık, biraz umut, biraz
yalnızlık, biraz toprak kokusu… Rüzgar yüzüme vuruyor. Aşağıya bakmaya
korkuyorum, gri bulutlara bakmaksa içimi acıtıyor.&lt;/p&gt;

&lt;p&gt;Sadece bir düş bu, düşüncelerimle ve gözyaşlarımla dışarı vurulmak isteyen. Toz
pembe bir düş bu, yolun sonunda ölümü bulmak isteyen. Arkama dönüp baktığımda
bir tebessüm olmalı dudaklarımda. Umutsuz olsam da gülebilmeliyim bana
yaşatılanların hatrına. Artık beni korkutmuyor, takip edilmenin neden olduğu
paranoya. Gülümsüyorum ve yürümeye devam ediyorum; yürüdükçe uzuyor yol,
uzadıkça umudum azalıyor. Kendimle çelişiyorum ama umursamıyorum.&lt;/p&gt;
</content>
 </entry>
 
 <entry>
   <title>Moving Blog to Github</title>
   <link href="https://alip.github.io/en/blog/2009/07/25/moving-blog-to-github/"/>
   <updated>2009-07-25T00:00:00+00:00</updated>
   <id>https://alip.github.io/en/blog/2009/07/25/moving-blog-to-github</id>
   <content type="html">&lt;p&gt;I’ve been blogging on &lt;a href=&quot;http://polatel.wordpress.com/&quot;&gt;wordpress&lt;/a&gt; for a while now.&lt;br /&gt;
I must say I wasn’t happy with a lot of things.&lt;br /&gt;
First of all you have to write plain html not something cool like
&lt;a href=&quot;http://daringfireball.net/projects/markdown/&quot;&gt;markdown&lt;/a&gt;.&lt;br /&gt;
You can’t use your favourite text editor to write blog entries either.&lt;br /&gt;
Unless, of course, you’re using the cool
&lt;a href=&quot;http://www.mozilla.com/firefox/&quot;&gt;Firefox&lt;/a&gt; add-on
&lt;a href=&quot;https://addons.mozilla.org/en-US/firefox/addon/4125&quot;&gt;it’s all text&lt;/a&gt;, but that’s
not very practical either.&lt;/p&gt;

&lt;p&gt;Blogging on &lt;a href=&quot;http://www.github.com&quot;&gt;GitHub&lt;/a&gt; has a lot of advantages.&lt;br /&gt;
The nicest of them all is you keep your whole blog in a
&lt;a href=&quot;http://www.git-scm.org/&quot;&gt;git&lt;/a&gt; repository.&lt;br /&gt;
You can use &lt;a href=&quot;http://daringfireball.net/projects/markdown/&quot;&gt;markdown&lt;/a&gt; to write
blog entries which is a whole way ahead of writing html.&lt;br /&gt;
&lt;a href=&quot;http://github.com/mojombo/jekyll/tree/master&quot;&gt;Jekyll&lt;/a&gt; makes managing the blog real fun.&lt;/p&gt;
</content>
 </entry>
 
 <entry>
   <title>Ptrace on IA64</title>
   <link href="https://alip.github.io/en/blog/2009/07/11/ptrace-on-ia64/"/>
   <updated>2009-07-11T00:00:00+00:00</updated>
   <id>https://alip.github.io/en/blog/2009/07/11/ptrace-on-ia64</id>
   <content type="html">&lt;p&gt;I decided to write a blog entry about my porting efforts of sydbox to IA64.&lt;br /&gt;
Thanks to &lt;a href=&quot;http://dev.exherbo.org/~ahf/&quot;&gt;ahf&lt;/a&gt; who gave me access to an IA64 box, I started porting sydbox to IA64.&lt;/p&gt;

&lt;p&gt;All ptrace() related stuff of Sydbox resides in
&lt;a href=&quot;http://github.com/alip/sydbox/blob/master/src/trace.c&quot;&gt;trace.c&lt;/a&gt;
so that’s the file we’re interested in.&lt;br /&gt;
For x86 and x86_64 architectures everything was so easy,&lt;br /&gt;
just fill in some registry values and it’s all done. For IA64, however,&lt;br /&gt;
additional hackery is needed.&lt;/p&gt;

&lt;p&gt;First problem, you can’t include both sys/ptrace.h and linux/ptrace.h due to&lt;br /&gt;
redefinition errors. This is easy to solve, I added an autoconf check:&lt;/p&gt;

&lt;figure class=&quot;highlight&quot;&gt;&lt;pre&gt;&lt;code class=&quot;language-c&quot; data-lang=&quot;c&quot;&gt;    &lt;span class=&quot;n&quot;&gt;AC_CHECK_TYPES&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;([&lt;/span&gt;&lt;span class=&quot;k&quot;&gt;struct&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;pt_all_user_regs&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;k&quot;&gt;struct&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;ia64_fpreg&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;],,,[&lt;/span&gt;&lt;span class=&quot;err&quot;&gt;#&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;include&lt;/span&gt; &lt;span class=&quot;o&quot;&gt;&amp;lt;&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;sys&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;/&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;ptrace&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;h&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;&amp;gt;&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;])&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/figure&gt;

&lt;p&gt;This one exports two defines to config.h namely &lt;strong&gt;HAVE_STRUCT_IA64_FPREG&lt;/strong&gt; and&lt;br /&gt;
&lt;strong&gt;HAVE_STRUCT_PT_ALL_USER_REGS&lt;/strong&gt; , using this two defines it’s possible to include&lt;br /&gt;
both files using some preprocessor hacks:&lt;/p&gt;

&lt;figure class=&quot;highlight&quot;&gt;&lt;pre&gt;&lt;code class=&quot;language-c&quot; data-lang=&quot;c&quot;&gt;    &lt;span class=&quot;cp&quot;&gt;#include &amp;lt;sys/ptrace.h&amp;gt;
&lt;/span&gt;    &lt;span class=&quot;cm&quot;&gt;/* We need additional hackery on IA64 to include linux/ptrace.h to avoid
     * redefinition errors.
     */&lt;/span&gt;
    &lt;span class=&quot;cp&quot;&gt;#if defined(IA64)
&lt;/span&gt;    &lt;span class=&quot;cp&quot;&gt;#ifdef HAVE_STRUCT_IA64_FPREG
&lt;/span&gt;    &lt;span class=&quot;cp&quot;&gt;#define ia64_fpreg XXX_ia64_fpreg
&lt;/span&gt;    &lt;span class=&quot;cp&quot;&gt;#endif // HAVE_STRUCT_IA64_FPREG
&lt;/span&gt;    &lt;span class=&quot;cp&quot;&gt;#ifdef HAVE_STRUCT_PT_ALL_USER_REGS
&lt;/span&gt;    &lt;span class=&quot;cp&quot;&gt;#define pt_all_user_regs XXX_pt_all_user_regs
&lt;/span&gt;    &lt;span class=&quot;cp&quot;&gt;#endif // HAVE_STRUCT_PT_ALL_USER_REGS
&lt;/span&gt;    &lt;span class=&quot;cp&quot;&gt;#include &amp;lt;linux/ptrace.h&amp;gt;
&lt;/span&gt;    &lt;span class=&quot;cp&quot;&gt;#undef ia64_fpreg
&lt;/span&gt;    &lt;span class=&quot;cp&quot;&gt;#undef pt_all_user_regs
&lt;/span&gt;    &lt;span class=&quot;cp&quot;&gt;#endif // defined(IA64)&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/figure&gt;

&lt;p&gt;and problem solved.&lt;/p&gt;

&lt;p&gt;The second problem is figuring out how to get system call number, this is easy too.&lt;br /&gt;
&lt;strong&gt;PT_R15&lt;/strong&gt; is the registry we need.&lt;/p&gt;

&lt;p&gt;The third problem is getting and setting the return value of system calls. On&lt;br /&gt;
IA64 the registry &lt;strong&gt;PT_R10&lt;/strong&gt; has the return value of the system call. One last thing&lt;br /&gt;
is the errno. The errno should reside in the &lt;strong&gt;PT_R8&lt;/strong&gt; registry and it should be&lt;br /&gt;
&lt;strong&gt;positive&lt;/strong&gt; unlike x86 and x86_64 where return value of the system call is the&lt;br /&gt;
negated errno.&lt;/p&gt;

&lt;p&gt;So far so good, the last problem is getting and setting arguments of functions.&lt;br /&gt;
This is a bit too long to explain, interested readers are encouraged to look at&lt;br /&gt;
the &lt;strong&gt;trace_ia64_peek&lt;/strong&gt; function in &lt;a href=&quot;http://github.com/alip/sydbox/blob/master/src/trace.c&quot;&gt;trace.c&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;edit&lt;/strong&gt;: Highlight code.&lt;/p&gt;
</content>
 </entry>
 
 <entry>
   <title>Sydbox-0.1_beta8</title>
   <link href="https://alip.github.io/en/blog/2009/07/08/sydbox-0.1_beta8/"/>
   <updated>2009-07-08T00:00:00+00:00</updated>
   <id>https://alip.github.io/en/blog/2009/07/08/sydbox-0.1_beta8</id>
   <content type="html">&lt;p&gt;Sydbox-0.1_beta8 is released.&lt;/p&gt;

&lt;ul&gt;
  &lt;li&gt;Exit when eldest child exits and add a command line flag –wait-all to wait for&lt;br /&gt;
all children before exiting.&lt;/li&gt;
  &lt;li&gt;Fix /proc/self substitution.&lt;/li&gt;
  &lt;li&gt;Add configuration file variable main.allow_proc_pid and allow /proc/PID&lt;br /&gt;
depending on that variable. This defaults to true because allowing /proc/PID&lt;br /&gt;
is required for some programs to work reliably.&lt;/li&gt;
  &lt;li&gt;Path sandboxing can now be disabled using the configuration file or&lt;br /&gt;
–disable-sandbox-path command line option. Previously this was only possible&lt;br /&gt;
using /dev/sydbox/{on,off} magic commands.&lt;/li&gt;
  &lt;li&gt;Configuration file changes, make sure to merge your configuration file.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;tarball: &lt;a href=&quot;http://alip.anapnea.net/sydbox/sydbox-0.1_beta8.tar.bz2&quot;&gt;sydbox-0.1_beta8.tar.bz2&lt;/a&gt;&lt;br /&gt;
sign: &lt;a href=&quot;http://alip.anapnea.net/sydbox/sydbox-0.1_beta8.tar.bz2.asc&quot;&gt;sydbox-0.1_beta8.tar.bz2.asc&lt;/a&gt;&lt;br /&gt;
sha1sum: 09d44475bc2697423f40aab97b9d575ff8ffb346&lt;/p&gt;
</content>
 </entry>
 
 <entry>
   <title>Sydbox-0.1_beta7</title>
   <link href="https://alip.github.io/en/blog/2009/07/04/sydbox-0.1_beta7/"/>
   <updated>2009-07-04T00:00:00+00:00</updated>
   <id>https://alip.github.io/en/blog/2009/07/04/sydbox-0.1_beta7</id>
   <content type="html">&lt;p&gt;Sydbox-0.1_beta7 is released.&lt;/p&gt;

&lt;ul&gt;
  &lt;li&gt;Fix magic stat problems on x86.&lt;/li&gt;
  &lt;li&gt;Fix segmentation faults caused by wrong handling of the list of children.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;tarball: &lt;a href=&quot;http://alip.anapnea.net/sydbox/sydbox-0.1_beta7.tar.bz2&quot;&gt;sydbox-0.1_beta7.tar.bz2&lt;/a&gt;&lt;br /&gt;
sign: &lt;a href=&quot;http://alip.anapnea.net/sydbox/sydbox-0.1_beta7.tar.bz2.asc&quot;&gt;sydbox-0.1_beta7.tar.bz2.asc&lt;/a&gt;&lt;br /&gt;
sha1sum: 512b890ded05b59866fd6826f2f4af2a7b5366ec&lt;/p&gt;
</content>
 </entry>
 
 <entry>
   <title>Sydbox-0.1_beta5</title>
   <link href="https://alip.github.io/en/blog/2009/06/22/sydbox-0.1_beta5/"/>
   <updated>2009-06-22T00:00:00+00:00</updated>
   <id>https://alip.github.io/en/blog/2009/06/22/sydbox-0.1_beta5</id>
   <content type="html">&lt;p&gt;Sydbox-0.1_beta5 is released.&lt;/p&gt;

&lt;ul&gt;
  &lt;li&gt;Implement /dev/sydbox/{un,}ban_exec. paludis-sydbox branch makes use of these&lt;br /&gt;
magic commands to ban execve() calls in metadata phase.&lt;/li&gt;
  &lt;li&gt;When shell_expand() returns empty string, it was added to the path list&lt;br /&gt;
resulting every path prefix check to be allowed, this is now fixed.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;tarball: &lt;a href=&quot;http://alip.anapnea.net/sydbox/sydbox-0.1_beta5.tar.bz2&quot;&gt;sydbox-0.1_beta5.tar.bz2&lt;/a&gt;&lt;br /&gt;
sha1sum: 2b02bc204148f94bb79b7a5b190f1d2069394ecb&lt;/p&gt;
</content>
 </entry>
 
 <entry>
   <title>Sydbox-0.1_beta4</title>
   <link href="https://alip.github.io/en/blog/2009/06/22/sydbox-0.1_beta4/"/>
   <updated>2009-06-22T00:00:00+00:00</updated>
   <id>https://alip.github.io/en/blog/2009/06/22/sydbox-0.1_beta4</id>
   <content type="html">&lt;p&gt;Sydbox-0.1_beta4 is released.&lt;/p&gt;

&lt;ul&gt;
  &lt;li&gt;Use an lstat(2) wrapper which tries hard to avoid &lt;strong&gt;ENAMETOOLONG&lt;/strong&gt; issues.&lt;/li&gt;
  &lt;li&gt;Handle /proc/self correctly when resolving paths.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;tarball: &lt;a href=&quot;http://alip.anapnea.net/sydbox/sydbox-0.1_beta4.tar.bz2&quot;&gt;sydbox-0.1_beta4.tar.bz2&lt;/a&gt;&lt;br /&gt;
sha1sum: ebc650689267539e22da1c1dc2aec818b29382c6&lt;/p&gt;
</content>
 </entry>
 
 <entry>
   <title>Disabling External Commands in Metadata Phase</title>
   <link href="https://alip.github.io/en/blog/2009/06/22/disabling-external-commands-in-metadata-phase/"/>
   <updated>2009-06-22T00:00:00+00:00</updated>
   <id>https://alip.github.io/en/blog/2009/06/22/disabling-external-commands-in-metadata-phase</id>
   <content type="html">&lt;p&gt;Running external commands in the metadata phase of exheres/ebuild is obviously a&lt;br /&gt;
bad idea because this phase is used to generate caches.&lt;/p&gt;

&lt;p&gt;&lt;a href=&quot;http://ciaranm.wordpress.com/&quot;&gt;Ciaranm&lt;/a&gt; has come up with an idea to generate
&lt;a href=&quot;https://alip.github.io/sydbox&quot;&gt;Sydbox&lt;/a&gt; access violations when&lt;br /&gt;
execve() family functions are called in the metadata phase. This was rather easy&lt;br /&gt;
to &lt;a href=&quot;http://github.com/alip/sydbox/commit/6e822623d9670688a1ec88804b81896d5ab22314&quot;&gt;implement&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;I’ve added two Sydbox magic commands, namely &lt;strong&gt;/dev/sydbox/ban_exec&lt;/strong&gt; and&lt;br /&gt;
&lt;strong&gt;/dev/sydbox/unban_exec&lt;/strong&gt; . Writing to the former file sets the flag to ban all&lt;br /&gt;
&lt;em&gt;execve()&lt;/em&gt; calls and writing to the latter unsets the flag.&lt;/p&gt;

&lt;p&gt;A small example looks like:&lt;/p&gt;

&lt;div class=&quot;highlighter-rouge&quot;&gt;&lt;div class=&quot;highlight&quot;&gt;&lt;pre class=&quot;highlight&quot;&gt;&lt;code&gt;&lt;span class=&quot;c&quot;&gt;#!/bin/sh&lt;/span&gt;
/bin/true &lt;span class=&quot;c&quot;&gt;# This call succeeds.&lt;/span&gt;
:&amp;gt;/dev/sydbox/ban_exec
/bin/true &lt;span class=&quot;c&quot;&gt;# This call fails with EACCES.&lt;/span&gt;
:&amp;gt;/dev/sydbox/unban_exec
/bin/true &lt;span class=&quot;c&quot;&gt;# This call succeeds.&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;

&lt;p&gt;The last thing to do was to add support to &lt;a href=&quot;http://paludis.pioto.org&quot;&gt;Paludis&lt;/a&gt;.&lt;br /&gt;
I’ve amended my sydbox support commit and added support to ban execve() calls in the metadata phase.&lt;br /&gt;
If you’re using my paludis-sydbox branch, make sure to use sydbox-scm and not&lt;br /&gt;
0.1_beta4. I think I’ll release 0.1_beta5 with only this change but I have&lt;br /&gt;
school tomorrow and I won’t have internet access for two days.&lt;/p&gt;
</content>
 </entry>
 
 <entry>
   <title>Sydbox-0.1_beta3</title>
   <link href="https://alip.github.io/en/blog/2009/06/01/sydbox-0.1_beta3/"/>
   <updated>2009-06-01T00:00:00+00:00</updated>
   <id>https://alip.github.io/en/blog/2009/06/01/sydbox-0.1_beta3</id>
   <content type="html">&lt;p&gt;Sydbox-0.1_beta3 is released.&lt;/p&gt;

&lt;ul&gt;
  &lt;li&gt;Fixed event handling and inheritance of sandbox data.&lt;br /&gt;
Sydbox behaves correctly now when a child calls fork(), vfork() or clone().&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;tarball: &lt;a href=&quot;http://alip.anapnea.net/sydbox/sydbox-0.1_beta3.tar.bz2&quot;&gt;sydbox-0.1_beta3.tar.bz2&lt;/a&gt;&lt;br /&gt;
sha1sum: 7ace8ee1463e3b76543c401334e7f6666547b97b&lt;/p&gt;
</content>
 </entry>
 
 <entry>
   <title>Sydbox-0.1_beta2</title>
   <link href="https://alip.github.io/en/blog/2009/05/31/sydbox-0.1_beta2/"/>
   <updated>2009-05-31T00:00:00+00:00</updated>
   <id>https://alip.github.io/en/blog/2009/05/31/sydbox-0.1_beta2</id>
   <content type="html">&lt;p&gt;Sydbox-0.1_beta2 has been released.&lt;/p&gt;

&lt;ul&gt;
  &lt;li&gt;Canonicalize filenames by default. This was previously only done in paranoid&lt;br /&gt;
mode. This makes Sydbox stricter (expect more test suites to fail).&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;tarball: &lt;a href=&quot;http://alip.anapnea.net/sydbox/sydbox-0.1_beta2.tar.bz2&quot;&gt;sydbox-0.1_beta2.tar.bz2&lt;/a&gt;&lt;br /&gt;
sha1sum: 34cef23db6d81a34b27617c07e5c3f67128ca99d&lt;/p&gt;
</content>
 </entry>
 
 <entry>
   <title>Sydbox-0.1_beta</title>
   <link href="https://alip.github.io/en/blog/2009/05/30/sydbox-0.1_beta/"/>
   <updated>2009-05-30T00:00:00+00:00</updated>
   <id>https://alip.github.io/en/blog/2009/05/30/sydbox-0.1_beta</id>
   <content type="html">&lt;p&gt;Sydbox-0.1_beta has been released.&lt;/p&gt;
&lt;ul&gt;
  &lt;li&gt;
    &lt;p&gt;Fix bogus access violations.&lt;br /&gt;
As an example sydbox would throw an access violation in a simple case like:&lt;/p&gt;

    &lt;p&gt;mkdir -p /var/tmp/paludis
because of mkdir(”/var”, …) being called. This is now fixed.&lt;/p&gt;
  &lt;/li&gt;
  &lt;li&gt;
    &lt;p&gt;Use glib’s key file format for configuration file. This kills the dependency&lt;br /&gt;
on dev-libs/confuse. Being a crucial system tool we’re trying to keep the&lt;br /&gt;
dependencies as few as possible.&lt;/p&gt;
  &lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;tarball: &lt;a href=&quot;http://alip.anapnea.net/sydbox/sydbox-0.1_beta.tar.bz2&quot;&gt;sydbox-0.1_beta.tar.bz2&lt;/a&gt;&lt;br /&gt;
sha1sum: 492a140d9472695fac0de5040aa2fb7ed5832c48&lt;/p&gt;
</content>
 </entry>
 
 <entry>
   <title>Envtag 0.4</title>
   <link href="https://alip.github.io/en/blog/2009/05/07/envtag-0.4/"/>
   <updated>2009-05-07T00:00:00+00:00</updated>
   <id>https://alip.github.io/en/blog/2009/05/07/envtag-0.4</id>
   <content type="html">&lt;p&gt;Envtag-0.4 has been released.&lt;/p&gt;
&lt;ul&gt;
  &lt;li&gt;Modular architecture, exporting tag functions to &lt;a href=&quot;http://www.lua.org&quot;&gt;Lua&lt;/a&gt;.&lt;/li&gt;
  &lt;li&gt;Proper exit codes.&lt;/li&gt;
  &lt;li&gt;Update alt_getopt to 0.6.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;tarball: &lt;a href=&quot;http://alip.anapnea.net/envtag/envtag-0.4.tar.gz&quot;&gt;envtag-0.4.tar.gz&lt;/a&gt;&lt;br /&gt;
sha1sum: a74c84286e1b61dfe9522635b2f7970589793fe0&lt;/p&gt;
</content>
 </entry>
 
 <entry>
   <title>Paludis Resume Files</title>
   <link href="https://alip.github.io/en/blog/2009/05/05/paludis-resume-files/"/>
   <updated>2009-05-05T00:00:00+00:00</updated>
   <id>https://alip.github.io/en/blog/2009/05/05/paludis-resume-files</id>
   <content type="html">&lt;p&gt;As many of you know &lt;a href=&quot;http://paludis.pioto.org&quot;&gt;Paludis&lt;/a&gt; has a
&lt;strong&gt;–resume-command-template&lt;/strong&gt; option to save the resume command to a file.&lt;br /&gt;
In addition to that there’s the
&lt;a href=&quot;http://trac.pioto.org/paludis/browser/hooks/demos/pretend_resume.hook.in&quot;&gt;pretend-resume.hook&lt;/a&gt;
which displays the resume command&lt;br /&gt;
or the file saved at the end of –pretend-install output.&lt;br /&gt;
The only missing thing is a way to quickly execute this command prepending with
&lt;a href=&quot;http://www.sudo.ws/&quot;&gt;sudo&lt;/a&gt;.&lt;br /&gt;
I wrote a tiny &lt;a href=&quot;http://www.zsh.org/&quot;&gt;zsh&lt;/a&gt; function, which I called
&lt;a href=&quot;http://github.com/alip/dotfiles/blob/master/zsh/functions/plast&quot;&gt;plast&lt;/a&gt;,&lt;br /&gt;
to do the job. To use it, save the file somewhere in your &lt;strong&gt;$fpath&lt;/strong&gt; and put&lt;/p&gt;

&lt;div class=&quot;highlighter-rouge&quot;&gt;&lt;div class=&quot;highlight&quot;&gt;&lt;pre class=&quot;highlight&quot;&gt;&lt;code&gt;export PALUDIS_RESUME_DIR=/path/to/the/directory/where/you/save/your/paludis/resume/command/files
autoload -U plast
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;

&lt;p&gt;in your .zshrc. You can use it like:&lt;/p&gt;

&lt;div class=&quot;highlighter-rouge&quot;&gt;&lt;div class=&quot;highlight&quot;&gt;&lt;pre class=&quot;highlight&quot;&gt;&lt;code&gt;paludis -ip bla bla bla
plast # executes the command in the newest resume file prepending with sudo
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;
</content>
 </entry>
 
 <entry>
   <title>Paludis Hooks For The Lazy</title>
   <link href="https://alip.github.io/en/blog/2009/04/29/paludis-hooks-for-the-lazy/"/>
   <updated>2009-04-29T00:00:00+00:00</updated>
   <id>https://alip.github.io/en/blog/2009/04/29/paludis-hooks-for-the-lazy</id>
   <content type="html">&lt;p&gt;I’ve just created a
&lt;a href=&quot;http://github.com/alip/paludis-hooks/tree/master&quot;&gt;repository&lt;/a&gt; to publish my &lt;a href=&quot;http://paludis.pioto.org&quot;&gt;Paludis&lt;/a&gt;
hooks.&lt;br /&gt;
Right now there are two simple hooks in the repository.&lt;br /&gt;
The first
&lt;a href=&quot;http://github.com/alip/paludis-hooks/blob/master/auto/locale-gen.hook&quot;&gt;one&lt;/a&gt;
is to generate locales after glibc updates.&lt;br /&gt;
You can think this as a locale-gen equivalent for
&lt;a href=&quot;http://www.exherbo.org&quot;&gt;Exherbo&lt;/a&gt;.&lt;br /&gt;
The second
&lt;a href=&quot;http://github.com/alip/paludis-hooks/blob/master/auto/zoneinfo.hook&quot;&gt;one&lt;/a&gt;
updates /etc/localtime when timezone-data is updated.&lt;/p&gt;
</content>
 </entry>
 
 <entry>
   <title>Okulda Müzik Yaptınız da Gelmedik mi?</title>
   <link href="https://alip.github.io/tr/blog/2009/04/19/okulda-muzik/"/>
   <updated>2009-04-19T00:00:00+00:00</updated>
   <id>https://alip.github.io/tr/blog/2009/04/19/okulda-muzik</id>
   <content type="html">&lt;p&gt;Geldik, geldik ya, kıymetlimiz dinar bandosu gelir de biz gelmez miyiz ;)&lt;br /&gt;
İtü’den alıp marsa götürdüler bizi, rakıyı sek içmenin önemini hatırlattılar.&lt;br /&gt;
Kısacası çektiler bizi saykodelik bir aleme üflediler bizi güneşe…&lt;/p&gt;
</content>
 </entry>
 
 <entry>
   <title>Sydbox-0.1_alpha</title>
   <link href="https://alip.github.io/en/blog/2009/04/14/sydbox-0.1_alpha/"/>
   <updated>2009-04-14T00:00:00+00:00</updated>
   <id>https://alip.github.io/en/blog/2009/04/14/sydbox-0.1_alpha</id>
   <content type="html">&lt;p&gt;sydbox-0.1_alpha is released.&lt;br /&gt;
This is the initial release of sydbox.&lt;/p&gt;

&lt;h4 id=&quot;what-is-sydbox&quot;&gt;What is sydbox?&lt;/h4&gt;
&lt;p&gt;Sydbox is a &lt;a href=&quot;http://linux.die.net/man/2/ptrace&quot;&gt;ptrace&lt;/a&gt; based sandbox
implementation which is based in part upon
&lt;a href=&quot;http://svn.pardus.org.tr/uludag/trunk/python-modules/catbox/&quot;&gt;catbox&lt;/a&gt; and
&lt;a href=&quot;http://sourceforge.net/projects/strace&quot;&gt;strace&lt;/a&gt;.&lt;br /&gt;
Being ptrace based, it doesn’t suffer from the well known security issues that&lt;br /&gt;
&lt;strong&gt;LD_PRELOAD&lt;/strong&gt; based sandbox implementations suffer from.&lt;br /&gt;
It has basic support to disallow network connections.&lt;/p&gt;

&lt;h4 id=&quot;osarch-support&quot;&gt;OS/Arch Support&lt;/h4&gt;
&lt;p&gt;At the moment only supported operating system is Linux and only supported
architectures are x86 and x86_64&lt;br /&gt;
but adding support for new architectures should be trivial.&lt;br /&gt;
If you’re interested in porting please send a mail to me or leave a comment to this post.&lt;/p&gt;

&lt;p&gt;homepage: &lt;a href=&quot;https://alip.github.io/sydbox/&quot;&gt;https://alip.github.io/sydbox/&lt;/a&gt;&lt;br /&gt;
tarball: &lt;a href=&quot;http://alip.anapnea.net/sydbox/sydbox-0.1_alpha.tar.bz2&quot;&gt;sydbox-0.1_alpha.tar.bz2&lt;/a&gt;&lt;br /&gt;
sha1sum: e6d40372242951da90973490923c3fc14622c2a4&lt;/p&gt;
</content>
 </entry>
 
 <entry>
   <title>Envtag 0.3</title>
   <link href="https://alip.github.io/en/blog/2009/04/07/envtag-0.3/"/>
   <updated>2009-04-07T00:00:00+00:00</updated>
   <id>https://alip.github.io/en/blog/2009/04/07/envtag-0.3</id>
   <content type="html">&lt;p&gt;Envtag-0.3 has been released.&lt;/p&gt;
&lt;ul&gt;
  &lt;li&gt;Rewritten in C++ to make better use of &lt;a href=&quot;http://developer.kde.org/~wheeler/taglib.html&quot;&gt;taglib&lt;/a&gt;.&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;http://www.lua.org&quot;&gt;Lua&lt;/a&gt; is a hard dependency now, Envtag uses it extensively.&lt;/li&gt;
  &lt;li&gt;Support for getting/setting Xiph Comments.&lt;/li&gt;
  &lt;li&gt;Optional libmagic based filetype detection support, enable with &lt;strong&gt;–enable-libmagic&lt;/strong&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;tarball: &lt;a href=&quot;http://alip.anapnea.net/envtag/envtag-0.3.tar.gz&quot;&gt;envtag-0.3.tar.gz&lt;/a&gt;&lt;br /&gt;
sha1sum: 98159a8c53e9aadbeb36c7b83f24099e7ab4566c&lt;/p&gt;
</content>
 </entry>
 
 <entry>
   <title>Audio Tagging Meets Lua</title>
   <link href="https://alip.github.io/en/blog/2009/03/22/audio-tagging-meets-lua/"/>
   <updated>2009-03-22T00:00:00+00:00</updated>
   <id>https://alip.github.io/en/blog/2009/03/22/audio-tagging-meets-lua</id>
   <content type="html">&lt;p&gt;I’ve just added &lt;a href=&quot;http://www.lua.org&quot;&gt;Lua&lt;/a&gt; scripting support to envtag.&lt;br /&gt;
This makes it possible to run Lua scripts on audio tags, enabling you to play
with them through a simple Lua interface.&lt;br /&gt;
Audio properties like bitrate, samplerate can also be retrieved through the same
interface.&lt;br /&gt;
By interface I mean two &lt;a href=&quot;http://www.lua.org&quot;&gt;Lua&lt;/a&gt; tables named
&lt;strong&gt;tag&lt;/strong&gt; and &lt;strong&gt;prop&lt;/strong&gt; , which have &lt;strong&gt;get()&lt;/strong&gt; and &lt;strong&gt;set()&lt;/strong&gt; functions :)&lt;br /&gt;
There are some examples under &lt;em&gt;examples/lua&lt;/em&gt; directory of the source tree if
you’re interested.&lt;/p&gt;

&lt;p&gt;This was a quick attempt to add &lt;a href=&quot;http://www.lua.org&quot;&gt;Lua&lt;/a&gt; support and I don’t
think it’s perfect yet but it works for me.&lt;br /&gt;
If you want me to change it in a way that’s more useful, please comment and/or
email me explaining how :)&lt;/p&gt;
</content>
 </entry>
 
 <entry>
   <title>Envtag 0.1</title>
   <link href="https://alip.github.io/en/blog/2009/03/18/envtag-0.1/"/>
   <updated>2009-03-18T00:00:00+00:00</updated>
   <id>https://alip.github.io/en/blog/2009/03/18/envtag-0.1</id>
   <content type="html">&lt;p&gt;Envtag-0.1 is released, you can grab it
&lt;a href=&quot;http://alip.anapnea.net/envtag/envtag-0.1.tar.gz&quot;&gt;here&lt;/a&gt;.&lt;br /&gt;
Envtag is a simple audio tagger for use in shell scripts.&lt;br /&gt;
For more information see the
&lt;a href=&quot;http://github.com/alip/envtag/blob/master/README.mkd&quot;&gt;README&lt;/a&gt;.&lt;/p&gt;
</content>
 </entry>
 
 <entry>
   <title>Summary of Kloeri's Presentation</title>
   <link href="https://alip.github.io/en/blog/2009/03/16/summary-of-kloeris-presentation/"/>
   <updated>2009-03-16T00:00:00+00:00</updated>
   <id>https://alip.github.io/en/blog/2009/03/16/summary-of-kloeris-presentation</id>
   <content type="html">&lt;p&gt;&lt;a href=&quot;/audio/kloeri-presentation.ogg&quot;&gt;Here&lt;/a&gt; is a brief summary of kloeri’s fosdem
&lt;a href=&quot;http://video.fosdem.org/2009/maintracks/exherbo.xvid.avi&quot;&gt;talk&lt;/a&gt;.&lt;br /&gt;
This is the result of an attempt to understand audacity and audio editing better.&lt;/p&gt;
</content>
 </entry>
 
 <entry>
   <title>When The Music is Over</title>
   <link href="https://alip.github.io/en/blog/2009/03/09/when-the-music-is-over/"/>
   <updated>2009-03-09T00:00:00+00:00</updated>
   <id>https://alip.github.io/en/blog/2009/03/09/when-the-music-is-over</id>
   <content type="html">&lt;p&gt;I &lt;a href=&quot;http://archives.gentoo.org/gentoo-dev/msg_1a33ec08ead9789511e43438974a5596.xml&quot;&gt;retired&lt;/a&gt;
from &lt;a href=&quot;http://www.gentoo.org&quot;&gt;Gentoo&lt;/a&gt;.&lt;br /&gt;
Just to make sure everyone learns about it.&lt;/p&gt;
</content>
 </entry>
 
 <entry>
   <title>Envtag</title>
   <link href="https://alip.github.io/en/blog/envtag/2009/03/01/envtag/"/>
   <updated>2009-03-01T00:00:00+00:00</updated>
   <id>https://alip.github.io/en/blog/envtag/2009/03/01/envtag</id>
   <content type="html">&lt;p&gt;&lt;a href=&quot;http://freshmeat.net/projects/taginfo&quot;&gt;taginfo&lt;/a&gt; is a useful audio tag reader
that can be used in shell scripts.&lt;br /&gt;
The bad thing is it can’t set tags so until now I had to use
&lt;a href=&quot;http://www.tempestgames.com/ryan&quot;&gt;audiotag&lt;/a&gt; to set the tags in my shell
scripts.&lt;/p&gt;

&lt;p&gt;Today I’ve written a simple tool called
&lt;a href=&quot;http://github.com/alip/envtag/tree/master&quot;&gt;envtag&lt;/a&gt; while experimenting with
taglib’s C bindings.&lt;br /&gt;
It’s a lot like taginfo and adds a -s option to set the tags from environment
variables.&lt;br /&gt;
The &lt;a href=&quot;http://github.com/alip/envtag/blob/master/README.mkd&quot;&gt;README&lt;/a&gt; is here if you
are interested.&lt;/p&gt;
</content>
 </entry>
 
 <entry>
   <title>It Works!</title>
   <link href="https://alip.github.io/en/blog/2009/02/28/it-works/"/>
   <updated>2009-02-28T00:00:00+00:00</updated>
   <id>https://alip.github.io/en/blog/2009/02/28/it-works</id>
   <content type="html">&lt;p&gt;After some initial work, here’s how my sandbox replacement &lt;a href=&quot;https://alip.github.io/sydbox&quot;&gt;sydbox&lt;/a&gt; looks:&lt;br /&gt;
&lt;img src=&quot;/images/sydbox-working.png&quot; alt=&quot;It Works!&quot; /&gt;&lt;br /&gt;
Looks cool, don’t you think? ;)&lt;br /&gt;
Right now, it only works fine on amd64.&lt;br /&gt;
There are some issues to fix on x86. I wish I had access to a non-hardened x86 box…&lt;/p&gt;
</content>
 </entry>
 
 <entry>
   <title>Leaving Python Herd</title>
   <link href="https://alip.github.io/en/blog/2009/02/27/leaving-python-herd/"/>
   <updated>2009-02-27T00:00:00+00:00</updated>
   <id>https://alip.github.io/en/blog/2009/02/27/leaving-python-herd</id>
   <content type="html">&lt;p&gt;I have been away from Gentoo for about 2 months now.&lt;br /&gt;
Life is complicated and I want to devote my limited time to &lt;a href=&quot;https://alip.github.io/sydbox&quot;&gt;sydbox&lt;/a&gt;.&lt;br /&gt;
That’s why I left Gentoo/Python for now.&lt;br /&gt;
This is not a goodbye, just a break.&lt;/p&gt;
</content>
 </entry>
 
 <entry>
   <title>UFS2 write support for Linux</title>
   <link href="https://alip.github.io/en/blog/2007/04/06/ufs2-write-support-for-linux/"/>
   <updated>2007-04-06T00:00:00+00:00</updated>
   <id>https://alip.github.io/en/blog/2007/04/06/ufs2-write-support-for-linux</id>
   <content type="html">&lt;p&gt;I’ve been dual booting
&lt;a href=&quot;http://www.gentoo.org/proj/en/gentoo-alt/bsd/fbsd/&quot;&gt;Gentoo/FreeBSD&lt;/a&gt; and
&lt;a href=&quot;http://www.gentoo.org&quot;&gt;Gentoo&lt;/a&gt; for a while and one problem I’ve faced is a
decent filesystem for the operating systems to share. FreeBSD has read-write
support for ext2 and read-only support for reiserfs. ext3 is also supported
as it’s backwards compatible with ext2.&lt;/p&gt;

&lt;p&gt;Well ext3 is a cool filesystem to use but I’ve been experiencing weird problems
with it on FreeBSD. So I went on to check for Linux kernel changes today to see
if there’s any plan to add UFS2 write support anytime in the future. I was
shocked :). There are already patches written and it’s planned to be added in
2.6.21. I quickly got git-sources and tried it. It works like charm so far.
I can mount ufs2 partitions r/w on both systems. Many thanks to Evgeniy Dushistov
who wrote the patches.&lt;/p&gt;

&lt;p&gt;The patches are here:&lt;/p&gt;

&lt;ul&gt;
  &lt;li&gt;&lt;a href=&quot;http://lkml.org/lkml/2007/1/29/192&quot;&gt;PATCH 1/3&lt;/a&gt; UFS2 write: mount as rw&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;http://lkml.org/lkml/2007/1/29/193&quot;&gt;PATCH 2/3&lt;/a&gt; UFS2 write: inodes write&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;http://lkml.org/lkml/2007/1/29/194&quot;&gt;PATCH 3/3&lt;/a&gt; UFS2 write: block allocation update&lt;/li&gt;
&lt;/ul&gt;
</content>
 </entry>
 
 <entry>
   <title>Sun Is Rising</title>
   <link href="https://alip.github.io/en/blog/2007/04/06/sun-is-rising/"/>
   <updated>2007-04-06T00:00:00+00:00</updated>
   <id>https://alip.github.io/en/blog/2007/04/06/sun-is-rising</id>
   <content type="html">&lt;p&gt;At last I completed my ebuild quiz today, many thanks to
&lt;a href=&quot;http://dev.gentoo.org/~jokey/&quot;&gt;jokey&lt;/a&gt;, and became a
&lt;a href=&quot;http://www.gentoo.org/proj/en/sunrise/&quot;&gt;sunrise&lt;/a&gt; trusted commiter :).&lt;br /&gt;
No I can get stuff into sunrise without getting them reviewed. yay!&lt;/p&gt;
</content>
 </entry>
 
 <entry>
   <title>vim script: hints_man3</title>
   <link href="https://alip.github.io/en/blog/2007/03/14/vim-scripts-hints_man3/"/>
   <updated>2007-03-14T00:00:00+00:00</updated>
   <id>https://alip.github.io/en/blog/2007/03/14/vim-scripts-hints_man3</id>
   <content type="html">&lt;p&gt;I found a new vim script called
&lt;a href=&quot;http://www.vim.org/scripts/script.php?script_id=1826&quot;&gt;hints_man3&lt;/a&gt;.&lt;br /&gt;
It shows the prototype of C library functions as you write them.&lt;br /&gt;
You need to set your &lt;tt&gt;cmdheight&lt;/tt&gt; option to at least 2 for it to work.&lt;br /&gt;
This can be done by adding:&lt;/p&gt;

&lt;div class=&quot;highlighter-rouge&quot;&gt;&lt;div class=&quot;highlight&quot;&gt;&lt;pre class=&quot;highlight&quot;&gt;&lt;code&gt;au BufRead,BufNewFile *.c,*.h set ch=2
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;

&lt;p&gt;to your .vimrc file. Here’s a screenshot:&lt;br /&gt;
&lt;img src=&quot;/images/hints_man3.png&quot; alt=&quot;hints_man3&quot; title=&quot;hints_man3 screenshot&quot; /&gt;&lt;/p&gt;
</content>
 </entry>
 
 <entry>
   <title>New Home</title>
   <link href="https://alip.github.io/en/blog/2007/02/14/new-home/"/>
   <updated>2007-02-14T00:00:00+00:00</updated>
   <id>https://alip.github.io/en/blog/2007/02/14/new-home</id>
   <content type="html">&lt;p&gt;I moved my blog to &lt;a href=&quot;http://hawking.nonlogic.org&quot;&gt;nonlogic&lt;/a&gt;.&lt;/p&gt;

&lt;div class=&quot;highlighter-rouge&quot;&gt;&lt;div class=&quot;highlight&quot;&gt;&lt;pre class=&quot;highlight&quot;&gt;&lt;code&gt;cp -ax blog/ nonlogic/
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;
</content>
 </entry>
 
 <entry>
   <title>PyFics initial release</title>
   <link href="https://alip.github.io/en/blog/2006/12/20/pyfics-initial-release/"/>
   <updated>2006-12-20T00:00:00+00:00</updated>
   <id>https://alip.github.io/en/blog/2006/12/20/pyfics-initial-release</id>
   <content type="html">&lt;p&gt;Today I released pyfics-0.01_alpha. PyFics is a &lt;a href=&quot;http://www.python.org&quot;&gt;Python&lt;/a&gt;
library to communicate to &lt;a href=&quot;http://www.freechess.org&quot;&gt;FICS&lt;/a&gt;,&lt;br /&gt;
which will hopefully make it easy to write bots and interfaces with Python.&lt;br /&gt;
It’s the initial release and still needs some work.&lt;br /&gt;
The project page is &lt;a href=&quot;http://pyfics.sourceforge.net&quot;&gt;here&lt;/a&gt;.&lt;/p&gt;
</content>
 </entry>
 
 <entry>
   <title>Versioning /etc with Subversion</title>
   <link href="https://alip.github.io/en/blog/2006/12/15/versioning-etc-with-subversion/"/>
   <updated>2006-12-15T00:00:00+00:00</updated>
   <id>https://alip.github.io/en/blog/2006/12/15/versioning-etc-with-subversion</id>
   <content type="html">&lt;p&gt;Although Portage takes care of configuration files very well, no system can have&lt;br /&gt;
enough protection from human errors. Versioning configuration files under &lt;strong&gt;/etc&lt;/strong&gt;&lt;br /&gt;
is a nice solution to this. If you do a mistake and delete some file or any&lt;br /&gt;
other silliness that might happen, you just revert to a former revision and&lt;br /&gt;
solve the problem.&lt;/p&gt;

&lt;p&gt;This can be achieved easily:&lt;/p&gt;

&lt;div class=&quot;highlighter-rouge&quot;&gt;&lt;div class=&quot;highlight&quot;&gt;&lt;pre class=&quot;highlight&quot;&gt;&lt;code&gt;# First create a subversion repository:
$ svnadmin create /root/svn
# Then import /etc to the repository:
$ svn import /etc file:///root/svn -m 'Initial import'
# Checkout the project:
$ rm -fr /etc
$ svn ci file:///root/svn/etc
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;

&lt;p&gt;Now change some configuration files and do &lt;strong&gt;svn status&lt;/strong&gt; . When you change your&lt;br /&gt;
configuration files, you can commit them to the repository:&lt;/p&gt;

&lt;div class=&quot;highlighter-rouge&quot;&gt;&lt;div class=&quot;highlight&quot;&gt;&lt;pre class=&quot;highlight&quot;&gt;&lt;code&gt;cd /etc
svn ci -m 'Changed MAKEOPTS to -j2 in /etc/make.conf'
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;

&lt;p&gt;Linux rulez!&lt;/p&gt;
</content>
 </entry>
 
 <entry>
   <title>Hardened Gentoo</title>
   <link href="https://alip.github.io/en/blog/2006/10/30/hardened-gentoo/"/>
   <updated>2006-10-30T00:00:00+00:00</updated>
   <id>https://alip.github.io/en/blog/2006/10/30/hardened-gentoo</id>
   <content type="html">&lt;p&gt;I’ve switched to &lt;a href=&quot;http://www.gentoo.org/proj/en/hardened/&quot;&gt;Hardened Gentoo&lt;/a&gt; at last.
I’ve been planning to do that for a&lt;br /&gt;
long time and at last I did it :). It feels nice, secure and paranoid. There&lt;br /&gt;
are some problems with Xorg to figure out but other than that it works great.&lt;/p&gt;
</content>
 </entry>
 
 <entry>
   <title>Go Vlad!</title>
   <link href="https://alip.github.io/en/blog/2006/10/19/go-vlad/"/>
   <updated>2006-10-19T00:00:00+00:00</updated>
   <id>https://alip.github.io/en/blog/2006/10/19/go-vlad</id>
   <content type="html">&lt;p&gt;Despite all efforts of the Topalov team &lt;strong&gt;Vladimir Kramnik&lt;/strong&gt; managed to win the
title.&lt;br /&gt;
He’s now the world unified chess champion.&lt;br /&gt;
Congratulations Kramnik!&lt;/p&gt;
</content>
 </entry>
 
 <entry>
   <title>Tor Patch for tsocks</title>
   <link href="https://alip.github.io/en/blog/2006/09/22/tor-patch-for-tsocks/"/>
   <updated>2006-09-22T00:00:00+00:00</updated>
   <id>https://alip.github.io/en/blog/2006/09/22/tor-patch-for-tsocks</id>
   <content type="html">&lt;p&gt;DNS leaks are a major problem for &lt;a href=&quot;http://www.torproject.org/&quot;&gt;Tor&lt;/a&gt;.&lt;br /&gt;
Tor doesn’t provide a direct solution to that but there are still some ways to&lt;br /&gt;
solve this problem.&lt;br /&gt;
One of the solutions is &lt;em&gt;dns-proxy-tor&lt;/em&gt; which is a DNS server that constructs&lt;br /&gt;
&lt;a href=&quot;http://www.torproject.org/&quot;&gt;Tor&lt;/a&gt; to map a domain to a virtual IP address and&lt;br /&gt;
subsequently &lt;a href=&quot;http://www.torproject.org/&quot;&gt;Tor&lt;/a&gt; will treat the virtual IP address&lt;br /&gt;
as an alias for the original domain name.&lt;/p&gt;

&lt;p&gt;The other solution is a patch written by &lt;em&gt;Total Information Security&lt;/em&gt; which&lt;br /&gt;
modifies &lt;em&gt;tsocks&lt;/em&gt; . With this patch &lt;em&gt;tsocks&lt;/em&gt; uses SOCKS for name resolution&lt;br /&gt;
which both prevents DNS leaks and enables direct access to &lt;em&gt;.onion&lt;/em&gt; addresses&lt;br /&gt;
for torified programmes.&lt;br /&gt;
Without the patch one has to add mapaddress lines to his/her torrc to map
domains to virtual IP addresses.&lt;/p&gt;

&lt;p&gt;Yesterday I wrote a &lt;a href=&quot;https://bugs.gentoo.org/show_bug.cgi?id=148550&quot;&gt;bug report&lt;/a&gt;
about this to &lt;a href=&quot;https://bugs.gentoo.org/&quot;&gt;Gentoo Bugzilla&lt;/a&gt; to add a &lt;strong&gt;tordns&lt;/strong&gt;&lt;br /&gt;
USE flag to tsocks and developers have added it to portage. This is what I love&lt;br /&gt;
about Gentoo. You request a feature and if it’s acceptable it’ll be added&lt;br /&gt;
before you wake up next day :)&lt;/p&gt;
</content>
 </entry>
 
 <entry>
   <title>ClamAV Procmail Filter</title>
   <link href="https://alip.github.io/en/blog/2006/09/16/clamav-procmail-filter/"/>
   <updated>2006-09-16T00:00:00+00:00</updated>
   <id>https://alip.github.io/en/blog/2006/09/16/clamav-procmail-filter</id>
   <content type="html">&lt;p&gt;I wrote a simple filter for &lt;a href=&quot;http://www.procmail.org/&quot;&gt;procmail&lt;/a&gt; to scan mails
with &lt;a href=&quot;http://www.clamav.net/&quot;&gt;ClamAV&lt;/a&gt;.&lt;br /&gt;
By default clamd has a socket file under &lt;strong&gt;/var/run/clamav/clamd.sock&lt;/strong&gt; and&lt;br /&gt;
this filter connects to it and gets the mail scanned.&lt;br /&gt;
It adds a &lt;strong&gt;X-CLAMAV&lt;/strong&gt; header to the email to inform the reader.&lt;br /&gt;
&lt;a href=&quot;/code/clamdfilter.py&quot;&gt;Here&lt;/a&gt; is the script.&lt;/p&gt;
</content>
 </entry>
 
 <entry>
   <title>Patch for pylibpcap</title>
   <link href="https://alip.github.io/en/blog/2006/09/14/patch-for-pylibpcap/"/>
   <updated>2006-09-14T00:00:00+00:00</updated>
   <id>https://alip.github.io/en/blog/2006/09/14/patch-for-pylibpcap</id>
   <content type="html">&lt;p&gt;Today I wrote a patch for pylibpcap to work with swig-1.3.29.&lt;br /&gt;
Basically pylibpcap has been tested with swig-1.3.27 and pcap.i files generated by&lt;br /&gt;
swig-1.3.27 and swig-1.3.29 are different.&lt;br /&gt;
So the regex in &lt;em&gt;build-tools/docify-shadow.py&lt;/em&gt; doesn’t match.&lt;br /&gt;
The patch is &lt;a href=&quot;/code/patches/pylibpcap-swig-1.3.29.patch&quot;&gt;here&lt;/a&gt;.&lt;/p&gt;
</content>
 </entry>
 
 <entry>
   <title>Randomize Me</title>
   <link href="https://alip.github.io/en/blog/2006/09/09/randomize-me/"/>
   <updated>2006-09-09T00:00:00+00:00</updated>
   <id>https://alip.github.io/en/blog/2006/09/09/randomize-me</id>
   <content type="html">&lt;p&gt;Life sucks, &lt;a href=&quot;http://www.python.org&quot;&gt;Python&lt;/a&gt; is the only way out…
&lt;a href=&quot;/code/random.py&quot;&gt;Here&lt;/a&gt; is another script I wrote today.&lt;br /&gt;
It gets random numbers, bytes, sequences from &lt;a href=&quot;http://random.org&quot;&gt;random.org&lt;/a&gt;.&lt;/p&gt;
</content>
 </entry>
 
 <entry>
   <title>Nopaste for Python</title>
   <link href="https://alip.github.io/en/blog/2006/08/31/nopaste-for-python/"/>
   <updated>2006-08-31T00:00:00+00:00</updated>
   <id>https://alip.github.io/en/blog/2006/08/31/nopaste-for-python</id>
   <content type="html">&lt;p&gt;Today I rewrote
&lt;a href=&quot;http://packages.gentoo.org/package/app-text/nopaste&quot;&gt;app-text/nopaste&lt;/a&gt; with
&lt;a href=&quot;http://www.python.org&quot;&gt;Python&lt;/a&gt;.&lt;br /&gt;
It’s a simple command line interface to &lt;a href=&quot;http://rafb.net/paste&quot;&gt;rafb.net/paste&lt;/a&gt;.&lt;br /&gt;
I don’t want to install &lt;a href=&quot;http://www.ruby-lang.org&quot;&gt;Ruby&lt;/a&gt; just for that small script.&lt;br /&gt;
In addition to that &lt;a href=&quot;http://www.python.org&quot;&gt;Python&lt;/a&gt; is a more appropriate
language than &lt;a href=&quot;http://www.ruby-lang.org&quot;&gt;Ruby&lt;/a&gt;. ;)&lt;/p&gt;

&lt;p&gt;Simple usage:&lt;/p&gt;

&lt;div class=&quot;highlighter-rouge&quot;&gt;&lt;div class=&quot;highlight&quot;&gt;&lt;pre class=&quot;highlight&quot;&gt;&lt;code&gt;hawking@localhost ~/python/nopaste $ ./nopaste.py -h
nopaste script for rafb.net/paste
usage : nopaste.py [options]
Options:
    -h,--help        You're looking at it
    -l,--language    Set language ( defaults to 'Plain Text')
    -n,--nick        nickname
    -d,--desc        description
    -v,--verbose     verbose mode
    -c,--nocolor     supress coloring of output
    -x               Nopaste from X selection instead of stdin
                     (using xclip or xcut)
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;

&lt;p&gt;You can specify a http proxy by setting the &lt;strong&gt;http_proxy&lt;/strong&gt; environment variable.&lt;/p&gt;

&lt;div class=&quot;highlighter-rouge&quot;&gt;&lt;div class=&quot;highlight&quot;&gt;&lt;pre class=&quot;highlight&quot;&gt;&lt;code&gt;hawking@localhost ~/python/nopaste $ export http_proxy=http://127.0.0.1:8118
hawking@localhost ~/python/nopaste $ cat test.py | ./nopaste.py -l Python -n hawking -d &quot;a nice python script&quot; -v
Verbose mode
Language :   Python
Nick     :   hawking
Description :   a nice python script
Setting headers
Encoding parameters
Sending the request
Reading...
http://www.rafb.net/paste/results/rzH00g32.html
hawking@localhost ~/python/nopaste $
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;

&lt;p&gt;You can get the script &lt;a href=&quot;/code/nopaste.py&quot;&gt;here&lt;/a&gt;.&lt;/p&gt;
</content>
 </entry>
 

</feed>
