Sayfa: « 1 ... 7 8 9 10 »

yeni dünya    24/01/07

Derinlemesine ActiveRecord serisinin ilk bölümünde genel yapı itibariyle sistemin nasıl çalıÅ?tıÄ?ına deÄ?inmiÅ?tik. Bu bölümde ise sistem ile ilgili kullanılabilir bilgilere deÄ?ineceÄ?iz. Seride Ruby On Rails’e yönelmenin dıÅ?ında Ruby uygulamalarımızda da ActiveRecord’u nasıl kullanabilirizin cevabı da aranacaktır.

Makale Yol Haritası

  • ActiveRecord Nedir, Ne DeÄ?ildir?
  • DoÄ?ru Ayarlamalar Nedir? Nasıl Yapılır?
  • Tablo İliÅ?kilendirmeleri
    • has_one ile basit Yordamlar
    • has_many ile Basit Yordamlar
    • belongs_to ile Basit Yordamlar
    • has_one mı belongs_to mu?
  • KapanıÅ?

Devamını Okumak İstiyorum

“Ruby On Rails ile web uygulamaları geliÅ?tirmek için ne kadar Ruby bilinmeli?”

Ruby On Rails, Ruby diliyle yazılmıÅ? uygulama geliÅ?tirme altyapısıdır. Ruby On Rails, Ruby dilini kullanır, her Ruby On Rails uygulaması Ruby diliyle yazılır. RoR uygulamaları geliÅ?tirmek için bilinmesi gerekli olan Ruby kurallarına, söz dizimlerine dair genel bir giriÅ? yapacaÄ?ız. RoR öÄ?renirken mutlaka “api belgeleri”ni okumalı, Ruby’nin diziler, katarlar üzerindeki iÅ?lemlerini kavramalıyız.

Yazıda RoR içinde sıkça kullandıÄ?ımız genel Ruby söz dizimlerine ait bilgilerin ilk kısmı yer alıyor.

Belgeler

Katar, Dizi, Sayısal Sınıflarının Ve Genel Ruby Api Belgelendirmeleri

Ruby-core belgelendirmelerinden üzerinde sıkça iÅ?lem yapılacak sınıfları öÄ?renmek, belgelendirmelerinin el altında bulunması uygulama geliÅ?tirirken oldukça önemlidir.

RoR belgeleri

RoR uygulaması geliÅ?tirirken en sık baÅ?vurulan belgeler Api belgeleridir. “gem_servergem ile kurulan paketlerin RDoc belgelendirmelerini sunucuya açar, http://localhost:8808 adresinden belgelendirmelere ulaÅ?abiliriz.

Söz Dizimine Dair Genel Bilgiler

Fonksiyon Tanımlanması

Her ActionController üzerinde tanımlanan bir fonksiyon (private fonksiyonlar hariç) bir sayfa ifade etmektedir. Ã?rneÄ?in sayfa/index sayfa denetleyicisindeki “index” fonksiyonunu iÅ?ler. Bir fonksiyon Å?u Å?ekilde tanımlanır:

  1. def fonksiyon(arguman1, arguman2, .., argumann)
  2.   # fonksiyon içeriÄ?i
  3. end
  4.  
  5. def fonksiyon2
  6.   # argümansız fonksiyon
  7. end

Fonksiyonların Ã?aÄ?rılması

Ruby dilinde fonksiyonların parametlerini parantez içerisine almadan da kullanabiliriz.

  1. fonksiyon(deger1, deger2, deger3...)
  2.  
  3. # fonksiyonların parametlerini parantez içerisine almadan da kullanabiliriz.
  4. fonksiyon deger1, deger2, deger3

Devamını Okumak İstiyorum

netSınav sistemi tasarısı hakkında daha ayrıntılı bilgiyi buradan bulabilirsiniz.

İlk bölüme ait sunum ve makaleye buradan ulaÅ?abilirsiniz.

Bölüm İçin Yol Haritası:

  • Sınav Ekleme Kısımlarının Yapılması
  • Soru Ekleme Bölümlerinin Yapılması
  • “Scaffold” dosyalarının deÄ?iÅ?tirilmesi
  • Yönetim Sayfasına Ait Genel Düzenleme

