Aylık arşivler: Ocak 2007

Ruby ile GUI Toolkits (wxRuby)

Merhabalar,

Bu yazımızda Ruby ile GUI Toolkits baÅŸlattığımız yazı dizisine devam ediyoruz. Bugün WxRuby kütüphanesini inceleyeceÄŸiz. WxRuby kütüphanesi oldukça geliÅŸmiÅŸ olan wxWidgets kütüphanesi üzerine kurulu bir yapıdır. WxRuby Microsoft Windows, Mac OS X, Linux ve BSD üzerinde sorunsuzca çalışır. Kendisinin herhangi bir görüntü teması yoktur. Hangi iÅŸletim sistemine yüklenirse, o iÅŸletim sisteminin görüntü temasını kullanır. Hemen hemen tüm Ruby uygulamalarında olduÄŸu gibi gem ile kurulumu oldukça basit ve kolaydır. Aynı zamanda Python baÄŸlayıcısı da (wxPython) bulunan bu yapı, C++‘da yazılmış olan wxWidgets kütüphanesinden güçünü alır.
Windows, Linux ve Mac OS X için kurulumu; gem install wxruby2-preview ile gerçekleÅŸir… Linux ve Mac OS X’de ‘Super User(sudo)‘ ile bu iÅŸlem yapılmalıdır.

Öncelikle wxWidgets kütüphanesinin gerçekten çok güçlü olduÄŸu tekrar vurgulamakta fayda var. Bu bilgi ışığında WxRuby’nin önceki sürümlerinin çok kötü olduÄŸunu duymuÅŸ olabilirsiniz.. duymadıysanız ÅŸimdi duydunuz, gerçekten çok kötü idi. Bunun farkına varan sevgili yazılımcı kardeÅŸlerimiz, wxRuby2’yi ortaya çıkardılar ve geliÅŸtirmelerini bu yapı üzerinde yapmaya baÅŸladılar. WxRuby2, ÅŸu anda oldukça iyi durumda, yazılım geliÅŸtirme, biraz sonra örnekte de göreceÄŸiniz gibi, VRuby’den zor :) fakat FxRuby’den kolay. WxRuby‘nin genel aÄŸ adresinden daha fazla bilgiye ulaÅŸabilirsiniz.
Ruby ile GUI Toolkits (wxRuby) yazısına devam et

Ruby ile GUI Toolkits – 2 (Güncellendi)

Merhabalar arkadaÅŸlar,

Bu yazımızda Ruby ile GUI Toolkits – 1 (VRuby) ile baÅŸlattığımız akımı devam ettiriyoruz. Geçen yazımızda konuya giriÅŸ yapmış daha sonra VRuby ile ilgili güzel bir örnek yapmıştık. Bugün Fox isimli kütüphaneye deÄŸineceÄŸiz. Fox kütüphanesinin Ruby (FxRuby), FxPy (Python), EiffelFox (Eiffel) dillerine baÅŸlayıcıları(bindings) bulunan ve pek çok iÅŸletim sisteminde çalışan bir uygulama olduÄŸunu belirtmek gerekir. Yazılımların oluÅŸturulması her ne kadar Windows’a benzemese de, sonuç yani görünüm gerçekten Windows’a çok benziyor.. Ä°yi mi, kötü mü, ben bilemem ama benziyor..?

FxRuby, form designer‘ı, dökümantasyonu ve kullanıcı kılavuzu bulunan, gerçekten güzel ve geliÅŸmiÅŸ bir kütüphanedir. VRuby gibi deÄŸildir… Hız ve kolaylık acısından VRuby, FxRuby’i açık ara geride bırakır :). Fakat elbetteki FxRuby’nin birçok iÅŸletim sisteminde çalışması bir avantaj olarak kabul edilebilir.

Windows iÅŸletim sisteminde kurmak için, sadece “One-Click Ruby Installer” yeterli. Fakat bu yazının yazıldığı tarihlerde “One-Click Ruby Installer” içerisinde gelen FxRuby’nin 1.6.1 sürümünde bazı problemler mevcut. Herhangi bir FxRuby programı çalıştırdığınızda bir çok ‘warning’ ile karşılacaksınız. Bu sorunu gidermek için ‘gem update –include-dependencies fxruby‘ komutunu uygulayarak FxRuby kütüphanesini (ÅŸu anki sürümü)1.6.5’e güncellenmesi gerekir.

Linux için, “gem” kullanarak FxRuby’yi kurmak yeterli. Kurulumu basit olan kütüphaneleri kim sevmez :).
Ruby ile GUI Toolkits – 2 (Güncellendi) yazısına devam et

Ruby ile GUI Toolkits – 1

Merhabalar,

Bu yazımızda Ruby ile yazdığımız programlara bir arabirim eklemek istersek ne gibi alternatifler var, avantajları ne, dezavantajları ne gibi sorulara cevap arayacağız. Umarım buluruz ;)
Ruby özgür ve açık kaynak kodlu olmasından dolayı, görüntü arabirimi küyüphanesinde birkaç alternatif mevcut. Bunlardan başlıcaları; Tk, Ruby/GTK, Ruby/Qt, wxRuby, FxRuby/Fox ve VRuby şeklinde sıralanabilir.

