 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
 Gizem Gürbüz, Arda Başoğlu 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.  Lerzan Akbulut, Arda Başoğlu
 Beşiktaş Nero Cafe Bu toplantımıza Seyit Kaya'nın da katılması beni çok sevindirdi. Çalışkanlığı ve neşeli kişiliği takımımıza yeni bir soluk getirecek biliyorum. Ona bu hafta daha önceki toplantılara katılmadığı için gerekli araçları gösterdik ve kodu repository den indirmesine yardım ettik.
Wiki'mize yeni dökümanlar ekledik. Bu dökümanlar Yankoltuk'u tanıtan, şimdiye kadar yapılanları özetleyen, mimariyi anlatan; repository, Heroku, Git hakkında bilgi veren şeylerdi. Herkes bir iki sayfa ekledi ve kısa bir sürede büyük bir iş yapmış olduk.
Daha sonra Yankoltuk ekibinin geleceğe dair hedefleri hakkında konuştuk. Takımımıza verimli çalışmak için en fazla kaç kiş almamız gerektiği, devamlılığın önemi, motivasyonlarımız gibi gelecekte bizi ilgilendirecek sonuçları etkileyecek meseleleri konuştuk.
Bu hafta, artık kod üzerinde inceleme yapmaya başladık. Herkesin uygulmanın nasıl çalıştığını anlaması ve ilerde katkı sağlayabilmesi için bu gerekli bir çaba. Hem de kodda yapılmış olabilecek hataları görmek açısından faydalı.  Gizem Gürbüz, Lerzan Akbulut, Seyit Kaya, Ali Ozan Çil, Arda Başoğlu
 Beşiktaş Nero Cafe Cumartesi günü Beşiktaş Nero Cafe'de buluştuk. Herzamanki gibi kahve, çaylarımızı yudumlayıp karnımızı da doyururken sohbet ederek açtık toplantıyı. Nero Cafe'de internet servisi sorunsuzdu ve orasının çalışmak için uygun bir yer olduğuna karar verdik. Üzerinde konuştuğumuz meseleler yeni repository miz, Yankoltuk için staging, Heroku ve Git'di.
Geçen hafta Ali Ozan Çil bize Google Code'dan bir hesap açmıştı ancak dökümanlarımızın hassas bilgiler içerip uygulamanın güvenliğini etkileyebileceğini düşündüğümüz için ücretli bir servis olan www.repositoryhosting.com'a geçmeye karar verdik. Aylık 6 dolar ücreti olan bu servisin 1 GB toplam disk alanı olmak üzere sınırsız sayıda proje için Git ve Trac desteği var. Trac içinde Wiki de mevcut. Toplantıya gelen arkadaşlara repositoryhosting.com'da kullanıcılar yarattıktan sonra sistemi tanıyarak denemeler yaptık.
Bu toplatıda önenmli bir mesele olan testi konuştuk. Yankoltuk Heroku ve Facebook bağlantılı çalıştığı için testler de buna uygun olarak yapılmalıydı. Bunun için Facebook'ta ve Heroku'da staging (test edilebilecek esası gibi çalışan uygulama) uygulamaları yaratmaya kara verdik. Böyelce yaptığımız değişiklikleri geliştirme makinalarında (genelde iş istasyonlarımızda veya laptoplarımızda) değil bu platformlarda deneyeceğiz.
Geçen haftaki gibi bu hafta da Git becerilerimizi pekiştirdik. clone, commit, push, pull işlemlerini yaparak Git'e iyice ısınmaya başladık. Git'e alışık olanlar için bunlar önemsiz görünse de SVN'e alışık olanlara ilk seferde garip gelecek bazı özellikleri denedik.
Henüz Yankoltuk için bir geliştirme yapmasak ta bu tip altyapısal araçlara ve platformlara alışmak ileride daha da verimli çalışmamızı sağlayacağı için bu konulara zaman ayırmakta açıkcası sakınca görmüyorum. Sanırım önümüzdeki toplantılarda Yankoltuk'u biraz daha tanıyıp üzerinde değişiklikler yapmaya başlayacağız.  Beşiktaş Nero Cafe
If you, - use Windows PC
- want to develop Ruby on Rails application
- want to host it on Heroku
- want to check out source code using Git
there are couple of installations and settings before doing those. These are as follows: - Installing Git Extension
- Installing Rubygems
- Installing Heroku gem
- Createting an SSH key file
- Adding keys to Heroku
You will probably need more than these, but these are minimums to get the code from the Heroku repository. Create an SSH key fileAfter you installed these minimums, you run GitBash and create an SSH key for Heroku use. $ cd ~/ $ mkdir .ssh $ cd .ssh $ ssh-keygen –C “youremai@yourmail.com” –t rsa Add your keys to herokuYou add this key to Heroku for later check outs and check ins $ heroku keys:add Checking out the source codeYou check out the code by using clone option of git $ git clone -o heroku git@heroku.com:yourapp. git
 Boğaziçi Güney Kampüs, güneşli bir Kasım günü  Bu buluşmamızda Ozan Ali Çil de vardı Güzel ve güneşli bir cumartesi günü Boğaziçi Üniversitesi Güney Kampüs'ün çimlerinde tekrar buluştuk. Birşeyler atıştırıp, kediler ve köpeklerle ilgilenip biraz sohbet ettikten sonra kendimize wi-fi erişimi olan bir yer aramaya koyulduk. İlk önce erkek yurdunun altında bulunan çalışma salonuna gittik ancak bilgisayarlarımıza yeteri kadar priz bulamadığımız için kampüsün girişinde yeni açılan bir kafeye gitmeye karar verdik. Boğaziçi Üniversitesi yönetimine burdan seslenmek istiyorum: Çalışma salonlarında ve kütüphanede yeteri kadar priz bulunmuyor ve bilgisayarı ile çalışmaya gelen öğrenciler zor durumda kalıyor. Lütfen bu alanlardaki pizlerin sayısını arttırın. (Beni duymuşlar mıdır acaba?)
