Sayfa: « 1 2 3 »

Pardus & Postgresql    06/08/07

Pardus üzerinde hızlıca Postgresql’i kurmak için aÅŸağıdaki adımları izleyebiliriz:

  • Postgresql kurulumu ( pisi it postgresql-server )
  • Servisi açalım: service postgresql-server start
  • Kullanıcımız için “role” oluÅŸturalım (Konsolda)

    muarifer@muarifer ~ $ su
    Parola:
    muarifer muarifer # su postgres
    postgres@muarifer muarifer $ createuser muarifer
    Shall the new role be a superuser? (y/n) y

    exit
    exit

  • Veritabanımızı oluÅŸturalım: createdb VERITABANI
  • Veritabanına baÄŸlanmak için: psql -d VERITABANI

TList sınıfı iyidir.

sepetUrun := TList.Create;

  // dispose falan.
  for i := 0 to sepetUrun.Count-1 do
    Dispose(sepetUrun[i]);
  sepetUrun.Clear;
  btnSepeteAt.Caption := IntToStr(sepetUrun.Count);

UI 2.0 & boyoto    05/07/07

Boyahane Otomasyonu yazılımın da kullanım mutlaka en basit şekilde olmak zorunda. Programı kulllanacak kişilerin çoğu programı kullanmaya başlayarak ilk kez bilgisayar ile tanışıyor çünkü. Ayrıca işçiye iş çıkarmak yerine onu daha verimli çalıştırmak daha önemli, bunun için yazılım da gereksiz alan olmamak zorunda, kullanım basit olmak zorunda, kafa karıştırıcı hiçbir şey bulunmamalı. Ayrıca güzel bir pencere de bunları sunmak tabii tümünden daha önemli bence.

Masaüstü uygulamaları geliştirirken en çok dikkat ettiğim husus kolay kullanılabilirlik ve güzel görünüm. Kolay kullanılabilirlik aranılana hızlıca ulaşabilme, güzel görünüm ise bu ulaşılabilecek alanları en anlamlı biçimde yerleştirme.

Boyotodan örnek iki ekran. (Boyoto projesinin satır sayısı 60000 i geçti, hayırlısı artık.)

Metre Programı
Yönetim Ekranı

Bir alanı otomatik tamamlama sistemine geçirmek için Rails tarafında 2 satırlık kod yeterli olabiliyor çoÄŸu kez. ActionController alt sınıfına auto_complete_for :model, :alan ve görünümde(view) bu özelliÄŸe sahip olunması istenilen “giriÅŸe”(edit) text_field_with_auto_complete :model, :alan. Ben listeyi kendim göstermek istiyorum derseniz de Controllerde auto_complete_for_model_alan fonksiyonunda biraz deÄŸiÅŸiklik yapabilirsiniz.

Daha hızlı bir çözüm ise “yerel” kullanımla beraber kayıtları JavaScript dizisi biçiminde alıp Autocompleter.Local kullanmak olabilir.

class BlaBla < ActionController::Base
 
def etiket_tamamlama_liste
   
etiketler = Etiket.find(:all)
   
@headers['content-type'] = 'text/javascript'
   
liste = "var etiket_liste = new Array(#{etiketler.size});\n"
   
etiketler.each_with_index { |etiket, index|  liste << "etiket_liste[#{index}] = '#{etiket.etiket}';\n" }
   
render :text => liste
 
end
end
<script src="/gunluk/etiket_tamamlama_liste" type="text/javascript" ></script>
< %= text_field 'giris', 'etiketler' %>
<div class="auto_complete" id="giris_etiketler_auto_complete" ></div>
 
< %= javascript_tag("new Autocompleter.Local('giris_etiketler' , 'giris_etiketler_auto_complete' ,
                   etiket_liste, {fullSearch: true, frequency: 0, minChars: 1, tokens: ','});
") %>

javascript_tag ile Autocompleter.local için istemci oluÅŸturuyoruz ve listeyi “,” ile ayırarak etiket sisteminde seçimi güzelce yaptırıyoruz.

Autocompleter.Local(INPUT_ADI, GÖSTERİLECEK_LİSTE_IDSI, JAVASCRİPT_DEĞİŞKEN_ADIMIZ, DİĞER AYARLAR)

Autocompleter.Local‘ın scriptaculous içinde olduÄŸunu belirterek javascript_include_tag :defaults ile genel javascriptsel dosyaları dahil etmeyi unutmayınız.

Rails için genel Türkçe olayları halleden TurkceRb eklentisini projelerinize kurabilirsiniz.

script/plugin install svn://rubyforge.org/var/svn/turkcerb

