Sayfa: « 1 2 3 4 ... 10 »

Yaklaşık onbeş-yirmi gündür bir-iki yazılım üzerinde çalışıyorum. Bu süre zarfında ister istemez kendimi geliştirmeye ayırdığım vakit oldukça kısaldı. Hatta kalmamaya yüz tuttu.

100_0768 Burada kendime ayırdığım vakitten kastım sosyal aktiviteler değil. Her yoğunlukta sosyal-çalışma dışı aktivitilere zaman ayırmaya çalışıyorum. Şöyle ki; gündüz çalışma, gece çalışma dışı vaktidir. Çalışmamı özel durumlar hariç her gün belli bir vakitte kesmek perfonmans artışı sağlıyor. Bu elbette ayrı bir konu.

Gelelim kendime ayırdığım vakitten kastıma; uzun zamandır ar-ge yapamıyor, yeniliklerin bir çoğunu takip etsem bile deneyemiyorum. Aslında farkettim ki, bu işlemler için insanın tüm çalışma saatlerini harcaması gerekiyor. Örneğin takip ettiğim onlarca sitede yer alan yeni yazıları henüz okuyamadım. Bunları hergün sistematik şekilde okumaya kalksam bile en az 2-3 saat geçiyor. İçindeki örnekleri denemeye de kalkarsam en az 2-3 saat daha geçecek. Normal bir çalışma düzeninde azami 12 saat ayırdığımızı düşünürsek yarısını sırf bu işlere ayırmamız gerekiyor. Evet, bu yalnızca yeni teknolojileri takip etmek için geçecek olan süre.

Eğer bir de kendiniz yeni bir teknoloji üzerinde çalışıyorsanız piyasa işlerine vakit kalmamış oluyor. Özet şudur ki, çalışmak ile teknoloji takibi aynı anda yürümüyor, yürüse bile verimli olamıyor. Bu verimli olamama durumu hem çalışmaya hem ar-ge’ye ait elbette.

ruby-logonBu yazı daha önce de yazılabilirdi yalnız kıvılcımı ateşleyen Ruby 1.9′un developer sürümü çıkması oldu. Birçok yenilik ve perfonmas artışı içeren bu yeni sürümü henüz test edemedim, sizler test edip yorumlarınızı belirtebilirsiniz. 

