Category Archives: Genel

Geliştirme ortamı bağımlılık mı yapıyor?

Bugün yemek yerken birşey farkettim, yarım kalmış eski projelerime devam etmek istiyordum. Bu genelde başıma gelmez, hep yeni bir projeye başlayıp onu yarım bırakmayı tercih ederim. Sonra merak ettim, bu istek nereden geliyor? Elbetteki eski bilgisayarımı kullanma zorunluluğumdan. Ama önce bütün detayıyla başımdan geçen olayı anlatayım (dileyen bu kısmı atlayıp en son iki paragrafı okuyabilir):

1.2008’in ilk ayı, askerden gelmişim, evde sürekli kullandığım 4 harddisk takılı devasa ve bir okadar da gürültülü masaüstü bilgisayarım resmi olarak ayvayı yediğini belirtti. Durduk yere kitlenmeler ve 10 denemede açılmalar yaşamaya başladım. Bu durumdan bir gün önce birkaç oyun ve araç projesi üzerinde büyük bir ritimle çalışmaktaydım (askerlik sonrası işsizlik durumu).
2.Dandik güç ünitesinin bozulduğunda kanaat getirip en pahalısından thermal take bir psu aldım. Taksitlerini halen ödemekteyim.
3.Yeni PSU’yu bağladıktan sonra ilk açılışta çot diye bir ses, peşinden hoş olmayan bir koku çıktı. Kokunun ramlerin olduğu taraftan geldiğini farkedip herhalde ramleri yaktım dedim (daha önce başma gelmişti).
4.Uzun ve sinirbozucu dakikalar sonrasında sadece ekran kartının teklemekte olduğunu farkettim. Fakat o kart olmadan sistemin pek bir esprisi kalmıyordu, çalıştırabilmek için iyice uğraştım. Bu sırada ikinci bir çot ile irkildim, kasanın altına giren birşey yüzünden alt kısmından kıvılcımlar saçan anakartı kurtarmak için board’u kasadan çıkarma kararı verdim.
5.Kasayı çıkarıp, kartın altındaki defektleri düzelttikten sonra kartı tekrar takıp kasayı toplamama rağmen kasa birdaha hareket etmedi. MCP northbridge el değmeyecek kadar ısınınca kartın mefta olduğunu anladım ve tüm parçaları ayırarak bir anakart arayışına girdim.
6.Anakart bulamayınca bir kez daha denemeye karar verdim ama iki tonlu siren sesi ile karşılaştım bu sefer, sinirden işlemciyi yerine oturtamadığımı düşünerek söktüm ama sökerken power’ı kapatmayı unuttuğum için birdaha makine çalışmadı.

7.Ertesi gün gidip kendime bir XPS m1330 alarak evdeki gürültüden ve iş-ev arasında veri taşıma zorluğunu aşma planı yaptım.
8.Tuzlu ama harika bir alet, her şekilde her laptopu solluyor ve egonuzu güzelce kaşıyor. Üzerinde gelen vista ilk başta terreddüte yol açsa da kısa sürede tüm şüphelerimin yersiz olduğunu kabullendim. İşletim sistemi yağ gibi akıyordu, UAC söylenenin aksine faydalıydı ve reboot denilen şey tarih olmuştu. Uzun süre hybernate-sleep kullandım, makinanızı açtıktan 7-8 saniye sonra bıraktığınız yerde bulmanız çok zevkliydi. Hele kısa süreli kapamalar için sleep kullanıyorsanız kapağı açtığınız gibi işe başlayabiliyordunuz.
9.İşte zurnanın zırt dediği yer burası. Sistemimden o kadar memnundum ki, Şimdiye kadar kenarından bile geçmediğim, geçmeyi planlamadığım, hatta yuh be, managed code’la uğraşıyolar bu devirde diye eleştirdiğim dotnet, birden çekici gelmeye başlamış olacak ki, visual studio’yu kurup C#’a gömüldüm. Eski harddisklerde kalmış tüm yarım projeler (ki bazıları gerçekten eğlenceli idi) olduğu gibi kaldılar çünkü eski çirkin ide’lere, komut satırlarına dönmek istemiyordum. Şimdi kim uğraşacak makefile’larla, bir de Cygwin kurmak gerek, rapid development için VB6 lazım, zaten çirkindi, ööf…