2. bölüme ait kaynak kodları buradan yükleyebilirsiniz (.tar.gz)
Ekran sunumlarını buradan izleyebilirsiniz. (Ekran görüntüleri 800×600 boyut olduÄ?u için buraya konulmamıÅ?tır.)

Detayları ve bölüm yazısını yazının devamında bulabilirsiniz…

Devamını Okumak İstiyorum

İlk bölümü yayımlanan netSınav tasarısının ikinci bölümü bugün-yarın yayımlanacak inÅ?allah. Bugün bildirgeç‘te “Google IG ‘yi, Microsoft teknolojileriyle yeniden yazmak” bildirisini okuduÄ?umda 7 günde Google IG vari bir sistemin nasıl yapılacaÄ?ının “adım adım” deÄ?ilde “kaynak kodlarsal” anlatıldıÄ?ını gördüm.

Fakat netSınav biraz daha farklı amaca hizmet ediyor. En alt bölümden alarak bir Ruby On Rails uygulaması oluÅ?turmanın dıÅ?ında bu tasarıdaki asıl amaç, “yaparak/göstererek öÄ?retme”ye hizmet ediyor. Genel konulardan zamanla daha derin konulara girileceÄ?ini bildirmek isterim. Ayrıca bunun yanında “Derinlemesine ActiveRecord” gibi birkaç makale serisini de yakında oluÅ?turacaÄ?ım inÅ?allah.

Kısacası; netSınav aslında bir uygulamanın geliÅ?me evrelerini çok geliÅ?miÅ?lik düzeyine yaklaÅ?ana kadar adım adım arttırarak, gerekli bilgilendirmeleri yaparak yoluna devam edecektir.

Bu arada RubyForge.Org netSınav projesini onaylayarak http://netsinav.rubyforge.org/ adresini ve gerekli barındırmayı ayrıca svn hesabını karÅ?ıladı. EÄ?er sizinde ruby ile ilgili bir projeniz varsa, rubyforge sitesinde barındırabilirsiniz.
netSınav’ın proje sayfasına buradan ulaÅ?abilirsiniz.

 

“Derinlemesine ActiveRecord” Serisi Hakkında

Seride “Ruby On Rails”in kalbi niteliÄ?inde olan “ActiveRecord” modülüne, barındırdıÄ?ı sınıflara, nasıl çalıÅ?tıÄ?ına, ActiveRecord’un veritabanı tablolarını iliÅ?kilendirmesine detaylı bir bir inceleme yapılacaktır. ActiveRecord tabloları nasıl bulur, nasıl birbirleriyle iliÅ?kilendirir, bizim adımıza neler yapabilir soruları sorulacak bunlara örnekler eÅ?liÄ?inde cevap verilmeye çalıÅ?ılacaktır.

Ayrıca yazının sonunda “çok ufak” bir ActiveRecord kopyasına ulaÅ?acaksınız.

ActiveRecord Sınıfı

ActiveRecord Ruby On Railsde “model”lerimiz için kullandıÄ?ımız sınıfları barındıran “modülün” adıdır. Verilen tabloyu ve tabloya iliÅ?kilendirilmiÅ? diÄ?er tabloları nesnelere çevirerek, tabloyu bir nesne gibi kullanmamızı saÄ?lıyor. (Bu sistem Object-relational mapping olarak geçmektedir.)

ActiveRecord ve Ruby On Rails İçerisindeki Görevi

ActiveRecord Rails’in baÄ?ımlı olduÄ?u paketlerden biridir. ( Aslen Ruby On Rails ActiveRecord gibi olan bir çok modülün birleÅ?mesinden oluÅ?muÅ?tur. Bu sebeple ActiveRecord’u Rails dıÅ?ındaki herhangi bir Ruby yazılımında kullanmak yararınızadır. )
Veritabanındaki tabloları Rails’de nesnesel olarak kullanmak için oluÅ?turduÄ?umuz her “model” aslında ActiveRecord modülündeki “Base” sınıfından türetilen bir altsınıftır. ( class ModelAdi < ActiveRecord::Base ) Bu demek oluyor ki; Rails’in tüm veritabanı ile olan iÅ?lemlerinin yükünü ActiveRecord modülündeki Base sınıfı taÅ?ımaktadır. Veritabanını alıp nesne gibi kullanmamızı ActiveRecord modeline borçluyuz.