Hepsi ile birer tane örnek yapmak istiyorum, ama bu yazıda sadece bir tane yapabilirim ;) Ben derim ki listenin en kolayından başlayalım,
VRuby
Sadece Windows iÅŸletim sistemi için bir kütüphanedir. Windows için Ruby kurulumu olan One-Click Ruby Installer ile beraber gelir. Herhangi bir ÅŸekilde ekstra kurulum yapmaya gerek yoktur. Proje ile ilgili dökümantasyon çok kötü olmamasına raÄŸmen oldukça azdır. Fakat bu sayfa baÅŸlangıç sayfası olarak kullanılabilir. Kütüphaneyi yapan kiÅŸiler Visual Basic kadar basit olması gerektiÄŸine karar vermiÅŸ ve bu yöndede çok güzel ve önemli adımlar atmışlardır. Kütüphanenin kolay olan kullanımı ve ‘One-Click Ruby Installer’ ile birlikte gelmesi, Ruby programlarının Windows versiyonları için çok iyi bir avantaj olarak göze çarpar. Form Designer‘ı ve CHM dökümantasyonu ve bir çok örneÄŸi mevcut olan VRuby, Windows için gerçekten çok güçlü bir alternatiftir.
Ruby ile GUI Toolkits – 1 yazısına devam et

Hesap Ä°ÅŸletim Ãœcreti

Gomleksizoglu.com’da yer alan “Hesap Ä°ÅŸletim Ãœcreti” adlı yazıya katılmamak elde deÄŸil.

Ben de kendi çalışmak istediÄŸim bankalara bu “Hesap Ä°ÅŸletim Ãœcreti” hakkındaki mektubu gönderdim, cevap bekliyorum.

Umarım sizler de gönderir ve cevaplarınızı alırsınız… Unutmayın; Bankalar paranızı saklamak için oluÅŸturulmuÅŸ, kar amaçlı kuruluÅŸlardır. 10 yıl öncesinde hiç para almadan bir sürü hesap açan ve bu ÅŸekilde çok büyük karlar kazanıp bankacılık sektörünü geliÅŸmesine çok önemli katkıları olan bankaların, “artık almaya mecburuz yoksa zarar ederiz” gibi açıklamalarda bulunmalarına kanmayın. Bunun bir kuyruklu yalan olduÄŸunu, kuyruÄŸunun da güneÅŸ sisteminin dışında olduÄŸunu bilin.. bilmeyenlere bildirin..!

Kolay gelsin..

Ruby ile Thread Ä°ÅŸlemleri

Merhabalar,

Şu zamana kadar yazdığım yazılarda Ruby ile ilgili pek çok konuya değindik, bu konular arasında POP3 ve SMTP, HTTP ve FTP, Dosya İşlemleri, Çalışma zamanı, Module yapısı, Hata yakalama, Resim işlemleri, ODBC veri tabanı bağlantısı, Ruby nesnelerinin karşılaştırılması gibi konular mevcut. Aslında tüm bu yazılardan küçük bir kitap bile çıkabilirdi ama elbetteki yazım dilinin tekrar bir elden geçirilmesi gerekli. Her neyse, şu zamana kadar yazdığım yazılar umarım sizlerin de işine yaramıştır :). Benim yaradı valla, ben Ruby ile ilgili bazı konularda kendi bloğuma bakıyorum :).

Sözü uzatmadan baÅŸlıktan da anlaşılacağı gibi yazımızın konusuna yani Thread’lere(Türkçe’sini tam kestiremedim, hoÅŸgörün lütfen) geçelim. Åžimdi eÄŸer bir yazılımcıysanız, daha önceden Multi-Thread uygulamalar ile uÄŸraÅŸmıssanız, kolay bir konu olmadığını bilirsiniz. Gerçekten özellikle zor zamanlarda çok uyuz bir konu olabilir. Tüm bunlardan öte, yapımı ve tasarlanması çok pahalıya patladığı için, yazılımcılar tarafından pek tercih de edilmez. Ama iÅŸler Ruby’de biraz daha farklı, çünkü Ruby’de bu iÅŸlemler oldukça basit ve etkileyici :).
Ruby ile Thread Ä°ÅŸlemleri yazısına devam et

Ruby ile POP3 ve SMTP

Merhabalar,

Önceki yazımızda Ruby ile FTP ve HTTP‘den bahsetmiÅŸ ve bu konuda birkaç örnek yapmıştık. Bununla beraber Ruby’nin aÄŸ yetenekleri içerisinde POP3, SMTP gibi elektronik posta ile ilgili yüksek seviyeli sınıfların varlığından da bahsetmiÅŸtik. BaÅŸlıktan da anlaşılacağı gibi, bu yazımızda sizlerle beraber POP3 ve SMTP konularına deÄŸineceÄŸiz. Kendimize güzel ve popüler birkaç sorun bulup bu sorunları çözmeye çalışacağız.