10. Eski projelerin hepsi yarım kaldığı gibi, nedense harddisklerden aktardığım klasörlere mecbur kalmadıkça girmiyordum. Sanki eski sevgilimin eşyaları gibi, ordaki herşey eski bir görsel algıya hizmet ediyordu. Farkında olmadan grafik tasarımlarım XP’den etkilenmişti ve şimdi tüm o çizimlere, koda, hatta filmlere baktığımda bana yabancı geliyorlardı.

11. Bu sancılı geçiş sürecim sonunda birkaç faydalı iş yaptım ve güzel tepkiler de aldım. Managed code ile daha da fazla uğraşıp, kurtulmaya çalışırken, sonunda VC++’a zıplamıştım ki, vista patladı.

12. Evet, tamamen lisanslı, içinde korsan yazılım bulunmayan, tertemiz ve günlük updateleri yapılmış vista uçtu. Service Pack 1’i otomatik olarak kurdu, yeniden başlattı, ve makine açılmaz oldu. İçindeki kritik veriyi kurtarmak için geçen 2 günün ardından bir 2 gün de sistemi istediğim stabiliteye oturtmak için uğraştım. Ama bu sefer sistem ilkinden daha iyi çalışmaya başladı, çünkü dell’in kurduğu birçok gereksiz oem’i dışarda bırakmıştım. Üstüne VS2008 çıkmıştı, ve büyük bir şevkle tekrar işe koyuldum. Zaten hep format atıp kendi istediğim gibi bir sistem kurmak istiyordum ama bu işe vakit ayırmak istememiştim.

13. Bu olaydan 10 gün kadar sonra tam da herşey tamamlanmış ve yolunda giderken, XPS öldü. Görünüşe göre dell, bu süper aleti o küçücük kasaya tıkıştırırken sınırı zorladığının farkında değilmiş, bu probleme bir forumda rastlamış ve ne kadar çok kullanıcının rutin anakart değiştirdiğini görmüştüm. Isınma probleminden olsa gerek, anakart arızasından dolayı laptop tuğlaya dönüştü. Neye üzüleceğimi şaşırdım, 10 gün sonra tatile çıkıyordum ve yeni projelerim vardı, güzel bir development ritmi tuturmuştum, iş yerinde bu ara hiç yoğunluk olmadığı için rahatça çalışabiliyordum, ve bütün bunların yanında laptop hurdaya dönmüştü. İşin ilginç tarafı, laptop’u hybernate ettikten sonra laptop yerinden hiç kıpırdamamasına ramen, ertesi gün devam etmek istediğim zaman açılmamasıydı.

14. Bu arada Dell teknik servisi diye birşeyin olmadığını öğrendim. Eğer yeni bir dell laptopunuz varsa bozulduğunda onu götürebileceğiniz bir yer yok. Yanlış anlamayın, dell kendince bu sorunu farklı bir şekilde çözmüş. Teknik servis ayağınıza geliyor. Ben çok uzakta oturduğum için eve uzun süre kimsenin uğramayacağını tahmin edip işlemi hızlandırmak için ısrarla makineyi yetkili servise elden bırakmak istemiştim. Fakat mümkün olmadı.

15. Sonunda mecburen dell teknik servise telefon ettim, numara 0811 ile başlayan ücretsiz bir numara. Ücretsiz ama kime ücretsiz? TürkTelekom abonelerine. Verilen servis numarasını cep telefonlarından arayamıyorsunuz. Büyük şirketlerde normal hat da olmuyor. Benim görevli olduğum kurum da özel bir şirketin ip-phone hizmetinden yararlanıyor. Sonuçta teknik serivisi aramak için bir telefon klübesine gitmek zorunda kaldım. Fakat gürültüden anlaşamadık ve eve gidene kadar servise ulaşamadım. Sanmayın ki işi savsakladım, hayır, Servise ulaşmak için aradığım firmalar, Armada, Kont, Koyuncu, PcGold (hatta laptopu aldığım dükkana bile gittim), TurkCell teknik servis, hatta bir ihtimal bilirler belki diye, exa, bimeks labs’i de aradım. Hatta bu kargaşa sırasında okadar çok yer gezdim ki yol üzerinde rastladığım MSI servisinde eşimin MSI laptopuna 1GB eklettirdim. Sonunda koyuncu (dell’in ithalatçı firması) bana dell’in uluslararası numarasını verdi, bu numarayı arayınca AT&T aracılığını atlayıp dire dell türkiye ile konuşabiliyordunuz fakat bu numara da aynı sebepten dolayı (ip-phone olması) çalışmadı.

