<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	xmlns:georss="http://www.georss.org/georss" xmlns:geo="http://www.w3.org/2003/01/geo/wgs84_pos#" xmlns:media="http://search.yahoo.com/mrss/"
	>

<channel>
	<title>burak@unix~$</title>
	<atom:link href="http://buraxezer.wordpress.com/feed/" rel="self" type="application/rss+xml" />
	<link>http://buraxezer.wordpress.com</link>
	<description>~bilgisayar üzerine garip deneyimler~</description>
	<lastBuildDate>Tue, 24 Jan 2012 22:41:24 +0000</lastBuildDate>
	<language>tr</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.com/</generator>
<cloud domain='buraxezer.wordpress.com' port='80' path='/?rsscloud=notify' registerProcedure='' protocol='http-post' />
<image>
		<url>http://0.gravatar.com/blavatar/a61b8676d81dc7456874368081f69613?s=96&#038;d=http%3A%2F%2Fs2.wp.com%2Fi%2Fbuttonw-com.png</url>
		<title>burak@unix~$</title>
		<link>http://buraxezer.wordpress.com</link>
	</image>
	<atom:link rel="search" type="application/opensearchdescription+xml" href="http://buraxezer.wordpress.com/osd.xml" title="burak@unix~$" />
	<atom:link rel='hub' href='http://buraxezer.wordpress.com/?pushpress=hub'/>
		<item>
		<title>Afiyetle&#8230;</title>
		<link>http://buraxezer.wordpress.com/2012/01/12/afiyetle/</link>
		<comments>http://buraxezer.wordpress.com/2012/01/12/afiyetle/#comments</comments>
		<pubDate>Wed, 11 Jan 2012 21:00:12 +0000</pubDate>
		<dc:creator>Burak Sezer</dc:creator>
				<category><![CDATA[Ar-Ge]]></category>
		<category><![CDATA[Hadron]]></category>
		<category><![CDATA[Kişisel]]></category>
		<category><![CDATA[lpms]]></category>
		<category><![CDATA[olmamış]]></category>

		<guid isPermaLink="false">http://buraxezer.wordpress.com/?p=1562</guid>
		<description><![CDATA[kuşağım tüm gençler gibi aptal ve cömertti, elimizdeki her şeyi veriyor, karşılığında hiçbir şey beklemiyorduk. Şimdi bizden geriye hiçbir şey kalmadı&#8230; Latin Amerika toprağında yatıyor cesetlerimiz*, Öncelikle #hadron kanalından _paco_&#8216;ya senelerdir bize  sağladığı her türlü destek(slogan gibi) için, Gürkan Gür&#8216;e yaptığı tüm paketler, sayısız hata çözümleri, belgeler ve fikirleri için, Erdem Artan&#8217;a lpms&#8217;e yolladığı yama, [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=buraxezer.wordpress.com&amp;blog=1358507&amp;post=1562&amp;subd=buraxezer&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<blockquote><p>kuşağım tüm gençler gibi aptal ve cömertti, elimizdeki her şeyi veriyor, karşılığında hiçbir şey beklemiyorduk. Şimdi bizden geriye hiçbir şey kalmadı&#8230; Latin Amerika toprağında yatıyor cesetlerimiz<a title="The Savage Detectives" href="http://en.wikipedia.org/wiki/The_Savage_Detectives" target="_blank">*</a>,</p></blockquote>
<p>Öncelikle #hadron kanalından <strong>_paco_</strong>&#8216;ya senelerdir bize  sağladığı her türlü destek(slogan gibi) için,</p>
<p><a href="http://seqizz.net" target="_blank">Gürkan Gür</a>&#8216;e yaptığı tüm paketler, sayısız hata çözümleri, belgeler ve fikirleri için,</p>
<p>Erdem Artan&#8217;a lpms&#8217;e yolladığı yama, paketler, hata çözümleri için,</p>
<p><a href="https://twitter.com/#!/ceyhanmolla" target="_blank">Ceyhan Molla</a>&#8216;ya yeni logoyu çizdiği için,</p>
<p><a href="http://www.archlinux.org/" target="_blank">Arch Linux</a> geliştiricileri ve topluluğuna hazırladıkları sade paketler, init sistemi ve diğer irili ufaklı kod parçaları için,</p>
<p><a href="http://www.gentoo.org" target="_blank">Gentoo Linux</a>&#8216;a emeği geçenlere hazırladıkları harika dağıtım Hadron&#8217;a esin kaynağı olduğu için,</p>
<p><a href="http://www.linuxfromscratch.org/lfs/" target="_blank">Linux From Scratch</a> geliştiricilerine hazırladıkları eşsiz kaynak için,</p>
<p>Teşekkür ederim.</p>
<p>Hadron 1.0&#8242;ı aşağıdaki bağlantıdan indirebilirsiniz, okumanız için Gürkan pek çok belge de yazdı.</p>
<p><span style="text-decoration:underline;">İndirme Adresi:</span></p>
<p><a href="http://hadronproject.org/get-hadron/" target="_blank">http://hadronproject.org/get-hadron/</a></p>
<p><span style="text-decoration:underline;">Belgeler:</span></p>
<p><a href="http://hadronproject.org/wiki/index.php/Main_Page_en" target="_blank">http://hadronproject.org/wiki/index.php/Main_Page_en</a></p>
<p>Bu arada, sürümü geçtiğimiz aylarda hayatını kaybeden <a title="Dennis Ritchie" href="http://en.wikipedia.org/wiki/Dennis_Ritchie" target="_blank">Dennis Ritchie</a>&#8216;ye ithaf ettik. Kendi çapımızda saygı duruşu yapalım dedik.</p>
<p>Neyse, afiyetle&#8230;</p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/buraxezer.wordpress.com/1562/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/buraxezer.wordpress.com/1562/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/buraxezer.wordpress.com/1562/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/buraxezer.wordpress.com/1562/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/buraxezer.wordpress.com/1562/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/buraxezer.wordpress.com/1562/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/buraxezer.wordpress.com/1562/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/buraxezer.wordpress.com/1562/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/buraxezer.wordpress.com/1562/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/buraxezer.wordpress.com/1562/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/buraxezer.wordpress.com/1562/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/buraxezer.wordpress.com/1562/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/buraxezer.wordpress.com/1562/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/buraxezer.wordpress.com/1562/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=buraxezer.wordpress.com&amp;blog=1358507&amp;post=1562&amp;subd=buraxezer&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://buraxezer.wordpress.com/2012/01/12/afiyetle/feed/</wfw:commentRss>
		<slash:comments>5</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/fe0a1519fcf6d2efd7f1a0bbc20660d2?s=96&#38;d=http%3A%2F%2F1.gravatar.com%2Favatar%2Fad516503a11cd5ca435acc9bb6523536%3Fs%3D96" medium="image">
			<media:title type="html">purak</media:title>
		</media:content>
	</item>
		<item>
		<title>GNU/Linux&#8217;da Nvidia Optimus deneyimlerim</title>
		<link>http://buraxezer.wordpress.com/2011/12/04/gnulinuxda-nvidia-optimus-deneyimlerim/</link>
		<comments>http://buraxezer.wordpress.com/2011/12/04/gnulinuxda-nvidia-optimus-deneyimlerim/#comments</comments>
		<pubDate>Sat, 03 Dec 2011 22:31:58 +0000</pubDate>
		<dc:creator>Burak Sezer</dc:creator>
				<category><![CDATA[Kişisel]]></category>
		<category><![CDATA[Linux]]></category>

		<guid isPermaLink="false">http://buraxezer.wordpress.com/?p=1547</guid>
		<description><![CDATA[Nvidia GeForce GT 525M karta sahip bir GNU/Linux kullanıcı iseniz Optimus teknolojisini muhtemelen duymuşsunuzdur. Temelde iyi bir teknoloji; güçlü ekran kartınızın bataryanızı yiyip bitirmesini engelliyor. Sıradan işler için işlemcinin bünyesindeki grafik çipi kullanılırken performans isteyen işlerde Nvidia çipseti kullanılıyor. Neyin bütünleşik çipset neyin Nvidia çipset tarafından çalıştırılacağına kullanıcı da karar verebiliyor. Bu konuda detaylı bilgiyi [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=buraxezer.wordpress.com&amp;blog=1358507&amp;post=1547&amp;subd=buraxezer&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p><a href="http://www.nvidia.com/object/product-geforce-gt-525m-us.html" target="_blank">Nvidia GeForce GT 525M</a> karta sahip bir GNU/Linux kullanıcı iseniz <a href="http://www.nvidia.com/object/optimus_technology.html" target="_blank">Optimus teknolojisini</a> muhtemelen duymuşsunuzdur. Temelde iyi bir teknoloji; güçlü ekran kartınızın bataryanızı yiyip bitirmesini engelliyor. Sıradan işler için işlemcinin bünyesindeki grafik çipi kullanılırken performans isteyen işlerde <a href="http://en.wikipedia.org/wiki/Nvidia" target="_blank">Nvidia</a> çipseti kullanılıyor. Neyin bütünleşik çipset neyin Nvidia çipset tarafından çalıştırılacağına kullanıcı da karar verebiliyor. Bu konuda detaylı bilgiyi Google&#8217;dan alabilirsiniz. Keselim&#8230;</p>
<p>Optimus, dediğim gibi, iyi bir teknoloji aslında ama Nvidia&#8217;nın Windows dışında bir platforma destek vermemesi nedeniyle bizler için ciddi bir problem olarak ortada duruyor. Bu teknolojiyi Windows üzerinde çalıştığı gibi GNU/Linux üzerinde çalıştıracak araçlar yok; zira <a href="http://www.x.org/wiki/" target="_blank">Xorg</a> biraz yetersiz kalıyor ve Nvidia destek vermiyor ama bazı hacky çözümler var.</p>
<p>Bu arada Nvidia Xorg&#8217;u ve Waylandı desteklemek gibi bir planı olmadığını açıklamış.</p>
<p><a href="https://launchpad.net/~bumblebee" target="_blank">Bumblebee</a>/<a href="https://launchpad.net/~mj-casalogic/+archive/ironhide/" target="_blank">Ironhide</a> denen bir araç var. Hiç kullanmadım ama garip, kötü bir program olduğu söyleniyor. Fazla incelemedim&#8230; Aklınızda bulunsun.</p>
<p>Benim yaptığım şey, grafik donanımına çok fazla ihtiyacım olmadığından, nVidia çipi kapatmak oldu. <em>acpi_call</em> denen bir çekirdek modülü ile bu işi kolayca yapabiliyorum.</p>
<p>Bu arada lspci çıktısının ilgili kısmı şöyle:</p>
<p><code>01:00.0 VGA compatible controller: nVidia Corporation Device 0df5 (rev ff)</code></p>
<p>Bahsettiğim çekirdek modülü ise şurada ikamet ediyor:</p>
<p><a title="acpi_call" href="https://github.com/mkottman/acpi_call" target="_blank">https://github.com/mkottman/acpi_call</a></p>
<p>Derlemeniz gerekiyor, derlemek için de çekirdek kodlarına sahip olmanız gerek. En azından <a href="http://www.gentoo.org" target="_blank">Gentoo</a>&#8216;da ve <a href="http://www.hadronproject.org" target="_blank">Hadron</a>&#8216;da işler öyle yürüyor. Diğer dağıtımlarda <em><strong>kernel-headers</strong></em> denen paketleri kurmanız gerekebilir. Araştırın&#8230;</p>
<p>Bu arada <em><strong>acpi_call</strong></em> dağıtımınızın deposunda da olabilir. Gentoo&#8217;da var mesela.</p>
<p>Eğer elle derliyorsanız şöyle bir yol izlemeniz gerekecek:</p>
<p><strong>1-</strong> Kodu çekin:</p>
<p><code>$ git clone git://github.com/mkottman/acpi_call.git<strong> </strong></code></p>
<p><strong>2-</strong> Kod dizinine geçin:</p>
<p><code>$ cd acpi_call</code></p>
<p><strong>3-</strong> Derleyin:</p>
<p><code>$ make</code></p>
<p><strong>4</strong>- Çekirdek modülünü uygun bir yere kopyalayın. Şöyle olabilir:</p>
<p><code>/lib/modules/3.1.4-hadron/misc/acpi_call.ko</code></p>
<p><code># cp acpi_call.ko /lib/modules/3.1.4-hadron/misc/acpi_call.ko</code></p>
<p>Evet, çekirdek modülünüz <strong><em>acpi_call.ko</em></strong></p>
<p>Bu kopyalama işlemini yapmadan da modülü çalıştırabilirsiniz. Şöyle ki:</p>
<p><code># insmod ./acpi_call.ko</code></p>
<p>Eğer kullandığınız çekirdeğin modül dizinine attıysanız ki yapmanız gereken de budur, şu komutu çalıştırmanız gerekiyor:</p>
<p><code># depmod -a</code></p>
<p><em><strong>-a</strong></em> yerine <em><strong>-A</strong></em> da kullanabilirsiniz sanırım. Eğer bu komutu çalıştırmazsanız <em><strong>modprobe</strong></em> komutu ile modülü yükleyemezsiniz.</p>
<p><strong>5</strong>- Modülü yükleyin:</p>
<p><code># modprobe acpi_call</code></p>
<p><em><strong>dmesg</strong></em> çıktısında şu sonucu gördüyseniz başardınız demektir:</p>
<p><code># dmesg | tail -f</code></p>
<p>[15337.338344] acpi_call: Module loaded successfully</p>
<p>Dikkat ettiyseniz <a href="https://github.com/" target="_blank">GitHub</a>&#8216;dan çektiğiniz kodun içinde <em><strong>test_off.sh</strong></em> diye bir betik var. Bu betiği çalıştırarak bazı <a href="http://en.wikipedia.org/wiki/Advanced_Configuration_and_Power_Interface" target="_blank">ACPI</a> çağrılarını deneyebilirsiniz. Bu konularda detaylı bilgi modülün <span style="text-decoration:underline;">README</span> dosyasında var.</p>
<p>Yukarıda bahsettiğim kartı kapatmak için şu komutu kullanıyorum:</p>
<p><code># echo '\_SB.PCI0.PEG0.PEGP._OFF' &gt; /proc/acpi/call</code></p>
<p>Çalıştırdıktan sonra <em><strong>dmesg | tail -f</strong></em> komutunun çıktısı şöyle oldu:</p>
<p><code>[15739.540423] acpi_call: Calling \_SB.PCI0.PEG0.PEGP._OFF</code></p>
<p>[15739.540648] acpi_call: Call successful: 0&#215;0</p>
<p>İşe yaradı gördüğünüz gibi. Zaten fanın susmasından da işe yaradığını anlayabilirsiniz.</p>
<p>Açmak içinse şu komutu kullanıyorum:</p>
<p><code># echo '\_SB.PCI0.PEG0.PEGP._ON' &gt; /proc/acpi/call</code></p>
<p>Kapattıktan sonra<em><strong> /proc/acpi/call</strong></em> dosyasına gidip baktığımda içinde <em><strong>0&#215;0</strong></em> yazdığını görüyorum. Kartı açınca da <em><strong>0&#215;1</strong></em> yazıyor olmalı.</p>
<p>Bumblebee denen yazılımı kullanarak Nvidia kartı anlık olarak kullanabiliyorsunuz bildiğim kadarıyla. Ama ben hiç denemedim.</p>
<p>Bu konularla ilgili olarak şu kaynakları inceleyebilirsiniz:</p>
<p><a href="http://hybrid-graphics-linux.tuxfamily.org/index.php?title=ACPI_calls" target="_blank">http://hybrid-graphics-linux.tuxfamily.org/index.php?title=ACPI_calls</a></p>
<p><a href="http://linux-hybrid-graphics.blogspot.com/" target="_blank">http://linux-hybrid-graphics.blogspot.com/</a></p>
<p><a title="Gentoo Wiki" href="http://en.gentoo-wiki.com/wiki/X.Org/nVidia_Optimus" target="_blank">http://en.gentoo-wiki.com/wiki/X.Org/nVidia_Optimus</a></p>
<p>Son verdiğim bağlantıdaki bilgileri kullarak orta vadede kendi programımı yazarım gibi geliyor ama şimdilik böyle iyiyim! <img src='http://s0.wp.com/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>
<p>Bu arada çekirdek güncellemesi yaparsanız <em><strong>acpi_call</strong></em>&#8216;ı yeniden derlemeniz gerekebilir. En azından onu yeni çekirdeğinizin modül dizinine almanız gerekir. Modülün hangi sürüm için geçerli olduğunu şu komutla anlayabilirsiniz:</p>
<p><code># modinfo acpi_call.ko</code></p>
<p>filename:       acpi_call.ko<br />
license:        GPL<br />
depends:<br />
vermagic:       3.1.4-hadron SMP preempt mod_unload modversions</p>
<p>Eğer minor sürüm geçişleri ise, 3.1.3 &gt; 3.14 geçişi gibi, yeni çekirdeğin modül dizinine almanız yeterli olur. 3.0&#8242;dan 3.1.4&#8242;e geçiyorsanız yeniden derlemeniz gerekir.</p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/buraxezer.wordpress.com/1547/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/buraxezer.wordpress.com/1547/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/buraxezer.wordpress.com/1547/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/buraxezer.wordpress.com/1547/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/buraxezer.wordpress.com/1547/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/buraxezer.wordpress.com/1547/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/buraxezer.wordpress.com/1547/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/buraxezer.wordpress.com/1547/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/buraxezer.wordpress.com/1547/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/buraxezer.wordpress.com/1547/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/buraxezer.wordpress.com/1547/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/buraxezer.wordpress.com/1547/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/buraxezer.wordpress.com/1547/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/buraxezer.wordpress.com/1547/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=buraxezer.wordpress.com&amp;blog=1358507&amp;post=1547&amp;subd=buraxezer&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://buraxezer.wordpress.com/2011/12/04/gnulinuxda-nvidia-optimus-deneyimlerim/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/fe0a1519fcf6d2efd7f1a0bbc20660d2?s=96&#38;d=http%3A%2F%2F1.gravatar.com%2Favatar%2Fad516503a11cd5ca435acc9bb6523536%3Fs%3D96" medium="image">
			<media:title type="html">purak</media:title>
		</media:content>
	</item>
		<item>
		<title>Büyük Zen Düğünü*</title>
		<link>http://buraxezer.wordpress.com/2011/11/30/buyuk-zen-dugunu/</link>
		<comments>http://buraxezer.wordpress.com/2011/11/30/buyuk-zen-dugunu/#comments</comments>
		<pubDate>Tue, 29 Nov 2011 21:43:07 +0000</pubDate>
		<dc:creator>Burak Sezer</dc:creator>
				<category><![CDATA[olmamış]]></category>

		<guid isPermaLink="false">http://buraxezer.wordpress.com/?p=1543</guid>
		<description><![CDATA[Arada aklıma geliyor, blog yazısı yazayım diyorum. Sonra doğal olarak &#8220;ne yazayım&#8221; sorusu aklıma geliyor ve tıkanıyorum. Kalıyor öylece, en azından aylardır böyle işliyor. Hatta ne ayları, 1-2 yıldır böyle oluyor&#8230; Şu an da aslında böyle bir durumdayım. Blog yazısı yazasım var ama yazamıyorum&#8230; Eskiden ne yazardım? Alabildiğine özgür yazılım geyiği&#8230; Aslında  ben bloga ara [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=buraxezer.wordpress.com&amp;blog=1358507&amp;post=1543&amp;subd=buraxezer&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>Arada aklıma geliyor, blog yazısı yazayım diyorum. Sonra doğal olarak &#8220;ne yazayım&#8221; sorusu aklıma geliyor ve tıkanıyorum. Kalıyor öylece, en azından aylardır böyle işliyor. Hatta ne ayları, 1-2 yıldır böyle oluyor&#8230;</p>
<p>Şu an da aslında böyle bir durumdayım. Blog yazısı yazasım var ama yazamıyorum&#8230; Eskiden ne yazardım? Alabildiğine özgür yazılım geyiği&#8230; Aslında  ben bloga ara verdikten sonra tekrar açma kararı verirken artık sadece teknik yazılar yazarım diyordum. Ama o kadar  teknik bir  adam olmadığımdan bu hedefi pek tutturamadım. Zaten geriye dönüp bakarsanız bu süreçte pek &#8220;teknik&#8221; yazılar yazmadığımı hatta dikkate değer bir metin üretmediğimi de görürsünüz sanırım.</p>
<p>Hatta bu metnin de pek dikkate değer bir şey olmadığını buraya kadar okuduysanız anlamışsınızdır ya neyse&#8230; Devam edeyim.</p>
<p>Aslında ben yazı yazmayı pek sevmem, pek yetenekli de değilimdir bu konuda. Şu an olduğu gibi; 3 aydan fazla olmuş lan yazmayalı, çok da canım sıkıldı ne yazsam moduna girince ya da yazacak ciddi bir şeyim olduğu zaman yazıyorum ki yazacak ciddi bir şeyim olmadığından şu an anlamsız bir laf salatası okuyorsunuz.</p>
<p>Yazı yazmayı pek sevmediğim gibi kısa yazılar yazmayı da sevmem. Yazınca uzun yazar, kafa şişiririm. Kafa şişirmenin en güzel yolu da sanırım <a title="Hadron GNU/Linux" href="http://hadronproject.org" target="_blank">Hadron</a>&#8216;dan bahsetmekle olur.</p>
<p>Hemen alttaki girdiyi 20 Ağustos günü yazmışım. Yani hesaplamalarıma göre 3 aydan biraz fazla bir zaman olmuş. Aslında bu zaman dilimi bizim yaptığımızın ölçeğinde bir iş için zaman bile değil. Hele ki 1.85 kişiyle çalışıyorsanız.</p>
<p>O yazıyı yazdığımdan beri okumuyorum ama sanırım lpms&#8217;e yönelik planlardan, BSD&#8217;ye port etme girişimlerimden ve sürümün ne zaman çıkacağından bahsetmiştim. Sürüm konusundaki planımı, tahminimi pek tutturamadığım aşikar. Ama bu konuda kabahatli değilim. İş, okul, özel hayat derken tabii Hadron yavaş ilerliyor. Bu konuda  yapacak bir şey yok&#8230;</p>
<p>Geçen 3 ayda lpms&#8217;i baya baya adam ettim. Artık ona pek tırsmadan 1.0 diyebiliyorum. Changelog yazmayı pek sevmediğimden buraya dökülmeyeceğim ama; koda ve commitlere bakan ya da hiç uğraşmayıp doğrudan bana soru soranlar bu konuda bayağı bilgi alabilirler.</p>
<p>Gürkan sağ olsun iş bulmadan önceki bunalım dönemlerinde bayağı paket yaptı. Sayesinde depoda varlığından haberdar olmadığım paketler var. Tahmin ettiğim kadarıyla depoda şu an 600 civarı <em>farklı</em> paket var. Masaüstüne ulaşmanız için sadece biraz şanslı olmanız ve gerektiği yerlerde bana ya da Gürkan&#8217;a ulaşmanız yeterli olacaktır. Masaüstü demişken, sonu &#8220;box&#8221; ile biten bir kaç pencere yöneticisi haricinde LXDE ve XFCE4 depolarda olmayan kullanıcılarını bekliyor. Duyrulur&#8230;</p>
<p>Buraya kadar ~350 kelimelik laf salatası yapmayı başardım. Kayda değer hiç bir şey anlatmadım ve eğer buraya kadar okuduysanız hayatınızdan bir on dakika çaldım. Neyse, daha fazla uzatmadan sürüm sonrası Hadron 64 bit branchı için ve ileri düzey(lüks de denebilir) lpms yetenekleri için çalışacağımı da açıkladıktan sonra bu yazıyı bitireyim.</p>
<p><strong>*</strong> Başlık araktır. Meraklı arkadaşlar araştırıp ne olduğunu bulabilir. Eğer ki içinizde bir <em>hank</em> varsa hoşça vakit geçirebilirsiniz.</p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/buraxezer.wordpress.com/1543/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/buraxezer.wordpress.com/1543/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/buraxezer.wordpress.com/1543/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/buraxezer.wordpress.com/1543/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/buraxezer.wordpress.com/1543/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/buraxezer.wordpress.com/1543/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/buraxezer.wordpress.com/1543/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/buraxezer.wordpress.com/1543/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/buraxezer.wordpress.com/1543/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/buraxezer.wordpress.com/1543/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/buraxezer.wordpress.com/1543/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/buraxezer.wordpress.com/1543/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/buraxezer.wordpress.com/1543/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/buraxezer.wordpress.com/1543/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=buraxezer.wordpress.com&amp;blog=1358507&amp;post=1543&amp;subd=buraxezer&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://buraxezer.wordpress.com/2011/11/30/buyuk-zen-dugunu/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/fe0a1519fcf6d2efd7f1a0bbc20660d2?s=96&#38;d=http%3A%2F%2F1.gravatar.com%2Favatar%2Fad516503a11cd5ca435acc9bb6523536%3Fs%3D96" medium="image">
			<media:title type="html">purak</media:title>
		</media:content>
	</item>
		<item>
		<title>Biraz geyik muhabbeti</title>
		<link>http://buraxezer.wordpress.com/2011/08/20/biraz-geyik-muhabbeti/</link>
		<comments>http://buraxezer.wordpress.com/2011/08/20/biraz-geyik-muhabbeti/#comments</comments>
		<pubDate>Sat, 20 Aug 2011 19:26:16 +0000</pubDate>
		<dc:creator>Burak Sezer</dc:creator>
				<category><![CDATA[Hadron]]></category>
		<category><![CDATA[Kişisel]]></category>
		<category><![CDATA[Linux]]></category>
		<category><![CDATA[Python]]></category>

		<guid isPermaLink="false">http://buraxezer.wordpress.com/?p=1531</guid>
		<description><![CDATA[Sürüm çıkaralı çok olmuş, yazı yazmayalı da. Aylardır yaptığımız çalışmalar sanırım bir blog yazısını hakediyor. Mayıs ayından beri Hadron cephesinde olan en iyi şey geliştirici sayısının 1&#8242;den 3&#8242;e çıkması oldu sanırım. Gürkan Gür ve Erdem Artan artık Hadron&#8217;a aktif katkı veriyorlar. Gitorious&#8216;daki RSS beslemesinden neler yaptıklarını görebilirsiniz. İkisinin birden paket yapmaya ve varolanlara bakmaya başlamasıyla [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=buraxezer.wordpress.com&amp;blog=1358507&amp;post=1531&amp;subd=buraxezer&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>Sürüm çıkaralı çok olmuş, yazı yazmayalı da. Aylardır yaptığımız çalışmalar sanırım bir blog yazısını hakediyor.</p>
<p>Mayıs ayından beri Hadron cephesinde olan en iyi şey geliştirici sayısının 1&#8242;den 3&#8242;e çıkması oldu sanırım. Gürkan Gür ve Erdem Artan artık Hadron&#8217;a aktif katkı veriyorlar. <a href="https://gitorious.org/hadron" target="_blank">Gitorious</a>&#8216;daki RSS beslemesinden neler yaptıklarını görebilirsiniz.</p>
<p>İkisinin birden paket yapmaya ve varolanlara bakmaya başlamasıyla üzerimdeki yük gayet azaldı. Azaldı derken boşa çıktığımı düşünmeyin. Temmuz ayından itibaren çalışıyorum, kendime ve Hadron&#8217;a ayırdığım zaman da bir hayli azaldı. Herşeyi bir arada düşündüğünüz zaman ~600 kadar paketi ve paket yöneticisini tek başıma yapmış kadar yoruluyorum, neyse.</p>
<p>Artık paketlerle daha az ilgilendiğim için Hadron&#8217;a ayırdığım vakti lpms üzerine yoğunlaştırıyorum. <a href="http://trac.seqizz.net" target="_blank">Hata kayıt sitemizden</a> de görebileceğiniz gibi üzerimde şu an 30 kadar hata var ve bunların çok büyük bir kısmı lpms ile ilgili ya hata düzeltmesi ya da özellik isteği.</p>
<p>Sırası gelmişken lpms&#8217;de neler yaptığımı ve neler yapmayı planladığımı anlatayım:</p>
<p>lpms son rootfs sürümündeki atasının aksine şu an çok daha gelişkin ve olgun. Sanırım satır sayısı iki katına kadar çıktı ve pek çok yeni özellik ekledim. Bunlar irili ufaklı şeyler, bazılarını ben bile hatırlamıyorum ama bağımlılık çözme işlerini halleden lpms modülündeki commit sayısı lpms&#8217;e yaptığım toplam commit sayısının üçte birine yakın olabilir. Hala hataları var; zira oldukça karmaşık bir iş yapıyor. Sıkıntıları devam edecektir.</p>
<p>Geçen hafta sonu Hadron mesaimin bir kısmını lpms&#8217;i <a href="http://www.openbsd.org">OpenBSD</a>&#8216;ye port etmeye harcadım.  Gerekli modifikasyonları yaptıktan sonra, sorunlar olsa da, OpenBSD üzerinde Hadron paketlerini derlemeyi/kurmayı başardım. Yani lpms, BSD ailesinden bir <a href="http://en.wikipedia.org/wiki/Unix">UNIX</a> sistem üzerinde de çalışabilen bir paket yöneticisi şu an. Muhtemelen orta vadede sadece ben kullanabilirim ama; lpms&#8217;i <a href="http://en.wikipedia.org/wiki/Linux_kernel" target="_blank">Linux</a> ve <a href="http://en.wikipedia.org/wiki/BSD" target="_blank">BSD</a> sistemler üzerinde çalışabilen &#8220;evrensel&#8221; bir paket yöneticisi yapma hedefimi de açık etmiş olayım burada.</p>
<p>lpms paketleri kaynaktan derleyerek sisteme kuruyor biliyorsunuz. Bu bizim UNIX sistemi kullanma tarzımız ve bu konuda iyi bir paket yöneticisi çıkarmaya çalışıyoruz. Ama bazen binary paket lazım olabiliyor ve lpms şu an binary(bildiğiniz deb ya da rpm paketleri gibi) kuramıyor. Bu bir eksiklik evet ama; lpms&#8217;in konsepti paketleri kullanıcının bilgisayarı üzerinde derleyerek, hem herkesin istediği gibi bir sistem elde etmesini hem de ileri düzeyde işlemci optimizasyonlarının yapılmasını sağlamak üzerine kurulu. <a href="http://www.gentoo.org" target="_blank">Gentoo</a> ya da BSD&#8217;de ciddi deneyimi olanlar bu konuları bilirler zaten.</p>
<p>lpms&#8217;in gelecek sürümlerde binary paketleri kurup kaldırabilmesini ve hatta binary depoları oluşturup yönetebilmesini planlıyorum. Bu sayede hibrit bir paket yöneticisi ortaya çıkarmış olacağız. Ama Hadron hiç bir zaman binary paket deposu sağlamayacak. Bu özelliği 3. şahıslar ya da projeler kullanacak.</p>
<p>Bir diğer hedefim ise <a href="http://www.debian.org" target="_blank">Debian</a>&#8216;daki <a href="http://en.wikipedia.org/wiki/Debconf_(software_package)" target="_blank">debconf</a>&#8216;un bir benzerini lpms için yazmak. Bu konu henüz tasarım tahtasında bile değil. Orta vadede mümkün, muhtemelen 2012 yılı içinde çalışacağımız bir konu olacak.</p>
<p>Tüm bunları gerçekleştirdiğim zaman modern altyapılar kullanan BSD tarzı bir UNIX sistem yaratma konusundaki hevesimi biraz daha tatmin etmiş olacağım.</p>
<p>En son ve en çok arzuladığım iş ise Hadron&#8217;un altyapılarını tamamen <a href="http://en.wikipedia.org/wiki/Python_3000#Version_3.0" target="_blank">Python 3</a>&#8216;e taşımak. Grafik arayüzlü araçlar gibi bizim açımızdan tamamen anlamsız hedeflerimiz olmadığı için GTK+ gibi şeylerin Python 3 tarafından desteklenmiyor olması umrumda değil ama sandboxing uygulaması olarak kullandığımız <a href="http://svn.pardus.org.tr/uludag/trunk/catbox/" target="_blank">catbox</a> C ile yazılmış bir Python 2 uygulaması olduğu için geçiş yapamıyoruz. Aslında catbox&#8217;u Python 3&#8242;e taşımak altından kalkamayacağım bir iş değil. Ama yeterince C ve bu dille Python modülü yazma tecrübem olmadığı için zorlanabilirim. Ve sonradan çıkacak hataların da faturası canımızı çok yakabilir. O yüzden girişmiyorum ama; Python 2.7.2 ile Python 3&#8242;teki tüm yenilikleri kullanarak kod yazıyorum, o da ayrı bir mesele.</p>
<p>Dökümantasyon işi de fena gitmiyor. Gürkan Hadron&#8217;la ilgililenmeye başladıktan sonra benim yazdıklarımı güncelleştirerek İngilizceye çevirdi. Dökümanlar HadronWiki&#8217;de duruyor. Girip okuyabilirsiniz.</p>
<p>Her Hadron yazısına eklediğim gibi buna da projenin sayfalarını ekleyeyim. İlgilenmek isteyen olursa hiç çekinmesin buyursun. Freenode üzerindeki <strong>#hadron</strong> kanalında ilgili birilerini bulma olasılığınız çok yüksek.</p>
<p><a href="http://hadronproject.org" target="_blank">Hadron Projesi Anasayfa</a></p>
<p><a href="http://hadronproject.org/wiki" target="_blank">HadronWiki</a></p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/buraxezer.wordpress.com/1531/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/buraxezer.wordpress.com/1531/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/buraxezer.wordpress.com/1531/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/buraxezer.wordpress.com/1531/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/buraxezer.wordpress.com/1531/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/buraxezer.wordpress.com/1531/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/buraxezer.wordpress.com/1531/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/buraxezer.wordpress.com/1531/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/buraxezer.wordpress.com/1531/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/buraxezer.wordpress.com/1531/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/buraxezer.wordpress.com/1531/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/buraxezer.wordpress.com/1531/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/buraxezer.wordpress.com/1531/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/buraxezer.wordpress.com/1531/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=buraxezer.wordpress.com&amp;blog=1358507&amp;post=1531&amp;subd=buraxezer&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://buraxezer.wordpress.com/2011/08/20/biraz-geyik-muhabbeti/feed/</wfw:commentRss>
		<slash:comments>9</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/fe0a1519fcf6d2efd7f1a0bbc20660d2?s=96&#38;d=http%3A%2F%2F1.gravatar.com%2Favatar%2Fad516503a11cd5ca435acc9bb6523536%3Fs%3D96" medium="image">
			<media:title type="html">purak</media:title>
		</media:content>
	</item>
		<item>
		<title>Initramfs nedir, ne değildir?</title>
		<link>http://buraxezer.wordpress.com/2011/06/25/initramfs-nedir-ne-degildir/</link>
		<comments>http://buraxezer.wordpress.com/2011/06/25/initramfs-nedir-ne-degildir/#comments</comments>
		<pubDate>Fri, 24 Jun 2011 21:59:56 +0000</pubDate>
		<dc:creator>Burak Sezer</dc:creator>
				<category><![CDATA[Ar-Ge]]></category>
		<category><![CDATA[Hadron]]></category>
		<category><![CDATA[Linux]]></category>

		<guid isPermaLink="false">http://buraxezer.wordpress.com/?p=1502</guid>
		<description><![CDATA[Linux&#8216;a ya da daha genel anlamıyla UNIX&#8216;e -ben gibi- biraz fazla merak sarmış biri de olsanız, sade bir kullanıcı da olsanız; işiniz Linux&#8217;a bir şekilde düştüyse, initramfs ya da kısa ve daha çok bilinen adıyla initrd ile karşılaşmış olmanız gerekir. Bu gizemli şey hakkında yeterince bilgi sahibi olan insan sayısı azdır. Çünkü normal şartlarda uğraşacağınız [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=buraxezer.wordpress.com&amp;blog=1358507&amp;post=1502&amp;subd=buraxezer&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p><a href="http://tr.wikipedia.org/wiki/Linux" target="_blank">Linux</a>&#8216;a ya da daha genel anlamıyla <a href="http://tr.wikipedia.org/wiki/Unix" target="_blank">UNIX</a>&#8216;e -ben gibi- biraz fazla merak sarmış biri de olsanız, sade bir kullanıcı da olsanız; işiniz Linux&#8217;a bir şekilde düştüyse, <a href="http://en.wikipedia.org/wiki/Initrd" target="_blank">initramfs</a> ya da kısa ve daha çok bilinen adıyla <a href="http://en.wikipedia.org/wiki/Initrd" target="_blank">initrd</a> ile karşılaşmış olmanız gerekir.</p>
<p>Bu gizemli şey hakkında yeterince bilgi sahibi olan insan sayısı azdır. Çünkü normal şartlarda uğraşacağınız ya da uğraşmak isteyeceğiniz bir seviyede çalışmaz. Onunla muhatap olmak için özel bir durumda olmanız gerekir.</p>
<p>Initramfs, kısaca ufak bir UNIX <a href="http://en.wikipedia.org/wiki/Root_file_system" target="_blank">kök dosya sistemidir</a>. Çoğu ev kullanıcısı için olmasa da olur ama işler biraz karmaşıklaşınca; mesela şifrelenmiş dosya sistemi kullanıyorsanız ya da bir çalışan CD(<a href="http://en.wikipedia.org/wiki/Live_cd" target="_blank">live CD</a>) kullanıyorsanız, sistem açılırken initramfs aşamasını mutlaka geçmişsinizdir.</p>
<p>Peki ne işe yarar? Aslında çok basit: işletim sisteminizi açılışa hazırlar. Normalde Linux çekirdeği kök dosya sisteminizi bağlayıp sistemi açması için işleri <a href="http://en.wikipedia.org/wiki/Init" target="_blank">init</a>&#8216;e devreder; fakat yapamayacakları da vardır. Klasik bir initramfs, gereken modülleri yükler(dosya sistemi modülleri gibi), dosya sistemlerini bağlar(şifrelenmiş, şifrelenmemiş ya da lvm gibi), açılış sürecini özelleştirir(boot splash gibi) ve şu an aklıma gelmeyen pek çok şeyi yapar.</p>
<p>Initramfs&#8217;in minyatür bir UNIX dosya sistemi olduğundan bahsettim. Eğer bir şekilde açılış esnasında debug moduna düşmüşseniz initramfs içinde gezinmiş olma ihtimaliniz vardır. <a href="http://www.gnu.org/" target="_blank">GNU</a>/Linux&#8217;da ya da başka bir UNIX benzeri işletim sisteminde, terminali açtığınızda ne görüyorsanız aynısını initramfs içinde de bulabilirsiniz. Fakat burada aklınıza bazı kritik sorular gelmeli: tüm bunlar nasıl oluyor? Henüz dosya sisteminin bağlanmadığı, temel C kitaplıklarının ve diğer hayati şeylerin olmadığı bir çalışma alanında nasıl oluyor da tüm UNIX araçlarına erişebiliyorsunuz?</p>
<p>Cevabı oldukça basit: <a href="http://en.wikipedia.org/wiki/Busybox" target="_blank">BusyBox</a></p>
<p>Busybox hemen hemen tüm UNIX komutlarını, hatta dpkg, vi gibi araçları bile bünyesinde barındıran bir araçlar bütünü. Geniş bir kullanım alanına sahip. Elinizdeki Android yüklü telefondan, masanızdaki modeme kadar hemen her yerde ona rastlamak mümkün.</p>
<p>Busybox mükemmel ama rakipsiz de değil; <a href="http://en.wikipedia.org/wiki/Klibc" target="_blank">klibc</a> denen bir araç daha var ama pek tercih edilmiyor BusyBox&#8217;ın yanında.</p>
<p>Dağıtımınızın depolarından BusyBox&#8217;ı rahatlıkla kurabilirsiniz. Eğer böyle yaparsanız çok şey kaçırırsınız, BusyBox&#8217;ın aynen Linux çekirdeğinin metin tabanlı ayar arayüzüne benzeyen bir ayar arayüzü var. Deneyimsiz biri için onu sıfırdan ayarlamak, tabii, biraz zor olacaktır ama hazır bir ayar dosyası(<em>.config</em>) bulup kurcalarsanız nasıl güzel bir şey olduğunu hemen anlarsınız.</p>
<p>Çoğunuzun bildiği gibi, Linux çekirdeği açılış için temel işlemleri yaptıksan sonra görevi <strong>init</strong>&#8216;e devreder ve olaylar gelişir. Araya initramfs girince işler biraz değişiyor. Hoş, çekirdek görevi yine init adında bir betiğe devrediyor bu sefer de.</p>
<p>Initramfs içinde yer alan init betiği bahsettiğim tüm açılış işlerini yürütüyor. Yaptığı işe göre çok karmaşık da olabilir çok basit de. Birazdan ufak ama çalışan bir örneğini göreceksiniz.</p>
<p>Asıl anlatmak istediğim kısıma geleyim: initramfs nasıl elde ediliyor?</p>
<p>Basitçe, 2-3 komutla temel düzeyde bir initramfs inşa edebilirsiniz.  Önemli olan çekirdeğinizin niteliği ve hazırladığınız init betiği.</p>
<p>Çekirdeğinizin niteliği önemli; çünkü birazdan hazırlayacağımız dosya sisteminde çekirdek modülleri ile ilgili bir şey bulunmuyor; fakat dosya sistemlerini bağlayan -sürücüler çekirdeğe gömülmemişse- ya da donanım sürücüleri yükleyen bir initramfs inşa ederseniz çekirdek sürücüleri ile uğraşmak zorunda kalacaksınız.</p>
<p>Önce dosya sisteminin temel yerleşimini oluşturalım:</p>
<p><code># mkdir -p initramfs/{bin,sbin,etc,proc,sys,lib,dev}</code></p>
<p>initramfs diye bir dizin altında çalıştığımıza dikkat edin!</p>
<p>Şimdi sıra yukarıda bahsettiğim BusyBox&#8217;ı yerleştirmekte. Burada dikkat etmeniz gereken çok önemli bir nokta var. Kullandığınız BusyBox statik bağlanmış olmalı; yani her şey tek bir ikili(binary) dosya altında tutulmalı. Eğer dinamik bağlanmış olursa gereken kitaplıkları /lib altına kopyalamak durunda kalırsınız. Bu da biraz can sıkıcı olur.</p>
<p>BusyBox derlemenizin statik mi dinamik mi olduğunu anlamanın basit bir yolu var:</p>
<p><code># file /bin/{bb,busybox} | grep static</code></p>
<p>BusyBox bb ya da busybox adıyla sistem yolunda bulunabiliyor. Almanız gereken sonuç şöyle:</p>
<p><code>/bin/busybox: ELF 32-bit LSB executable, Intel 80386, version 1 (SYSV), <strong>statically linked</strong>, for GNU/Linux 2.6.27, stripped</code></p>
<p>Aynı komutu, söz gelimi <strong>bash</strong> için uyguladığımda bakın ne sonuç alıyorum:</p>
<p><code>/bin/bash: ELF 32-bit LSB executable, Intel 80386, version 1 (SYSV), <strong>dynamically linked (uses shared libs)</strong>, for GNU/Linux 2.6.9, not stripped</code></p>
<p>Yeterli açıklamayı yaptığımıza göre BusyBox&#8217;ı yeni dosya sistemimize kopyalayabiliriz:</p>
<p><code># cp /bin/busybox initramfs/bin</code></p>
<p>BusyBox minyatür sistemimizin her şeyi. Henüz ortalıkta hiç bir şey yokken kabuk görevi görmesi için bir bağlantı oluşturmamız gerekiyor:</p>
<p><code># ln -s busybox initramfs/bin/sh</code></p>
<p>Şimdi sıra açılış sürecini programladığımız betiği sisteme yerleştirmeye geldi. Görebileceğiniz en basit ama çalışan -benim sistemde çalıştı- init betiği aşağıda duruyor.</p>
<p><pre class="brush: bash;">mount -t proc proc /proc
mount -n -t sysfs sys /sys
mount -o remount,rw /

/bin/busybox --install -s

mdev -s

exec /bin/sh</pre></p>
<p>Betik basitçe <code>/proc</code> ve <code>/sys</code> dosya sistemlerini bağlıyor. Ardından da temel UNIX komutlarıyla(/bin/ls /bin/mv gibi) BusyBox&#8217;ın linklenmesini sağlıyor. Evet, initramfs altında tüm komutlar BusyBox&#8217;a çıkan linkler!</p>
<p>Yukarıdaki 3 satır kodu init diye bir dosya içinde initramfs dizini altına yerleştiriyoruz. Daha sonra onu <code>chmod +x initramfs/init</code> komutu ile çalıştırılabilir hale getirmeniz gerekiyor.</p>
<p>Şimdi gelelim &#8220;inşa&#8221; meselesine:</p>
<p><code>$ cd initramfs<br />
$ find . | cpio -H newc -o &gt; ../initramfs.cpio<br />
$ cd ..<br />
$ cat initramfs.cpio | gzip &gt; initramfs.igz</code></p>
<p>Bu komutlarla <strong>initramfs.igz</strong> diye bir dosya üretmiş oluyoruz. Daha sonra onu GRUB ya da her ne kullanıyorsanız <strong>initrd</strong> gibi bir satıra eklemeniz gerekiyor. Eğer işler iyi giderse hiç bir özelliği olmayan bir UNIX komut satırı ile başbaşa kalacaksınız.</p>
<p>Onunla neler yapabileceğiniz size kalmış. BusyBox <a href="http://en.wikipedia.org/wiki/Glibc" target="_blank">glibc</a> ve <a href="http://en.wikipedia.org/wiki/UClibc" target="_blank">uClibc</a> ile derlebilen bir program. Biraz uğraşarak bir &#8220;tiny&#8221; Linux dağıtımı geliştirmek çok eğlenceli olabilir. Öyle değil mi! <img src='http://s0.wp.com/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>
<p>&#8212;</p>
<p>Bu arada, çekirdeğinizin initramfs desteğinin olmasına dikkat edin. Eğer hazır derlenmiş bir çekirdek kullanıyorsanız destek vardır. Benim gibi ne zaman bir binary dağıtım kullandığını unutmuş biriyseniz şunu bilmenizde fayda var:</p>
<p><code>General setup ---&gt;<br />
[*] Initial RAM filesystem and RAM disk (initramfs/initrd) support</code></p>
<p>Aklınızda bulunmasında fayda var. Initramfs&#8217;i çekirdeğe de gömebilirsiniz. Bunun için aşağıdaki ayara sahip olmanız gerek.</p>
<p><code>General setup ---&gt;<br />
(/usr/src/initramfs) Initramfs source file(s)</code></p>
<p><strong>/usr/src/initramfs</strong> yukarıda çalıştığımız dizini temsil ediyor. Bu şekilde ilerlerseniz çekirdeği derlediğinizde initramfs otomatik olarak oluşturulacak ve <span style="text-decoration:underline;">bzImage</span> dosyasına gömülerek kullanılacaktır.</p>
<p>&#8212;</p>
<p><span style="text-decoration:underline;">İleri okumalar:</span></p>
<ul>
<li><a href="http://en.gentoo-wiki.com/wiki/Initramfs" target="_blank">http://en.gentoo-wiki.com/wiki/Initramfs</a></li>
<li><a href="http://jootamam.net/howto-initramfs-image.htm" target="_blank">http://jootamam.net/howto-initramfs-image.htm</a></li>
</ul>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/buraxezer.wordpress.com/1502/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/buraxezer.wordpress.com/1502/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/buraxezer.wordpress.com/1502/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/buraxezer.wordpress.com/1502/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/buraxezer.wordpress.com/1502/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/buraxezer.wordpress.com/1502/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/buraxezer.wordpress.com/1502/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/buraxezer.wordpress.com/1502/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/buraxezer.wordpress.com/1502/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/buraxezer.wordpress.com/1502/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/buraxezer.wordpress.com/1502/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/buraxezer.wordpress.com/1502/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/buraxezer.wordpress.com/1502/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/buraxezer.wordpress.com/1502/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=buraxezer.wordpress.com&amp;blog=1358507&amp;post=1502&amp;subd=buraxezer&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://buraxezer.wordpress.com/2011/06/25/initramfs-nedir-ne-degildir/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/fe0a1519fcf6d2efd7f1a0bbc20660d2?s=96&#38;d=http%3A%2F%2F1.gravatar.com%2Favatar%2Fad516503a11cd5ca435acc9bb6523536%3Fs%3D96" medium="image">
			<media:title type="html">purak</media:title>
		</media:content>
	</item>
		<item>
		<title>Python&#8217;da ayar dosyası ayrıştırmak için bir deneme</title>
		<link>http://buraxezer.wordpress.com/2011/06/02/pythonda-ayar-dosyasi-ayristirmak-icin-bir-deneme/</link>
		<comments>http://buraxezer.wordpress.com/2011/06/02/pythonda-ayar-dosyasi-ayristirmak-icin-bir-deneme/#comments</comments>
		<pubDate>Thu, 02 Jun 2011 13:09:47 +0000</pubDate>
		<dc:creator>Burak Sezer</dc:creator>
				<category><![CDATA[Linux]]></category>
		<category><![CDATA[Programlama]]></category>
		<category><![CDATA[Python]]></category>

		<guid isPermaLink="false">http://buraxezer.wordpress.com/?p=1493</guid>
		<description><![CDATA[lpms&#8216;in bazı davranışlarını ve yetenekleri kontrol etmek için ayar dosyası kullanıyorum doğal olarak. Bu dosyayı ayrıştırmak için Python&#8216;un kendi ConfigParser sınıfını kullanıyordum. Onu pek sevmeyince, hazır lpms&#8217;i de tekrar yazıyorken built-in bir ayrıştırıcı yazayım dedim. Sadece benim ihtiyaçlarımı görecek kapasitede. Fazla uzatmayayım. Kodlar şöyle: Biraz savruk ama neyse&#8230; Kod oldukça basit. Python&#8217;un öntanımlı ayrıştırıcısı gibi .ini benzeri [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=buraxezer.wordpress.com&amp;blog=1358507&amp;post=1493&amp;subd=buraxezer&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p><a href="http://hadronproject.org/package-manager/" target="_blank">lpms</a>&#8216;in bazı davranışlarını ve yetenekleri kontrol etmek için ayar dosyası kullanıyorum doğal olarak. Bu dosyayı ayrıştırmak için <a href="http://www.python.org" target="_blank">Python</a>&#8216;un kendi <a href="http://docs.python.org/library/configparser.html" target="_blank">ConfigParser</a> sınıfını kullanıyordum. Onu pek sevmeyince, hazır lpms&#8217;i de tekrar yazıyorken built-in bir ayrıştırıcı yazayım dedim. Sadece benim ihtiyaçlarımı görecek kapasitede. </p>
<p>Fazla uzatmayayım. Kodlar şöyle:</p>
<p><pre class="brush: python;">
#!/usr/bin/env python

conf = &quot;&quot;&quot;

# [falanca] ayarları kategorize etmek için kullanılabilecek bir notasyon
[General]

foo = True

command = /usr/bin/foo_command --prefix=/usr

# bu bir yorum satiri

&quot;&quot;&quot;

class ReadConfiguration(object):
    def __init__(self):
        for atr in conf.strip().split('\n'):
            if not atr.startswith(&quot;[&quot;) and not atr.startswith(&quot;#&quot;):
                if len(atr.split(&quot;=&quot;)) &gt; 1:
                    data = atr.split(&quot;=&quot;)
                    self.__dict__[data[0].strip()] =  &quot;=&quot;.join(data[1:]).strip()

</pre></p>
<p>Biraz savruk ama neyse&#8230;</p>
<p>Kod oldukça basit. Python&#8217;un öntanımlı ayrıştırıcısı gibi .ini benzeri ayar dosyalarını ayrıştırıyor. Fakat bu kodun, bence, güzelliği kullanımının çok basit olması. Değerleri(örnekte foo, ve command) <code>ReadConfiguration</code> sınıfının metodlarıymış gibi(son satıra dikkat) atıyor. Bu sayede fazladan bir çabaya gerek kalmadan, ayar dosyasına bir değer girdiğinizde hemen kullanmaya başlayabiliyorsunuz.</p>
<p>Şöyle yani:</p>
<p><pre class="brush: python;">
import readconfiguration

rc = ReadConfiguration()

print(rc.foo)

print(rc.command)

if rc.foo:
    print(&quot;It Works!&quot;)
</pre></p>
<p>Bunu ufak bir betik gibi düşünecek olursak şöyle bir sonuç elde edebiliriz:</p>
<p><code>burak@hadron-dev ~ $ python3 conf.py<br />
True<br />
/usr/bin/foo_command --prefix=/usr<br />
It Works!</code></p>
<p>Sınıfın buradaki hali sadece bir demo. Şu an lpms&#8217;de daha farklı bir hali çalışıyor. Şu an ki haline daha fazla kontrol ve herhangi bir yerden herhangi bir ayar dosyasını okuma yeteneği eklenebilir, eklenmelidir. Ayrıca .ini tarzı ayar dosyası meselesini de kolayca aşabilir, kendi keyfinize göre bir tarz da belirleyebilirsiniz.</p>
<p>Kod Python-2.7.1 ve 3.2.0 sürümlerinde çalışıyor.</p>
<p>Hatalar varsa bildiriniz! <img src='http://s0.wp.com/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/buraxezer.wordpress.com/1493/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/buraxezer.wordpress.com/1493/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/buraxezer.wordpress.com/1493/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/buraxezer.wordpress.com/1493/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/buraxezer.wordpress.com/1493/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/buraxezer.wordpress.com/1493/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/buraxezer.wordpress.com/1493/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/buraxezer.wordpress.com/1493/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/buraxezer.wordpress.com/1493/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/buraxezer.wordpress.com/1493/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/buraxezer.wordpress.com/1493/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/buraxezer.wordpress.com/1493/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/buraxezer.wordpress.com/1493/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/buraxezer.wordpress.com/1493/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=buraxezer.wordpress.com&amp;blog=1358507&amp;post=1493&amp;subd=buraxezer&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://buraxezer.wordpress.com/2011/06/02/pythonda-ayar-dosyasi-ayristirmak-icin-bir-deneme/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/fe0a1519fcf6d2efd7f1a0bbc20660d2?s=96&#38;d=http%3A%2F%2F1.gravatar.com%2Favatar%2Fad516503a11cd5ca435acc9bb6523536%3Fs%3D96" medium="image">
			<media:title type="html">purak</media:title>
		</media:content>
	</item>
		<item>
		<title>Sürüm Duyurusudur</title>
		<link>http://buraxezer.wordpress.com/2011/05/05/surum-duyurusudur/</link>
		<comments>http://buraxezer.wordpress.com/2011/05/05/surum-duyurusudur/#comments</comments>
		<pubDate>Thu, 05 May 2011 14:47:52 +0000</pubDate>
		<dc:creator>Burak Sezer</dc:creator>
				<category><![CDATA[Ar-Ge]]></category>
		<category><![CDATA[Gentoo]]></category>
		<category><![CDATA[Hadron]]></category>
		<category><![CDATA[Kişisel]]></category>
		<category><![CDATA[Linux]]></category>
		<category><![CDATA[lpms]]></category>
		<category><![CDATA[olmamış]]></category>
		<category><![CDATA[Python]]></category>

		<guid isPermaLink="false">http://buraxezer.wordpress.com/?p=1482</guid>
		<description><![CDATA[Geçen Ağustos ayında yazdığım ve şu an gizlenmiş durumda olan Metal Yorgunluğu yazısını 8 ay sonra aynen yeni sürümcük için kullansam sanırım çok yerinde olurdu ama; bu kez o kadar uzun yazıp kafanızı şişirecek değilim. Pek çoğunuzun bildiği gibi ben Hadron diye bir şey geliştirmekteyim. Kendisi bir özgür yazılım olup, eskiden Live Linux olayına biraz [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=buraxezer.wordpress.com&amp;blog=1358507&amp;post=1482&amp;subd=buraxezer&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>Geçen Ağustos ayında yazdığım ve şu an gizlenmiş durumda olan <span style="text-decoration:underline;">Metal Yorgunluğu</span> yazısını 8 ay sonra aynen yeni sürümcük için kullansam sanırım çok yerinde olurdu ama; bu kez o kadar uzun yazıp kafanızı şişirecek değilim.</p>
<p>Pek çoğunuzun bildiği gibi ben Hadron diye bir şey geliştirmekteyim. Kendisi bir özgür yazılım olup, eskiden <a href="http://en.wikipedia.org/wiki/Live_CD" target="_blank">Live Linux</a> olayına biraz farklı bir açıdan bakmaya çalışan bir dağıtımsı idi. 1.5 yıllık geliştirme faliyeti, sonuncusu herkes tarafından beğenilen 3 sürüm ve yapılan onca reklamın ardından, bana <span style="text-decoration:underline;">ciddi</span> geri bildirim yapan kullanıcı sayısı 10&#8242;u bulmayınca ve bir live dağıtım olarak Hadron&#8217;u kendim de kullanamayınca, onunla ilgilenmek çok tatsız bir hal almaya başladı. Zaten Alpha sürümün çıkışından aylar sonra yeni sürüm için çok az adım atmıştım. Malum, motivasyon sıkıntısı&#8230;</p>
<p>Uzun lafın kısası artık bildiğiniz ve kullandığınız ya da muhtemelen hiç ciddiye almadığınız Hadron&#8217;u <span style="text-decoration:underline;">geliştirmiyorum</span>. Eğer ben onu sevmiştim diyen varsa kodlara erişebilirler hala.</p>
<p>Neyse, aslında anlatmak istediğim şey bu değildi benim. Şubat ayında bildiğiniz Hadron&#8217;u geliştirmeyi bıraktıktan sonra kendi kafama göre bir sistem geliştirme düşüncesi zihnimde belirdi. Tamamen benim istediğim tarzda, Gentoo benzeri bir dağıtım hazırlamaya çalışmak <span style="text-decoration:underline;">çok eğlenceli</span> bir fikir gibi geldi. Hala da öyle düşünüyorum&#8230; Tabii bu kararı alırken <a href="http://zubak.wordpress.com" target="_blank">Yasin</a>&#8216;in gaz vermesinden de yararlandım.</p>
<p>Şu an elimde kendi kendine yetebilen bir taban sistem var. Dağıtımın adı hala aynı, paket yöneticisinin adı da hala aynı.  lpms şu an Portage&#8217;ın ilk sürümlerine benziyor ama tamamen Python ile yazıldı. Paket formatının ve paket yöneticisinin kullanımının çok basit olmasına çalıştım elimden geldiğince. Açıkçası, inşa betiklerini yorumlayacak bir ortam kodlamak ve kontrol kurmak bayağı eğlenceli ve öğreticiydi. Artık Python&#8217;u daha iyi kullanıyorum.</p>
<p>Her ne kadar kendim için geliştiriyorum desem de Hadron&#8217;la ilgilenen insanların olması ve hatta benimle birlikte 3-5 kullanıcı/geliştirici bulunması beni memnun eder. Eğer katkıda bulunmak ya da kullanmak isterseniz benimle irtibata geçin. <span style="text-decoration:underline;">Freenode</span> üzerindeki <span style="text-decoration:underline;">#hadron</span> kanalında beni bulma ihtimaliniz oldukça yüksek. Eğer bulamazsanız <em>purak et hadronproject nokta org</em> adresine bir mesaj bırakın. En kısa zamanda geri dönmeye çalışırım.</p>
<p>Konuyla ilgileniyorsanız <a href="http://hadronproject.org/">http://hadronproject.org/</a> adresine bir bakınız. İndirmek için ise <a href="http://hadronproject.org/">http://hadronproject.org/get-hadron/</a> adresine bakabilirsiniz. Sitede nasıl geliştirici olabileceğinize dair bilgiler de var. Ayrıca <a href="http://hadronproject.org/wiki/index.php/Main_Page" target="_blank">HadronWiki</a>&#8216;de nasıl paket yapılacağına dair bilgiler de bulunuyor. Bu arada, siteye yazdıklarım çok aceleye gelmiş şeyler. Hatalar olabilir, affola.</p>
<p>İnsanın emek verdiği ve <a href="http://www.gnu.org/philosophy/free-sw.html" target="_blank">kamu malı</a> olarak sunduğu bir ürünü sıkıntı ve çekingenlikle duyurması da çok tatsız bir durum. Okuduklarınızı yazarken deneyimledim.</p>
<p>Not: Bu sefer de uzun olmuş.</p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/buraxezer.wordpress.com/1482/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/buraxezer.wordpress.com/1482/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/buraxezer.wordpress.com/1482/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/buraxezer.wordpress.com/1482/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/buraxezer.wordpress.com/1482/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/buraxezer.wordpress.com/1482/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/buraxezer.wordpress.com/1482/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/buraxezer.wordpress.com/1482/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/buraxezer.wordpress.com/1482/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/buraxezer.wordpress.com/1482/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/buraxezer.wordpress.com/1482/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/buraxezer.wordpress.com/1482/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/buraxezer.wordpress.com/1482/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/buraxezer.wordpress.com/1482/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=buraxezer.wordpress.com&amp;blog=1358507&amp;post=1482&amp;subd=buraxezer&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://buraxezer.wordpress.com/2011/05/05/surum-duyurusudur/feed/</wfw:commentRss>
		<slash:comments>6</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/fe0a1519fcf6d2efd7f1a0bbc20660d2?s=96&#38;d=http%3A%2F%2F1.gravatar.com%2Favatar%2Fad516503a11cd5ca435acc9bb6523536%3Fs%3D96" medium="image">
			<media:title type="html">purak</media:title>
		</media:content>
	</item>
		<item>
		<title>Python programcısına tavsiyeler</title>
		<link>http://buraxezer.wordpress.com/2011/03/30/python-programcisina-tavsiyeler/</link>
		<comments>http://buraxezer.wordpress.com/2011/03/30/python-programcisina-tavsiyeler/#comments</comments>
		<pubDate>Wed, 30 Mar 2011 19:56:53 +0000</pubDate>
		<dc:creator>Burak Sezer</dc:creator>
				<category><![CDATA[Kişisel]]></category>
		<category><![CDATA[Programlama]]></category>
		<category><![CDATA[Python]]></category>

		<guid isPermaLink="false">http://buraxezer.wordpress.com/?p=1465</guid>
		<description><![CDATA[Daha iyi bir Python programcısı ya da genel anlamıyla iyi bir programcı(aslında bu tabiri sevmiyorum) olmaya çalışırken hangi yolu izlediğimi, daha doğrusu izlemeye çalıştığımı maddeler halinde, Python&#8217;dan örnekler de vererek, yazayım bugün. Peşinen söylemeliyim ki; henüz iyi bir programcı olma konusunda başarılı olduğumu söyleyemem. Yemem gereken 40 fırın ekmek ve aşmam gereken yıllar var&#8230; 1- [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=buraxezer.wordpress.com&amp;blog=1358507&amp;post=1465&amp;subd=buraxezer&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>Daha iyi bir <a href="http://www.python.org" target="_blank">Python</a> programcısı ya da genel anlamıyla iyi bir programcı(aslında bu tabiri sevmiyorum) olmaya çalışırken hangi yolu izlediğimi, daha doğrusu izlemeye çalıştığımı maddeler halinde, Python&#8217;dan örnekler de vererek, yazayım bugün. Peşinen söylemeliyim ki; henüz iyi bir programcı olma konusunda başarılı olduğumu söyleyemem. Yemem gereken 40 fırın ekmek ve aşmam gereken yıllar var&#8230; <img src='http://s0.wp.com/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>
<p><span style="text-decoration:underline;"><strong>1- Bilgisayar biliminin temellerini bilin.<br />
</strong></span><br />
Program yazarken kullandığımız programlama dillerinin ve tekniklerin bir teorik temeli var. <a href="http://en.wikipedia.org/wiki/Data_structure" target="_blank">Veri yapıları</a>, <a href="http://en.wikipedia.org/wiki/Algorithm" target="_blank">algoritmalar</a>, <a href="http://en.wikipedia.org/wiki/Object-oriented_programming" target="_blank">nesne yönelimli programlama</a>, <a href="http://en.wikipedia.org/wiki/Design_pattern_(computer_science)" target="_blank">tasarım örüntüleri(design patterns)</a> gibi konularda iyi kötü teorik bilgiye sahip olun. Hatta zamanınız varsa ve gerçekten ilgi duyuyorsanız daha fazlasını da çalışabilirsiniz. Bu madde benim gibi Bilgisayar Mühendisliği ya da yakın dallarla okul bazında alakası olmayanlar için çok önemli; çünkü yaptığınız işin temelini bilmelisiniz.</p>
<p><span style="text-decoration:underline;"><strong>2- Kullandığınız dilin temel özelliklerini iyi bilin.<br />
</strong></span><br />
Bir programlama dilinde etkin kod üretebilmek için onun inceliklerini bilmeniz gerekir. Python özelinde konuştuğumuza göre kaynak da gösterebilirim. Resmi Python dökümanlarındaki bazı kısımlar ve bazı kaynak kitaplar işinizi görebilir.</p>
<p><a href="http://docs.python.org/release/3.1.3/tutorial/index.html" target="_blank">http://docs.python.org/release/3.1.3/tutorial/index.html</a><br />
<a href="http://docs.python.org/release/3.1.3/howto/" target="_blank"> http://docs.python.org/release/3.1.3/howto/</a><br />
<a href="http://diveintopython3.org" target="_blank"> http://diveintopython3.org</a></p>
<p><span style="text-decoration:underline;"><strong>3- Düzenli olarak kod yazın.<br />
</strong></span><br />
Eğer bir dili öğreniyorsanız, onu düzenli olarak kullanmalısınız. Bu sizi zinde kılar. Tıpkı bir sporcu gibi; sürekli çalışırsanız o dili, dolayısıyla programlamayı da zamanla özümsersiniz. Size 10 günde ya da 3 haftada programlama ya da programlama dili öğreteceğini iddia eden kitaplara, kaynaklara kanmayın. Programlama yeteneğiniz, zeka ve deneyim gerektiren tüm diğer işlerde olduğu gibi zamanla gelişir.</p>
<p><span style="text-decoration:underline;"><strong>4- İyi yazılmış kodları okuyun.<br />
</strong></span><br />
Sizden daha zeki ve muhtemelen daha uzun zamandır program yazan insanlar vardır kesinlikle. Onların yazdıkları kodları okuyun. <a href="http://github.com" target="_blank">Github</a>, <a href="http://gitorious.org" target="_blank">Gitorious</a>, <a href="http://code.google.com/hosting/" target="_blank">Google Code</a> ve <a href="http://sf.net" target="_blank">Sourceforge</a> gibi kaynaklarda pek çok proje var. İlginizi çekenlerin ve kaliteli kod içerdiğine inandıklarınızın kodlarını edinin ve okuyun. Kod roman okur gibi okunmaz elbette ama sadece baksanız bile bir göz aşinalığı edinirsiniz. Ayrıca yapabiliyorsanız koda ufak tefek müdahalelerde bulunup nasıl çalıştığını gözleyin. Bu sizi motive eder.</p>
<p>Son dönemde dikkatimi çeken ve bolca kaliteli Python kodu içeren <a href="http://pypy.org" target="_blank">PyPy</a> projesi var mesela. İnceleyin, gerçekten çok ilginçtir&#8230; Ayrıca Python&#8217;un kendi kodunu da inceleyebilirsiniz. Kodun C kısmından bahsetmiyorum; saf Python&#8217;la yazılmış modülleri inceleyin. Bizzat Python geliştiricileri ve katkıcıları tarafından yazılmış kodlar ve gayet güzeller.</p>
<p><span style="text-decoration:underline;"><strong>5- Temiz ve standartlara uygun kod yazın.<br />
</strong></span><br />
İster Özgür Yazılım geliştirin ister sahipli, kodlarınız mümkün olduğunca okunaklı ve standartlara uygun olmalıdır. Bu durum Özgür Yazılım projeleri için daha da önemli; çünkü sizden başkaları da programınızı geliştirmek isteyebilir. Sadece yazdıklarınızı anlamak bile yeterli bir beyinde verimli fikirler oluşturabilir. Ayrıca programınızı nasıl dağıtırsanız dağıtın kodun kirli ve standart dışı, yani kalitesiz, olması zamanla projenizi öldürebilir.</p>
<p>Meşhur PEP 8, Python&#8217;un stil rehberi gibidir. Onu okuyun.</p>
<p><a href="http://www.python.org/dev/peps/pep-0008/" target="_blank">http://www.python.org/dev/peps/pep-0008/</a></p>
<p>Bu da <a href="http://www.google.com" target="_blank">Google</a>&#8216;ın Python hakkındaki tavsiyeleri. Google gibi Python&#8217;u çok yoğun olarak kullanan kaliteli bir firmanın dediklerine kulak asmak gerekir.</p>
<p><a href="http://google-styleguide.googlecode.com/svn/trunk/pyguide.html">http://google-styleguide.googlecode.com/svn/trunk/pyguide.html</a></p>
<p><span style="text-decoration:underline;"><strong>6- Yarım yamalak öğrenmeyin.<br />
</strong></span><br />
Kullandığınız dilin bir özelliğini keşfettiğinizde, o konu hakkındaki her şeyi araştırın ve bulduğunuz bilgiyi elinizden geldiğince özümseyin. Bir şeyi yarım yamalak bilmek çok tehlikelidir.</p>
<p><span style="text-decoration:underline;"><strong>7- Daha fazlasını öğrenin.<br />
</strong></span><br />
Özellikle benim gibi orta düzey bir programcıysanız öğreneceğiniz çok şey vardır. Yazdığınız program muhtemelen çok daha güzel ve zekice yazılabilir. Sürekli araştırın, yeni özellikler ve teknikler öğrenip onları kullanmaya çalışın.</p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/buraxezer.wordpress.com/1465/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/buraxezer.wordpress.com/1465/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/buraxezer.wordpress.com/1465/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/buraxezer.wordpress.com/1465/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/buraxezer.wordpress.com/1465/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/buraxezer.wordpress.com/1465/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/buraxezer.wordpress.com/1465/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/buraxezer.wordpress.com/1465/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/buraxezer.wordpress.com/1465/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/buraxezer.wordpress.com/1465/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/buraxezer.wordpress.com/1465/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/buraxezer.wordpress.com/1465/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/buraxezer.wordpress.com/1465/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/buraxezer.wordpress.com/1465/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=buraxezer.wordpress.com&amp;blog=1358507&amp;post=1465&amp;subd=buraxezer&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://buraxezer.wordpress.com/2011/03/30/python-programcisina-tavsiyeler/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/fe0a1519fcf6d2efd7f1a0bbc20660d2?s=96&#38;d=http%3A%2F%2F1.gravatar.com%2Favatar%2Fad516503a11cd5ca435acc9bb6523536%3Fs%3D96" medium="image">
			<media:title type="html">purak</media:title>
		</media:content>
	</item>
		<item>
		<title>ElementTree ile XML oluşturmaya giriş</title>
		<link>http://buraxezer.wordpress.com/2011/03/28/elementtree-ile-xml-olusturmaya-giris/</link>
		<comments>http://buraxezer.wordpress.com/2011/03/28/elementtree-ile-xml-olusturmaya-giris/#comments</comments>
		<pubDate>Sun, 27 Mar 2011 22:18:21 +0000</pubDate>
		<dc:creator>Burak Sezer</dc:creator>
				<category><![CDATA[Programlama]]></category>
		<category><![CDATA[Python]]></category>

		<guid isPermaLink="false">http://buraxezer.wordpress.com/?p=1449</guid>
		<description><![CDATA[Uzun zaman önce söz verdiğim bu yazıyı şimdi yazayım dedim. Neyse, lafı uzatmadan başlayalım. Daha önce ElementTree&#8216;nin ne kadar güzel bir XML kitaplığı olduğundan bahsetmiştim. XML yapıları oluşturma konusunda da, ayrıştırma konusunda olduğu kadar pratik ve başarılı. Giriş düzeyinde bahsedeyim. Şöyle bir veri yığınını XML formatına dönüştürmek istiyorsunuz diyelim ki: Oluşturmak istediğimiz XML formatı da [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=buraxezer.wordpress.com&amp;blog=1358507&amp;post=1449&amp;subd=buraxezer&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>Uzun zaman önce söz verdiğim bu yazıyı şimdi yazayım dedim. Neyse, lafı uzatmadan başlayalım. Daha önce <a href="http://effbot.org/zone/element-index.htm">ElementTree</a>&#8216;nin ne kadar güzel bir <a href="http://en.wikipedia.org/wiki/XML">XML</a> kitaplığı olduğundan bahsetmiştim. XML yapıları oluşturma konusunda da, ayrıştırma konusunda olduğu kadar pratik ve başarılı. Giriş düzeyinde bahsedeyim.</p>
<p>Şöyle bir veri yığınını XML formatına dönüştürmek istiyorsunuz diyelim ki:</p>
<p><pre class="brush: python;">
source = &quot;bash&quot;
pkgname = &quot;bash&quot;
version = &quot;4.2&quot;
summary = &quot;The standard GNU Bourne again shell&quot;
homepage = &quot;http://tiswww.case.edu/php/chet/bash/bashtop.html&quot;
dependency = &quot;ncurses&quot;
</pre></p>
<p>Oluşturmak istediğimiz XML formatı da tam olarak şöyle:</p>
<p><pre class="brush: xml;">
&lt;package source=&quot;bash&quot;&gt;
    &lt;name version=&quot;4.1_p7&quot;&gt;bash&lt;/name&gt;
    &lt;summary&gt;The standard GNU Bourne again shell&lt;/summary&gt;
    &lt;homepage&gt;http://tiswww.case.edu/php/chet/bash/bashtop.html&lt;/homepage&gt;
    &lt;dependencies&gt;
        &lt;dependency&gt;ncurses&lt;/dependency&gt;
    &lt;/dependencies&gt;
&lt;/package&gt;
</pre></p>
<p>Bu işi yapacak Python kodu ise:</p>
<p><pre class="brush: python;">
import xml.etree.cElementTree as iks

source = &quot;bash&quot;
pkgname = &quot;bash&quot;
version = &quot;4.2&quot;
summary = &quot;The standard GNU Bourne again shell&quot;
homepage = &quot;http://tiswww.case.edu/php/chet/bash/bashtop.html&quot;
dependency = &quot;ncurses&quot;

root = iks.Element(&quot;package&quot;)
root.set(&quot;source&quot;, version)

name_tag = iks.SubElement(root, &quot;name&quot;)
name_tag.set(&quot;version&quot;, version)
name_tag.text = pkgname

summary_tag = iks.SubElement(root, &quot;summary&quot;)
summary_tag.text = summary

homepage_tag = iks.SubElement(root, &quot;homepage&quot;)
homepage_tag.text = homepage

dependencies_tag = iks.SubElement(root, &quot;dependencies&quot;)
dependency_tag = iks.SubElement(dependencies_tag, &quot;dependency&quot;)
dependency_tag.text = dependency

print(iks.tostring(root))
</pre></p>
<p>ElementTree&#8217;den bahsederken <em>cElementTree</em> kullanmama dikkat edin. cElementTree, tahmin edebileceğiniz gibi ElementTree&#8217;nin <em>C</em> ile gerçeklenmiş hali. Hız açısından her zaman C ile yazılmış modülleri tercih edin. Python 2 serisindeki <em>pickle/cPickle</em> ikilisi de buna bir örnek teşkil ediyor. </p>
<p>Kodu açıklamak istiyorum ama; açıklanacak fazla birşey de göremiyorum. Gayet sade ve anlaşılır. Biraz açıklama yapayım yine de: XML yapısındaki ilk girdiyi(<em>örnekte root yani, &#8220;package&#8221;</em>) oluşturmak için <code>Element</code> metodunu kullanıyoruz. Daha sonra alt girdiler oluşturmak içinse <code>SubElement</code> metodu devreye giriyor. <em>attribute</em> atamak için <code>set</code> metodu kullanılırken girdilere değer vermek için(doğru bir ifade mi?) <code>text</code> metodunu kullanmak yeterli oluyor. Bu kadar basit bir kodu nasıl açıklayacağımı pek bilemedim gördüğünüz gibi&#8230; <img src='http://s0.wp.com/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>
<p>Aslında önemli bir nokta var. ElementTree, tüm olumlu özelliklerine rağmen XML dosyaları oluşturmak konusunda biraz sıkıntılı. Yukarıdaki kod bloğunun nasıl çıktı verdiğine bakalım:</p>
<p><pre class="brush: plain;">&lt;package source=&quot;4.2&quot;&gt;&lt;name version=&quot;4.2&quot;&gt;bash&lt;/name&gt;&lt;summary&gt;The standard GNU Bourne again shell&lt;/summary&gt;&lt;homepage&gt;http://tiswww.case.edu/php/chet/bash/bashtop.html&lt;/homepage&gt;&lt;dependencies&gt;&lt;dependency&gt;ncurses&lt;/dependency&gt;&lt;/dependencies&gt;&lt;/package&gt;
</pre></p>
<p>Oluşturacağınız XML dosyasını insanlar okuyacaksa çok talihsiz bir çıktı bu. İşin kötüsü; kitaplık, girintileme sorununu çözmek için bir fonksiyon da sağlamıyor. Sorunun çözümü ElementTree&#8217;nin internet sitesinde bir yerlerde yatıyor. Aşağıdaki fonksiyonu koda eklediğimizde çıktı başta verdiğim XML yapısı gibi düzgün görünecek.</p>
<p><pre class="brush: python;">
def indent(elem, level = 0):
    i = &quot;\n&quot; + level*&quot;  &quot;
    if len(elem):
        if not elem.text or not elem.text.strip():
            elem.text = i + &quot;  &quot;
        #if not elem.tail or not elem.tail.strip():
        #    elem.tail = i
        for e in elem:
            indent(e, level+1)
            if not e.tail or not e.tail.strip():
                e.tail = i + &quot;  &quot;
        if not e.tail or not e.tail.strip():
            e.tail = i
    else:
        if level and (not elem.tail or not elem.tail.strip()):
            elem.tail = i
</pre></p>
<p>Çıktıyı ekrana yazdırmadan önce <code>root</code> değişkeni bu fonksiyondan geçmeli. Yani:</p>
<p><pre class="brush: python;">
.....
..
indent(root)
print(iks.tostring(root))
</pre></p>
<p>Girintilemenin doğru yapıldığını göreceksiniz.</p>
<p>ElementTree&#8217;nin benim burada anlattığımdan kat kat fazla yeteneği var. <a href="http://docs.python.org/library/xml.etree.elementtree.html">Orjinal dökümantasyonu</a> inceleyerek bolca bilgi edinebilirsiniz. Benimkisi biraz &#8220;<em>böyle bir şey de var himm</em>&#8221; denilecek türden bir yazı oldu. Ufak bir bilgi notu gibi&#8230; </p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/buraxezer.wordpress.com/1449/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/buraxezer.wordpress.com/1449/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/buraxezer.wordpress.com/1449/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/buraxezer.wordpress.com/1449/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/buraxezer.wordpress.com/1449/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/buraxezer.wordpress.com/1449/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/buraxezer.wordpress.com/1449/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/buraxezer.wordpress.com/1449/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/buraxezer.wordpress.com/1449/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/buraxezer.wordpress.com/1449/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/buraxezer.wordpress.com/1449/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/buraxezer.wordpress.com/1449/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/buraxezer.wordpress.com/1449/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/buraxezer.wordpress.com/1449/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=buraxezer.wordpress.com&amp;blog=1358507&amp;post=1449&amp;subd=buraxezer&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://buraxezer.wordpress.com/2011/03/28/elementtree-ile-xml-olusturmaya-giris/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/fe0a1519fcf6d2efd7f1a0bbc20660d2?s=96&#38;d=http%3A%2F%2F1.gravatar.com%2Favatar%2Fad516503a11cd5ca435acc9bb6523536%3Fs%3D96" medium="image">
			<media:title type="html">purak</media:title>
		</media:content>
	</item>
		<item>
		<title>Python&#8217;da string kullanarak fonksiyon çalıştırma</title>
		<link>http://buraxezer.wordpress.com/2011/02/03/pythonda-karakter-dizisi-kullanarak-fonksiyon-calistirma/</link>
		<comments>http://buraxezer.wordpress.com/2011/02/03/pythonda-karakter-dizisi-kullanarak-fonksiyon-calistirma/#comments</comments>
		<pubDate>Thu, 03 Feb 2011 21:40:34 +0000</pubDate>
		<dc:creator>Burak Sezer</dc:creator>
				<category><![CDATA[Programlama]]></category>
		<category><![CDATA[Python]]></category>

		<guid isPermaLink="false">http://buraxezer.wordpress.com/?p=1423</guid>
		<description><![CDATA[Başlık yine biraz alengirli &#8211; hatta garip &#8211; oldu ama; mevzu oldukça basit. Şöyle ki: bir modülün veya sınıfın metodlarına normal yollarla değil de metodların adlarını kullanarak erişmek istiyorsunuz. Eğer getattr fonksiyonunu biliyorsanız bu oldukça basit. Bir örnek üzerinden kısaca açıklayayım. Şuna benzer bir modülü(foo.py) kullanacağız diyelim ki: # -*- coding: utf-8 -*- def ben_bir_metodum(): [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=buraxezer.wordpress.com&amp;blog=1358507&amp;post=1423&amp;subd=buraxezer&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>Başlık yine biraz alengirli &#8211; hatta garip &#8211; oldu ama; mevzu oldukça basit. Şöyle ki: bir modülün veya sınıfın metodlarına normal yollarla değil de metodların adlarını kullanarak erişmek istiyorsunuz. Eğer <a href="http://effbot.org/zone/python-getattr.htm">getattr</a> fonksiyonunu biliyorsanız bu oldukça basit. Bir örnek üzerinden kısaca açıklayayım.</p>
<p>Şuna benzer bir modülü(<em>foo.py</em>) kullanacağız diyelim ki:</p>
<div class="highlight">
<pre><span style="color:#60a0b0;font-style:italic;"># -*- coding: utf-8 -*-</span>
<span style="color:#007020;font-weight:bold;">def</span> <span style="color:#06287e;">ben_bir_metodum</span>():
    <span style="color:#007020;font-weight:bold;">print</span>(<span style="color:#4070a0;">&quot;Bu bilgi ne işe yarar ki?&quot;</span>)

<span style="color:#007020;font-weight:bold;">def</span> <span style="color:#06287e;">ben_de_bir_digeri</span>():
    <span style="color:#007020;font-weight:bold;">print</span>(<span style="color:#4070a0;">&quot;Benim çok işime yaradı bugün!&quot;</span>)
</pre>
</div>
<p><BR>Fonksiyonları/metodları çalıştıracak kod parçası ise şu:</p>
<div class="highlight">
<pre><span style="color:#60a0b0;font-style:italic;"># -*- coding: utf-8 -*-</span>
<span style="color:#007020;font-weight:bold;">import</span> <span style="color:#0e84b5;font-weight:bold;">foo</span>

<span style="color:#60a0b0;font-style:italic;"># diyelim ki çağıracağımız metodları da biliyoruz</span>
<span style="color:#007020;font-weight:bold;">for</span> mtd <span style="color:#007020;font-weight:bold;">in</span> (<span style="color:#4070a0;">&#039;ben_bir_metodum&#039;</span>, <span style="color:#4070a0;">&#039;ben_de_bir_digeri&#039;</span>):
    metod <span style="color:#666666;">=</span> <span style="color:#007020;">getattr</span>(foo, mtd)
    metod()
    <span style="color:#007020;font-weight:bold;">print</span>(<span style="color:#4070a0;">&quot;-----&quot;</span>)
</pre>
</div>
<p><BR>Yukarıdakinin çıktısı şöyle olacak:</p>
<p><code>Bu bilgi ne işe yarar ki?<br />
-----<br />
Benim çok işime yaradı bugün!<br />
-----</code></p>
<p>Fonksiyon isimlerinin döngüye giriş sırasıyla oynayarak fonksiyonların çalıştırılma sıralarını da değiştirebilirsiniz.</p>
<p>Bu basit bilgi bugün çok işime yaradı! <img src='http://s0.wp.com/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/buraxezer.wordpress.com/1423/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/buraxezer.wordpress.com/1423/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/buraxezer.wordpress.com/1423/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/buraxezer.wordpress.com/1423/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/buraxezer.wordpress.com/1423/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/buraxezer.wordpress.com/1423/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/buraxezer.wordpress.com/1423/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/buraxezer.wordpress.com/1423/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/buraxezer.wordpress.com/1423/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/buraxezer.wordpress.com/1423/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/buraxezer.wordpress.com/1423/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/buraxezer.wordpress.com/1423/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/buraxezer.wordpress.com/1423/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/buraxezer.wordpress.com/1423/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=buraxezer.wordpress.com&amp;blog=1358507&amp;post=1423&amp;subd=buraxezer&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://buraxezer.wordpress.com/2011/02/03/pythonda-karakter-dizisi-kullanarak-fonksiyon-calistirma/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/fe0a1519fcf6d2efd7f1a0bbc20660d2?s=96&#38;d=http%3A%2F%2F1.gravatar.com%2Favatar%2Fad516503a11cd5ca435acc9bb6523536%3Fs%3D96" medium="image">
			<media:title type="html">purak</media:title>
		</media:content>
	</item>
		<item>
		<title>ElementTree ile XML ayrıştırmaya giriş</title>
		<link>http://buraxezer.wordpress.com/2011/02/01/elementtree-ile-xml-ayristirmaya-giris/</link>
		<comments>http://buraxezer.wordpress.com/2011/02/01/elementtree-ile-xml-ayristirmaya-giris/#comments</comments>
		<pubDate>Tue, 01 Feb 2011 11:20:36 +0000</pubDate>
		<dc:creator>Burak Sezer</dc:creator>
				<category><![CDATA[Programlama]]></category>
		<category><![CDATA[Python]]></category>

		<guid isPermaLink="false">http://buraxezer.wordpress.com/?p=1399</guid>
		<description><![CDATA[XML formatı, bildiğiniz gibi gerek İnternette gerekse programınızın iç yapısında veri alışverişi yapmak ve hiyerarşik bir formatta veri saklamak için kullanılabilecek bir format. YAML ve JSON kadar olmasa da kolayca yazılabilir bir yapıya sahip. Hemen her dilde de ayrıştırıcısı da var. Hem de birden fazla. Python&#8217;da da 3-5 tane ayrıştırıcısı var mesela. Bunların arasından -bence- [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=buraxezer.wordpress.com&amp;blog=1358507&amp;post=1399&amp;subd=buraxezer&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>XML formatı, bildiğiniz gibi gerek İnternette gerekse programınızın iç yapısında veri alışverişi yapmak ve hiyerarşik bir formatta veri saklamak için kullanılabilecek bir format. YAML ve JSON kadar olmasa da kolayca yazılabilir bir yapıya sahip.</p>
<p>Hemen her dilde de ayrıştırıcısı da var. Hem de birden fazla. Python&#8217;da da 3-5 tane ayrıştırıcısı var mesela. Bunların arasından -bence- en iyisi <em>ElementTree</em> kitaplığı. Hem oldukça basit hem de oldukça hızlı.</p>
<p>Python&#8217;un interaktif kabuğunu açıp şu komutu verelim:</p>
<p><code>&gt;&gt;&gt; import xml.etree.cElementTree as iks</code></p>
<p>Bu arada, ElementTree&#8217;nin C ile yazılmış bir gerçeklemesi de olduğundan hız için onu kullanmayı tercih ediyorum. Şimdi şöyle bir XML yapısını ayrıştırmak istediğimizi düşünelim:</p>
<div class="highlight">
<pre><span style="color:#062873;font-weight:bold;">&lt;package</span> <span style="color:#4070a0;">source="bash"</span><span style="color:#062873;font-weight:bold;">&gt;</span>
    <span style="color:#062873;font-weight:bold;">&lt;name</span> <span style="color:#4070a0;">version="4.1_p7"</span><span style="color:#062873;font-weight:bold;">&gt;</span>bash<span style="color:#062873;font-weight:bold;">&lt;/name&gt;</span>
    <span style="color:#062873;font-weight:bold;">&lt;summary&gt;</span>The standard GNU Bourne again shell<span style="color:#062873;font-weight:bold;">&lt;/summary&gt;</span>
    <span style="color:#062873;font-weight:bold;">&lt;homepage&gt;</span>http://tiswww.case.edu/php/chet/bash/bashtop.html<span style="color:#062873;font-weight:bold;">&lt;/homepage&gt;</span>
    <span style="color:#062873;font-weight:bold;">&lt;dependencies&gt;</span>
        <span style="color:#062873;font-weight:bold;">&lt;dependency</span> <span style="color:#4070a0;">category="sys-libs"</span><span style="color:#062873;font-weight:bold;">&gt;</span>ncurses<span style="color:#062873;font-weight:bold;">&lt;/dependency&gt;</span>
    <span style="color:#062873;font-weight:bold;">&lt;/dependencies&gt;</span>
<span style="color:#062873;font-weight:bold;">&lt;/package&gt;</span></pre>
</div>
<p><BR>Bu dosyayı spec.xml adında olarak kabul edelim ve ayrıştıralım.</p>
<p><code>&gt;&gt; data = iks.parse("spec.xml")</code></p>
<p>ElementTree onu hafızaya aldı, şimdi sıra ayrıştırmada. Diyelim ki  etiketinin taşıdığı veriyi almak istiyorsunuz:</p>
<p><code>&gt;&gt;&gt; a = data.find("name")</code></p>
<p>Bu kod parçası <code>data</code>&#8216;nın işaret ettiği veri içerisinde name etiketini araştırıyor. Eğer öyle bir etiket yakalayamazsa; <code>a</code>, <code>None</code> değerini alıyor. Biz yakaladığı durumu inceleyelim. Öncelikle tag metodu ile etiketin adını alalım:</p>
<p><code>&gt;&gt;&gt; a.tag<br />
'name'</code></p>
<p>Aslında burası biraz opsiyonel. Programın doğru veriyi alıp almadığını kontrol etmek için kullanılabilir. Etiketin taşıdığı veriyi almak içinse <code>text</code> metodunu kullanın:</p>
<p><code>&gt;&gt;&gt; a.text<br />
'bash'</code></p>
<p>Dikkatlice bakarsanız <code>name</code> etiketinin bash&#8217;dan başka bir başka veri daha taşıdığını görürsünüz. Bunlara <em>attribute</em> deniyor.</p>
<p><code>&gt;&gt;&gt; a.attrib<br />
{'version': '4.1_p7'}</code></p>
<p><code>attrib</code> metodu ile onları da avlıyoruz. Eğer birden fazla attribute olsaydı onlar da yukarıdaki sözlüğün içinde yer alacaklardı.</p>
<p>Diğer etiketleri de yukarıdaki biçimde avlıyabilirsiniz. Sadece <code>dependencies</code> etiketi biraz farklılık arzediyor. Öncelikle <code>dependencies</code> etiketini araştıralım. Eğer bulunamazsa yine <code>None</code> değeri dönecek.</p>
<p><code>&gt;&gt;&gt; a = data.find("dependencies")<br />
</code></p>
<p><code>dependencies</code> etiketi alt etiketlere sahip olduğu için onun içinde de <code>dependency</code> etiketini aramamız gerekecek.</p>
<div class="highlight">
<pre>&gt;&gt;&gt; a.findall("dependency")
[&lt;Element 'dependency' at 0xb70ee590&gt;]</pre>
</div>
<p><BR>Birden fazla bağımlılık olabileceği için dependency etiketini <code>findall()</code> metodu ile kontrol ettiğime ve geri dönen veri tipinin bir liste olduğuna dikkat edin. İlk örnekte de <code>findall()</code> kullanabilirdik ve yine bir liste dönerdi.</p>
<p>Aynı etiketten birden fazla varsa onların hepsini birden avlamak için şöyle pratik birşey kullanabilirsiniz:</p>
<p><code>&gt;&gt;&gt; b = [(depend.text, depend.attrib) for depend in a.findall("dependency")]<br />
&gt;&gt;&gt; b<br />
[('ncurses', {'category': 'sys-libs'})]</code></p>
<p>ElementTree&#8217;nin <code>parse()</code> metodunu kullanarak yapabilecekleriniz çok basit bir şekilde böyle. Yine ayrıştırma için kullanabileceğiniz <code>iterparse()</code> metodu da var.</p>
<div class="highlight">
<pre>&gt;&gt;&gt; p = iks.iterparse("spec.xml")
&gt;&gt;&gt; p
&lt;iterparse object at 0xb7362acc&gt;
&gt;&gt;&gt; for i in p:
...     print(i)
...
('end', &lt;Element 'name' at 0xb70ee890&gt;)
('end', &lt;Element 'summary' at 0xb70ee4e8&gt;)
('end', &lt;Element 'homepage' at 0xb70ee470&gt;)
('end', &lt;Element 'dependency' at 0xb70ee308&gt;)
('end', &lt;Element 'dependencies' at 0xb70ee398&gt;)
('end', &lt;Element 'package' at 0xb70ee458&gt;)</pre>
</div>
<p><BR>Gördüğünüz gibi <code>find</code> metodu kullanmaya gerek kalmadan tüm etiketleri yakaladı. Dönen listelerin ikinci üyesinden yukarda bahsettiğim metodları kullanarak veri çekebilirsiniz.</p>
<p>Bu arada, anlatımı Python-2.7.1 kullanarak yaptım. Py3k için, bildiğim kadarıyla hiçbir fark yok.</p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/buraxezer.wordpress.com/1399/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/buraxezer.wordpress.com/1399/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/buraxezer.wordpress.com/1399/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/buraxezer.wordpress.com/1399/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/buraxezer.wordpress.com/1399/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/buraxezer.wordpress.com/1399/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/buraxezer.wordpress.com/1399/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/buraxezer.wordpress.com/1399/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/buraxezer.wordpress.com/1399/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/buraxezer.wordpress.com/1399/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/buraxezer.wordpress.com/1399/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/buraxezer.wordpress.com/1399/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/buraxezer.wordpress.com/1399/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/buraxezer.wordpress.com/1399/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=buraxezer.wordpress.com&amp;blog=1358507&amp;post=1399&amp;subd=buraxezer&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://buraxezer.wordpress.com/2011/02/01/elementtree-ile-xml-ayristirmaya-giris/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/fe0a1519fcf6d2efd7f1a0bbc20660d2?s=96&#38;d=http%3A%2F%2F1.gravatar.com%2Favatar%2Fad516503a11cd5ca435acc9bb6523536%3Fs%3D96" medium="image">
			<media:title type="html">purak</media:title>
		</media:content>
	</item>
		<item>
		<title>Python içinden Python betiği çalıştırmak</title>
		<link>http://buraxezer.wordpress.com/2011/01/31/python-icinden-python-betigi-calistirmak/</link>
		<comments>http://buraxezer.wordpress.com/2011/01/31/python-icinden-python-betigi-calistirmak/#comments</comments>
		<pubDate>Mon, 31 Jan 2011 10:00:51 +0000</pubDate>
		<dc:creator>Burak Sezer</dc:creator>
				<category><![CDATA[Programlama]]></category>
		<category><![CDATA[Python]]></category>

		<guid isPermaLink="false">http://buraxezer.wordpress.com/?p=1372</guid>
		<description><![CDATA[Başlık biraz alengirli oldu, farkındayım ama daha basit bir başlık da düşünemiyorum şu an. Mesele şu: diyelim ki Python&#8217;la program yazdınız ve akışın bir yerinde bir Python betiğini çalıştırmanız gerekiyor. Bunu nizami bir şekilde nasıl yaparsınız? Cevap oldukça basit: script = open("script.py").read() objects = {} exec compile(script, "error", "exec") in objects print(objects.keys()) script.py ise şöyle [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=buraxezer.wordpress.com&amp;blog=1358507&amp;post=1372&amp;subd=buraxezer&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>Başlık biraz alengirli oldu, farkındayım ama daha basit bir başlık da düşünemiyorum şu an. Mesele şu: diyelim ki Python&#8217;la program yazdınız ve akışın bir yerinde bir Python betiğini çalıştırmanız gerekiyor. Bunu nizami bir şekilde nasıl yaparsınız?</p>
<p>Cevap oldukça basit:</p>
<div class="highlight">
<pre>script <span style="color:#666666;">=</span> <span style="color:#007020;">open</span>(<span style="color:#4070a0;">"script.py"</span>)<span style="color:#666666;">.</span>read()
objects <span style="color:#666666;">=</span> {}
<span style="color:#007020;font-weight:bold;">exec</span> <span style="color:#007020;">compile</span>(script, <span style="color:#4070a0;">"error"</span>, <span style="color:#4070a0;">"exec"</span>) <span style="color:#007020;font-weight:bold;">in</span> objects
<span style="color:#007020;font-weight:bold;">print</span>(objects<span style="color:#666666;">.</span>keys())</pre>
</div>
<p><BR><code>script.py</code> ise şöyle temsili birşey:</p>
<div class="highlight">
<pre><span style="color:#60a0b0;font-style:italic;">#!/usr/bin/env python</span>

bu_bir_string <span style="color:#666666;">=</span> <span style="color:#4070a0;">"bana string derler"</span>

<span style="color:#007020;font-weight:bold;">def</span> <span style="color:#06287e;">bir_fonksiyon</span>(parametre):
	<span style="color:#007020;font-weight:bold;">print</span>(parametre)

<span style="color:#007020;font-weight:bold;">def</span> <span style="color:#06287e;">bu_da_bir_digeri</span>(parametere):
	<span style="color:#007020;font-weight:bold;">print</span>("&gt;&gt;&gt; "+parametre)</pre>
</div>
<p><BR>İlk kod blogunu çalıştırınca şöyle bir çıktı elde edeceksiniz:</p>
<p><code>$ python calistir1.py<br />
['__builtins__', 'bir_fonksiyon', 'bu_bir_string', 'bu_da_bir_digeri']</code></p>
<p>Gördüğünüz gibi; objects sözlüğünün tüm üyelerini bir listeye aldı. <code>__builtins__</code>&#8216;i hariç tutarsak diğerlerinin tümü programcının tanımladığı fonksiyon ve değişkenler. Bunların hangisinin fonksiyon hangisinin sözlük, liste vb. şeyler olduğunu çeşitli tekniklerle kontrol edebilirsiniz. Şimdi de yukarıdaki metodla içe aldığımız Python betiğini nasıl ana program içinden çalıştıracağımızı görelim.</p>
<div class="highlight">
<pre><span style="color:#60a0b0;font-style:italic;">#!/usr/bin/env python</span>

script <span style="color:#666666;">=</span> <span style="color:#007020;">open</span>(<span style="color:#4070a0;">"calistir.py"</span>)<span style="color:#666666;">.</span>read()
objects <span style="color:#666666;">=</span> {}
<span style="color:#007020;font-weight:bold;">exec</span> <span style="color:#007020;">compile</span>(script, <span style="color:#4070a0;">"error"</span>, <span style="color:#4070a0;">"exec"</span>) <span style="color:#007020;font-weight:bold;">in</span> objects

<span style="color:#007020;font-weight:bold;">for</span> obj <span style="color:#007020;font-weight:bold;">in</span> objects<span style="color:#666666;">.</span>keys():
	<span style="color:#007020;font-weight:bold;">if</span> obj <span style="color:#666666;">==</span> <span style="color:#4070a0;">"__builtins__"</span>:
		<span style="color:#007020;font-weight:bold;">continue</span>
	<span style="color:#007020;font-weight:bold;">if</span> <span style="color:#007020;">type</span>(objects[obj]) <span style="color:#666666;">==</span> <span style="color:#007020;">str</span>:
		<span style="color:#007020;font-weight:bold;">print</span>(objects[obj])
	<span style="color:#007020;font-weight:bold;">else</span>:
		objects[obj](<span style="color:#4070a0;">"Python harika bir betik dili!"</span>)</pre>
</div>
<p><BR>Bunu çalıştırınca şöyle bir çıktı veriyor:</p>
<p><code>$ python calistir1.py<br />
Python harika bir betik dili!<br />
bana string derler<br />
&gt;&gt;&gt; Python harika bir betik dili!</code></p>
<p>Gördüğünüz gibi yakaladığını çalıştırdı. Fonksiyonları çalıştırmak için <code>objects[obj]()</code> kullandığıma dikkat edin. Hangi nesnenin bir fonksiyon hangisinin string hangisinin liste ya da başka bir veri tipi olduğunu ayırdetmenin pek çok yolu olabilir. Ben ayaküstü bir tane uydurdum. Ayrıca akışı da istediğiniz gibi kontrol edebilirsiniz.</p>
<p>Bu arada kodlar Python-2.x için geçerli. Python-3.x serisinde <code>exec</code> fonksiyonunun sentaksı farklı.</p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/buraxezer.wordpress.com/1372/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/buraxezer.wordpress.com/1372/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/buraxezer.wordpress.com/1372/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/buraxezer.wordpress.com/1372/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/buraxezer.wordpress.com/1372/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/buraxezer.wordpress.com/1372/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/buraxezer.wordpress.com/1372/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/buraxezer.wordpress.com/1372/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/buraxezer.wordpress.com/1372/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/buraxezer.wordpress.com/1372/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/buraxezer.wordpress.com/1372/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/buraxezer.wordpress.com/1372/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/buraxezer.wordpress.com/1372/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/buraxezer.wordpress.com/1372/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=buraxezer.wordpress.com&amp;blog=1358507&amp;post=1372&amp;subd=buraxezer&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://buraxezer.wordpress.com/2011/01/31/python-icinden-python-betigi-calistirmak/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/fe0a1519fcf6d2efd7f1a0bbc20660d2?s=96&#38;d=http%3A%2F%2F1.gravatar.com%2Favatar%2Fad516503a11cd5ca435acc9bb6523536%3Fs%3D96" medium="image">
			<media:title type="html">purak</media:title>
		</media:content>
	</item>
		<item>
		<title>yine ben!</title>
		<link>http://buraxezer.wordpress.com/2011/01/25/yine-ben/</link>
		<comments>http://buraxezer.wordpress.com/2011/01/25/yine-ben/#comments</comments>
		<pubDate>Tue, 25 Jan 2011 16:01:37 +0000</pubDate>
		<dc:creator>Burak Sezer</dc:creator>
				<category><![CDATA[Kişisel]]></category>

		<guid isPermaLink="false">http://buraxezer.wordpress.com/?p=1365</guid>
		<description><![CDATA[Bloga o kadar uzun bir zamandır yazmıyorum ki, arada sırada &#8220;blogu da çok boş bıraktım ulan&#8221; diye düşünmeden edemiyorum. Aslında bu bloga yazabileceğim ufak tefek de olsa bazı şeyler var ama canım yazı yazmayı hiç istemiyor. Eskiden de pek sevmezdim ama şimdi daha bir uzağım yazmaya sanki. Okulun can sıkıcı olan etabını tamamladığıma göre sevdiğim [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=buraxezer.wordpress.com&amp;blog=1358507&amp;post=1365&amp;subd=buraxezer&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>Bloga o kadar uzun bir zamandır yazmıyorum ki, arada sırada &#8220;blogu da çok boş bıraktım ulan&#8221; diye düşünmeden edemiyorum. Aslında bu bloga yazabileceğim ufak tefek de olsa bazı şeyler var ama canım yazı yazmayı hiç istemiyor. Eskiden de pek sevmezdim ama şimdi daha bir uzağım yazmaya sanki.</p>
<p>Okulun can sıkıcı olan etabını tamamladığıma göre sevdiğim işlere geri dönme vakti de geldi, en azından hakkettim bunu! <img src='http://s0.wp.com/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>
<p>Bu arada Hadron Alpha çıkalı neredeyse 5 ay oluyor. Yeni sürüm vakti geldi de geçti bile. Ama ortada yarım yamalak bir lpms var, gerisi yok! Gerçi zaman bulursam, büyük bir hızla, işleyen bir lpms ortaya çıkarabilirim ama <em>Beta</em>&#8216;nın <em>Alpha</em>&#8216;nın çizgisini yakalaması beni biraz yoracak gibi. Bu arada bir sürü test kullanıcısına ihtiyacım olacak. Umarım bu sefer ISO&#8217;daki teşekkür listesine adını yazacabileceğim daha fazla test kullanıcısı olur. Öte yandan <a href="https://docs.google.com/document/pub?id=1cHWHLq6hehuxcsY8sZLtoOz7u27ypivQ1xVL1a5mheE" target="_blank">şu belgeyi</a> de hala geliştiriyorum. Merak edenler varsa bakabilirler.</p>
<p>Çok uzak olmayan bir zamanda yeni ıvır zıvırlarla dönerim! <img src='http://s0.wp.com/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/buraxezer.wordpress.com/1365/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/buraxezer.wordpress.com/1365/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/buraxezer.wordpress.com/1365/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/buraxezer.wordpress.com/1365/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/buraxezer.wordpress.com/1365/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/buraxezer.wordpress.com/1365/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/buraxezer.wordpress.com/1365/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/buraxezer.wordpress.com/1365/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/buraxezer.wordpress.com/1365/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/buraxezer.wordpress.com/1365/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/buraxezer.wordpress.com/1365/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/buraxezer.wordpress.com/1365/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/buraxezer.wordpress.com/1365/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/buraxezer.wordpress.com/1365/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=buraxezer.wordpress.com&amp;blog=1358507&amp;post=1365&amp;subd=buraxezer&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://buraxezer.wordpress.com/2011/01/25/yine-ben/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/fe0a1519fcf6d2efd7f1a0bbc20660d2?s=96&#38;d=http%3A%2F%2F1.gravatar.com%2Favatar%2Fad516503a11cd5ca435acc9bb6523536%3Fs%3D96" medium="image">
			<media:title type="html">purak</media:title>
		</media:content>
	</item>
		<item>
		<title>Vala Programlama Dili</title>
		<link>http://buraxezer.wordpress.com/2010/11/16/vala-programlama-dili/</link>
		<comments>http://buraxezer.wordpress.com/2010/11/16/vala-programlama-dili/#comments</comments>
		<pubDate>Tue, 16 Nov 2010 09:44:56 +0000</pubDate>
		<dc:creator>Burak Sezer</dc:creator>
				<category><![CDATA[Programlama]]></category>
		<category><![CDATA[Vala]]></category>

		<guid isPermaLink="false">http://buraxezer.wordpress.com/?p=1338</guid>
		<description><![CDATA[Vala, modern programlama tekniklerini kullanarak, GNOME kitaplıkları(özellikle GLib ve GObject) üzerinde çalışan yazılımlar geliştirmenizi sağlayan yeni bir bir programlama dili. Gerçek manada kendi derleyicisi olan bir dil değil. Vala derleyicisi bu dilde yazılan kodları doğrudan makina koduna dönüştürmüyor; Vala kodunu C koduna çeviriyor ve GCC ile derliyor! Kulağa enteresan geliyor öyle değil mi&#8230; Vala&#8217;nın ortaya çıkışının, bence, [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=buraxezer.wordpress.com&amp;blog=1358507&amp;post=1338&amp;subd=buraxezer&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p><a href="http://live.gnome.org/Vala" target="_blank">Vala</a>, modern programlama tekniklerini kullanarak, <a href="http://gnome.org" target="_blank">GNOME</a> kitaplıkları(özellikle <a href="http://en.wikipedia.org/wiki/GLib" target="_blank">GLib</a> ve <a href="http://en.wikipedia.org/wiki/GObject" target="_blank">GObject</a>) üzerinde çalışan yazılımlar geliştirmenizi sağlayan yeni bir bir programlama dili. Gerçek manada kendi derleyicisi olan bir dil değil. Vala derleyicisi bu dilde yazılan kodları doğrudan makina koduna dönüştürmüyor; Vala kodunu C koduna çeviriyor ve GCC ile derliyor! Kulağa enteresan geliyor öyle değil mi&#8230; <img src='http://s0.wp.com/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>
<p>Vala&#8217;nın ortaya çıkışının, bence, GNOME geliştiricileri için mantıklı ve faydalı sebepleri var. GNOME/GTK+, C ile geliştirilen yazılımlar ve bu dilde kod yazmanın oldukça meşakatli bir iş olduğunu sanırım bir çoğumuz biliyordur. Hele ki GNOME gibi komple bir sistemi ortaya çıkarmanın zorluğu tartışılamaz&#8230;</p>
<p>Aslında C ile nesne yönelimine yaklaşmak için GObject denen bir sistem çok önceden geliştirildi ve söz konusu projelerde yoğun olarak kullanıldı ama C&#8217;nin yoruculuğu ve GTK+&#8217;nın insanı delirten yapısı bir yana, GObject&#8217;in kendisi bile öğrendiğim kadarıyla bir işkence aleti! Bu problemleri çözmek için Jürg Billeter ve Raffaele Sandrini Vala denen, bence, çok tatlı bir dil geliştirdiler.</p>
<p>Lafı fazla uzatmadan Vala&#8217;nın neye benzediğine bakalım; her zaman olduğu gibi bir &#8220;Merhaba Dünya!&#8221; uygulaması yazarak yapalım bunu:</p>
<div class="highlight">
<pre>void main() {
    print("Merhaba Dunya!\n");
}</pre>
</div>
<p>Bu örneği şu şekilde de yapabiliriz. Bu sefer Vala&#8217;nın nesne yönelimli özelliklerini kullanıyoruz:</p>
<div class="highlight">
<pre>class MerhabaDunya:Object {
    void selamla() {
        stdout.printf("Merhaba Dunya!\n");
    }

    static void main(string[] args) {
        var dunyayi = new MerhabaDunya();
        dunyayi.selamla();
    }
}</pre>
</div>
<p>Dilin genel itibariyle <em>Java/C#</em> sentaksına çok yakın olduğunu farketmişsinizdir.</p>
<p>Bu yazdıklarım <em>Vala Nedir?</em> yazısından öte bir anlam taşımadığından dilin genel özellikleri ve yukarıdaki satırların ne yaptıkları hakkında konuşmayacağım. Ama bu kodu nasıl derleyeceğinizden bahsedebilirim; öncelikle Vala derleyicisini(aslında bir önişlemci) kurmanız gerekiyor. Kurduktan sonra basitce şu komutu verebilirsiniz.</p>
<p><code>valac merhaba.vala<br />
</code><br />
Bu komut ilk Vala kodlarımızı önce C koduna dönüştürecek daha sonra ise GCC ile derleyerek makina koduna dönüştürecek. <code>./merhaba</code> komutunu kullanarak programın size &#8220;<em>merhaba</em>&#8221; demesini büyük bir zevkle(!) izleyebilirsiniz.</p>
<p>Vala derleyicisi biraz gcc ve saz arkadaşlarına benziyor. -o parametresi ise oluşan ikili dosyaya kendi isteğinize göre bir isim verebilirsiniz.</p>
<p><code>valac -o isim_verdim merhaba.vala<br />
</code><br />
Vala kodunun C koduna dönüştürüldüğünden bahsetmiştim, eğer neye benzediğini merak ediyorsanız <code>-C</code> parametresini kullanabilirsiniz.</p>
<p><code>valac -C merhaba.vala<br />
</code><br />
Ben bu komutu nesne yönelimli Vala örneği için kullandım. Tam 100 satırlık bir GObject kullanan C kodu üretmiş, oldukça karışık bir kod olduğunu da söylemem gerek. GObject ve C ile GNOME uygulaması geliştirmek istemezdim! GNOME&#8217;un neden çok yavaş geliştirildiğini şimdi daha iyi anlıyorum.</p>
<p>Şimdi de ilk verdiğimiz örneğin(3 satırlık <em>&#8220;Merhaba Dünya&#8221;</em> programcığı) C koduna bakalım; gayet anlaşılır duruyor.</p>
<pre style="color:#181615;background-color:#ffffff;"><em><span style="color:#898887;">/* sample2.c generated by valac 0.10.1, the Vala compiler</span></em><span style="color:#181615;">
</span><em><span style="color:#898887;"> * generated from sample2.vala, do not modify */</span></em><span style="color:#181615;">
</span><span style="color:#006e28;">#include </span><span style="color:#006e28;">&lt;glib.h&gt;</span><span style="color:#181615;">
</span><span style="color:#006e28;">#include </span><span style="color:#006e28;">&lt;glib-object.h&gt;</span>

<span style="color:#0057ae;">void</span><span style="color:#181615;"> _vala_main (</span><span style="color:#0057ae;">void</span><span style="color:#181615;">);

</span><span style="color:#0057ae;">void</span><span style="color:#181615;"> _vala_main (</span><span style="color:#0057ae;">void</span><span style="color:#181615;">) {
	g_print (</span><span style="color:#bf0303;">"Merhaba Dunya"</span><span style="color:#181615;">);
}

</span><span style="color:#0057ae;">int</span><span style="color:#181615;"> main (</span><span style="color:#0057ae;">int</span><span style="color:#181615;"> argc, </span><span style="color:#0057ae;">char</span><span style="color:#181615;"> ** argv) {
	g_type_init ();
	_vala_main ();
	</span><strong>return</strong><span style="color:#181615;"> </span><span style="color:#b08000;">0</span><span style="color:#181615;">;
}
</span></pre>
<p>Son derece sade(GObject kullanılan C kodu için!) ve tanıdık öyle değil mi! Tabii yine biraz GObject bulaşmış durumda.</p>
<p>Bu kadar teknik mumbo-jumbo size yettiyse Vala&#8217;nın ne kadar kullanılabilir olduğundan ve şu ana kadar nerelerde kullanıldığından bahsedelim.</p>
<p>Vala, ilk cümlemde oyuncak olarak nitelememe rağmen oyuncak bir dil ya da deneysel bir çalışma değil. Tamamen gerçek ihtiyaçlar üzerine geliştirilmiş, Java/C# sentaksını kullandığı için bence pek çok sorunu önceden aşmış bir dil. Onunla her türlü uygulama geliştirebilirsiniz. Masaüstü uygulamalarından komut satırı araçlarına varıncaya kadar hemen herşey&#8230; Ama bildiğim kadarıyla masaüstü uygulamaları geliştirecekseniz GTK+ kodlamak zorundasınız&#8230;</p>
<p>Ayrıca doğrudan C koduna dönüştürülerek derlendiği için Python, C#, Ruby vb. dillerde elde edeceğiniz performanstan daha fazlasını elde etmeniz gayet normal. Bu konuyla ilgini tatminkar bir belge aşağıdaki  adreste var.</p>
<p><a href="http://code.google.com/p/vala-benchmarks/wiki/BenchResults">http://code.google.com/p/vala-benchmarks/wiki/BenchResults</a></p>
<p>Vala&#8217;yı bugüne kadar kimler kullandı ve hayatımızı nasıl etkileyecek derseniz:</p>
<ul>
<li><a href="http://yorba.org/" target="_blank">Yorba Vakfı</a> tarafından geliştirilen GTK+ temelli masaüstü uygulamaları Vala ile geliştiriliyor. Bu yazılımlardan birini tanıyor olma ihtimaliniz çok yüksek, çünkü o Ubuntu&#8217;nun son sürümünde önemli bir öntanımlı program; <a href="http://yorba.org/shotwell/" target="_blank">Shotwell</a>!</li>
<li>Ubuntu, bildiğiniz gibi, bir sonraki sürümünde(11.04) GNOME&#8217;u öntanımlı masaüstü olarak kullanmaktan vazgeçerek kendi geliştirdiği, GNOME tabanlı, <a href="http://unity.ubuntu.com/" target="_blank">Unity</a> masaüstünü kullanmaya karar verdi. Unity Vala ile geliştiriliyor ve şu ana kadar farkettiğim en önemli Vala projesi. Canonical&#8217;in, Ubuntu&#8217;nun geleceği için bu kadar önemli bir projeyi geliştirmek için Vala&#8217;yı tercih etmesi sanırım bu dilin geleceği hakkında sağlam bir fikir veriyordur.</li>
</ul>
<p>Tüm bunlara rağmen sorunlar da yok değil.</p>
<ul>
<li>Adam akıllı bir dökümantasyon yok. Bu çok önemli bir sorun. Çünkü uygulama geliştirmek için bu dili öğrenmek isteyenler ya da benim gibi heveslilerin kapsamlı ve güvenilir bilgi alabileceği bir kaynak yok. İnternet üzerinde bölük pörçük bir takım tutoriallar ve kod örnekleri var. Onlar da yeterli değil zaten. Vala ile ilgileniyorsanız ve daha önceden programlama deneyimiziniz yoksa, özellikle C# ve Java&#8217;da, Vala&#8217;yı unutabilirsiniz. Kendinize başka bir dil bakın!</li>
<li>Vala çok genç bir dil olduğundan internet üzerinde bu dili bilen insan sayısı çok çok az. Bu önemli çünkü Vala ile yazılım geliştirirken o adamlara ihtiyacınız olacak!</li>
<li>Yine çok genç bir dil olduğu için bilinen IDE&#8217;ler ve Emacs, VIM gibi editörler tarafından pek desteklenmiyor. Gedit ve MonoDevelop için eklentiler var sanırım. Bu arada <a href="http://www.valaide.org/" target="_blank">Valide</a> isminde(cidden!) bir IDE&#8217;si var. O da Vala ile yazılmış.</li>
<li> Esas olarak GObject ile sorunlar yaşayan GNOME geliştiricileri için geliştirildiğinden onunla herşeyi çok rahat bir biçimde yapamayabilirsiniz.</li>
</ul>
<p>Artılar eksileri götürünce benim için oldukça ilginç, eğlenceli ve hoş bir dil kalıyor geriye. Şu an kısıtlamaları olsa da gelecekte nasıl bir noktaya evrileceğini kestirmek güç. Zaman gösterecek&#8230;</p>
<p>Vala hakkında daha fazla bilgi edinmek için <a href="http://live.gnome.org/Vala/Documentation" target="_blank">dökümantasyon sayfasını</a> inceleyebilirsiniz.</p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/buraxezer.wordpress.com/1338/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/buraxezer.wordpress.com/1338/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/buraxezer.wordpress.com/1338/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/buraxezer.wordpress.com/1338/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/buraxezer.wordpress.com/1338/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/buraxezer.wordpress.com/1338/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/buraxezer.wordpress.com/1338/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/buraxezer.wordpress.com/1338/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/buraxezer.wordpress.com/1338/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/buraxezer.wordpress.com/1338/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/buraxezer.wordpress.com/1338/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/buraxezer.wordpress.com/1338/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/buraxezer.wordpress.com/1338/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/buraxezer.wordpress.com/1338/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=buraxezer.wordpress.com&amp;blog=1358507&amp;post=1338&amp;subd=buraxezer&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://buraxezer.wordpress.com/2010/11/16/vala-programlama-dili/feed/</wfw:commentRss>
		<slash:comments>4</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/fe0a1519fcf6d2efd7f1a0bbc20660d2?s=96&#38;d=http%3A%2F%2F1.gravatar.com%2Favatar%2Fad516503a11cd5ca435acc9bb6523536%3Fs%3D96" medium="image">
			<media:title type="html">purak</media:title>
		</media:content>
	</item>
		<item>
		<title>Hadron&#8217;un geleceği hakkında</title>
		<link>http://buraxezer.wordpress.com/2010/11/09/hadronun-gelecegi-hakkinda/</link>
		<comments>http://buraxezer.wordpress.com/2010/11/09/hadronun-gelecegi-hakkinda/#comments</comments>
		<pubDate>Tue, 09 Nov 2010 12:15:46 +0000</pubDate>
		<dc:creator>Burak Sezer</dc:creator>
				<category><![CDATA[Ar-Ge]]></category>
		<category><![CDATA[Kişisel]]></category>
		<category><![CDATA[Linux]]></category>
		<category><![CDATA[lpms]]></category>

		<guid isPermaLink="false">http://buraxezer.wordpress.com/?p=1331</guid>
		<description><![CDATA[Aslında bu konu hakkında konuşmaktan nefret ediyorum artık ama şu an bunu yapmaya mecburum. Blogun sessiz kaldığı zaman diliminde kimi arkadaşlar bana &#8220;Hadron ne oldu öldü mü&#8221;? ayarında sorular soruyorlardı; bu soruların sorulmasının en temel sebeplerinden birisi blogun sessiz kalması, yani benden dışarıya hiçbir bilgi kırıntısının sızmaması idi. Hadron hiç kimsenin umrunda olmayan geleceksiz bir [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=buraxezer.wordpress.com&amp;blog=1358507&amp;post=1331&amp;subd=buraxezer&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>Aslında bu konu hakkında konuşmaktan nefret ediyorum artık ama şu an bunu yapmaya mecburum. Blogun sessiz kaldığı zaman diliminde kimi arkadaşlar bana &#8220;Hadron ne oldu öldü mü&#8221;? ayarında sorular soruyorlardı; bu soruların sorulmasının en temel sebeplerinden birisi blogun sessiz kalması, yani benden dışarıya hiçbir bilgi kırıntısının sızmaması idi.</p>
<p><a href="http://hadronproject.org">Hadron</a> hiç kimsenin umrunda olmayan geleceksiz bir proje olabilir, ki sanırım öyle, ama henüz ölmüş değil. Yakın bir gelecekte de ölecek gibi durmuyor benim için.</p>
<p>Okulun bu dönem can sıkıcı olması ve benim kafa dinlemeye ihtiyaç duymam Hadron&#8217;un gelişimini yaklaşık 2-2.5 aydır durma noktasına getirdi. Ama elimde bir sonraki sürümün nihai planları var! <img src='http://s0.wp.com/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>
<p>Düşüncelerimi temize çekmek adına ufak bir belge oluşturdum. Onu <a href="http://docs.google.com">Google Docs</a> üzerinde tutuyorum. Aslında Hadron&#8217;un wikisinde de tutabilirdim ama oraya yazmak pek keyifli gelmiyor bana&#8230;</p>
<p><strong>Hadron Beta İçin Fikir Defteri</strong> dediğim bu belgede sistem genelinde yapmayı planladığım tüm geliştirme faliyetlerini özetledim. Onu sürekli güncel tutacağım. Yani içeriği her an değişebilir; yeni bilgiler eklenebilir ya da bazı maddeler çıkarılabilir.</p>
<p>Bu plana ne derece sadık kalacağımı ve yeni sürümün ne zaman çıkacağını hiç sormayın. İş zor, ama hiç ilgi görmeyen bir işe emek vermek çok daha zor! Süreç uzayabildiği kadar uzayabilir&#8230;</p>
<p><a href="https://docs.google.com/document/pub?id=1cHWHLq6hehuxcsY8sZLtoOz7u27ypivQ1xVL1a5mheE" target="_blank">Belgeyi okumak için tıklayın.</a></p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/buraxezer.wordpress.com/1331/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/buraxezer.wordpress.com/1331/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/buraxezer.wordpress.com/1331/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/buraxezer.wordpress.com/1331/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/buraxezer.wordpress.com/1331/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/buraxezer.wordpress.com/1331/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/buraxezer.wordpress.com/1331/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/buraxezer.wordpress.com/1331/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/buraxezer.wordpress.com/1331/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/buraxezer.wordpress.com/1331/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/buraxezer.wordpress.com/1331/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/buraxezer.wordpress.com/1331/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/buraxezer.wordpress.com/1331/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/buraxezer.wordpress.com/1331/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=buraxezer.wordpress.com&amp;blog=1358507&amp;post=1331&amp;subd=buraxezer&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://buraxezer.wordpress.com/2010/11/09/hadronun-gelecegi-hakkinda/feed/</wfw:commentRss>
		<slash:comments>10</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/fe0a1519fcf6d2efd7f1a0bbc20660d2?s=96&#38;d=http%3A%2F%2F1.gravatar.com%2Favatar%2Fad516503a11cd5ca435acc9bb6523536%3Fs%3D96" medium="image">
			<media:title type="html">purak</media:title>
		</media:content>
	</item>
		<item>
		<title>Yeni başlangıç</title>
		<link>http://buraxezer.wordpress.com/2010/11/03/yeni-baslangic/</link>
		<comments>http://buraxezer.wordpress.com/2010/11/03/yeni-baslangic/#comments</comments>
		<pubDate>Wed, 03 Nov 2010 13:47:09 +0000</pubDate>
		<dc:creator>Burak Sezer</dc:creator>
				<category><![CDATA[Kişisel]]></category>

		<guid isPermaLink="false">http://buraxezer.wordpress.com/?p=1291</guid>
		<description><![CDATA[Kararımdan dönmek pek adetim değildir aslında. Ama yazmak istiyorum; kendimi sansürlemek de saçma olduğuna göre bu blogu kapalı tutmanın bir manası yok. Herşeye  bir ara vermek gerçekten iyiydi, size de tavsiye ederim. Şu an tek canımı sıkan şey eski yazıların akıbetinin ne olacağı; bir çoğu güncelliğini yitirdi aslında. Belki bazılarını gözden geçirip tekrar yayınlarım&#8230; Şimdiden [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=buraxezer.wordpress.com&amp;blog=1358507&amp;post=1291&amp;subd=buraxezer&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>Kararımdan dönmek pek adetim değildir aslında. Ama yazmak istiyorum; kendimi sansürlemek de saçma olduğuna göre bu blogu kapalı tutmanın bir manası yok.</p>
<p>Herşeye  bir ara vermek gerçekten iyiydi, size de tavsiye ederim. <img src='http://s0.wp.com/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>
<p>Şu an tek canımı sıkan şey eski yazıların akıbetinin ne olacağı; bir çoğu güncelliğini yitirdi aslında. Belki bazılarını gözden geçirip tekrar yayınlarım&#8230; Şimdiden kestirmek güç.</p>
<p>Yakında yeni ıvır zıvırlarla dönerim&#8230;</p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/buraxezer.wordpress.com/1291/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/buraxezer.wordpress.com/1291/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/buraxezer.wordpress.com/1291/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/buraxezer.wordpress.com/1291/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/buraxezer.wordpress.com/1291/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/buraxezer.wordpress.com/1291/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/buraxezer.wordpress.com/1291/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/buraxezer.wordpress.com/1291/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/buraxezer.wordpress.com/1291/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/buraxezer.wordpress.com/1291/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/buraxezer.wordpress.com/1291/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/buraxezer.wordpress.com/1291/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/buraxezer.wordpress.com/1291/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/buraxezer.wordpress.com/1291/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=buraxezer.wordpress.com&amp;blog=1358507&amp;post=1291&amp;subd=buraxezer&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://buraxezer.wordpress.com/2010/11/03/yeni-baslangic/feed/</wfw:commentRss>
		<slash:comments>5</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/fe0a1519fcf6d2efd7f1a0bbc20660d2?s=96&#38;d=http%3A%2F%2F1.gravatar.com%2Favatar%2Fad516503a11cd5ca435acc9bb6523536%3Fs%3D96" medium="image">
			<media:title type="html">purak</media:title>
		</media:content>
	</item>
		<item>
		<title>debootstrap kullanımı</title>
		<link>http://buraxezer.wordpress.com/2009/10/14/gentoo-altindan-debian-kurulumu-debootstrap-kullanimi/</link>
		<comments>http://buraxezer.wordpress.com/2009/10/14/gentoo-altindan-debian-kurulumu-debootstrap-kullanimi/#comments</comments>
		<pubDate>Wed, 14 Oct 2009 10:58:04 +0000</pubDate>
		<dc:creator>Burak Sezer</dc:creator>
				<category><![CDATA[Debian]]></category>
		<category><![CDATA[Gentoo]]></category>
		<category><![CDATA[Linux]]></category>

		<guid isPermaLink="false">http://buraxezer.wordpress.com/?p=898</guid>
		<description><![CDATA[Gençliğimde Debian altından Gentoo kurmuştum. Zaman geçti, ihtiyarladım&#8230; Şimdi Gentoo altından Debian kuruyorum. Gerçi ilk komuttan sonrası Gentoo&#8217;yu ilgilendirmiyorya neyse&#8230; Portage ağacını güncelledikten sonra aşağıdaki komutu verip dpkg ve debootstrap&#8216;ı kuruyoruz. Bilmeyenler için anlatalım: dpkg, Debian&#8217;ın paket yönetim sistemidir. debootstrap ise dpkg kullanarak bir Debian sistem hazırlamayı sağlayan betiktir. # emerge dpkg debootstrap Bu komutla [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=buraxezer.wordpress.com&amp;blog=1358507&amp;post=898&amp;subd=buraxezer&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p style="text-align:justify;"><img class="alignleft" title="debian" src="http://www.debian.org/logos/openlogo-75.png" alt="" width="75" height="92" />Gençliğimde Debian altından Gentoo <a href="http://www.linuxnet.com.tr/modules.php?name=Forums&amp;file=viewtopic&amp;t=11547">kurmuştum</a>. Zaman geçti, ihtiyarladım&#8230; Şimdi Gentoo altından Debian kuruyorum. Gerçi ilk komuttan sonrası Gentoo&#8217;yu ilgilendirmiyorya neyse&#8230;</p>
<p style="text-align:justify;">Portage ağacını güncelledikten sonra aşağıdaki komutu verip <em>dpkg</em> ve <em>debootstrap</em>&#8216;ı kuruyoruz. Bilmeyenler için anlatalım: dpkg, Debian&#8217;ın paket yönetim sistemidir. debootstrap ise dpkg kullanarak bir Debian sistem hazırlamayı sağlayan betiktir.</p>
<p style="text-align:justify;"><code># emerge dpkg debootstrap</code></p>
<p style="text-align:justify;">Bu komutla dpkg&#8217;yi derliyoruz.  İşin Gentoo bağlantılı kısmı bu kadar. Eğer zaten Debian kullanıyorum ben diyorsanız sadece debootstrap kurmanız yeterli olacaktır.  <strong>Bu noktadan sonrasında Gentoo yok, sisteminizde sadece Debian ya da bir türevi varsa rehberi izlemeye devam edebilirsiniz</strong>. Aşağıdaki komutu kullanın:</p>
<p style="text-align:justify;"><code># apt-get install debootstrap</code></p>
<p style="text-align:justify;">Debian altında da işimizi hallettikten sonra sıra kurulum yapacağımız yeri seçmeye geliyor. Ev dizininizdeki bir klasöre Debian kurabilirsiniz. Ya da kök dizinindeki herhangi bir yere&#8230; Ben açıp çatır çatır kullanırım diyorsanız disk bölümünü bağladığınız yeri debootstrap&#8217;a hedef göstermeniz gerekli. Ben ev dizinimdeki <em>debian</em> dizinine Debian GNU/Linux kuracağım birazdan <img src='http://s0.wp.com/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>
<p style="text-align:justify;"><code># cd ~</code><br />
<code># mkdir debian</code><br />
<code># debootstrap --arch=i386 lenny debian http://ftp.us.debian.org/debian</code></p>
<p style="text-align:justify;">Son verdiğim komuta dikkat edin. Ben Debian&#8217;ın <strong><em>lenny</em></strong> kod adlı kararlı sürümünü kuruyorum. Eğer diğer sürümleri kurmak istiyorsanız onun kod adını yazın. 3. parametre olan debian ise kurmak istediğimiz dizinin adı. Yani siz ne seçtiyseniz o olacak. /mnt/sda7 gibi bir ifade de yer alabilirdi orada. Son parametre ise depo adresi. Güncel ve hızlı bir depo seçmeye özen gösterseniz iyi olur. <code>--arch</code> ifadesi ise sistem mimarisini gösteriyor. Ben i386 kurmayı tercih ediyorum. amd64 falan da seçebilirsiniz ama 32bit çekirdek ile chroot kullanamaz ve sistemi açamazsınız. <img src='http://s0.wp.com/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>
<p style="text-align:justify;"><code>gnu ~ # debootstrap --arch=i386 lenny debian http://godel.cs.bilgi.edu.tr/debian<br />
I: Retrieving Release<br />
I: Retrieving Packages<br />
I: Validating Packages<br />
I: Resolving dependencies of required packages...<br />
I: Resolving dependencies of base packages...<br />
I: Checking component main on http://godel.cs.bilgi.edu.tr/debian...<br />
I: Retrieving adduser<br />
I: Validating adduser<br />
I: Retrieving apt<br />
I: Validating apt<br />
I: Retrieving apt-utils<br />
I: Validating apt-utils<br />
I: Retrieving aptitude<br />
.<br />
.<br />
.<br />
I: Base system installed successfully.<br />
</code></p>
<p style="text-align:justify;">Çıktılar böyle uzar gider&#8230;</p>
<p style="text-align:justify;"><span style="background-color:#ffffff;">debootstrap işini hallettikten sonra bizim işimiz bitmiyor. Şu an elimizde sadece bir Debian taban sistemi var. Üzerine bir sistem inşa etmeden önce onu adam etmemiz gerekecek. Çekirdek kurulumu ve bir kaç ayarlama gibi işlerimiz var. Tüm bunlardan evvel proc ve sys dosya sistemlerini bağlayalım.  Daha sonra chroot komutu ile yeni Debian&#8217;ımızı kullanmaya başlayalım. Bu noktada hala Gentoo kullanıyorum&#8230;</span></p>
<p style="text-align:justify;"><code># mount /proc debian/proc -t proc</code><br />
<code># mount sysfs debian/sys -t sysfs</code><br />
<code># chroot debian /bin/bash</code></p>
<p style="text-align:justify;">chroot&#8217;dan sonra gelen debian ifadesi değişebilir. Siz sistemi nereye kurduysanız oranın adresini yazın. /mnt/sda7 gibi. Şimdi şu komutu verin, ortam değişkenlerini güncelleyelim:</p>
<p style="text-align:justify;"><code># source /etc/profile</code></p>
<p style="text-align:justify;">Artık çekirdeği kurabiliriz. Aşağıdaki komutla bu yazıyı yazdığım gün kullanılan en güncel Debian Lenny çekirdeğini kuruyorum. Siz 2 yıl sonra bu yazıyı okuduğunuzda daha güncel bir çekirdek kuracaksınız ve dolayısıyla komutu değiştirmeniz gerekecek yeni çekirdek sürümüne göre.</p>
<p style="text-align:justify;"><code># apt-get install linux-image-2.6.26-2-686</code></p>
<p style="text-align:justify;">i686 mimarisine göre derlenmiş çekirdeği kurduğuma dikkat edin!</p>
<p style="text-align:justify;">Meselenin ana hatları böyle, bundan sonrası için internetteki kaynakları incelemelisiniz. Geriye X.Org ve masaüstü ortamı kurulumu kaldı zaten.  chroot&#8217;dan çıkmadan önce root parolanızı mutlaka belirleyin! Eğer ayrı bir disk bölümüne kurulum yaptıysanız menu.lst dosyasında değişiklik yaparak yeni Debian&#8217;ı açabilirsiniz. Ayrıca kendinize güzel bir sources.list dosyası hazırlamanızı öneriyorum. Mümkünse <strong>non-free</strong> depoları kullanmayın!</p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/buraxezer.wordpress.com/898/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/buraxezer.wordpress.com/898/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/buraxezer.wordpress.com/898/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/buraxezer.wordpress.com/898/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/buraxezer.wordpress.com/898/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/buraxezer.wordpress.com/898/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/buraxezer.wordpress.com/898/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/buraxezer.wordpress.com/898/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/buraxezer.wordpress.com/898/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/buraxezer.wordpress.com/898/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/buraxezer.wordpress.com/898/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/buraxezer.wordpress.com/898/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/buraxezer.wordpress.com/898/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/buraxezer.wordpress.com/898/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=buraxezer.wordpress.com&amp;blog=1358507&amp;post=898&amp;subd=buraxezer&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://buraxezer.wordpress.com/2009/10/14/gentoo-altindan-debian-kurulumu-debootstrap-kullanimi/feed/</wfw:commentRss>
		<slash:comments>19</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/fe0a1519fcf6d2efd7f1a0bbc20660d2?s=96&#38;d=http%3A%2F%2F1.gravatar.com%2Favatar%2Fad516503a11cd5ca435acc9bb6523536%3Fs%3D96" medium="image">
			<media:title type="html">purak</media:title>
		</media:content>

		<media:content url="http://www.debian.org/logos/openlogo-75.png" medium="image">
			<media:title type="html">debian</media:title>
		</media:content>
	</item>
	</channel>
</rss>