Öncelikle POP3 protokolü ile herhangi bir elektronik mail sunucusu ile haberleşme konusunu inceleyelim, sonrasında SMTP protokolü ile ilgili örneğimize geçiş yaparız.

POP3 protokolü ile ilgili popüler bir sorun olarak; WordPress‘i örnek verebiliriz. Åžimdi “ne alakası var kardeÅŸim” diyeceksiniz, demeyin :) biraz sabredin.. :) WordPress’in güzel bir yeteneÄŸi var, belirli bir e-posta adresini kontrol edebiliyor, eÄŸer bu e-posta adresine bir e-posta gelmiÅŸ ise, bu e-postanın içeriÄŸini bir yazı olarak yayımlıyor… :) güzel bir özellik deÄŸil mi, peki biz bunu Ruby’de nasıl yaparız ? Ä°ÅŸte asıl soru bu.
Ruby ile POP3 ve SMTP yazısına devam et

Wiki Kurulumu

Merhabalar

Geçen günlerde bir projenin dökümantasyonunu nasıl yapacağımıza dair tartışma halindeyken artık Office uygulamalarından daha teknolojik programları kullanmaya karar verdik. Bu programlara Wiki adını verdiklerini biliyoruz. En geliÅŸmiÅŸ versiyonlarından olan MediaWiki ile Wikipedia‘nın yapılmış olduÄŸunu, binlerce insana hizmet veren çok güzel bir uygulama ortaya çıktığını biliyoruz.

Daha sonra internette araÅŸtırmalar yapmaya baÅŸladım, insanlar ne yapmış, Wiki dünyasında iÅŸler nasıl yürüyor.. vs. Bu gibi soruları sora sora sonunda WikiMatrix‘i buldum. Gerçekten çok güzel bir uygulama yapılmış özellikle arama bölümü gerçekten çok güzel hazırlanmış, arkadaÅŸları tebrik etmek gerekir.

Sonuçta biz bir takım olarak dökümantasyon işlerini yürütecektik ve buna uygun bir uygulama aramaya koyulduk, birçok alternatife baktıktan sonra gerçekten en iyisinin (yazının yazıldığı tarihlerde) MediaWiki olduğuna karar verdim. Gerçekten iyi bir uygulama.

Fakat bir de Pimki var. Ruby’de yazılmış, instiki tabanlı, çok güzel bir uygulama, pek ÅŸirin ve gem ile kurulumu “gem install –include-dependencies pimki” kadar basit.

Ä°kisi arasında uzun süre kararsız kaldım, daha sonra MediaWiki‘nin yorum yazma yeteneÄŸi beni tavladı ve bu uygulama ile dökümantasyon iÅŸlemlerine baÅŸladık. Makinamda halen Pimki kurulu, ufak tefek uygulamarı kesinlikle daha hızlı dökümante edeceÄŸiniz kesin. Umarım vaktim olurda yorum ekleme mekanizmasını Pimki‘ye eklerim.

Kolay gelsin :)

Ruby ile FTP ve HTTP Ä°ÅŸlemleri

Merhabalar,

Bugün yazımızda Ruby’nin aÄŸ(network) ve genel aÄŸ(web) kütüphanelerini inceleyeceÄŸiz. Bu kütüphaneleri, mail göndermek, ftp ile baÅŸka bir makinaya dosya kaydetmek, herhangi bir baÅŸka web sitesininden bir sayfayı okumak veya düşük seviyeli (socket bazlı) iÅŸlemler yapmak için kullanabiliriz.

Bu yazımda, tabii sizlerde izin verirseniz, düşük seviyeli baÄŸlantılar (Socket, BasicSocket, IPSocket, TCPSocket, SOCKSSocket.. vb.) yerine, yüksek seviyeli baÄŸlantılardan HTTP ve FTP’yi incelemek istiyorum. Özellikle bu tür yüksek seviyeli baÄŸlantılar için Ruby’nin gerçekten güçlü silahları vardır, bu silahlar ile pek çok uygulamayı zorlanmaksızın yazabilir, pek çok problemini kolayca çözebilirsiniz.
Ruby ile FTP ve HTTP Ä°ÅŸlemleri yazısına devam et

Ruby ile Gelişmiş Nesne Yönetimi

Merhabalar,

Bir önceki yazım olan Ruby ile Dosya Ä°ÅŸlemleri‘ne gelen yorum nedeni ile uzmanlara yönelik bir yazı yazma gereÄŸi hissettim. Bu yazımın amacı, çalışma zamanında ruby’nin nesneleri nasıl yönettiÄŸini sizlerle paylaÅŸmak. Öncelikle karşımıza çıkacak olan problemlerden biraz bahsedelim ve daha sonra bunların çözümlerini yapalım.
Ruby ile GeliÅŸmiÅŸ Nesne Yönetimi yazısına devam et