Uzun bir ara verdikten sonra Yankoltuk proje ekibi olarak bir onceki hafta başka Boğaziçi Yazılım Mühendisliği Master mezunları arkadaşlarla  da yemek için uğradıgımız Gilan Cafe'de buluştuk. Gilan Cafe arkadaşımız Fatih Nayebi ve ailesinin işlettiği İran yemekleri sunan çok şık bir yer. Bir ara arkadışımız Halil Öztürk te aramıza katıldı ve bize destek verdi.
Fatih Nayebi Arda Basoglu
Fatih Nayebi Yankoltuk'u Mac bilgisayarında denerken
Güzel bir sabah kahvaltısından sonra Gizem, Boğaç ve ben çalışmaya koyulduk. Uzun süredir fiziksel olarak biraraya gelmesek te Boğaç ve ben birçok kez evden birbirimizle sürekli Skype üzerinde konuşarak mesai yapmıştık. Skype'ın görüşme kalitesi kesinlikle çok uygun ve yanyana oturuyormuşsunuz gibi hissedebiliyorsunuz nerdeyse. Bir keresinde 5 saat durmadan çalıştığımızı bile söyleyebilirim. Bu çalışmalar sırasında diğer bloglarda yazdığım teknik ayrıntılar üzerinde çalışıp mükemmelleştirmeye çalışmıştık. Birçok konuda çok ilerledik ancak Boğaç'ın kontrolü ele alması benim onun işlerini bitirmesini beklememe sebep oluyordu ve bu arada fazla kod yazamıyordum. Boğaç ta iş yoğunluğu yüzünden gerekli zamana sahip olamıyordu. Ben de yeni bir karar alarak kod yazma işinin çoğunu tekrar kendi üzerime aldım.

Bunu yaparken ikinci versiyon için yarattığımız nerdeyse tüm yenilikleri bir kenara koydum ya da muadili ile değiştirdim. Örneğin, ExtJs'ten tamamen vazgeçip JQuery kullanmaya başladım. JQuery kullanmak çok daha verimli diye düşünüyorum. Çünkü ilgili dökümanlar ve JQuery cemiyeti çok zengin ve kalabalık. Bu da geliştirme hızını arttırıyor.
Gizem Gurbuz Bogac Aslanyurek Halil Ozturk Arda Basoglu
Ilık Haziran havasında Gilan Cafe bahçesinde çalışma
Hepimiz productiondaki Yankoltuk'u test etti ve ilgili bugları ticket olarak Trac 'e ekledik. Sadece buglara odaklandık ve nerdeyse hiçbir iyileştirme üzerinde durmadık. Bunun sebebi geçtiğimiz çaılşma performansımıza baktığımız zaman yapılacaklar listesinin uzatmanın anlamsız olduğunu anlamamızdandı. Çok yavaş ilerlediğimiz bir gerçek iken nerdeyse 10 aydır da bu işten hiç vazgeçmediğimiz de  bir gerçek.
 
 
Geçenlerde bir sitenin tanıtımını gördüm ve merak edip ziyaret ettim. Site freelancer.com kopyası bir site. Projesi olanlar proje ilanı veriyor, free-lance çalışan kişiler de bu projeye talip olup bir tür ihaleye katılıyorlar. Ele avuca sığar bir şey var mı diye projeler arasında gezinirken birinin notlarında alttaki yazıya rastladım ve bu yazıyı yazmaya karar verdim.

"...Yazilim icin kullanilacak program'a (filemaker, access gibi programlar) lisans ucreti odemektense acik kaynak yazilim kullanmayi tercih ediyoruz. burdan yapacagimiz tasarrufu programin gelistirilmesinde harcamak bizim icin daha uygun..."

Neymiş, lisans ücreti ödemektense açık kaynak yazılım kullanmayı tercih edermiş. Bununla da kalmayıp buradan tasarruf edeceği miktarı geliştirmeye harcayacağını söyleyerek teklifte bulunacak kişilere de açık kaynak yazılımlar kullanarak daha fazla para kazanabileceklerini ima ediyor (etmiyor mu?).