Ne yazık ki gittiğimiz kafede de wi-fi çalışmıyordu; orada meyve sularımızı içtikten sonra tekrar çalışma salonuna geri döndük ve masalardan uzakta duran prizlerin yanına sandalyeleri çekerek çalışmaya koyulduk.
Bugünkü amacımız Heroku ve Git'e biraz alışmak ve kodu bilgisayarlarımıza çekip incelemekti. Herkes bilgisayarlarındaki eksik uygulamaları tamamladı ve Yankoltuk kodunu aldı. Ben şimdiye kadar yazılmış kod üzerine kısa bir konuşma yapıp tanıtmaya çalıştım. Böylece bugünkü hedefimize ulaştık.
 Heroku ve Git'e alışmak
 Yankoltuk proje grubu, Konak Kafe, Istanbul Yağmurlu bir İstanbul gününde Kuledibi'ndeki Konak Kafe'de ilk kez Yankoltuk için bir araya geldik. İlk buluşmaya Lerzan Akbulut, Gizem Gürbüz, Boğaç Aslanyürek ve ben Arda Başoğlu katıldı. Güzel bir kahvaltının ve küçük bir sohbetin ardından Yankoltuk ile ilgili kouştuk. Katılmayı düşünüp işleri çıkan arkadaşlarımız yanımızda bu sefer olamasalar da bir dahaki toplantılarımızda onları göreceğimize inanıyorum.
Bugünü daha çok ısınma turlarıyla geçirdik. Ben, diğer arkadaşlara Yankoltuk hakkında biraz bilgi verdim. Bu bilgiler uygulama için şimdiye kadar neler yapıldığı, uygulamanın bazı özellikleri; nerde, nasıl çalıştığı gibi bilgilerdi. Bunun dışında geleceğe dair beklentilerimizi neler yapabileceğimizi de konuştuk. Şu an uygulamamız çok yeni olduğu için gelecekte neler olacağı konusunda biraz hayal kurduk.
Benim düşüncem, bu proje grubu daha önceki tecrübelerinden öğrendikleri, çalışma heyecanı, zekası ve disipliniyle kısa bir süre içerisinde başarıyla bu projeyi tamamlayacak.
Hepimize bol şans diliyorum.  Boğaç Aslanyürek, Lerzan Akbulut, Gizem Gürbüz, Arda Başoğlu
 Geçen haftasonu Kilyos'ta ilk kite surf derslerimi aldim. Simdilik sekiz saatlik bir sure oldu ve henuz board da kullanmadim. Biraz daha derse ve pratiğe ihtiyacım var. Dersi Volkite'ta aldım. Bana ders veren de Tayfun hocaydı. Kendisi çok iyi, eğlenceli biri ve öğrenmeme çok yardımcı oldu. Acemilere birşey öğretmek sahiden sabır isteyen bir iş; onu kutluyorum. İlkönce karada küçük bir kite ile başladık daha sonra 6 metrekare ve 9 metrekarelik kitelarla devam ettik. Kite surf beklediğimden daha zor çıktı doğrusu. Uzaktan göründüğü gibi değilmiş. 8 saatlik ders bile vücudumun heryerinin ağrımasına yetti. Tabi, bu durum benim gibi yeni öğrenenler için geçerli. Tecrübeli sürücüler çok daha az yorulup işin keyfini çıkarıyorlar. Kumların üstünde 10 mt sürüklenmemi de düşünürsek normal tabii :) Bilenler için söyleyeyim, karada kite ı power zone a soktum da :) Volkite Burç Beach'te. Burç Beach Boğaziçi Üniversitesi'nin bir tesisi. Tesis ücretli ve herkese açık. En iyi ulaşım şekli kendi arabanızla olacaktır çünkü otobüsler seyrek geçiyor ve İstanbul'dan uzak bir mesafede olduğu için yolculuk yorucu olabilir. Umarım ilerde ilerletmek için daha fazla fırsatım olur.