16. Sonunda eve vardım ve dell’i aradım, hayret verici bir gelişme, telefonu açan kişi gerçekten çok bilgili görünüyordu. Genelde bu işlere bakan kişiler halkla ilişkiler kızları olurlar ya da sinirli teknik elemanlar olurlar. Bu sebepten ne dediğinizi anlamaz, derdinizi çözmek istemezler. Fakat bu sefer (belki tesadüftür) konuşan adam sanki mühendis gibi her b*ku biliyordu. Bunu geçtim, bahsettiğim herşeyi anlıyordu, sadece telefonlara bakan biri değil gibiydi. Böyle bir servise alışık değildim tabiiki.

17. Kısa süren telefon görüşmesi sonrasında, sorunumu anlattım ve karşımdaki kişi benim yeterli teknik bilgi sahibi olduğumu tahmin ederek, dilersem hemen bir teknisyen yollayabileceğini ya da beklemek istemezsem bazı testleri kendimin yapabileceğimi söyledi (ve kasayı söküp söylediği yerleri kontrol ettim). Sonuç olarak zaten ana kartın yandığından şüpheleniyorduk, bana anakart, harddisk ve işlemci göndermeyi teklif etti. Konuşmanın tamamı 10 dakika sürmemiştir, telefonda verdiğim beyanata güvenerek bu işlemleri yapması şaşırtıcı geldi bana. Tahminime göre 10 gün içinde tekrar çalışır bir laptopa sahip olacağım.

18. Bu arada ellerim bir bilgisayara dokunmalı diyerek, uzun süre param parça yatan emektar gürültülü makineme bir şans daha tanımaya karar verdim, tekrar topladım ve açtım, (abit NF7) MCP ateş gibi yanıyordu, hiç hareket yoktu. üzülerek toparlarken, bir anda gıcır thermal take psu’nun voltaj değerlerinin tutmama ihtimali geldi aklıma. Üzerinde envai çeşit soket vardı, bildik soketlerin yanında, AT,ATX, pciexpress, ata, sata, pata, hede hödö..

19. Ana kart biraz eski olduğu için ATX konnektörü 20+4 pin olarak iki ayrı soket üzerindeydi ve lanet olası PSU’da tam 3 tane 4 pinlik fiş bulunuyordu. Ben her seferinde 4 pinlik atx soketine 20 pinliğe bir file ile bağlı olan soketi takıyordum ve cuk oturuyordu. Hatırladığım kadarıyla bu ekstra 4 pinlik soketi takmak zorunda değildik. Ve onu söküp öyle çalıştırmayı denedim. Daha az ısı ama hala tepki yok. 24 pinlik ATX kablosunun son 4 pininde 5’er volt var. Benim bilmediğim nokta ise, benim anakartın ekstra soketi 12v isteyen bir soketmiş.

Sonra soketi ve fişleri irdelediğimde kendimi vurasım geldi. Diğer 4 pinlik soketlerde gayet rahat bir şekilde, hiç zorlanmadan bu yuvaya girebiliyor. Fakat şekil itibariyle sadece biri uyuyor. O biri de tek başına ortada sallanan iki sarı iki siyah kablonun ucunda duran bir fiş. Sonradan öğrendim ki bu fiş 12v taşıyormuş. Böyle büyük bir hatayı nasıl yaptım? Hadi ben dunkof’um, bu soketleri hazırlayanlarda hiç mi kafa yok? Yanlış soketi yanlış yuvaya rahatça girecek gibi tasarlamak neden? Evet, soketin köşesinde bir tırnak var ama diğer soketleri 90 derece döndürürseniz tırnaklar artık girişe engel olmuyor. HEm kendime, hem standard üreticiye küfürler yağdırırken doğru soketi yerine oturtunca makine nihayet tepki verdi, MCP soğudu amaa siren hala devam ediyor. Bu siren hiç koş değil, iki farklı ama kalın nota, kötü bişeyler olduğu belli.

20. Eğer internete inancınız yoksa, bir önceki denemenizde işlemciyi power varken yerinden söktüğünüz için kızarttığınızı düşünebilirsiniz. Ama google’da yaptığım ilk arama, bu sirenin, işlemcinin altına temas etmesi gereken küçük diyotun büküldüğünün sinyalcisi olduğunu açık etti. 30 saniye sonra karşımda çalışır bir makine vardı. Bunca aydır çektiğim cefaların hepsinin, yarım kalmış projelerin, ateş pahası laptop almamın, geciken plazma yazılarının tamamının tek sorumlusu yine ben (VE ŞU LANET OLASI SOKET TASARIMCISI) olduğumu gördüm.