Evet açık kaynaklı yazılımların birçoğu ücretsiz kullanılabiliyor. Bu harika birşey. Hem ücret ödemiyoruz hem de kaynağı görüyor ve istersek ihtiyaçlarımıza uygun şekilde değiştiriyoruz, hataları varsa ilgili herkese duyuruyoruz, düzeltiyoruz, katkıda bulunuyoruz. Bu arada açık kaynaklı yazılımların hepsinin de ücretsiz olmadığını da biliyoruz. Bu söylediklerimi zaten tecrübeli yazılım insanları biliyorlar.

Burda beni şaşırtan ve benim hoşuma gitmeyen şeyler, dilin yanlış ve özensiz kullanılması ve açık kaynak felsefesine olan duyarsızlık.

Kişi, "...
lisans ucreti odemektense acik kaynak yazilim kullanmayi tercih ediyoruz..." derken aslında "açık kaynaklı" tamlaması yerine "beleş" veya "ücretsiz" kullanmalıydı. Çünkü, sadece tasarruf yapmaktan bahsediyor; güvenilirlik, esneklik, kontrol edilebilirlikten, katkıdan bahsetmiyor.

"Açık kaynak", benim çevremde gördüğüm kadarıyla "beleş" kelimesinin yerini almış gibi görünüyor. "Beleş" kelimesini özellikle kulanıyorum çünkü içinde fırsatçılık gibi pek ahlaki olmayan bir anlamı da barındırıyor.

Neden böyle?  Kullandığınız kültür parçasına uzaktan komşuysanız o zaman o parça için kullandığınız sözcük anlam kaymasına uğrar da ondan. "Open source" diye bir şey duyarsınız, ona  "açık kaynak" der ve dilden dile yayarsınız (aslında şanslı bir durum, "oturgaçlı götürgeç" kadar tuhaf bir çeviri yapmanıza gerek kalmamış). Dİlden dile dağılırken beraberindeki anlam beyinden beyine dağılmayabilir tabi. "Açık kaynak" birden bir bakmışsınız "beleş" yerine kullanılır bir tamlama olmuş. Kültür ithal edildiği sürece böyle gariplikler görmeye devam edeceğiz bence.

Belki de bir ülkenin gelişmişliği sözlüğündeki yabancı sözcuklerin sayısına ters orantılıdır. Bunlardan anlamı kaymış veya bozulmuş yabancı sözcükleri de ağırlıklarını iki katına çıkarıp öyle değerlendirirsek yanlış olmaz.
 
 
Gizem Gürbüz, Arda Başoğlu, Boğaç Aslanyürek
Boğaç Ext JS ile uğraşırken Arda ile Gizem RFacebok'un bilinmeyenlerini araştırıyor
Bu hafta iki şey üstünde uğraştık. Birincisi Ext Js ile arama fonksiyonunun şekillendirilmesi, diğeri de Facebook, heroku, RFacebook üçlemesinin getirdiği zorlukları aşmaya çalışmak. Aslında bu ikisi birbirinden bağımsız değil. Boğaç her yaptığı değişikliği görebilmek için daha önceki yazılarımda da bahsettiğim environment (çevre) zorluklarıyla uğraşmak zorunda kalıyordu. Biz de uygula-yükle-test et döngüsünü nasıl kolaylaştırırız diye düşünmeye başladık. Bununla ilgili bir dizi denemeden sonra staging sunucusunu heroku üstünde değil de, kendi kontrol ettiğimiz bir sunucu üstünden çalıştırmanın daha iyi olabileceğini anladık. Aslında burada kendimizin de yaptığı bir yanlışı düzeltmem lazım. Staging olarak kullandığımız sunucuyu aynı anda test sunucusu olarak kullanıyoruz. Aslında şu anda staging diye bahsettiğim sunucu test sunucusu.

Neden test için heroku çok uygun değil?

