<?xml version="1.0" encoding="UTF-8"?>
<!-- Generated on Thu, 29 Jul 2010 19:51:57 -0400 -->
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
  <channel>
    <atom:link href="http://hasanozgan.com/index.php" rel="self" type="application/rss+xml" />
    <title>Hasan Ozgan</title>
    <link>http://hasanozgan.com</link>
    <description>Internet Stratejileri, Yazılım Geliştirme ve Mimarileri Üzerine</description>
    <language>tr-tr</language>
    <managingEditor>hasan@ozgan.net (Hasan Ozgan)</managingEditor>
    <webMaster>hasan@ozgan.net (Hasan Ozgan)</webMaster>
    <pubDate>Thu, 29 Jul 2010 19:51:57 -0400</pubDate>
    <generator>Joy Framework RSS Generator</generator>
    <item>
      <title><![CDATA[Zamanı Sahiplenmek]]></title>
      <description><![CDATA[<p>Yaklaşık 10 yılı aşkın bir süredir, yazılım sektörünün içindeyim. Hani derler ya! neler geldi neler geçti gözümün önünden. Netscape'in kaynak
kodlarını açmasıyla başladı benim için serüven. <a target="other" href="http://en.wikipedia.org/wiki/Mirc">mIRC</a>, <a target="other" href="http://en.wikipedia.org/wiki/Hotmail">Hotmail</a>, <a target="other" href="http://en.wikipedia.org/wiki/ICQ">ICQ</a> ve <a target="other" href="http://en.wikipedia.org/wiki/Altavista">Altavista</a> arasında gidip gelirken bugüne gelmişiz
aniden.</p>

<p>10 yılın muhasebesini yaparken düşündüklerimin ne kadarını yaptığımı ve yanlış yaptığım gibi karmaşık bir denklemi
çözmekle uğraşırken, düşüncemi paylaşmak ve faydalanmak istedim kitlelerin bilgeliğinden.
</p>
<p>
    <i>İnternet ve açık kaynak projeler, kimler için bir fırsata dönüştü? Nasıl ve Neden?</i>
</p>

<p>Aklıma ilk gelen örnekler; <a target="other" href="http://en.wikipedia.org/wiki/Linux">Linux</a>, <a target="other" href="http://en.wikipedia.org/wiki/Apache">Apache</a>, <a target="other" href="http://en.wikipedia.org/wiki/PHP">PHP</a>, <a target="other" href="http://en.wikipedia.org/wiki/Gnome">Gnome</a>, <a target="other" href="http://en.wikipedia.org/wiki/KDE">KDE</a>, <a target="other" href="http://en.wikipedia.org/wiki/Mozilla">Mozilla</a>, <a target="other" href="http://en.wikipedia.org/wiki/Wordpress">Wordpress</a> vb.. O gün bu projelere destek olanlar kendi iş modellerini bu
projelerin üzerine kurarak gönüllü faaliyetlerinden para kazanmalarını sağlayacakalrı bir gelir modeli oluşturmaları bir
yana saygınlıkta kazandılar. Çok büyük firmalara girdiler, Yahoo ve Google gibi.</p>

<p>Bu insanlar üniversite yıllarında hobi olarak başladıkları açık kaynak projeler, uzmanlaştıkları alan oluverdi ve proje
popülerleştikçede aranmaya başladı bu insanlar. Birkaç isim vermek gerekirse, XDebug ve eZ Publish (<a target="other" href="http://ez.no">ez.no</a>) sahibi, Derick Rethans ve
şuan Novel'in Mono takımında geliştirici takımında olan Michael Hutchinson aklıma gelen ilk örnekler. Michael üniversite yıllarında
MonoDevelop ASP.NET eklentisi geliştirmekle uğraşması, bugün  O'na çok büyük bir şirketin kapılarını açtı. Örnekler çok fazla bu satırları
yazarken aklıma ilk gelenleri paylaştım. Eminim sizinde bu yazdıklarımı okurken bir sürü örnek geliyordur.</p>

<p>Peki Türkiye'de durum nasıl; ilk aklıma gelen örnekleri <a target="other" href="http://linux.org.tr">LKD</a>, <a target="other" href="http://csystem.org">CSD</a>, <a target="other" href="http://pardus.org.tr">Pardus</a>, <a target="other" href="http://webrazzi.com">Webrazzi</a>, <a target="other" href="http://fazlamesai.com"Fazlamesai</a> ve <a target="other" href="http://enderuniz.org">EnderUnix</a>. Bu gruplarda kendi içlerinde de başarılı kişiler çıkardılar. Örnek vermek gerekirse PostgreSQL maintainerlarından <a target="other" href="http://gunduz.org">Devrim Gündüz</a> ve bir blogtan kendi işini kuran Arda Kutsal.</p>

<p>Tekrar soruma geri döneyim, devleri dize getiren kitleleri peşinden sürükleyen projelere imza atan bu insanlar, nasıl oldu da bunu başardılar.</p>

<p>Buna katılırsınız ya da katılmazsınız bilmiyorum ama bence bunun sebebi, <b>tüm enerjilerine inandıkları bir alana aktarmak
yani <u>uzmanlaşmak</u></b>! Sabırla bu alanda çalışmalar yapmak ve bir meritokrasi içerisinde yer edinmek. Outliers kitabında Malcolm Gladwell'in
kitabında bahsettiği 10.000 saat çalışmamızı önermesinin sebebi işte bu. </p>

<p>Her yıl internet sektöründe (memcached, redis, casandra, ruby on rails, blog, micro blog, social network vb) popülerleşen proje, teknoloji ve iş modelleri duyarız.
Heyecan uyandıran bu kelimelerden en çok sevdiğiniz ve 10.000 saatinizi adayacağınız muhakkak vardır.  Blog konusunda; <a target="other" href="http://wordpress.com">Wordpress</a>, <a target="other" href="http://digg.com">Digg</a>, <a target="other" href="http://technoratti.com">Technoratti</a>, <a target="other" href="http://blogger.com">Blogger</a> ve <a target="other" href="http://reader.google.com">Google Reader</a> gibi projeler bu alanı kapatmış görünüyor. 10.000 saatinizi bu alana adamak şu an için zahmetli ve yersiz görünüyor, eğer radikal bir fikriniz yoksa. Google arama motorlarını yerle bir eden fikirleri ile bunu başardı. Sizde başarabilirsiniz ama işinizin zor olduğunu hatırlatmak isterim. Unutulmaması gereken şey ise hergün yeni fırsatların doğduğu. Sadece bulunduğunuz zamanı anlamak ve gereksinim gördüğünüz alana kendinizi adamanız yani zamanı sahiplenmeniz gerekiyor. </p>

<p>Benim önerim zamanın size sunduğu ve açık olan ihtiyacı bulmak için çalışmanız buna yaşamınızı adamanız. Devrim Gündüz, Arda Kutsal, C Derneğinin kurucusu Kaan Aslan bunu yaptı ve meyvelerini yiyorlar.</p>

<p>10 yılın muhasebesini yaptığımda yaptığım en büyük hatamın, uzmanlaşmak istediğim alana geç karar vermiş olduğumu söyleyebilirim. 5 yıl masaüstü sistem programlama ve 5 yılda web ve mobil programlama. Faydası olmadı demiyorum çok fazla paradigmaya hakim olmak güzel birşey ama halen uzmanlaşmak istediğim alanda çalışmadığım için ekstra efor serfetmem gerekiyor ve her geçen gün bu daha da zor oluyor. Google arama konusunda uzman ve bu konuya yardımı dokunacak en uç noktalarlada ilgileniyor işlere bu açıdan bakıyor ve bu onun vizyonunun çerçevelerini çiziyor.</p>

<p>İnanacağınız ve seveceğiniz alanı seçmek önemli çünkü çalışmalarınızın temelini oluşturuyor. Ve anlık gazlarla çıkan içinizdeki merak kıvılcımını alevlenmeden durduruyor. Eğer ilgi alanınız ile ilgili ise zaten zaman içinde bulaşmak zorunda kalıyorsunuz. Günümüzün popüler konularını (agile programming, realtime internet, semantic web, cloud computing, collective intelligence, scalability vb) ve projeleri hergün twitter ve çeşitli bloglarda bulabilirsiniz. Casandra, CouchDB, Doctrine, Redis, RubyOnRails, Symfony, Mozilla, Eclipse, Hibernate vb gibi geleceği olan projelere destek verebilirsiniz.
</p>
<p>Teomanın bir şarkısında dediği gibi; <p/><p><i>"Çok kadın hiç kadındır oğlum, yalnızlıktır sonu!</i></p>]]></description>
      <link>http://hasanozgan.com/notes/post/zamani-sahiplenmek</link>
      <pubDate>Mon, 22 Mar 2010 17:57:54 -0400</pubDate>
      <guid isPermaLink="true">http://hasanozgan.com/notes/post/zamani-sahiplenmek</guid>
    </item>
    <item>
      <title><![CDATA[Ninja ve Samuray]]></title>
      <description><![CDATA[<p>Bilişim dünyasında iki tür yazılımcı vardır. Ninjalar ve Samuraylar. Her ikiside işinin ehlidir. Bir oturuşta bir işletim sistemini en az hata ile yazabilir, NASA gibi çok güvenli yerleri alt-üst (hack) edebilirler. Bu iki kişi madem bu kadar iyiler peki o zaman nedir bu iki tür bilişimciyi birbirinden ayıran şey? İşte bu yazı bunun üzerinedir.</p>

<p>Ninjalar, gecenin karanlığında sessiz sedasız hareket ederler. Kimse ne yaptıklarını, nereden çıka geldiklerini bilmez. Geceleri çalışmayı çok severler.  Çok hızlıdırlar. Kolay kolay bildiklerini paylaşmazlar. Çünkü bildiklerini öğrenebilmek için çok acı çekmiş ve mücadele etmişlerdir. Para karşılığı yeteneklerini kiralarlar. Yalnız çalışmayı severler. Ketumlardır, tüm ahlak kurallarını yok sayabilirler; gecenin ve maskelerinin arkasına saklanarak hareket ederler. </p>

<p>Samuraylar, onurları için yaşarlar. Savaş sanatını öğrenmek için en az ninjalar kadar mücadele etmişlerdir. Bir klana bağlıdırlar. Samuraylar arasında sağlam bir dayanışma vardır. Yeteneklerini inandıkları şey uğruna harcarlar. Saygınlık kazanmak için bildiklerini öğretmeyi borç bilirler. Yatay hiyerarşide olan bir usta-çırak ilişkileri vardır. Usta çıraktan, çırak ustadan birşeyler öğrenebilir. Kibirleri yoktur. Samuraylar için hayat ibretlerle dolu bir okuldur. Sanatla yakından ilgilenirler. Yardım severdirler. Genelde tanınır ve saygı duyulurlar.</p>

<p>Samuraylar'ın Ninjalar'dan en büyük farkı bildiklerini saklamak yerine paylaşmalarıdır. Bu vasıfları sayesinde saygınlık kazanırlar. Ve diğer meziyetleri (yardımsıverlik vb) varsa da sevilirler.</p>

<p>Aynı yaklaşımı tarih boyunca başka başka şekillerde görmemiz mümkündür. Osmanlı'da Derviş ve dergah yapılanmaları ile StarWars'ta Jedi'lar,  samurayların yapılanmalarına benzer. Belki bu yüzden açık kaynak dünya "Star Wars"u bir başka sever.</p>

<p>Sanat ve bilim dünyasına bakarsak, adı ve şanı ile günümüze gelenlerde de aynı dayanışma ve paylaşımın olduğu görülmektedir. Bu konuda aklıma gelen ilk örnek Sezen Aksu'dur. Minik Serçe'nin sanatı ile ilgili yorum yapmak haddim ve bilgimin dahili dışında elbet. Sanat dünyasına verdiği ölümsüz eserler ise herkesçe aşikar. Ama O'nu ölümsüz sanatçı yapan eserleri dışında, öğrencileri ve destek verdiği insanlardır. Birçok kişiye yardım etmiş, beste ve güftelerini vermiştir. Bu hem kendisinin saygınlığını arttırmış, hemde eserlerine yeni renkler katmıştır.</p>

<p>Müzik sektöründe benzer bir yaklaşım Rapçiler arasında da mevcuttur. Birbirlerinin albümlerinde bazı şarkılarına eşlik etmeleri (Feat) bu dayanışmaya küçük bir örnektir. RAP dünyasının tanınmış ustaları, çaylak RAPçilerin albümlerine eşlik ederek onların tanınmasına yardımcı olurlar. Bu da bu sanatçıların daha da saygı görmelerini sağlar.</p>

<p>Ninjalar bu dayanışmayı anlayamaz. Rakibi olabilecek kişilere böyle bir yardımda bulunmasına ise anlam dahi veremez. Birilerine yardım edip nasıl para kazanabilirler ki diye düşünürler. Ama yakın tarihteki örneklere bakıldığında elbette para kazanılır. Bunun nedeni saygınlıktır. Saygınlık beraberinde yardımda getirir. Doğal bir reklam ağı oluşur ve insanların bu davranışlar hakkında konuşmasına neden olur.</p>

<p>Çevremde zaman zaman ninjalarla karşılarım. Neden açık kaynak dünyayı bu denli sevdiğimi ve destek verdiğimi sorarlar. Zamanımı boşa harcadığımı düşünürler. Öğrendiklerimin çoğunu açık kaynak camia sayesinde öğrendiğimi anlatırım  ama anlamsız bulurlar. Sağdan soldan (internetten) öğrendikleri birkaç bilgiyi çok değerli görüp kimseyle paylaşmazlar. Bildiklerinin kölesi olan bu insanlara en güzel tokat, kafalarında devleştirdikleri bu bilgiyi çok kısa sürede öğrenerek, bildiklerine meydan okumak (daha iyisini yapmak) ve öğrenilenleri deneyimle harmanlayıp, tekrar ait olduğu yere topluluğa armağan etmektir…</p>]]></description>
      <link>http://hasanozgan.com/notes/post/ninja-ve-samuray</link>
      <pubDate>Tue, 02 Mar 2010 20:42:43 -0500</pubDate>
      <guid isPermaLink="true">http://hasanozgan.com/notes/post/ninja-ve-samuray</guid>
    </item>
    <item>
      <title><![CDATA[Sanal Pos Kütüphanesi]]></title>
      <description><![CDATA[<p>Tüm dünyada da aynı mıdır bilmiyorum ama Türkiye'de düşünmeyi sevmeyen ve sıcak para gelsinde nasıl olursa olsun diye düşünen bir girişimci kitlesi vardır. Bu kitlenin müdavimlerini çeşitli şekillerde gördük ve görmeye devam edeceğiz elbette. Buna birkaç örnek vermek gerekirse; Sucular, İnternet Kafeler ilk aklıma gelenlerden birkaçı.</p>

<p>Birçok sektör gibi yazılım şirketlerinde de durum pek farklı değil. Türkiye'de her yazılımcı bir dönem Muhasebe yazılımları ile köşe olmayı düşünmüş ve bu alanda yazılımlar geliştirmiş ve sonunda batmıştır :) İşini hakkıyla yapan AirTies, SesTek, Sobee gibi şirketleri bunun dışında tutmak istiyorum tabii. Onlar gerçekten göğsümüzü kabartan güzel şirketler.</p>

<p>Bu durum internet sektöründe de neredeyse böyle. Internet'te dönemsel olarak popüler olan konular hep olmuştur. Şirket sitesi yapanlar, e-ticaret sitesi yapanlar bunun en büyük örneği. E-ticaret belkide en zahmetli ve uçtan uca hizmet vermeyi gerektiren, güvene dayalı olduğu düşünülürse fırsatlar ve riskler kendini hemen belli eden bir konu olduğu halde, en çok uğraş verilen ve yukarıdaki saydıklarım göz önünde bulunmadan girilen bir iş modeli.  E-ticaret bu yazının ana konusu değil, bu yüzden e-ticaretin sorunlarına bu yazıda değinmeyeceğim. Ama bu kadar çok üzerinde konuşulan, araştırmalar yapılan ürünler geliştirilen sektörde neden <a href="http://magentocommerce.com">Magento</a>, <a href="http://opencart.com">OpenCart</a> gibi açık kaynak projelerin Türkiye'den çıkmadığını merak ediyorum doğrusu!? Tamam bu çok büyük bir proje ama hazır yemeğe alışan bizler defalarca POS kütüphanesi yazdığımız halde bunu neden açık kaynak kodlarını yayınlamıyoruz?!</p>

<p>Türkiye'nin önde gelen birkaç e-ticaret platformunun altyapısını geliştirenlerden biri olarak bu soruyu kendime yönelttiğim de, en azından Türk yazılım camiasına böyle bir katkıda bulunmam gerektiğine karar verdim. İyimi ettim, kötü mü ettim zaman gösterecek elbette!. <a href="http://vpos4php.googlecode.com">Geliştirdiğim API</a> kütüphanesinin kullanıcı rehberi belgeyi yakında tamamlayacağım. Bu konuda ki gelişmeleri <a href="http://twitter.com/HasanOzgan">@HasanOzgan</a>(benim) ya da <a href="http://twitter.com/dahius">@dahius</a>'un twitter hesabından takip edebilirsiniz.</p>

<h6>Sanal Pos Kütüphanesi (<a href="http://vpos4php.googlecode.com">vpos4php</a>)</h6>

<p>Bu kütüphane aynı zamanda <a href="http://pear.php.net">PEAR</a> kütüphanesi hazırlamaya, paketlemeye, <a href="http://phing.org">Phing</a> ve <a href="http://phpdoc.org">phpDocumentory</a> kullanımı için bir örnektir. <a href="http://phpunit.de">PHPUnit</a>'de kullanımı ile ilgili örnekleri TestCase'lerinide ileride ekleyeceğim.</p>

<p>Türkiye'de Sanal POS altyapısını sunan 2 firma bulunmaktadır. EST ve POSNET. Birçok banka bu iki firmanın altyapısını kullanır. EST altyapısını kullanan bankalara Garanti, İşbankası, Axess, HSBC, Finansbank; POSNET altyapısını kullanan bankalara ise YapıKredi örnek verilebilir. Yani bu firmaların API'lerini kullanan her bankada bu kodlar çalışacaktır. Başka bir şirketin yaptığı altyapıyıda desteklemek için dökümanı bana gönderebilirsiniz.</p>

<p>Yapılan işlemler aşağı yukarı tüm POS altyapılarında aynı olunca bunları aynı veritabanları gibi tek bir arayüz üzerinden çalıştırmak gerekmektedir. İşte bunun için; projeyi geliştirilirken, tasarım kalıplarından(design patterns), fabrika (Factory Pattern) kullanılmıştır.</p>

<p>Kütüphane aşağıdaki methodları desteklemektedir.
<ol>
<li>
	<strong>provision</strong>($request) methodu, kredi kartından çekilen para miktarı, kart limitinden düşürülür. Ama hesabınıza geçmez. Bazı firmalar kart doğrulama gibi işlemler için bunu kullanırlar. Bankalar arasında farklılık gösterse de, eğer daha sonra <strong>disposal</strong>  methodu ile finanslaştırılmazsa tutarın kart üzerindeki blokesi kaldırılır. <br/>3D secure işlemi desteklenir. 
</li>
<li>
	<strong>sale</strong>($request) methodu, $request nesnesi içerisinde belirtilen tutar kredi kartı limitinden düşürülür ve hesabınıza geçer. <br/>3D secure işlemi desteklenir.
</li>
<li>
	<strong>disposal</strong>($request) methodu, daha önce <strong>provision</strong> methodundan geri dönen işlem numarası (transactionId) ile birlikte finanslaştırmaya yarar. Yani daha önce kart limitinizden düşürülen para hesabınıza geçer. 
</li>
<li>
	<strong>reversal</strong>($request) methodu, daha önce <strong>disposal</strong> ya da <strong>sale</strong> methoduyla finanslaştırdığınız işlemlerde kısmi iadeler yapmayı sağlar. Yani fiyatı güncelleştirebilirsiniz.
</li>
<li>
	<strong>refusal</strong>($request) methodu, daha önce yaptığınız bir işlemi iptal etmeyi sağlar.
</li>
<li>
	<strong>complete</strong>($request) methodu ise, 3DSecure işlemlemini tamamlamayı sağlar.
</li>
</ol>
</p>

<p>Bu api ile ilgili her türlü sorularınızı bana yöneltebilirsiniz. Fırsat buldukça size yardım etmeye çalışacağım.</p>

<p><a href="http://vpos4php.googlecode.com">vpos4php</a> kütüphanesinin proje sayfasına <a href="http://code.google.com/p/vpos4php/downloads/list">buradan</a> indirebilirsiniz.</p>]]></description>
      <link>http://hasanozgan.com/notes/post/sanal-pos-kutuphanesi</link>
      <pubDate>Wed, 13 Jan 2010 11:09:37 -0500</pubDate>
      <guid isPermaLink="true">http://hasanozgan.com/notes/post/sanal-pos-kutuphanesi</guid>
    </item>
    <item>
      <title><![CDATA[Linux Dosya Indeksleri (inode) ve Sistem Mimarisi]]></title>
      <description><![CDATA[<style>
	.info {
		border: none;
		margin: 3px;
		text-align: left;
		width: 500px;
	}
</style>

<p>Birkaç gündür <a href="http://kissa.be">kissa.be</a> servisinin bulunduğu sunucu, diskte yer yok hatası nedeniyle düzgün bir şekilde hizmet veremiyordu. Durumu farkeder farketmez, diskteki yerimi kontrol ettiğimde gördüm ki; diskin %80'lik bir bölümü halen boş. Sorunun sunucu hizmeti aldığım firmayla görüşünce, anlaşıldı ki, diske format atarken varsayılan değerlerini aynen kabul ettiğim dosya indekslerimin (inode size) tükendiği için bu hatayı aldığım anlaşıldı.</p>

<p>Diskte mevcut inode sayısını görmek için;</p>

<blockquote>
	<table class="info">
		<tr>
			<td colspan="5"><p>root@localhost:~#<strong> df -ih</strong></p></td>
		</tr>
		<tr>
			<th>Filesystem</th>
			<th>Inodes</th>
			<th>IUsed</th>
			<th>IFree</th>
			<th>IUse%</th>
			<th>Mounted on</th>		
		</tr>
		<tr>
			<td>/dev/sda</td>
			<td>680K</td>
			<td>21K</td>
			<td>660K</td>
			<td>3%</td>		
			<td>/</td>		
		</tr>	
		<tr>
			<td>/dev/sdc</td>
			<td>1.3M</td>
			<td>25K</td>
			<td>1.2M</td>
			<td>2%</td>		
			<td>/files	</td>		
		</tr>
	</table>
</blockquote>

<p>Diskteki mevcut boş alanı görmek için ise;</p>

<blockquote>

	<table class="info">
		<tr>
			<td colspan="5"><p>root@localhost:~#<strong> df -h</strong></p></td>
		</tr>
		<tr>
			<th>Filesystem</th>
			<th>Size</th>
			<th>Used</th>
			<th>Avail</th>
			<th>Use%</th>
			<th>Mounted on</th>		
		</tr>
		<tr>
			<td>/dev/sda</td>
			<td>11G</td>
			<td>741M</td>
			<td>9.5G</td>
			<td>8%</td>
			<td>/</td>		
		</tr>	
		<tr>
			<td>/dev/sdc</td>
			<td>4.8G</td>
			<td>960M</td>
			<td>3.6G</td>
			<td>21%</td>
			<td>/files</td>		
		</tr>
	</table>
</blockquote>

<p><a href="http://kissa.be">Kissa.be</a> resim ve metin gibi dosyaları saklamanıza yarayan bir servis olduğu için çok küçük oranlarda çok fazla dosya bulundurabiliyor bünyesinde. Bu da dosya indeks limitimin hızlı bir şekilde tükenmesine neden olmuştu. </p>

<p><a href="http://kissa.be">Kissa.be</a>'nin bulunduğu bir önceki sunucu da (Debian 4.0) bir dosya için ayrılması düşünülen dosya indeks boyutu (bytes-per-inode) 4096 ve dosya indeks alanı ise 128 idi. Şuan mevcut sunucumda (Ubuntu 9.10) ise varsayılan kurulum ayarları (8096 / 128) olarak geliyor.</p>

<p>Diskinize ait inode ve block gibi değerleri görmek için;</p>

<blockquote>
	<table class="info">
		<tr>
			<td colspan="2"><p>root@localhost:~#<strong> tune2fs -l /dev/sdc</strong></p></td>
		</tr>
		<tr>
			<th>Inode count:</th>
			<td>1280000</td>
		</tr>
		<tr>
			<th>Free inodes:</th>
			<td>1255224</td>
		</tr>
		<tr>
			<th>Inodes per group:</th>
			<td>32000</td>
		</tr>
		<tr>
			<th>Inode blocks per group:</th>
			<td>1000</td>
		</tr>
		<tr>
			<th>Inode size:</th>
			<td>128</td>
		</tr>
	</table>
</blockquote>

<p>Sorunu tespit ettikten sonra çözüm bulmak gerçekten çok kolay oluyor. Linux'ta kissa.be servisine özel bir disk alanı gerekiyordu. Sunucuda inode değerleri ihtiyacıma göre olan bir alan yaratınca sorun kökten çözüldü. Böylece sunucunun işletim sistemi bu durumdan hiç etkilenmedi. </p>

<p>Diski inode değerlerine göre yeniden biçimlendirirken;</p>

<blockquote>

 root@localhost:~# <strong>mkfs.ext3 -i 4096 -I 128 /dev/sdc</strong>
</blockquote>

<p>Aslında bu konularda uzman biri olduğumu pek söyleyemem. Çok anlamam ama, linux sistemiyle uğraşmayı, sistem programlama konularını seviyorum. </p>

<p>Yazının ana fikrine gelecek olursak;</p>

<p>Eğer kissa.be heveskar bir gencin projesi değil de, bit.ly gibi planlı bir proje olsaydı, gereksinim analizini okuyan bir Sistem Mimari servise ait dosyaları barındıran diskin formatlanması konusunda inode detayını atlamazdı.</p>

<p>Yaşadığım bu olay, bugün öğrendiğim küçük bir ders oldu!...</p>
]]></description>
      <link>http://hasanozgan.com/notes/post/linux-dosya-indeksleri-ve-sistem-mimarisi</link>
      <pubDate>Sat, 09 Jan 2010 14:41:27 -0500</pubDate>
      <guid isPermaLink="true">http://hasanozgan.com/notes/post/linux-dosya-indeksleri-ve-sistem-mimarisi</guid>
    </item>
    <item>
      <title><![CDATA[Pratisyen Hekim veya Kalp Cerrahı Olmak]]></title>
      <description><![CDATA[<p>Amerika'ya geldiğimde zilyon tane işe zilyon kere CV gönderdim. Bu iş görüşmeleri sırasında kendimi değerlendirme ve sorgulama fırsatı buldum. Ne bildiğim, ne bilmediğim, amacımın ne olduğu, 3 yıl sonra kendimi nerede görmek istediğim gibi sorulara cevaplarım bu sayede netleşti. Hatta bir firmaya bu sorular için FAQ (sıkça sorulan sorular) formatında bir belge sunduğumu bile hatırlıyorum :) Bununla birlikte, şirketlerin işleyişi ve beklentileri hakkında genel bir fikir sahibi de oldum. Bu görüşmelerin neticesinde; ya onlar sizi, ya da siz onları beğenmezsiniz.</p>

<p>Kendinize bir kariyer yolu belirlediğinizde, size başka teklifler  sunarak bu yoldan caydırmaya çalışanlar olur. Ve teklif çok ilgi çekici ve mantıklı geliyorsa yolunuzdan cayabilirsiniz. Aslına bakarsanız, iş hayatımın bir bölümünde bu olay defalarca tekerrür etti. Gel-gitlerin ardından nihayet en sevdiğim iş bu benim hayatımın amacı dediğim şeyi buldum. İşte bu kararı verdiğim günlerde başımdan geçen bir olayı paylaşacağım.</p>

<p>Hikayemiz, her zaman gittiğim kafede çalışırken, telefonumun çalmasıyla başlıyor. Arayan Amerikan'ın en saygın medya şirketlerinden biriydi. Görüşmek istediklerini bildirdiler ve beraber ertesi gün 13:45 için randevuleştik. Ne kadar heyecanlandığımı anlatamam. Sonuçta çok saygın bir kurumda çalışma şansım vardı, helede krizin dorukta olduğu şu günlerde...</p>

<p>Görüşmenin olacağı gün, giydiklerime her zaman gösterdiğimden biraz daha fazla özendim. Traştan iyice tahriş olan yüzümü bir kez daha acımasız davrandım. Arabamın çıkardığı küçük sorunla birlikte başlayan geç kalma telaşıma rağmen tam zamanında şirket binasının önüne gelmiştim. Çok merkezi bir yerde, görkemli ve son derece teknolojik bir binaydı.</p>

<p>Kimliğimi verdim. Ziyaretçi bilgilerimi bilgisayara giren resepsiyon görevlisinin, gizlice fotoğrafımı çekmesinden rahatsız olsam da birşey söylemeden kartımı aldım ve hızla görüşeceğim kişinin ofisine gittim. Beni asistanı karşıladı ve biraz beklememi rica etti. Küsuratlı bir randevu saati verdiklerinde, dakikaları değerli ve dakik bir adam hayal etmiştim. Benden önceki görüşmesi geldikten yarım saat sonra nihayete erdi. Görüşmeye başlayacağımızı düşünürken; benden özür dileyip, beş dakikalığına birini görmesi gerektiğini söyledi ve yarım saat sonra geri döndü. Anlayacağınız benim görüşmem bir saat rotarlı başladı. Sinirlense de, insan, olabilir, insanlık hali diyorsunuz değil mi? Bende öyle dedim. Taa ki görüşme ortasında gelen telefon görüşmesinin 10 dk sürmesini seyirci olana kadar. Türkiye'ye söyleniriz ama ben böyle saygısızlık görmedim ülkemde.</p>

<p>Görüşmelerde, insanı germezsiniz rahatlatmaya çalışırsınız değil mi? Daha mülakatın birinci dakikasında "keşke üniversite eğitimini tamamlasaydın, niye üniversiteyi terketmişim" gibisinden akıl hocalığına başlaması ve beni azarlaması ve sonrada bak senin uğraştığın bu alanlarda ben de master tezi veriyorum demesi son derece rahatsızlık vericiydi. Belki son derece iyi niyetliydi ama bana yukarıdan bakan bir züppe imajı verdi. Züppe tavrı, şirkette yatay bir hiyerarşi var diye başlayan cümlelerini yalanlar niteliğindeydi. Görüşmelerin bir yerinde verdiğim bir yanıttan sonra aradığının idealist bir yazılımcı değilde ne iş olsa yaparım abi tipinde adamlar olduğunu anladım. İşte bu andan itibarent anlattıklarımı dinlemediğini farkettim.İşte dedim; beni kariyer yolumdan saptırmaya çalışacak bir şirket daha.</p>

<blockquote>
Devasa büyüklükte ki şirketler; sadece geminin gitmesi için ne gerekiyorsa, ürün güdümlü olarak, yapılan işi, detaylı düşünmeden ve hazır sistemler üzerine inşa ederek, bir şekilde çalışsın da, yolda düzeltiriz anlayışına sahip şirketlerdir. Özelliklerinden biri dev aile şirketi olmalarıdır. Ve yaratıcılık ve yenilikçi düşünceyi destekleyecek bir yapı bulamazsınız bu şirketlerde. O kadar hantal bir karar süreçleri vardır ki, departmanların birbirinden haberi pek yoktur. Bilgi akışı şeffaf değildir. Sadece günü kurtaracak ve her işten anlayan sektörde süper kahraman olarak anılan ama bence  pratisyen doktor olan adamlar çalıştırırlar.  Şirket herşey hakkında fikri olan ama hiçbirşeyi adam gibi bilmeyenlerle doludur. <a href="http://kaanaslan.com">Kaan Aslan</a> bu adamlara <a href="http://www.fazlamesai.net/?a=article&sid=3102">ürün güdümlü programcı</a> dediğini <a href="http://fazlamesai.com">fazlamesai.com</a>'u takip edenler hatırlayacaktır. Sanırım bu devasa şirketlerin innovatif şeyler çıkartamamasının sebebi, kendi içinde iş bölümü ve uzmanlaşma gibi konulara sıcak bakmadıklarından kaynaklanıyor. Eğer departmanın yöneticileri de bunun önemi için mücadele etmiyorsa vay o şirketin çalışanlarının haline. Tabii bu şirketlerin bir medya şirketi olması ve "innovasyonda ne ki la!?" "bana ne gerek sütlü börek la!?" gibi cümlelerle, rakiplerine yukarıdan bakması ve internet gibi bir ortamda bulunupa bu sosyal gücü farketmemiş olması yazık bu şirketlere dedirtmiştir.</blockquote>

<p>Mülakatıma geri döneyim, önce bana şirkette, web projesi yapmaktan - çöp kutusu dökmeye kadar herşeyi yaptıklarından söz ettiler. Önce beni şaşırtmayan bu cümlenin devamı çok ilginç olmaya başlamıştı (burada bir çalışanımız, tasarımda yapar, masaüstü uygulamasıda yapar, iphone uygulaması da). Beni tanıyanlar bunların hepsi ile uğraştığımı ve yapabileceğimi bilir. Yani tam bir pratisyen hekim gibiyimdir ama bu bilgilerim işimi halledecek seviyede ve yüzeyseldir. Yoksa bir tasarımcının yaptığı işi yapmak haddime düşmez!</p>

<p>Mülakatı yapan kişi söyledikleri konusunda beni ikna etmek için, bilimlerin birbirinden etkilendiği ile ilgili bir örnek verdi. Buna bende inanırım. Sadece bilimler değil sanat bile bilimden etkilenir. Bakınız (Leonardo da Vinci). Eğer benim konuşmama izin verseydi, Palm'ın kurucusu Jeff Hawkins'in Zeka isimli kitabında da bundan söz ettiğini söyleyecektim. Jeff Hawkins kitabında; yapay zeka üzerine çalışma yapan bilim adamlarının sadece kendi branşlarında araştırma yaptığını aslında bunları ayrı ayrı değil birlikte değerlendirmek gerektiğinden söz eder. Masaüstü, Web ve Mobil bambaşka paradigmalara sahip, başka patternlere ve spec'lere sahip olan konulardır. Ve özünde birbirinden farklı uzmanlık alanı gerektirir. İyi işler çıkaranlar bunların üçüyle de aynı anda uğraşmazlar. En azından ben görmedim. Farklı bilimlerden beslenmek gerekir. Aynı bilimin farklı kolları bize bunu sağlamaz. </p>

<p>Mülakat benim için ve onlar için bitmişti ama son olarak beni yazılım ekip müdürleri ile görüştürme kararı aldılar. Aradıkları adam ben değildim ama bu komedinin nereye gideceğini de merak ediyordum. </p>

<p>İşe gerçekten ihtiyacım olduğu halde; bu sefer kariyer yoluma sadık kalmaya kararlıydım. Ve bir pratisyen doktor değil de kalp cerrahı olmak istediğimi ve yol haritamdan söz ettim. Hak verdiğim tek nokta onların aradığı benim olmak için çalıştığım adam değildi. Onlara bolca pratisyen hekim gerekiyordu. Memur zihniyetli, gelişimek için yukarıdan gelen bilgi ile yetinen, bilgiyi edinmek için özel uğraş vermeyen adamlar. Beni ikna etmeyi son kez deneyen yazılım ekip lideri bana neden bu kadar dil ile yazılım yazdığımı sordu. Öyle ya!, neden tek bir dil ile uzmanlığımı pekiştir miyordum? Sorular önemlidir! Ama bana halen yanlış sorular soruluyordu. Tüm uğraştığım dillerde web geliştirdiğimi söyledim. Sonra lafı arabalara getirdim. Arabalara ilgi duyduğumudan söyledim. Grande Punto sahibiyim ama arada Porche, Ferrari, BMW, Mercedes gibi araçlarıda denerim. Belki onları alacak kadar gücüm yok ama otomobil kullanmayı severim. Programlama dilleri arabalar gibidir. Doğru yolda doğru aracı seçmek gerekir. Bu kadar programlama dili ile ilgilenmiş olmam, bu kadar framework incelemiş olmam benim perspektifimi geliştirmek içindir. Bunlar beni pratisyen hekim olduğumu göstermez.</p>

<p>Gönül isterdi ki, web konularından (güvenlik, ölçeklenbilirlik, verimlilik ve mimarile vb) söz edilseydi. Bunları konuştuğumda gözlerimde oluşan ışıltıyı görmelerini çok isterdim. (:</p>

<p>Sonuçta insan eğlendiği işi yapmalı öyle değil mi? Bence pratisyenlik, uzmanlık konunuza karar verene kadar geçirdiğiniz zaman dilimidir. Eğer pratisyen hekim olmak sizi yaparken eğlendiriyorsa doğru yoldasınız ama ben uzmanlığımı seçtim cerrah olma yolunda tam gaz ilerliyorum. Hem de kalp cerrahı :P</p>
]]></description>
      <link>http://hasanozgan.com/notes/post/pratisyen-hekim-veya-kalp-cerrahi-olmak</link>
      <pubDate>Thu, 03 Dec 2009 15:38:45 -0500</pubDate>
      <guid isPermaLink="true">http://hasanozgan.com/notes/post/pratisyen-hekim-veya-kalp-cerrahi-olmak</guid>
    </item>
    <item>
      <title><![CDATA[“Özgür İnternet Bildirgesi” İmza Kampanyası]]></title>
      <description><![CDATA[<p>Mustafa Akgül hocanın epostası ile haberdar olduğum ve sonuna kadar inandığım “Özgür İnternet Bildirgesi” İmza Kampanyasına katkıda bulunmak her internet aşığının görevi diye düşünüyorum (:</p>
<blockquote><p><span style="font-size: x-small;">21 Eylül’de ABD’de FCC başkanının “net netrality” hakkında konuşmasına paralel olarak AB bünyesinde bir imza kampanyası başlarıldı.</span></p>
<p>Sizinde katılabileceğiniz bu kampanyada İmzaya açılan “Özgür İnternet” Bildirgesi:</p>
<p>1. İnternet kullanıcılarının kendi seçtikleri içeriğe erişmek, almak ve göndermek haklarıdır.<br>
2. İnternet kullanıcılarının herhangi bir içerik, uygulama ve servisi kullanmak ve çalıştırmak hakkıdır.<br>
3. İnternet kullanıcılarının, ağa zarar vermeyen her yazılıma ve donanıma ağ üzeriden bağlanmak hakkıdır.<br>
4. İnternet kullanıcıların erişim, uygulama, servis ve içerik sağlayıları arasında rekabet içinde seçim yapmak hakkıdır.<br>

5. İnternet kullanıcılarının uygulama, içerik, servis, alıcı ve gönderici adresine nedeniyle ayrımcılığa uğramadan internete bağlanmak hakkıdır. Genişbant erişim sağlayıcıların kendi ağları üzerinde trafiği engelleyemez ve yavaşlatamaz, veya aboneye bağlantısında bazı uygulama ve içeriği diğerleri üzerinden tercih ederek, kazananları belirleyemez. Kendi sunduğu bir servisle rekabet ettiği için bir servise ayrımcılık yapamaz.<br>
6. İnternet erişim sağlayıcıları ağ yönetiminde saydam olmalıdır. İnternet kullanıcısının önceden tanımlanan kapasite ve kalitede internet bağlantısı hakkıdır.</p>
<p>Bu ilkeler Avrupa Birliği ve Ulsual yasalarca kutsanmalı, ve ilgili makamlar tarafından Avrupa çapında tutarlı bir şekilde uygulanmalıdır.</p>
<p><a href="http://www.euopeninternet.eu/open-internet/" target="_blank">http://www.euopeninternet.eu/open-internet/</a></p>
<p><em><br>
</em></p></blockquote>
<p><strong>Susturun Geveze Meftamı<br>
</strong></p>
<p>internet tüm dünyada özgür<br>
neden ülkemde uygulanır sansür<br>

düşüncelerimi yasaklayacağını sanmak<br>
nasıl bir zekanın ürünüdür</p>
<p>internet globaldir ve hür<br>
avrupalı olacağız dersin gür gür<br>
seni bu kafayla avrupa’ya alacak<br>
hürriyet bilmez bir dürzüdür</p>
<p>sanki bu yasaklar kötü bir düştür<br>
meddah bu durumdan üzgündür<br>
sazım var, kırsanda kalemimi be ahmak!<br>

haksızlığa türküler yakacağım gündür</p>
<p>mahpus yattığında yanındaki güldür<br>
eskiyi unutman beni pek düşündürür<br>
interneti yasaklamak, hayatı yasaklamak<br>
geveze meftanın ölüm sebebi iki yüzündür</p>]]></description>
      <link>http://hasanozgan.com/notes/post/ozgur-internet-bildirgesi-imza-kampanyasi</link>
      <pubDate>Thu, 19 Nov 2009 13:41:32 -0500</pubDate>
      <guid isPermaLink="true">http://hasanozgan.com/notes/post/ozgur-internet-bildirgesi-imza-kampanyasi</guid>
    </item>
    <item>
      <title><![CDATA[Temiz PHP Dünyası]]></title>
      <description><![CDATA[<p><img class="alignleft size-full wp-image-192" title="preview" src="http://www.hasanozgan.com/files/2009/09/preview.jpg" alt="preview" width="158" height="158" />Temizlik deyince bu yazıda Vim’den  de söz edildiği gelmesin! :P  <em>(belki daha sonra)</em>
</p><p>
PHP 5.2 ile beraber <a title="http://tr.php.net/filter_var" href="http://tr.php.net/filter_var">filter_var</a> isimli bir fonksiyon  hayatımıza girmiş. Güvenlik için gerekli olan bu method veri girdilerini  tiplerine göre filtrelemeyi sağlıyor.
</p><p>
<a title="http://net.tutsplus.com/tutorials/php/getting-clean-with-php/" href="http://net.tutsplus.com/tutorials/php/getting-clean-with-php/">http://net.tutsplus.com/tutorials/php/getting-clean-with-php/</a>

<strong><em>filter_var</em></strong> kullanalım,  kullandıralım!</p>]]></description>
      <link>http://hasanozgan.com/notes/post/temiz-php-dunyasi</link>
      <pubDate>Wed, 16 Sep 2009 13:30:21 -0400</pubDate>
      <guid isPermaLink="true">http://hasanozgan.com/notes/post/temiz-php-dunyasi</guid>
    </item>
    <item>
      <title><![CDATA[REST: Geleceğin Web Mimarisi]]></title>
      <description><![CDATA[<p>Dün şirketten arkadaşlarla molada iken, Ruby ile büyük  proje yazılıp yazılamadığı ile ilgili mini bir tartışma yapmıştık. Ruby'nin yavaşlığını bilen biri olarak, olmaz diye  bağıran adamların başında da ben geliyordum. Sonra Ruby haber gruplarında çokça  adını duyduğum <a href="http://www.sinatrarb.com/">Sinatra</a> isimli kütüphaneyi inceleyince Ruby ile yeni web mimarisi  ile çok güçlü web uygulamaları yazılabileceğini  gördüm.
</p>
<img class="alignleft size-full wp-image-186" title="20090915-6xfj7cp1kx6w884tqw29yk2k4" src="http://www.hasanozgan.com/files/2009/09/20090915-6xfj7cp1kx6w884tqw29yk2k4.jpg" alt="20090915-6xfj7cp1kx6w884tqw29yk2k4" width="330" height="246" />

<img class="alignleft size-full wp-image-185" title="20090915-c8trr5mh7ukbhg6eukptwsuq3r" src="http://www.hasanozgan.com/files/2009/09/20090915-c8trr5mh7ukbhg6eukptwsuq3r.jpg" alt="20090915-c8trr5mh7ukbhg6eukptwsuq3r" width="330" height="246" />
<p/>
<a title="http://www.quirkey.com/blog/2009/09/15/sammy-js-couchdb-and-the-new-web-architecture/" href="http://www.quirkey.com/blog/2009/09/15/sammy-js-couchdb-and-the-new-web-architecture/">Bu  yazıyı</a> okuyunca ve Gmail’in de böyle çalıştığını ve bunu yapmanın bize bir  tık kadar uzakta olduğunu görünce heyecanlandım.
</p><p>
Bu güzel bilgiyi sizlerle de  paylaşayım dedim.  Yukarıdaki görselle her şey yerlerine  oturdu.
<p/>
<strong>Anahtar  Kelimer;</strong>
<ul>
	<li><a title="http://en.wikipedia.org/wiki/Representational_State_Transfer" href="http://en.wikipedia.org/wiki/Representational_State_Transfer">Restfull  teknolojisi</a></li>
	<li><a title="http://couchdb.apache.org/" href="http://couchdb.apache.org/">Document Oriented DB</a></li>
	<li><a title="http://hadoop.apache.org/" href="http://hadoop.apache.org/">MapReduce</a></li>
	<li><a title="http://code.quirkey.com/sammy/" href="http://code.quirkey.com/sammy/">JS  Router/Controller</a></li>
</ul>]]></description>
      <link>http://hasanozgan.com/notes/post/rest-gelecegin-web-mimarisi</link>
      <pubDate>Wed, 16 Sep 2009 13:29:40 -0400</pubDate>
      <guid isPermaLink="true">http://hasanozgan.com/notes/post/rest-gelecegin-web-mimarisi</guid>
    </item>
    <item>
      <title><![CDATA[MacBook Üzerine Ubuntu 9.04 Kurulumu]]></title>
      <description><![CDATA[<p>Uzun süredir Macbook almayı düşünüyordum. Bir arkadaşımın önerisiyle sahibinden.com sitesi üzerinden, bütçeme uygun bir "Macbook 3,1" satın aldım. Herşeyine yabancı olduğum PC dünyasından farklı ama ince düşünülmüş tasarımıyla çok güzel bir makine. Önerilerle birkaç yazılımı hemen yükledim. Ama geliştirme ortamı MAMP(macosx, apache, mysql ve php) kurulumu yaptım. Terminal üzerinde vim ile PHP kodları geliştiriyordum. Fakat, Turkish-Q klavyede @ işaretinin ALT+Q tuşu ile çıkıyor olmasından ve CMD+Q tuşununda uygulamayı sonlandırmak için ayarlanmasından dolayı kod yazarken biraz içerik kaybettim. (Belkide English-Q klavyeye geçmeliydim)</p>
<p>
Virtualbox sanal makine uygulaması üzerine Ubuntu kurmama rağmen onunda kendi dertleri yok değildi. Macports ve Fink paket kurma uygulamalarıda aptitude ile kıyaslanamaz kötü ve yetersiz olduğunu söylemem gerek.
</p>
<p>
Projenizde sizin macbook'a alışmanızı bekleyemeyecek durumdaysa; "insanın sabır küpü" pek fazla dayanmıyor. Şuan size bu satırları Ubuntu üzerinden yazan biri olarak şunları söylemeliyim ki<strong>, </strong><span class="status-body"><span class="entry-content"><strong> <em></em></strong></span></span>
</p>
<p>
<span class="status-body"><span class="entry-content"><strong><em>"Macintosh'tan başka bilgisayar almam ama geliştirme ortamında ise Linux'tan şaşmam!"</em></strong></span></span>
</p>
<p>
Peki niyetim dual boot olarak MacOSX ve Ubuntu'yu birlikte çalıştırmaktı. Elimde ise tek bir partition vardı ve OSX kurmak içinde Leopard kurulum cd'si yoktu. Yani OSX'i silmeden ve partition yaratarak kurmam gerekiyordu. Araştırmalarım sonucunda Apple'ın BootCamp Assitant adında bir yazılımı olduğunu ve bunun partition'da yer açabileceğimi öğrendim. Ama bu yazılım MacOS 10.4 (Tiger) sürümü ile Mac üzerine kuruluyor. Leopard ile önce windows'a kurulan bir sürümü (v.2) olduğunu öğrendim. İndirdiğim tüm Bootcamp Assitant 2.0 uygulamalarında windows sürücüleri çıktı. Ubuntu'yu kurduğunuza wireless ethernet kartı tanımadığını gördüğünüzde çözümününde bu sürücülerden geleceğini bilmeniz yeterli.
</p>
<p>
Neyse bu kadar boş laf yeter. Bugün tek partitionlı Mac OS X Leopard olan bir işletim sistemine nasıl Ubuntu kurabildiğimi anlatacağım.
<ol>
	<li>İlk olarak MacOS'u güncelleyin. (Özellikle firmware paketini güncellemeniz önemli. Bu sayede rEFIt çalışabilir.)</li>
	<li>HFS+ dosya sistemi ile biçimlendirilmiş external bir harddiske ihtiyacınız var.</li>
	<li>Macbook diskini bölümlere ayırmak için BootCamp bulamadıysanız yapmanız gereken işletim sisteminin yedeğini harici bir diske kopyalayıp bu diskten bilgisayarı <a rel="nofollow" href="http://refit.sourceforge.net/" target="_blank">rEFIt</a> yardımıyla başlatmak. rEFIt MacOS'un dualboot için geliştirdiği EFI desteğini gayriresmi olarak ubuntu tarafından kopyalamıza yardımcı olur.</li>
	<li><a rel="nofollow" href="http://www.bombich.com/software/ccc.html" target="_blank">Carbon Copy Cloner</a> yazılımı yardımıyla tüm diskin bir başlatılabilir bir klonu alınır. Bu işlem diskinizin büyüklüğü ile orantılı olarak uzun sürer. :)</li>
	<li>Kopyalama işlemi tamamlanınca bilgisayar yeniden başlatıldığında rEFIt yazılımının menüsünün  yardımıyla harici diskten MacOS başlatılır.</li>
	<li>Finder içinden Applications / Utilities / Disk Utility uygulaması başlatılır. MacBook hard diski seçilir gelen formdan Partition sekmesine tıklanır ve bölümlendirme sırasıyla Windows için DOS dosya sistemi, Linux için DOS dosya sistemi ve geri kalan alan ise MacOS için HFS+ dosya sistemi ile biçimlendirilir. DOS dosya sistemleri sadece disk alanı açmak içindir. Sonra Windows için NTFS linux için ise ext ve swap alanları için yeniden bölümlendirileceklerdir.</li>
	<li>Carbon Copy Cloner yazılımı ile harici diskten macos için ayırdığınız bölüme geri kopyalayın.</li>
	<li>Ubuntu CD'si ile kurulumu yaparken dikkat etmeniz gereken, ubuntu için ayrılan alanda duran DOS dosya sistemini kaldırıp sırasıyla, linux dosya sistemlerini elle ayarlamanız gerektiğidir. Bootloader'ı MBR'a kesinlikle kurmamanız gerekir bu sebeple 100MB alanı /boot olarak mount edin. 2-3 gb alanı swap ve geri kalan alanıda ext4 (gerçekten hızlı) ile bölümlendirin. Kurulumdan bir önceki onay sayfasında Advanced menüsünden bootloader'ın MBR yerine yarattığınız sda2(/boot) alanına kurulumunu sağlamalısınız.</li>
	<li>Son olarak isterseniz, Windows kurulumu yapabilir ve BootCamp ile önerilen işlemleri yapabilirsiniz. Fakat ben bu kısıma girmeyeceğim.</li>
	<li>Sonra bilgisayarı yeniden başlatıyoruz ve görüyoruz ki rEFIt menüsünde MacOS ve Linux logoları bizi selamlıyor. Tebrikler kurulumu başarıyla tamamladınız. Ama işimiz henüz bitmedi. MacBook için küçük ayarlar yapmamız gerekiyor.</li>
	<li>Wireless ve diğer MacBook donanım ayarlarını aşağıdaki linklerde anlatıldığı şekilde yapabilirsiniz. <a href="https://help.ubuntu.com/community/MacBook3-1/Jaunty" target="_blank">https://help.ubuntu.com/community/MacBook3-1/Jaunty</a> <a href="http://www.isriya.com/node/1804/ubuntu-on-macbook-air" target="_blank">http://www.isriya.com/node/1804/ubuntu-on-macbook-air</a> Bu iki bağlantı size yol gösterecektir.</li>
	<li>Son olarak Turkish+Q klavyenizin ayarlarını yapmanız gerekiyor. Yanda { ", é, &lt;, &gt; } görebileceğiniz tuşlar, ubuntu üzerinde yanlış map edilmiştir. Bunu düzeltmenin yolu ise, xmodmap kullanmaktır.  Ev dizininizde .Xmodmap dosyası yaratın ve içine aşağıdaki satırları ekleyip yeniden başlattığınızda tuşların düzeldiğini göreceksiniz.</li>
</ol>
</p>
<p>
<blockquote><strong>~/.Xmodmap</strong>

keycode  94 = quotedbl eacute quotedbl eacute less degree<em></em>

<em>keycode  49 = less greater less greater bar brokenbar</em></blockquote>
<ol></ol>
İşte yapmanız gerekenler bundan ibaret. İşte çalışmak şimdi eğlenceli olmaya başladı :)</p>
]]></description>
      <link>http://hasanozgan.com/notes/post/macbook-uzerine-ubuntu-904-kurulumu</link>
      <pubDate>Sat, 05 Sep 2009 13:28:18 -0400</pubDate>
      <guid isPermaLink="true">http://hasanozgan.com/notes/post/macbook-uzerine-ubuntu-904-kurulumu</guid>
    </item>
    <item>
      <title><![CDATA[Yazılım Geliştirme Süreçleri]]></title>
      <description><![CDATA[<p>Yazılım geliştirme işinin hep acil olduğu, hesapsız kitapsız ve hallederiz gazları ile başlanan projelerin, sürecin tamamının kod yazmaktan(implementation) ibaret olmadığını bilse de öyleymiş gibi davranan bir ülkede geçirilen 10 yılıma üzülmemi sağlayan bir öykü paylaşacağım sizinle! Proje yöneticiliği yapan arkadaşların, bu süreçleri es geçip yıllarca önümüze sürdüğü bütçe palavraları üzerine bir yığın genelleme mevcut. Ama inanın hem bütçeyi doğru kullanmak, hemde işi kitabına uygun bir şekilde yapmak mümkün. Nasıl diye sorduğunuzu duyar gibiyim! <em>Süreçleri bir taşla on kuş vuracak şekilde düzenlemek</em> aslında söylediğim şey. Belgelemeyi PHPDocument ile yapmak gibi birşey aslında söylemek istediğim. Ve <em>ekibin enerjisini doğru bir şekilde yaymak</em>. İşin sırrı, her işe doğru adama atamak. Genelde Türkiye'de bir yazılımcı, sayfa tasarımdanda, DB tasarımından, güvenliktende, nesne yönelimli konulardan ve browser bağımsız javascript ve css hilelerinden haberdardır. Ve tüm enerjisiyle herşeyi çözer! Buradaki insanlara bundan söz ettiğimde, nasıl herşeyi bilmemizin beklediklerini anlayamadılar ve doğal olarak; nasıl öğrendiğimizi sordular!. Cevabım mı?; Halleluja Google! :)
</p><p>
Yeni görevim ve şirketimde geçen bir haftaya gelirsek, Ted ile bir hafta boyunca proje ekibi ile tasarım toplantıları yaptık. Proje ekibimizde bizim dışımızda; 2 frontend developer, 2 backend developer (biri aynı zamanda DB uzmanı), 1 sysadmin, 1 grafiker var.
</p><p>
İlk gün, müşteriden gelen RFP (Request For Proposal) belgesi baz alınarak çıkarılan StoryBoardları inceledik. Benden önce kullanılacak teknolojiye karar verilmiş, use-case diagramları Ted tarafından çıkarılmış ve ekip bu teknolojiye uygun olarak seçilmişti. Toplantı öğle yemeği saatine kadar sürdü ve projedeki herkes kendi açısından neler gerektiği ile ilgili notlar aldı ve deneyimlerini ekip ile paylaştı.
</p><p>
Öğleden sonra, frontend yazılım geliştiriciler, WADA (Wep Application Data Architect) adında, içerisinde isteklerin ne şekilde yapılacağını nasıl yanıtların alınacağı ile ilgili bir döküman hazırlamaya koyuldular. Dökümanda ayrıca template engine içerisinde kullanılacak veri atamalarıda yer alıyordu. Bu dosya JSON formatında olduğu içinde rahatlıkla versiyon takip sistemine eklenip değişiklikler hızlı bir şekilde yapılmasını hedefliyordu.
</p><p>
Ben ve Ted ise öğleden sonra, tasarım toplantılarına başlamıştık. Veritabanı uzmanı ile birlikte E/R diagramını hazırladık. Akşama kadar performans konuları (aktif/pasif, clustering) gibi konular konuşuldu.
</p><p>
Backend geliştiriciler ise, geliştirme ortamlarını sistem yöneticimiz Fabian ile birlikte hazırladılar, hangi kütüphaneleri kullanacakları vb konulara karar verdiler ve ertesi iki gün boyunca; Ted, ben ve 2 backend geliştiricisi ile birlikte, sınıf diagramları ve sekans diagramlarını tartıştık. Performans ve güvenlik konularının konuşulduğu bir toplantı olduğunu söyleyebilirim.
</p><p>
Üçüncü günün akşamında grafiker bize 3 taslak ile geldi. Bu toplantıya frontend geliştiricilerde katıldı. Buradada ağırlık kullanılabilirlik ve sayfanın yükü üzerine ve ajax düşünülen yerlerin etkileri üzerine yapılan konuşmalar vardı. Nerelerde cache kullanılması gerektiği gibi notları Ted not ettiğini gördüm. Bu bilgi anında eposta grubu ile paylaştırıldı. İşin ilginç tarafı bu tasarımlarla ilgili kimse güzel olmuş gibi yorumda bulunmadı. Benim dışımda, kimse tasarımın güzelliği ile ilgilenmiyordu. Bu toplantının gündemi kullanılabilirlikti ve beğenip beğenmediğini söyleyecek tek kişi ise müşteriydi. Toplantının yapılmasındaki amaç, tasarım müşteriye sunulmadan önce, frontend tarafında sonradan çıkabilecek kötü süprizler ve müşteriden gelebilecek saçma isteklerin önüne geçmekti.
</p><p>
Şirketin ortak bir zihni olduğunu söyleyebilirim. Zaten ilk geldiğim gün bundan söz etmişlerdi. Yazılan ve öğrenilen herşey, tüm şirket tarafından biliniyor ve hemen kütüphanedeki yerini alıyordu. Böylece tekrar tekrar pek birşey yapılmıyordu.
</p><p>
Cuma günü yaptığımız toplantıda draft olsalarda hemen hemen herşey hazırdı. Müşteri tasarımı seçmiş, sınıf diagramlarının büyük çoğunluğu hazırlanmıştı. Tüm sayfalar ve görünüm bileşenleri(widgets) sayfaların nasıl davranacağı, ne gibi görünüm bileşenelerine ihtiyaç olduğu WADA dökümanında belirtilmişti. Neredeyse herşey projenin 2. haftasında rayına oturmuş görünüyordu. İnanılmaz bir deneyimin parçası olmuştum.
</p><p>
Bu projedeki edindiğim deneyimlerimi paylaşmaya daha sonraki yazılarımda devam edeceğim. Sözünü ettiğim belgelerin örneklerini de izin alabilirsem buraya dahil edeceğim.</p>]]></description>
      <link>http://hasanozgan.com/notes/post/yazilim-gelistirme-surecleri</link>
      <pubDate>Sun, 02 Aug 2009 13:28:14 -0400</pubDate>
      <guid isPermaLink="true">http://hasanozgan.com/notes/post/yazilim-gelistirme-surecleri</guid>
    </item>
  </channel></rss>