21. Malesef GF6600GT grafik kartımı çalıştıramadım. Büyük olasılıkla yanlış voltajdan ya da başka salakça bir sebepten iflas etti. Şu anda bu yazıyı çok eskiden kalma bir savage4 agp ekran kartı üzerinde yazmaktayım. Yarın 6600 için şansımı selülozik tiner ile yıkayarak tekrar deniyeceğim.

Bu koca metni neden yazdım? Öncelikle içimi dökmek istedim. İkinci olarak, eski bilgisayarımın başına oturduğumda yarım kalmış tüm projelerimi bitirme isteği doğdu üzerimde, dotnet isteğim yok oldu (diğer bilgisayarda kaldı herşey), hatta simcity4 bile oynadım 20 dakika. Sonuç şu: üzerinde iş yaptığım geliştirme ortamı beni ele geçirmiş oluyor. Vista ile vistaya özgü işler yapmak zorunda kalıyorum, modernize oluyorum, kafamdaki önyargıları siliyorum. Eski işler çok eskide kalmış oluyor, terk ediliyor, yeni bir başlangıç yapmak istiyorum ve yapıyorum da. Ama şimdi XP’ye döndüğümde eskiden yaptığım işler tekrar çekici oldu, vistada kodladıklarım anlamsız kaldı. Bu söylemden hareketle, insanın sürekli çevre değiştirmesi yaptığı tüm işlerde değişikliğe yol açabilir. Düşünme tarzı, algı değişiyor, zevkler değişiyor, bir işi yapma şeklin, ve aynı işi yaparken kullandığın araçlar değişiyor, değişmek zorunda kalıyor ve yeni bir hedef kitleye yöneliyorsunuz. Tüm bunların olumlu etkileri var, ve artık iyi bir programcının tek bir geliştirme ortamına bağlı kalmaması gerektiğine inanıyorum. Her gereci önünüze koymuş, sorunsuz stabil çalışacak ortamı yakalamış da olsanız, daha yeni ve daha özgün işler çıkarabilmek için bazen tüm bu gereçleri terketmek gerekebiliyor. Düşünün, elinizdeki aynı tahta, aynı çekiç ve aynı keski ile kaç farklı çeşit sandalye yapabilirsiniz? acaba elinizden keskiyi alıp, köşeleri ovalleştirebileceğiniz bir araç verselerdi ürettiğiniz sandalyelerde köklü bir tasarım değişikliğine gitmek gerekmeyecek miydi?

Bir gün olur da (artık öldükten sonra mı olur bilmiyorum) bir programcı takımının başına sid meier ya da david braben misali geçersem, her yeni oyun/gereç yapımı için yeni bir ofis ve yeni bir araç takımı oluşturacağımdan emin olabilirsiniz.

Vista Desktop Search rezaleti

Ben de diyordum ki bu vista’da neden hiçbirşey bulamıyorum ben. Meğer açılan bir başka tekel davası yüzünden windows vista içinden arama özellikleri çıkarılarak SEARCH protokolü icad edilmiş. Eğer:
Başlat>Tüm Programlar> varsayılan programlar > dosya türünü ya da bir protokolü ilişkilendir > Search (en altta) seçeneğine bakarsanız karşısında Windows’u (desktop search) göreceksiniz. Bu son alınan mahkeme kararıyla özellikle SP1’den çıkarılan arama özelliklerinin bir sonucu. Bu karar üçüncü kişilerin de büyüyen arama motoru piyasasına katılmasını sağlıyor. Böylece arama işleminin “işletim sisteminin” bir parçası olduğu önyargısını silmeye çalışıyorlar. Örneğin siz Google Desktop Search kurarsanız buraya Google yerleşiyor ve vista içindeki her arama kutusu bu program için çalışmaya başlıyor.

Vista ile gelen salak arama motoru, sizin büyük bir düzen içerisinde tuttuğunuz Belgeler klasörünüzde zaten rahatça bulabildiğiniz şeyleri yeniden keşfederken, C dizininizde yaptığınız bir aramadan hiçbirşey bulamayabiliyor. Bu yüzden eski XP kullanıcıları (yeni düzene ayak uyduramayan eski kafalı moruklar) kafayı yemekte haklılar, çünkü XP’nin arama motoru yavaş da olsa garantiliydi.