Yazının devamında ActiveRecord modeline ait detaylı açıklamaların “ilk” kısmını bulabilirsiniz.

Devamını Okumak İstiyorum

netSınav sistemi tasarısı hakkında daha ayrıntılı bilgiyi buradan bulabilirsiniz.

Bölüm İçin Yol Haritası:

  • Yeni Rails uygulamasına baÅ?lama
  • Tabloların oluÅ?turulması (ActiveRecord::Migration sınıfı ile)
  • Å?ablonların (model) oluÅ?turulması
  • Å?ablonlara ait genel-görünümsel yapı kurulması (scaffold)
  • netSınav denetleyicisi-yöneticisi ile örnek listeleme

1. bölüme ait kaynak kodları buradan yükleyebilirsiniz (.tar.gz)
Ekran sunumlarını buradan izleyebilirsiniz. (Ekran görüntüleri 800×600 boyut olduÄ?u için buraya konulmamıÅ?tır.)

Detayları ve bölüm yazısını yazının devamında bulabilirsiniz…

Devamını Okumak İstiyorum

“Ruby On Rails” ile adım adım netSınav adı altında uygulama geliÅ?tirimine ait görüntü sunumlarını ve dökümanları bölümler halinde oluÅ?turup, yayımlayacaÄ?ım inÅ?allah. Ama öncelikle “netSınav nasıl bir sistem olacak? “, “netSınav nedir?”, “görüntü sunumu nedir?”, “nasıl baÅ?layacaÄ?ız?” sorularına cevap vermek istiyorum.

1. Görüntü Sunumu Nedir?

Görüntü sunumu (screencast) bir nevi iÅ?lemleri yaparken ekranı kaydedip, çoÄ?unlukla neler yapıldıÄ?ının sesli biçimde anlatılmasıdır. - netsınav için ilk bölümde sesli anlatım yer almamaktadır. nedeni ise sunumun zaman olarak yaklaÅ?ık iki katı uzamasıdır - Sanki birebir eÄ?itim görüyormuÅ? gibi.
Görüntü sunumu ile ilgili geniÅ? bilgiyi wikipedia.org üzerinde bulabilirsiniz.

2. netSınav Nedir? Kaç bölüm olacak?

netSınav kod adına sahip uygulamamız sanki bir eÄ?itim alanıymıÅ?çasına çalıÅ?acak, kiÅ?ilerin internet üzerinden sınav olmalarını saÄ?layacak, bunlara dair istatistikler sunacak, sonrasında daha farklı geliÅ?melere açık olabilecek bir sistem.
Ekran sunumlarının kaç bölüm olacaÄ?ı henüz belli deÄ?il. Uygulama sunumlarla beraber geliÅ?tirilecek ve yorumlarla uygulamaya yön verileceÄ?inden önceden kaç bölüm olacaÄ?ını kestirmek zor.

3. Neden netSınav?

Ã?rnek olarak bu tür bir sistem seçtim çünkü içerisinde bir tasarıda bulunması gereken hemen hemen tüm iÅ?lemleri kapsıyor. Kullanıcı sistemi, yönetim sistemi, tablo iliÅ?kilendirmeleri, “form” olayları, istatistikler ve diÄ?erleri.

4. Nasıl BaÅ?layacaÄ?ız

Bu sistemi “ruby on rails” altyapısında hazırlayacaÄ?ımız için öncelikle “ruby on rails”ın bilgisayarınızda kurulu olması gerekli.
Bunun dıÅ?ında uygulamayı geliÅ?tirirken “RadRails” uygulama platformunu kullanacaÄ?ım.

İlerlenilecek her bölüm sunumda neler yapılacaÄ?ını yazılı olarak anlatacak - çok detaylı bilgiler varsa yazıda iletilecek - bu bölüm sunum öncesi okunması gerekli ki sunumda deÄ?inilmeyen detaylar ve “n’apıyoruz?” sorusuna cevap bulunsun.
Bölümler ScreenCast: NetSınav (x) Å?eklinde belirtilecek.

5. Gerekli Dosyaların Elde Edilmesi