* heroku'nun Rails loglarının sadece kısa bir bölümünü gösteriyor (http://docs.heroku.com/logs-exceptions) bu yüzden bir sorun olduğu zaman keşfetmek zorlaşabiliyor. heroku production için http://hoptoadapp.com/ gibi 3. parti ücretli servislerin kullanılmasını öneriyor.
* git kullanarak uygulamayı heroku'ya yüklemek en azından 1 dakikayı alıyor. En ufak değişiklik için bile bu süre çok uzun. Yapılan değişikliğin etkisini görmek bence en fazla 5 saniye almalı. Yani bir dakikanın 1/12 si. Aradaki fark büyük.
 
 
Boğaç Aslanyürek, Gizem Gürbüz
Boğaç Aslanyürek, Gizem Gürbüz Google Map API ile çalışırken
Bu hafta Google Maps API ile istediklerimize oldukça yakın bir şekilde değişiklikler yaptık. Sonra Boğaç niye Ext JS kullanmayalım dedi! Bu AJAX işlerimizi kolaylaştıracakmış. Hemen kısa bir inceleme yaptık ve Ext Js'i  kullanmanın işleri çok kolaylaştıracağını düşündük. Boğaç auto complete işlerini yapacak bir bileşeni entegre etti. Yaptığımız değişiklikleri staging e yükleyip görmek istedik ama Heroku o sırada çuvalladı ve biz de uzun geçen bir çalışma toplantısını bitirdik.

Not etmek istediğim birşey var. Nerdeyse her hafta buluşmamıza rağmen çalışma saatimiz genelde 2-3 saati geçmiyor ve toplamda bu çok fazla bir çalışma zamanı değil. Ancak hepimiz büyük ihtimal aynı şeyi düşünüyoruz; o da, Facebook, Heroku ikilisinde yazılım geliştirmek oldukça sıkıntılı. Mimarinin getirdiği zorluklar var. Ayrıntıya girmeyeceğim. Gerçi daha parlak bir takım bu zorlukların üstesinden gelebilecek bir çözüm bulabilirdi belki ama bizim de uğraşmadığımızı söyleyemem. Kısacası artık her hafta alt yapının getirdiği zorluklardan kurtulmamız lazım diye düşünüyorum. Böyle angaryalarla uğraşmak ve asıl işe odaklanamamak motivasyonumuzu zorluyor. Yankoltuk'un ne olduğunu bilmeyenler dediğimden pek birşey çıkaramayacaklardır tabii. Ben bu yazıları, daha sonradan herkesin kullanabileceğini düşündüğümüz bir uygulamanın güncesi olarak devam ettiriyorum.  Yıllar sonra geriye dönüp baktığımızda nelerle uğraştığımızı hatırlamak için.
Arda Başoğlu, Boğaç Aslanyürek Ext JS'i deniyor
Arda Başoğlu, Boğaç Aslanyürek Ext JS'i deniyor
 
 
Uzun zamandır uğraştığımız Google Map API ile aramayı bütünleştirme çabalarımız bu hafta bir adım daha öteye gitti. Evvelki hafta Lerzan'ın araştırmaları sonucu bulduğu Mapstraction aracıyla yola devam etmektense bir Rails plug-in i ile devam edersek daha esnek bir geliştirme ortamına sahip oluruz düşüncesiyle YM4R ile çalışmayı denedik. Deneyimlerimizden çıkardığım şey bu plug-in in henüz olgunlaşmamış veya en azından bizim işlerimizi kolaylaştırmayacağını gördüm. Bunun yanında, Google Map API dökümanı oldukça ayrıntılı ve kullanışlı diye düşünüyorum.