Neyse ki kısa bir aramayla artık ayrı bir ürün haline gelen ve halen beleşe dağıtılan “Windows Search 4.0″a ulaşıveriyorsunuz! Bu araç Vista için bir update olarak geliyor, ayrıca Windows XP’ye de kurulabiliyor. Aşağıdaki linkten Windows Search 4.0’ı seçin ve sol taraftaki menüden “Install it” seçerek işletim sisteminizin üzerine tıklayın. Artık bana bişey ısmarlarsınız.

Search can’t find anyting on vista? Go there and select Windows Search 4.0
http://www.microsoft.com/windows/products/winfamily/desktopsearch/choose.mspx

Açık Kaynak Lisansları (GPL, BSD ve diğerleri)

Bugün uzun zamandır harddiskimde uyuşuk uyuşuk bekleyen kaynak kodunu herkesin kullanımına açmak istedim. Bu sebeple googlecode’a girdi yapıyordum ki, hangi lisansı seçmem gerektiği soruldu. Yıllardır bu hobiyi sürdürüyorum ve yoluma çıkan ve beni uyuz eden çok lisansla karşılaştım. Bunlardan biri LGPL’dir. Neyse, listede 7-8 tane lisans vardı ve yarısını bilmediğimi farkettim ve başladım araştırmaya. Bulduklarımı da unutmadan yazayım dedim. Ayrıca Gürer Özen ile de kısa bir sohbet ettik bu konuda, o da güzel özetler geçti.

Madem konu açıldı LGPL‘den başlayayım. Bu lisans altındaki kodu kullanırsanız, kaynak kodunuzu kapatabilirsiniz. Ama LGPL olan koda bir değişiklik yaparsanız o kısmı açmanız gerekiyor.

GPL‘olan kodlar ise “bulaşıcı” diye tabir edilen lisans. Eğer GPL altındaki bir kodu kullanırsanız, tüm kodu açmak gerekiyor. Bu sebepten GPL altındaki kodu kullananlar kendi kod parçalarını kapatabilmek için iki ayrı program yazıp shell ile birbirine bağlıyorlar. Böylece bir program GPL iken diğeri kapalı kod olabiliyor. GPL’in bir programın büyüyüp olgunlaşması için ideal olduğunu düşünüyorum.

BSD ve MIT lisansları daha özgürlükçü lisanslar. Temel olarak kodu alabilir kullanabilir, modifiye edebilirsiniz ve kaynak kodunuzun hiçbir kısmını açmak zorunda değilsiniz. BSD’nin MIT’ten farkı, BSD’de bir “reklam” maddesi olması. Bu maddeye göre kaynak kodunu kullanan birisi, programın ya da reklam bloşür/yayınlarının bir köşesine “Bu ürün California üniversitesi tarafından üretilen kod parçaları kullanır.” gibi bir not düşmesi gerekiyor. Nedense bu madde (web üzerinde okuduğum makalelere göre) pek de hoş karşılanmıyor. Bu yargının kaynağında ise http://www.fsf.org/licensing/essays/bsd.html adresindeki Richard Stallman’ın makalesi yatıyor. Stallman BSD’deki bu cümlenin (3.madde) bir karmaşa yarattığını düşünüyor. Eğer her kaynak sahibi o cümleyi kendi adını koyup değiştirirse, ve siz 5-10 adet farklı programcının kodunu kullanırsanız her programın başında uzun bir liste olacaktır diyor. Biz sinemacılar olarak film afişlerinin altında bir paragraf copyright mesajı kullanmaya alışık olduğumuz için ben bunda bir sakınca görmüyorum. Yani örnek olarak buyrun:
“Bu ürün California üniversitesi, Hede üniversitesi, Ahmet Mehmet, Veli Zeki, Ayşe Kemal, Bryan, Jack, Sawyer, Letitia, IBM A.Ş., Robocop, Serve the public thrust, protect the innocent ltd.şti. tarafından üretilen kod parçaları kullanır.”
Buyrun 13 farklı üreticinin kodu topu topu 3 satır tutar. Üstelik font büyüklüğü ya da okunaklılık konusunda bir zorlama da yok. Dilerseniz istediğiniz yere sığdırabilirsiniz. Hehe tabiiki büyük bir ürünün reklam broşürünün dibinde böyle bir mesaj marketing açısından pek hoş olmasa bile, “ne kadar ekmek, o kadar köfte” demişler 🙂 Neyse, eğer böyle bir mesajı tercih etmezseniz MIT (X11) lisansı kullanarak bu cümleden kurtulabilirsiniz.

Lisansları karşılaştırmak için:
http://developer.kde.org/documentation/licensing/licenses_summary.html