Eğer Ruby on Rails ile uygulama geliştiriyorsanız fixture'ları kullanmışsınızdır. Fixture'lar YAML veya CSV biçimindeki metin dosyalarıdır ve test veritabanınızı doldurmak için kullanılır. Bu çok karmaşık olmayan veri tabanı şemaları için uygun ve etkin bir çözümdür. Ancak, modellerinizin sayısı artıp sisteminiz karmaşık hale gelmeye başlayınca fixture'ları yönetmek zorlaşmaya başlar. Birbirine bağımlı olmaya başlayan fixture'lari birbirini etkilemeyecek şekilde arttırmaya veya düzenlemeye çalışmak vakit alır ve pratik olmaktan çıkarlar. Bu durumda FixtureReplacement gibi bir plugin kullanıp işlerinizi kolaylaştırabilirsiniz.
FixtureReplacement fixture'lardaki dezavantajları ortadan kaldırır. FixtureReplacement naıl kullanıldığını merak ediyorsanız "http://github.com/smtlaissezfaire/fixture-replacement-git/tree/master":http://github.com/smtlaissezfaire/fixture-replacement-git/tree/master adresindeki readme'ye bir göz atın derim. Çok basit bir kullanımı olduğunu göreceksiniz.
Geçenlerde FixtureReplacement kullanırken bir sorunla karşılaştık ama basit bir alternatif yöntem kullanarak bu sıkıntıyı aştık. Problem FixtureReplacement'ın primary key'i olmayan bir tablo için 'create' methodunun çalışmamasıydı. Diğer bir deyişle eğer tablonuzda bir 'id' alanı yok veya modelinizde 'set_primaty_key' ile bir alanı primary key olarak seçmediyseniz ActiveRecord'ın 'create' methodunu kullanan FixtureReplacement bu yüzden hata veriyor. Örneğin,
Kedi tablomuz olsun ve alanları şöyle olsun:
ad, cins, goz_rengi, tuy_rengi, kilo
Bu modeli FixtureReplacement sunduğu yöntemle (create_model) şu şekilde yaratmaya çalışalım
create_kedi( :ad => "Sarman", :cins => "tekir", :tuy_rengi => "sarı", :goz_rengi => "ela", :kilo => "6" )
Sonuç aşağıdaki hata gibi olacaktır.
ActiveRecord::StatementInvalid: PGError: ERROR: column "id" does not exist
Bunu şu şekilde de denesek sonuç aynı olurdu
Kedi.create( :ad => "Sarman", :cins => "tekir", :tuy_rengi => "sarı", :goz_rengi => "ela", :kilo => "6" )
veya
kedi = Kedi.new( :ad => "Sarman", :cins => "tekir", :tuy_rengi => "sarı", :goz_rengi => "ela", :kilo => "6" ) kedi.save
Doğrudan SQL kullandığımız zaman bu problemin ortadan kalktığını görüyoruz
sql = "INSERT INTO kedi (ad, cins, goz_rengi, tuy_rengi, kilo) VALUES ('Sarman', 'tekir', 'ela', 'sarı', 6)" ActiveRecord::Base.connection.execute(sql)
h2. Sonuç
FixtureReplacement kullanıyor ve primary key olmayan bir tablonuz varsa create_model (model yerine kendi modellerinizden birini düşünün create_kedi gibi) metodunu kullanamazsınız. Bunun yerine doğrudan SQL çalşıtırmanız testleriniz sırasında size bir çözüm sağlayacaktır.
If you are having trouble with this combination (Fedora 11, nVidia 6150, Acer AL1916W, biostar MCP6B M2+), like resolution less than 1440x900, try setting your xorg.conf (/etc/X11/xorg.conf) file like below. It worked for me.
Note: I downloaded the driver below from nVidia's site and installed it after installing Fedora 11.
NVIDIA-Linux-x86-185.18.14-pkg1.run
Section "Monitor" Identifier "Acer AL1916W 2" VendorName "Acer" ModelName "AL1916w" HorizSync 30.0 - 82.0 VertRefresh 56.0 - 76.0 Option "DPMS" EndSection
Section "Device" Identifier "Device0" Driver "nvidia" VendorName "NVIDIA Corporation" Option "metamodes" "1440x900 +0+0; 1280x1024 +0+0; 1152x864 +0+0; 1024x768 +0+0; 800x600 +0+0; 640x480 +0+0" EndSection
Section "Screen" Identifier "Screen0" Device "Device0" Monitor "Acer AL1916W 2" DefaultDepth 24 Option "metamodes" "1440x900 +0+0; 1280x1024 +0+0; 1152x864 +0+0; 1024x768 +0+0; 800x600 +0+0; 640x480 +0+0" SubSection "Display" Depth 24 EndSubSection EndSection
|