Gizem ve Lerzan bu hafta Google MAP API ile çok fazla ilerleme kaydettiler ve haritayla yapmamız gereken önemli etkileşimleri kontrol etmeyi öğrendiler ve çalıştırdılar. Artık YM4R kullanmayacağız sanırım. Onu yerine saf JavaScript ile kontrol edilen, ihtiyaçlarımızı giderecek kadar kolay ve güçlü olan Google Map API ı doğrudan kullanacağız.
 
 
Sabah 10;30'da Beşiktaş Nero Cafe'ye gittiğimde herzaman oturduğumuz masaının dolu olduğunu gördüm. Başka çalışabilecek düzgün masa olmadığından hemen yandaki Starbucks'a gidip bir şansımı denemek istedim. İkinci kata çıktım ve beni bekleyen bomboş bir salon ve iki güzel masa gördüm. Hemen yerleştim ve laptopumu açtım İnternet bağlantısını test ettim. Nero Cafe'nin bağlantısı kadar kesintisiz ve performanslı olmamasına rağmen işimize yarayacak kadar iyiydi.
Yankoltuk
Yarım saat içinde Lerzan ve Boğaç ta geldiler ve hemen çalışmaya koyulduk. Lerzan bize yaptığı araştırmaları gösterdi ve bize getirdiği kod üstünden Boğaç eklentiler yaparak kullanmak istediğimiz harita fonksiyonlarına bizi bir adım daha yaklaştırdı. Böylece kullanıcıların nasıl arama yapacağını ve adres görüntülemeyi de nasıl uygulayacağımıza dair somut adım atmış olduk.
Starbucks, Yankoltuk, Lerzan, Boğaç, Arda
Beşiktaş Starbucks'ın çalışma masaları oldukça rahat
Boğaç biraz json biraz Ruby, biraz da Starbucks'ın pek kaliteli olmayan İnternet bağlantısıyla uğraştıktan sonra yapmak istediği şeyi bitirdi ve çalıştırdı. Bizimkiler yorulduk bir ara verelim dediler ve aşağıya indiler bir şeyler almak için. Döndüklerinde ise bana bir sürpriz yapıp doğum günüm şerefine üstünde 35. yaşımı temsil eden 4 mumla süslenmiş pasta getirdiler. Öpüşüp sarıldıktan sonra pastaları kahvelerimizle bir güzel yedik ve toplantımızı da böyle mutlu bir şekilde tamamlamış olduk. Herkese nice yıllar arkadaşlar...
Arda Başoğlu 35. yıl
35. yaş günüm
 
 
Bir önceki toplantımızı kar tatili nedeniyle erteledikten sonra tekrar ılık bir günde Beşiktaş Nero Cafe'de buluştuk. Acaba Nero Cafe bize sponsor olamaz mı? :)
nero-cafe-doruk-net
Boğaç bize master mezuniyetinin şerefine birer kahve ısmarlayarak sıcak bir açılış yaptı. Bu durumda grubumuzda herkes mezun olmuş oldu. Bilmeyenler için söyleyeyim, hepimiz Boğaziçi Üniversitesi Yazılım Mühendisliği Yüksek Lisans öğrencileriydik. Gizem'le Lerzan 2009 sonbahar, ben de 2009 yaz döneminde mezun olduk.

Kahvelerimizi içmeye devam ederken Lerzan bize Rails ile ilgili yaptığı ufak çalışmaları anlattı. Bu tip ufak ders benzeri çalışmalarımızı her toplantımıza eklemeyi düşünüyoruz. Böylece her hafta ufak ta olsa yeni birşeyler öğrenmek ve akıllarımızı taze tutmayı hedefliyoruz.

Daha sonra benim daha önce yazdığım arama fonksiyonuna tekrar geri döndük ve kod gözden geçirmesi yaptık. Bu tip gözden geçirmeler hepimizin eksiklerini gidermede çok faydası olduğunu görüyorum. Ayrıca herkes iş mantığını da öğrenmiş oluyor. Bence bu en iyi dökimandan daha değerli. Gerçi ekibe yeni katılanlar olursa bu dediğim tabi ki geçersiz olur. O yüzden biz de zaten Trac üzerinde Wiki'mizi mümkün olduğunca güncel tutuyor ve yaptıklarımızı sürekli not alıyoruz.

