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...
0 Comments
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.
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. 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. 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.
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. 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. 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. 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. 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...
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. Bu hafta katılım bazı arkadaşlarımızın diğer işleri yüzünden gelememesi yüzünden biraz düşüktü. Gizem, Lerzan ve ben kaldığımız yerden devam ettik.
Proje klasörleri hakkında konuştuk. Proje klasörlerinin Yankoltuk açısından önemi development, production ve staging olmak üzere üç ana kolda ilerlememizden kaynaklanıyor. Klasörlerimizi bu üç mantıksal ayrıma ayak uydurup Git ve Heroku ile bütünleştirmek için oluşturmaya karar verdik. MySql'den PostgreSQL'e geçtik. Heroku'dan verilerin kolayca indirilip geri gönderilmesi için PostgreSQL daha iyi bir seçim gibi görünüyor. Heroku PostgreSQL kullandığından aynısını artık biz de kullanacağız. Toplantı sırasında production ve staging arasında veri transferini gerçekleştirdik. Bu production ve staging arasında geçiş yaparken çok işimize yarayacak bir tecrübe oldu. Yazılı olan kodun içine girerek hem iş mantığı hem de Rails ve Ruby özellikleri üzerinde ilerledik. Kod review yaptık. Eksik olduğumuz konular üzerinde konuştuk. |
AuthorArda Basoglu is a digital marketing agency owner, software engineer/developer, musician. Worked for several companies: TWB, BNB Software, PINC Solutions, hakia, Nurol, NTV. Archives
October 2021
Categories
All
|