Kıvılcımı ateşleyen diğer bir olayda Rails 2.0 hakkında uzun zamandır yazmayı düşünüp yazamadığım inceleme yazısı oldu. Ve bir diğer olayda CodeIgniter Framework’u hakkında yazmayı düşündüğüm yazı. Liste daha da uzamadan yazıyı bitirmek sanırım en iyisi (:

İyi çalışmalar.

Rails 2.0 Duyuruldu    08/12/07

Haber servisi kıvamına dönen “blog” sitemden bir duyuru daha diyelim;

Rails 2.0 duyuruldu hatta güncelleme bile çıkarıldı (:

2.0.1 numaralı sürüme geçiş için

gem install rails -y

komutunu verdikten sonra yeni özellikleri kurcalamaya başlayabilirsiniz.

nb-logo-productspage Netbeans’ın 6 numaralı serisinin "final" sürümü e-posta listesinde duyuruldu. Web sayfasında da yakında geniş bir bilgi yer alacaktır. Şimdilik yükleme sayfasını yazabiliyorum.

http://download.netbeans.org/netbeans/6.0/final/

 

Türkçe olarakta çıkmasını istiyordu(m|k) fakat takımdaki kişilerin iş yoğunluğu (4 yahut 5 kişilik bir takım zaten) ve tam olarak organize olamama sebebiyle bu isteğimizi en azından final sürümüne yetiştiremedik. Ama er ya da geç Türkçe bir sürüm çıkacak inşallah.

Heroku.Com Davetiyesi    03/12/07

Şu yazıda bahsettiğim Heroku.Com ile ilgilenen arkadaşlara sıra beklemeyi engelleyici davetiye gönderebilirim.

E-posta adresinizi içeren bir e-posta gönderebilir yahut e-postanızı yorum olarak bu yazıya ekleyebilirsiniz.

Kolay gelsin.

 
 

Bir türlü oturup uzun uzun yazılar yazamıyorum, bi’ kaç gün daha böyle gidecek sanırım.

En azından “haber servisi” görevinde bulunalım diyerek Rails 2.0 RC2 duyurulduğunu belirtmek isterim. Stabil sürümün en geç 2 haftaya çıkacağı söyleniyor.

Güncelleme işlemleri için RC1 bildirisine bakabilirsiniz.

rails 1.2.6 & jRails    25/11/07

Birkaç güvenlik güncelleştirmesi ve sorunu gideren yeni rails sürümü duyuruldu.

gem install rails -y

Bu arada bugün jRails‘e denk geldim. Mevcut rails metodlarında Prototype/Scriptaculous yerine jQuery kullandırabilmeyi amaçlamış.

Heroku.com beta incelemesi için başvuru yapmış idim, bugün bir davetiye geldi. Bende biraz inceleme fırsatı buldum. Güzel düşünülmüş bir sistem.

Heroku.com nedir?

Heroku.com bize diyor ki;

Daha önceden geliştirmiş olduğunuz rails uygulamanızı heroku.com’a aktarın ya da heroku.com üzerinden yeni bir rails uygulaması başlatın (kendi içinde editörü, generate, consol, migrate, veritabanı ve diğer çoğu olay mevcut) herhangi bir gönderim ve ayar işlemi yapmadan uygulamanız anında kullanılabilir hale gelsin.

railsconsole

Güzel bir düşünce aynı zamanda güzel bir uygulama ile de birleştirilmiş.

herokurenklendirme

Renklendirme eşliğinde, aynı zamanda uygulamayı düzenleyebilecek kullanıcıları belirtirek takım çalışması da yapabiliyorsunuz.

 

heroku.com güzel düşünülmüş ilginç bir sistem. Rails geliştiricileri için faydalı olacak bir sisteme benziyor. Günlüğüne de buradan ulaşabilirsiniz.

Sinan Ata‘dan müthiş bir yazı, bu işi 300′e yapan var!

Sinan’ın dediklerine aynen katılıp, okurken yüzümde beliren ufak tebessümü bu olayları daha önce yaşamış olmama veriyorum.

Yaşanmış bir replikte (daha doğrusu tek kişilik replik, verecek cevap bulamamıştım) benden olsun. Program kurduğum bir fabrikada yaşadığım bir olay.

“Abi sen bilgisayarcısın, elektronikten de anlarsın, bizim vcd bozuldu, bi ara getireyim de bakıver…”

İçten bir ses: “obaaa”

Facebook büyüdükçe büyüyor. Zamanla da büyüyecek gibi duruyor. Bu büyümeyi benim incelemem alanım dışında olduğu için sebeplerini araştırmayı pazarlamacılara bırakıyorum. Fakat geliştirici gözüyle Facebook’ta dikkat ettiğim en önemli olay “gerçekten güzel düşünülmüş bir altyapısı” olması. Özellikle “application” kavramı iyi düşünülmüş.

Yakında sunmayı planladığımız projemiz için ayrıca bir Facebook uygulaması da geliştirecektik. Öncesinde bir bilgi birikimim olması açısında Facebook Applications yapısına biraz göz attım.

Facebook java ve php geliştiricileri için official kütüphaneleri sunuyor. Özellikle PHP kütüphanesine ait bir çok örnek bulabilirsiniz.

Fakat, Kimyapacak.Com’u Ruby diliyle geliştirdiğim için RFacebook kütüphanesi benim ilgi alanıma giriyordu. RFacebook, “api”yi kullanan “api” olarak düşünülebilir. Alt yapısında “Hpricot” kullanıyor. RFacebook’un da en önemli kozu ruby “method_missing” fonksiyonu. Api’ye methodları bu şekilde iletiyor. Yani RDoc dökümantasyonunda Facebook fonksiyonlarının çoğunu görememiz bu yüzden, kullanamadığımızdan değil.

RFacebook’u gem paketi ile kurabiliyoruz:

sudo gem install rfacebook

Rails uygulamaları için; uygulamamızı kodlayıp en son bunu facebook’a entegre ediyoruz. Buradaki anahtar kelime “session” oluşturumu için :require_facebook_install | :require_facebook_login .

burhan_app.jpgKendime örnek bir uygulama seçerek ve “Burhan Altıntop” grubunun üye sayısını da göz önüne alarak Burhan Altıntop replikleri uygulaması geliştirdim. Bunun bir sebebi de fazla karmaşık bir uygulama olmamasıydı. Aslında böyle gibi dursa da işin en “zor” kısmından başladığımı sonradan anladım. Zira, facebook her sayfayı bellekte tutuyor. Özellikle profil sayfalarına büyük önem veriyor bu konuda. Yani “profil sayfasını” değiştirmek için facebook’a bilgi göndermek gerekiyor. Durum böyle olunca ve uygulama da sadece sözleri gösterince herhangi bir istek kullanıcılardan gelmemiş oluyor. Bunu çözmek için “Infinite session keys” kullanmak kaçınılmaz oluyor. Kullanıcı bir işlem yaptığı zaman (örn. uygulamayı kurmak) bunu veritabanına kaydetip daha sonra her kullanıcı için bu anahtarla giriş yapıp setFBML’yi kullanmak lazım oluyor.

Aslında tüm sayfalarda aynı içerik yer alacaksa bunun için FBML etiketi olan fb:ref düşünülmüş. Bu şekilde bir “handle” yahut “url” belirterek tüm heryeri güncelleyebiliyoruz fb:ref’e sahip olan. Fakat böyle olunca her profilde aynı içerik gösterilmiş oluyor.

Bir diğer değişken söz üretme tekniği ise uygulamayı yazdıktan sonra aklıma gelen bir sistem. Yine fb:random ile fb:ref’i birbirine katarak her sayfa güncellemesinde bir söz çıkartılabilir. Veritabanına yeni söz eklendiği zaman fb:ref’i güncellemek yeterli olacaktır.

Özet geçmek gerekirse, Facebook Applications, güzel bir yapıya sahip. İlk izlenimden elde edindiğim en önemli husus ve forumlarda da gördüğüm kadarıyla “profil kutuları” güncellenmesi. Güncelleme için mutlaka yazılıma istekte bulunulması lazım. Tetiklemeden güncellemek için (örneğin cron olayları için) infinite session’ları veritabanına kaydetmek lazım.
Bunun dışında normal bir uygulamayı facebook’a aktarmak inanılmaz bir yük değil. Özellikle kullanıcılara özel içerikli sistemlerde tabloda ekstradan “fb_user_id”yi tutan bir alan olursa sorgulamalarda user_id yerine fb_user_id ile çoğu kez işi götürebilirsiniz. (fb_user_id kullanıcının facebook id’si)

Bir de uygulamanız için iyi bir tasarımcı bulmayı ihmal etmeyin derim ben. Yazılımın tüm baloncuk hakları Sinan’a ait (:

WxRuby İle İlgili    13/11/07

vakit.rb    13/11/07

Namazvakti.com, güzel bir görünümle namaz vakitlerini kullanıcıya “online” olarak sunuyor. Aynı zamanda belirtilen şehire ait “xml” dosyasını da veriyor. Oldukça güzel bir sistem.

Bazen internet bağlantımın olmadığı zamanlar (kablomu çektiğim zamanlar) oluyor. Bu gibi zamanlarda hemen xml dosyasından günün tarihini okuyup ekrana yazdıran ufak bir araç geliştirdim. Kullanabilmek için namazvakti.com sitesinden şehrinizi arattırıp “yıllık xml” dosyasını vakit.rb’nin bulunduğu klasöre kaydetmeniz gerekiyor.

Diyanet.gov.tr ile namazvakti.com hesapları arasında oynamalar var. Bir kaç kaydı inceleyerek bunlar arasında farkın değerlerini çıkarttım. Yani sonuçları diyanet.gov.tr hesabına göre (arada yine bir-iki dakika oynama olabilir) görüyoruz.

Bursa için XML dosyası
İstanbul için XML dosyası

Kaynak kodlar

Kaynak Kod: vakit.rb
# şehrinize ait namazvakti.com xml verilerini offline olarak
# aynı klasöre "vakit.xml" dosya adı ile kayıt ediniz..
#
# murat çeliker, murat.cekiker@gmail.com
# http://www.ikinoktayazilim.com/wordpress/
#
# kasım 12, 2007
#
 
# namazvakti.com verilerini diyanet saatine göre düzenler
# birkaç veri incelenerek aradaki farklar tespit edilmiştir
#
def d(vakit, ekleme)
 
vakit = vakit.split(':')
 
saat, dakika = vakit[0].to_i, vakit[1].to_i + ekleme
 
carpim = 1
 
carpim = -1 if dakika < 0
 
saat, dakika = saat + 1 * carpim, dakika + -60 * carpim if dakika >= 60 or dakika < 0
 
"#{saat}:#{dakika}"
end
 
require 'rexml/document'
include REXML
 
bugun = Time.now.yday * 2 
bugun += 1 if (bugun % 2) == 0
vakitler = Document.new(File.new('vakit.xml')).root.to_a[bugun].text.split(/\t/)
 
puts "----- gunun namaz vakitleri ----- \n\n"
puts "  imsak: #{d(vakitler[0], 15)} \n  gunes: #{vakitler[2]} \n  oglen: #{d(vakitler[5], -4)} \n ikindi: #{d(vakitler[6], -6)} \n  aksam: #{vakitler[9]} \n  yatsi: #{d(vakitler[11], -9)} \n"
puts "\n\ncikmak icin bir tusa basiniz... \n"
gets

Faydalı olması ümidiyle.

Rails’in 2.0 sürümüne yaklaşırken Preview1 den sonra RC1 ara sürümü gem depolarında yerini aldı. Rails 2.0 dan önceki son ara sürüm olması muhtemel olan RC1′e yükseltmeyi iki şekilde yapabilirsiniz.

1. Yol: Sistemi Yükseltme

Gem paketini kaynaktan yükleyerek sisteminizdeki Rails sürümünü yükseltebilirsiniz.

gem install rails --source http://gems.rubyonrails.org

2. Yol: Uygulama için Rails kurulumu

Rails kaynak kodunu uygulamanız içine (vendor/rails) gömerek sistem sürümünü yükseltmeden uygulamanız için RC1′e geçebilirsiniz.
SVN deposunda RC1 “rel_2-0-0_RC1″ etiketi ile yer alıyor.

rake rails:freeze:edge TAG=rel_2-0-0_PR

komutu ile vendor klasörüne kopyalama yapabilirsiniz.

Aklımda Rails 2.0 hakkında daha kapsamlı bir yazı yazmak var, biraz vakit ve güç bulunca inşallah.

Ufak bir bilgi olması açısından;
Rails 2.0 a geçiş için dikkat edilecek en önemli husus “DEPRECATION WARNING” uyarını dikkate almak. Bu uyarıları development.log dosyalarından takip edebilirsiniz.

Tail Ace” kullanarak Deprecation Warning yazısını renklendirerek takip işlemini biraz daha kolaya indirgeyebilirsiniz. Aynı şekilde “Tail For Win32” de bu konuda oldukça yararlı.

Bunun dışındaki gelişmeler sistem altyapısı ile ilgili gelişmeleri ve yeni özellikleri içeriyor. Bunları zamanla yazılımıza entegre ederek daha güçlü bir yazılıma sahip olabiliriz.

İyi çalışmalar.

Bi’ kaç gün önce tutulduğum “programcı tembelliği” vakasından hâla kurtulabilmiş değilim. Bu programcı tembelliği bende üzerinde çalışmakta olduğum projelerin kodlarını açmak istememe şeklinde arz ediyor genelde.
Kendime de hak vermiyor değilim aslında (: Hep aynı kodların/ekranların içinde bulunmak biraz kafayı başka yönlere çevirmeyi gerektiriyor elbet.

Genelde bu durum iki-üç gün arasında sürüyor. Bu süre zarflarında genelde ben de not aldığım okunacak/araştırılacak konularıma bakıyorum. Aslında bir nevi tatil günleri oluyor. Serbest çalışan kişiler her ne kadar evde bulunup diğerleri tarafından “hergün tatil yapıyooorrrlar” anlayışında bakılsalar da durum hiç öyle değil. Sanıldığının aksine serbest çalışan insan mesaili çalışan kişiden daha fazla süre iş yapıyor. Hatta çoğu zaman bilgisayar başından kalkma zamanı yatağa gireceği zamana eşit oluyor.

Konu biraz farklı yöne kaydı, asıl bahsetmek istediğim sayfadaki tasarımsal değişiklikti. Tasarımsal derken üst kısmı değiştirip renklerle oynadım biraz. Beyaz zemine geri döndüm. Ruby pembesi sayfadaki yerini kaybetti. Değişiklikler iyidir.

Bu arada Ruby/Rails programcısı olup neden Wordpress kullanıyorsun tarzında soru gelmişti bir kaç kez. Bu konu hakkında buradan da açıklama yapmak iyi olacak sanırım.

Bunun bir çok sebebi var. Birincisi Wordpress gerçekten güzel bir sistem. Mephisto da gerçekten güzel bir sistem. İkisi de güzel olduğuna göre arada pek bi’ fark yok demektir. Sayfayı çevirmek için geçecek süre zarfında daha yararlı işler yapılabilir.

İhtiyaca göre teknoloji seçmek her zaman iyidir. İhtiyaç karşılanmadığı zaman teknoloji terkedilirse sorun yoktur. Wordpress şu an tüm ihtiyacımı karşılıyor.

Üçüncü sebep ise PHP’nin yeri de kalbimde ayrıdır. İlk göz ağrılarımdandır kendisi.

Sıfırdan blog açsam Mephisto’yu tercih ederim lakin (:

Daha önce hiç bu tür bir ihtiyaç hissetmemiştim hâla da hissetmiyorum. Bugün Planet Postgresql‘de denk geldim, denk gelmişken paylaşmak istedim.

SELECT pg_database.datname,
pg_size_pretty(pg_database_size(pg_database.datname)) AS size
FROM pg_database;

Kodun yer aldığı girdiyi burada bulabilirsiniz.

Bu arada sabırsızlıkla Devrim Gündüz‘ün kitabını beklediğimi belirtmemde fayda var. Kitap girdisini mutlaka okumanızı öneririm ayrıca.

JRuby’nin 1.0.2 numaralı sürümü bugün duyuruldu [ »» ]

İyileştirmeler içeren yeni sürüm 1.2.5 numaralı Rails sürümünü de desteklemeye başladı. “Practical JRuby on Rails Web 2.0 Projects: Bringing Ruby on Rails to Java” adlı kitapta geçen günlerde yayımlanmıştı. JRuby’yi zevkle izlemeye devam ediyoruz.

Yükleme dosyalarına buradan ulaşabiliriz.

« Önceki Sayfa | Sonraki Sayfa »

Sayfada yayımlanan yazılar aksi belirtmedildiği sürece Murat Arif Çeliker'e aittir. Yorumlar, yorumu yapan kullanıcıların kendi görüşleridir.
açılış - deneyhane - tasarılar - hakkımda - iletişim -

Sitede altyapı olarak Wordpress kullanılmıştır.