Picture
Bu sefer herkes kamerya bakıyor. Ben hariç :)
Uzun bir aradan sonra tüm ekip biraraya geldik. İstanbul'un küresel iklim değişikliğine ayak uyduran kavurucu bir yaz Cumartesi'de Nero Cafe'nin klimayla soğutulmuş üst salonunda rahat bir çalışma ortamına yerleştik. Herkes laptopları açtı ve Yankoltuk'u test ettik. Bir düzine bug ve iyileştirme tekliflerini ticketlar haline getirdikten sonra evlere dağıldık. Son derece verimli bir çalışma olduğunu söylemeliyim. Kod yazmaktan arınıp böyle bir çalışma yapmak ta ayrıca hepimiz için keyifli oldu. Şimdi tekrar Boğaç'la bir araya gelip kod yazmamız gerekecek. Bu sefer işlerimizin büyük bir bölümünü bitirmiş olmanın rahatlığıyla ama...
 
 
Yankoltuk, Arda Başoğlu, Boğaç Aslanyürek
Çok sıcak bir Cuma akşamında Yankoltuk çalışması. Boğaç Aslanyürek, Arda Başoğlu
Yankoltuk için tekrar Boğaç'la birlikte bir Cuma gecesi çalışması yaptık. Sabah kaltığımızda da geceden kalma bazı hataları ayıkladık ve nihayet Yankoltuk'un ilk major versiyonunu bitirdik. Başından beri yapmak istediğimiz ama zaman yetersizliğinden tamamlayamadığımız kordinat bazında aramayı bitirdik. Artık Yankoltuk kullanıcıları arama sonuçlarını aradıkları A-B arasındaki yolculukları kordinat bazında bulacaklar. Bu özellik Google Map API sayesinden sağlanıyor. Biz bu API ile Yankoltuk'u bütünleştirdik. Biraz sancılı bir süreç olduğunu söylemem lazım. Bize yeni olan bazı teknolojiler kullandık; bu yüzden öğrenmek için geçirdiğimiz zaman da oldukça uzundu. Bundan sonra artık arkamıza yaslanıp bir dizi test yapacağız, hatalar varsa bunların üstüne gideceiğiz. Bunlar bitince de iyileştirme ile ilgili çalışmalara başlayacağız.
 
 
Başlığı hergün ziyaret ettiğim güvenilir bir haber sitesinden alıntıladım. Sokataki adamın çok zeki olmadığını ima eden bir cümle sadece. Haberin güvenilirliği çok önemli değil aslında, bu lafa biz zaten alışığız; kanıksamışız: sokaktaki adam "zor idrak eder". Yani sokaktaki adamın pek birşey bildiği yok. Peki sokaktaki adamlar herşeyi anlamıyorsa bunun sorumlusu kim? Size alternatif birkaç cevap: Hepimiz, devlet, hükümet...Bu lafı kullanan bir milletvekili; bizden biri. Bizim abimiz, ablamız, kardeşimiz, amcamız, komşumuz...neyse...Kötü olan o milletvekilinin ikiyüzlülüğü esasen. Gerektiğinde o "sokaktaki adam"ın oyuyla övünen, gerektiğinde o adamı aşağılayan ve üstüne o insanları temsil ettiğini söyleyen biri. Bu arada o adamların eğitimiyle de ilgili yükümlülüğü olan biri. Sormak istediğm şu: "demokratik, parlementer sistem" sizce de aslında "ideal birşey" olarak bir illüzyon değil mi? Sahiden biz insanların böyle bir düzene ihtiyacı var mı? Ben bu aralar daha çok düşünüyorum. Siz de bir düşünün bakalım... :) 400+ adam milyonların hayatıyla oynamalı mı?
 
 
Picture
Bu sefer değişiklik yaparak bizim evde çalıştık. Boğaç iş çıkışı bize geldi ve Pideci den sıparş ettiğimiz güzel pideleri yedikten sonra işe koyulduk.
Geçen hafta konuştuklarımızdan sonra Boğaç ve ben birçok değişiklik yapmıştık. Bu değişiklerin üsütünden geçerek kodlarımızı birleştirdik. Bu çalışmada geçen toplantıda belirlediğimiz birçok hatayı düzelttik ve küçük geliştirmeler de yaptık. Hala ufak tefek sorunlarımız ve eklememiz gereken çok büyük bir özellik var. Bütün bunları da sanırım önümüzdeki ay içinde tamamlayacağız ve public betamızı sonunda yayınlayacağız diye düşünüyorum. Böylece bu blogu okuyup ta hiçbirşey anlamayanlar sonunda aklındaki sorulara cevap bulabilecekler.
 
 
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