İçerik

  • Model ve Tablo İliÅŸkilendirmeleri
  • created_at yerine kayit_tarihi (created_at kullanılabilir durumda kalır)
  • updated_at yerine guncelleme_tarihi (updated_at kullanılabilir durumda kalır)
  • distance_of_time_in_word TürkçeleÅŸtirmesi
  • ActiveRecordHelper TürkçeleÅŸtirmesi
  • Tarihsel seçimlerin TürkçeleÅŸtirilmesi

Eklenti için tasarı sayfası: http://turkcerb.rubyforge.org

M. Ozan Hazer günlüÄ?ünde Ruby’nin dolayısıyla Ruby On Rails’in performansının bu dili kullanıp/kullanmama konusunda ne kadar etkili olacaÄ?ına dair güzel bir yazı yazmıÅ?. (Ã?zerinden on gün geçmesine raÄ?men henüz paylaÅ?abiliyorum.)

Ã?zet olarak “Ã?oÄ?unlukla bir yerden kazanırsanız diÄ?er bir yerden kaybedersiniz”i Ruby On Rails ve diÄ?er altyapılar için ana fikir olarak seçerek “Programlamada da iÅ?ini ne kadar kolaylaÅ?tırırsanız o kadar performans kaybedersiniz” Å?eklinde yazılım konularında kullanmak üzere yazıyor.

Yazıya tamamıyla katıldıÄ?ımı belirtiyor, yazılım geliÅ?tiricinin yazılım yazarken zevk alması gerektiÄ?ini düÅ?ünüyorum.

Ruby On Rails İle Sunucuya Dosya Gönderimleri

GiriÅ?

Ruby On Rails altyapısında sunucuya dosya gönderme iÅ?lemi birkaç aÅ?amada gerçekleÅ?tirilebilir. Yazının sonunda kullanıcılardan resim alan, aldıÄ?ı bu resmi ve ufak boyutlu görüntüsünü (thumbnail) kaydeden ufak bir yazılım geliÅ?tirmiÅ? olacaÄ?ız.

Kullanıcılardan dosya almak için “form”umuzu “multipart” olarak tanımlamalıyız. Bunun için form oluÅ?turma etiketimize “:multipart => true” argümanını yollamak yeterli olacaktır.

Ã?rneÄ?i geliÅ?tirmek için kullanıcıya formu gösteren ekle fonksiyonu, formun gideceÄ?i kayit fonksiyonu ve resimleri ototomatik boyutlandırıp ve gerekli kaydetmeyi gerçekleÅ?tiren “private” Å?eklinde “resim_ekle” fonksiyonu kullanacaÄ?ız. Bunları aynı denetleyici içerisinde oluÅ?turmayı unutmayın - aynı denetleyici dıÅ?ında yapmak isterseniz formun gideceÄ?i noktayı deÄ?iÅ?tirmeniz gerektiÄ?ini unutmayın -

Formumuzun Tanımlanması

Ã?rnekte kullanmak üzere kullanıcıdan yalnızca dosya giriÅ?i yapmasını isteyen bir form tanımlayacaÄ?ız.
Bu ekran denetleyicinin “ekle” fonksiyonunda gözükecektir. Bunun içinde denetleyicide “ekle” isimli fonksiyon oluÅ?turuyoruz.

# denetleyici (controller) dosyamıza ekliyoruz
def ekle
end
 
# ekle.rhtml adı altında app/views/denetleyici klasörüne kaydediyoruz.
< %=
"<h2>#{flash[:notice]}" if flash[:notice] %>
< %=
form_tag({:action=>'kayit'}, :multipart => true) %>
< %=
file_field_tag 'resim' %>
< %=
submit_tag 'Ekle' %>
< %=
end_form_tag %>

Yukarıda belirtilen kodlarla kullanıcıya dosya giriÅ?i sunan form sayfası oluÅ?turduk. Form “kayit” sayfasına gidecektir. Kayıt sayfasında gelen bu dosyayı sunucumuza kayıt edeceÄ?iz.

Devamını Okumak İstiyorum

“CODE BLOCK” yapılı iÅ?levler oluÅ?turmak

Ã?nceki makalemizde “yapılar ve tekrarlayıcılar”ın genel kullanım türlerinden bahsetmiÅ?tik. Ã?rnek verirken Ruby tarafından bize sunulan kütüphaneleri ele almıÅ?tık. (Array.each gibi)
Bu makalede yapı kabul eden fonksiyonları kendimizin nasıl oluÅ?turacaÄ?ı üzerinde duracaÄ?ız.