Bu hafta özellikle kullanıcıların kolay ve etkin arama yapabilmelerini sağlayacak özellikler üzeründe durmaya çalıştık. Bunun için kullanıcının IP adresinden bulunduğu lokasyonu çözerek bunu aram yaptığı adrese eklemeyi düşünüyorduk. Böylece arama sonuçları daha dar bir küme halinde gelecek ve aralarından seçim kolaylaşacaktı. Ancak kullandığımız hazır servisler IP adresinden lokasyonu bulmada çok başarılı olamadığını gördük. Bir sonraki çalışmamıza daha uygun bir servis bulmamız gerektiğine karar verdik.
Arda Başoğlu, Boğaç Aslanyürek, Gizem Gürbüz
Arda Başoğlu, Boğaç Aslanyürek, Gizem Gürbüz
Her zamanki olduğu gibi saat 14:00'e doğru toplantımızı bitirdik; ama bu sefer dışarı çıkıp başka bir yerde güzel bir yemek yiyip sohbetimize devam ettik.
Beşiktaş'ta yemek
Beşitaş'ta yemek
 
 
hp dv2000 gpu failure
Yıllardır işyerinde ve evde kullandığım HP bilgisayarlardan hep memnun kalmışımdır. Memnun kaldığım içinde tüm arkadaşlarıma tavsiye etmişimdir. HP'nin Türkiye'deki servisi konusunda şimdiye kadar ben pek sıkıntı da duymadım ve aldığm servislerden de hep menun kaldım. Fakat HP ile ilgili bu olumlu fikirlerim HP DV2000 laptopum geçen gün arızalanınca değişti.

Bilgisayar ilkönce fazla ısınmaya başladı. Herhalde çok yükleniyorum diye oluyor dedim kendi kendime. Geçenlerde aldığım bir kamerayla çektiğim videoları seyrediyordum ve yüksek çözünürlüklü oldukları için makina biraz zorlanıyordu dedim. Derken bir anda ekran görüntüsü gitti ve mavi ekran çıktı. Bilgisayarı düğmeden kapadıktan sonra açtığımda ekrana tuhaf görüntüler (çizgiler, karmaşık renker) gelmeye başladı. Sorunun grafik işlemciden kaynaklandığını tahmin ettim. Tekrar tekrar demelerimden sonra hiçbirşey değişmedi.
 
Hemen yedeklerimi almak için makinayı kabloyla ev ağına bağladıktan sonra Windows'u başlatabilen makinama bağlandım. Ekranda manasız görüntüler eşliğinde yedeklerimi aldım. Bu arada tekrar fazlaca ısınan bilgisayarın ekran görüntüsü geri geldi ve sorun geçti zannettim. Malesef sevincim beş dakşak sürmedi ve tekrar aynı şey oldu.

Biraz Internet arştırması malesef bana acı gerçeği gösterdi. DV2000 gibi diğer DV serileri de benzer arızalardan kullanılmaz hele gelmişler. Hatta YouTube da bu arızaların nasıl tamir edilebileceği de görüntülenmiş.


Eğer YouTube videoların görüntüleyebiliyorsanız aşağıdaki videoyu bir seyredin.
Bu videodan anlayabileceğiniz gibi grafik işlemcinin zarar görmüş anakart bağlantısı ısı kullanılarak tamir edilmeye çalışılıyor. Yani bir nevi lehim restorasyonu denebilir. Grafik çipinin ayaklarındaki lehimler anakarta olan bağlantıda fazla ısı ile zarar görüyor ve temassızlık yapıyor. Hava tabancası ile ısıtma bu arızayı düzeltmeyi amaçlıyor. YouTube da benzer başka videolar da var. 

Bu tamirdeki sorun, geçici olması. Zaten fabrikada bile bu işlem gerektiği kadar etkin yapılamamış ve bir çok kullanıcının bilgisayarı bir, iki senede kullanılmaz hale gelmiştir. Kısacası üretimde açık bir hata var. Üretim hatasını sıcak hava tabancasıyla düzeltmek ancak geçici olabilir. Malesef bu tip tamirden geçip 2. el satışta olan da bir sürü DV serisi HP laptop ta bulunmaktadır. Amerika'da e-bay, Türkiye'de de sahibinden.com da, ya da 2. el satan mağazalarda HP DV serisi laptopları bolca görebilirsiniz.