RubyOnRails sitesinde altyapının kurulumuna dair bilgileri bulabilirsiniz.
RadRails platformunu buradan yükleyebilirsiniz.

6. Biterken

Ekran sunumlarıyla daha kolay anlatım ve daha hızlı çözüme olanak saÄ?landıÄ?ından ve aynı zamanda daha etkileyici olduÄ?undan bu yola baÅ?vurdum. Sistem yorumlar eÅ?liÄ?inde sunumlarla geliÅ?tirilecektir (belli bir bölümden sonra).

  • netSınav kaynak kodu açık bir tasarıdır, kodlarının kullanılması serbesttir.
  • her bölüm önceki bölümün devamı niteliÄ?inde olup, önceki bölümün kodları üzerinden devam edilecektir.
  • Ekran sunumları yine açık kaynak kodlu bir yazılım olan vnc2swf ile çekilmiÅ?tir.
  • İÅ?letim sistemi olarak Pardus kullanılmıÅ?tır.
  • Haftada en az bir bölüm olmak üzere yayım yapılacaktır.

Bölümler:

“Ruby On Rails” oluÅ?turulan model isimlerinde otomatik olarak ingilizce kurallarına göre iliÅ?kilendirme yapar. Ã?rneÄ?in; “sample” isimli model için “samples” tablosunu arar. Tabii ki bu Türkçe uygulamalarda bize sorun çıkartacaktır. Ya her model için “set_table ‘tablo’” kullanacaksınız ya da environment.rb dosyasında sanki bunu düzensiz bir ingilizce kelimeymiÅ?çesine belirteceksiniz ( inflect.irregular ‘ders’, ‘dersler’ ) ya da son olarak Ruby On Rails’e Türkçe öÄ?reteceksiniz.

  1. # Ruby için türkçe model-veritabanı iliÅ?kilendirmesi
  2. # muarifer, murat.celiker@gmail.com
  3. Inflector.inflections do |inflect|
  4.   inflect.plural /([eiöü]([^aeıioöuü]+)|[eiöü])$/i, '\1ler'
  5.   inflect.plural /([aıou]([^aeıioöuü]+)|[aıou])$/i, '\1lar'
  6.   inflect.singular /([eiöü]([^aeıioöuü]+)|[eiöü])ler/i, '\1'
  7.   inflect.singular /([aıou]([^aeıioöuü]+)|[aıou])lar/i, '\1'
  8. end

Ruby On Rails. “ders” isim model oluÅ?turduÄ?umuzda bunu “dersler” tablosuna baÄ?layacaktır.

İÅ?leyiÅ?:

Düzenli ifade kullanarak son karakter aıou ise veya son ünsüz harflerden önceki harf (son hecenin ilk harfi) aıou ise ‘lar’, son karakter eiöü ise veya son ünsüz harflerden önceki harf eiöü ise ‘ler’ çoÄ?ul ekini koymasını söyledik.

RadRails & RDT Problem    10/01/07

EÄ?er “Türkçe” dil ayarlarına sahip bir iÅ?letim sistemine RadRails veya Eclipse RDT eklentisi kurduysanız, açılıÅ? ekranı gösterildikten sonra herhangi bir iÅ?lem olmayacaktır ve yazılım kapanacaktır.
Bunu önlemek için uygulamayı “-nl en-EN” argümanı ile çalıÅ?tırmak gerekli ya da “bölge ve dil ayarlarını ingiltere-ingilizce’ye çevirmeli”. ( Sorun RDT’den oluÅ?uyor. Eclipse platformunu açarken de aynı Å?ekilde argüman kullanabilirsiniz.)

radrails -nl en-EN
eclipse -nl en-EN

Sorunun KaynaÄ?ı:

Sorun Ruby Development Environment‘ten kaynaklanıyor.
RadRails’in etkilenme sebebi ise alt yapı olarak RDT kullanması.

Rails.Vim: Vim & Rails    09/01/07

Daha önce vim ile ruby üzerinde daha rahat çalıÅ?abilmek için neler yapılabilir konusunu yazmıÅ?tım.
Rails için ise, kolay proje yönetimi ve sizi konsoldan kurtaran “rails.vim” dosyası mevcut. ( ana sayfası - proje sayfası )