Kendi oluÅ?turduÄ?umuz fonksiyona nasıl “kod yapıları” eklenebilir?

Kod yapısı kabul eden bir fonksiyon oluÅ?turmak için Ruby dili bize “yield” iÅ?levini sunar. Verilen kodun tekrarlanacaÄ?ı yere “yield” yazmak yeterlidir.

def calistir
 
puts "Ã?alıÅ?tırılıyor..."
 
# kod yapısını çalıÅ?tıralım
 
yield
 
puts "Bitti..."
end
 
calistir { puts "merhaba" }

Yukarıda belirtilen fonksiyon “yield” iÅ?levinde verilen kod yapısını tekrar edecektir. Ã?ncesinde ekrana “Ã?alıÅ?tırılıyor…” yazacak yapılan kod tekrarlandıÄ?ında “Bitti” yazacaktır.

block_given?

Devamını Okumak İstiyorum

1. KOD YAPILARI

Kod yapıları aslen bir fonksiyon olup, -kısaca- iÅ?lemden döndürülen sonuçları alarak bunları o an içerisinde iÅ?lemeye yarar. Bir fonksiyondan ayrıldıkları tek nokta çoÄ?u zaman isimlerinin olmayıÅ?ıdır. Ayrıca fonksiyona deÄ?er göndermek yerine dönen deÄ?eri/deÄ?erleri otomatik olarak yakalayıp, iÅ?leyebilir.

2. KOD YAPILARININ TANIMLANMASI

Ã?rnek olarak “Array” sınıfının “each” fonksiyonunda dönen deÄ?eri yakalayıp bu deÄ?er üzerinden iÅ?lem yapalım.

# Parantezsel Yazım
[1, 2, 3].each { |x| puts "DeÄ?er: #{x}" }
 
# Do-End Tarzı Yazım
[1, 2, 3].each do 
      |
x| puts "DeÄ?er: #{x}"
     
end

Ã?rnekte verilen “Array.each” incelendiÄ?inde döngü içerisinde tüm elemanları sırayla aktarıldıÄ?ı görülecektir. Yapı ile biz bu elemanı yakalayıp, onun üzerinden iÅ?lem yaptık.

Ã?rneÄ?i yapı kullanmadan yazmaya çalıÅ?alım:

Devamını Okumak İstiyorum

sitemap.rb verilen yerel dosya üzerinde yahut aÄ? sayfası üzerinde tüm baÄ?lantıları takip ederek (tabii sunucunuzda bulunanları ve gerekli görünenleri) kısayoldan sitemap.xml dosyası oluÅ?turmaya yarayan, oluÅ?an dosyayı bilgilerinizi girdiÄ?iniz taktirde sunucunuza yükleyebilen araçtır.

Tasarı sayfasından da gerekli bilgilere ulaÅ?abilirsiniz.

Svn hesabından geliÅ?meleri takip edebilirsiniz.
svn checkout svn://rubyforge.org/var/svn/sitemap-rb

Neler Yapabilir?

  • Verilen adresteki tüm baÄ?lantıları bulur. EÄ?er baÄ?lantı sunucunuz üzerinde ve belirlenen dosya formatlarının dıÅ?ında ise bunu listeye ekler.
  • OluÅ?turulan dosyayı sunucunuza yükleyebilir.
  • İÅ?ini yerine getirir!

Neler Yapamaz?

  • BaÄ?lantı bilgilerini el ile ayarlama yok. İkinci sürümde olma ihtimali %100.
  • Grafiksel bir arayüze sahip deÄ?il. İkinci sürümde olma ihtimali %100. (İlk “neler yapamaz”ın sebebi de grafiksel ekrandan yoksun oluÅ?u)

İlerisi İçin Tasarı GeliÅ?imi

Grafiksel arayüz eklenmesi ve hatalar var ise düzeltilmesi. Kodların genel bir incelenmesi.

Hata Olursa & Fikrim Varsa

Bunların sonraki sürümlerde yer alması/düzeltilmesi için yorum yazabilirsiniz.

sitemap.rb | sitemap.xml creator

sitemap.rb found all links - if it’s suitable - in local file or web site, then create sitemap.xml for you. if you agree, it’s send your sitemap.xml file to your server!

usage

if you want to use sitemap.rb, your system must have a ruby.
# create sitemap.xml from local file
ruby sitemap.rb index.html
# create sitemap.xml from web page
ruby sitemap.rb http://www.ikinoktayazilim.com/

download

downloadable files are in project page.

next versions?

Next version (probably 0.2) will have Graphical User Interface (gui). With new version you change every file unique properties. (like “how often updated?”)
Comments are welcome!

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

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

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ı.

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