HP DV serisi laptopu olnlara tavsiyelerim şöyle:

 * Laptopunuzun fazla ısınmasına izin vermeyin. Mümkünse Vista üzerinde ayar yaparak CPU performasını %50 indirin
 * Garanti süresi dolmamışsa laptopunuzu arızalanacak kadar ısıtın ve benimki gibi garanti süresi dolduktan sonra bozulmasını beklemeyin. Benimki 2 yıl bir ay sonra bozuldu :)
 * Laptopunuzu fazla performans gerektiren işler için kullanmayın
 * Laptopunzu satın

Gelelim HP ile benim gelecekteki ilişkime. Ben HP ye böyle bir üretim hatasını düzeltmediği için kızgınım. Garanti süresi dolsa bile böyle bir hatayı düzeltmeleri gerekirdi diye düşünüyorum. Garanti süresine eşit cihaz ömrü ekonomik olarak kabul edilemez. Bundan sonra ben arkadaşlarıma artık nasıl HP tavisiye edebilirim? Edemem tabi ki.
Ben de bundan sonra malesef HP almayacağım. Tabi ki aldığım diğer markalar mükemmel mi? Değil. Ama şunu biliyorum. Çin malı alırken en az iki kere düşünmek gerekir. Gerçi artık başka şansızmız da yok sanırım.

Bir dahaki sefere şansımı Sony'lerde deneyeceğim. Birşey olursa size yine haber veririm.

Son olarak 2. el bilgisayar almak isteyenlere tavsiyem şu. Tamir edilmiş olduğunu düşündüğünüz laptoplardan çok çaresiz değilseniz uzak durun. Geçmişini bilmediğiniz laptoplar son derece kalitesiz restorasyonlardan geçmiş olabilir.
 
 
Ocak ayının sıcak günlerinden birinde tekrar buluştuk (küresel ısınma gittikçe etkilerini mi gösteriyor ne!). Boğaç yüksek lisans bitirme projesinin son bölümlerini tamamlamak için gece gündüz çalıştığı için bu sefer toplantıya katılamadı. Biz de Gizem, Lerzan ve Ozan biraraya geldik. En son toplantımızda arama özelliği ile uğraşmıştık. bu toplantıda da bunun üzerinde duruduk.

AJAX arama için Rails HTML helperları kullandık ve sonuçları malesef Türkçe karakterler için şimdilik iyi değil. Bunun üstünde biraz durduktan sonra anladık ki helperlar ın çalıştırdığı JavaScript Türkçe karakterleri işleyemiyor. Sorunu bulmamıza rağmen henüz bir çözüm üretmedik.

Bir daha ki toplantımıza yeni hedefler koyarak toplantıyı sonlandırdık.  
 
 
Arda Başoğlu, Boğaç Aslanyürek, Lerzan Akbulut
Arda Başoğlu, Boğaç Aslanyürek, Lerzan Akbulut
2010'un ikinci gününde tekrar Nero Cafe'de bulıştuk. Tatilden dolayı olcak ki genelde öğrencilerin doldurduğu Nero Cafe boş ve sakindi.

Bu buluşmamızda vaktimizi arama özelliği üzerinde yoğunlaşarak geçirdik. Uzun zamandır Google Maps API ile çalıştırmayı başaramadığım bir arama fonksiyonu bitirmiştim ve hep beraber ilk prototipi nasıl daha kullanışlı bir hale getireceğimiz üzerinde uzun uzun düşündük. Uygulamanın nerdeyse en önemli yanı olan aramanın çok iyi olmasının gerekli olduğunu düşündüğümüz için sanırım gelecek toplantılarda da bunun üzerinde durmaya devam edeceğiz.

Bu arada fotografları çekecek düzgün bir kamera da edinmiş olduk.
Boğaç auto complete, Gizem'le Lerzan Heroku ile uğraşırken
Boğaç auto complete, Gizem'le Lerzan Heroku ile uğraşırken