Ã?zelliklerinin görüleceÄ?i ekran sunumuna buradan ulaÅ?abilirsiniz.

Kurulum, kullanım detayları ve ipuçlarını yazının devamında bulabilirsiniz.

Devamını Okumak İstiyorum

ActiveRecord bizim için genel olarak tüm veritabansal iÅ?lemleri nesnelliÄ?e dönüÅ?türerek gerçekleÅ?tiriyor. öyle ki veritabanı ile konuÅ?urmuÅ?casına birden fazla Å?u var (has_many..), Å?una baÄ?lı diyebiliyoruz (belongs_to). Bunun dıÅ?ında tabloyu dallandırmayı, liste haline getirme özelliklerini (ve eklentiler sayesinde daha fazlasını) bizlere sunuyor.

Yukarıda bahsettiÄ?imiz ActiveRecord özelliklerinden “acts_as_tree” den nasıl yararlanabileceÄ?imizi, iÅ?lerimizi nasıl kolaylaÅ?tırdıÄ?ını, “nerelerde kullanabiliriz”e dair soruları yazımızda bulacaÄ?ız.

Devamını Okumak İstiyorum

RadRails ruby ve “ruby on rails” için geliÅ?tirim arayüzü (ide). Birkaç deÄ?iÅ?iklik ile daha da güzel hale getirebiliriz.

  • Ruby, RDoc, Rake, Rails, Ri Ayarları
  • Klavye Kısayolları
  • RadRailsTemplates
  • “Consolas” Fontu
  • RadRails TexMate Görünümü

Yazının devamında ayarlamalar ve kurulumlar hakkında bilgi bulabilirsiniz.

Devamını Okumak İstiyorum

Rails fikir açısından çok yeni olmasa da, metaprogramming’in kullanımını muntazam bir biçimde geliÅ?tiricilere sunduÄ?u için, yazılım geliÅ?tiricilerine - en azından rubyistlere - bir yol gösterici, ufuk açıcı oldu.

Sayesinde konsol uygulamalarının bile geliÅ?tirilmesi deÄ?iÅ?ti. Å?öyle ki; SimpleConsole ruby için denetleyici (controller) ve görünüm (view) den oluÅ?mak üzere basit, etkili ve hızlı biçimde kullanabileceÄ?imiz “ufak” altyapı sunuyor bizlere.

basitçe bir örnek vermek gerekirse;

require 'rubygems'
require 'simpleconsole'
 
# Denetleyici
# -
# Yazılıma gönderilen eylemleri ve eylemlere uygun deÄ?erleri (argümanları) yakalar
class Denetleyici < SimpleConsole::Controller
 
 
params :string => { :i => :isim }
 
 
def default
 
end
 
 
def merhaba
   
@isim = params[:isim]
 
end
 
end
 
# Görünüm
# -
# Denetleyiciden aldıÄ?ı deÄ?erleri iÅ?ler, ekrana yansıtır
class Gorunum < SimpleConsole::View
 
 
def default
   
puts "Kullanım:\n"
   
puts "ornek_simpleconsole EYLEM deÄ?erler\n"
   
puts "örnek:\n"
   
puts "ornek_simpleconsole merhaba -i dünya"
 
end
 
 
def merhaba
   
puts "merhaba #{@isim}!"
 
end
 
end
 
# SimpleConsole modülündeki Application sınıfını çalıÅ?tır
SimpleConsole::Application.run(ARGV, Denetleyici, Gorunum)

SimpleConsole RubyForge Sitesi

Her ne kadar kullanıcı arayüzünde oldukça geliÅ?miÅ?likler sunsa da komut sisteminde de oldukça güzel özellikler barındırıyor windows xp.

komutistemcisi.jpg
bir klasöre saÄ? tıklayınca anında komut istemcisini açmak için basit bir yol mevcut:

  • herhangi bir “explorer” penceresi açıyoruz (örn: bilgisayarım)
  • araçlar : klasör seçenekleri
  • “dosya türleri”
  • “klasör” ü seçiyoruz
  • geliÅ?miÅ? -> yeni
  • isim belirtip komuta: “cmd.exe /k cd /d “%1” yazıyoruz.

« Ö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.