Sayfa: 1 2 »

Olay kısaca şöyle, eÄŸer 404 sayfanızın boyutu 512 byte’dan daha az ise Internet Explorer bu sayfayı göstermiyor onun yerine kendi 404 sayfasını gösteriyor.

Hatta bir kaç denememe göre - yüzde yüzlük doğruluk payı olmayabilir - sayfada bulunamayan bir imge var ve 404 sayfanız 512 baytdan küçük ise bulunan sayfayı dahi göstermiyor.

firefox 3.0b4 ve YSlow    20/03/08

Yahoo’nun Firebug ile çalışan YSlow analiz sistemi, çıkmış olan en son beta sürümü 3.0b4 ile çalışmıyor. Resmi YSlow eklentisinde maxVersion 3.0b4pre olarak belirtilmiÅŸ. Bu nedenle yüklediÄŸiniz xpi dosyasını - ki aslında bu bir “zip” dosyadır - bir klasöre açtıktan sonra “install.rdf” dosyasını açıp <em:maxVersion> etiketinin deÄŸerini 3.0b4 olarak deÄŸiÅŸtirirseniz sorun ortadan kalkıyor.

<em:maxVersion>3.0b4</em:maxVersion>

install.rdf dosyasını güncelledikten sonra çıkan dosyaları yeniden zip’leyip uzantısını xpi olarak güncellediÄŸinizde ve ve bu dosyayı Firefox ile açtığınızda kurulum sorunsuz olarak gerçekleÅŸiyor.

Kolaylıklar.

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.

Vakt-i zamanında SitePoint’in tarafından yayımlanan Patrick Lenz tarafından yazılmış olan “Build Your Own Ruby On Rails Web Application” 60 gün boyunca bedava ve tam sürüm olarak indirilebiliyor.

Kitaba çok önceden göz gezdirmiÅŸtim, baÅŸlangıç seviyesinde yararlanılabilecek bir kitap. Rails’in çalışma mantığını basit bir uygulama eÅŸliÄŸinde anlatıyor. Zaten Rails’i anlamanın ve öğrenmenin en güzel yolu da örnek uygulama geliÅŸtirmek. Üzerinde çalıştığım kitap projesinde aynı yolu bende izliyorum daha doÄŸrusu izleyeceÄŸim inÅŸallah.

Taskbar Shuffle, taskbar da yer alan açık yazılımların yerlerini değiştirmeyi kendine görev edinmiş daha doğrusu ettirilmiş diyelim, yazılımı yazan birileri var sonuçta.

Çokça yazılım çalıştıran biri iseniz ve ilişkilendirilmiş yazılımları sırayla açmamış iseniz yazılımdan yazılıma geçişi kolaylaştırmak için kullanılabilir.

646 Kb. büyüklüğündeki Taskbar Shuffle’ın buradan kurulum dosyasını indirebilirsiniz yahut kurulumsuz yalnızca “exe” dosyası içeren zip dosyasını edinebilirsiniz.

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

class RedCloth
 
# Patch for RedCloth.  Fixed in RedCloth r128 but _why hasn't released it yet.
 
# <a href="http://code.whytheluckystiff.net/redcloth/changeset/128">http://code.whytheluckystiff.net/redcloth/changeset/128</a>
 
def hard_break( text ) 
   
text.gsub!( /(.)\n(?!\n|\Z| *([#*=]+(\s|$)|[{|]))/, "\\1<br />" ) if hard_breaks 
 
end 
end

kaynak kaynak-2

Makale, kitap hatta mektup yazmak için bile kullanılabilen LaTeX dili için Türkçe bi’ Å?eyler karalamak isterken “Türkçe karakter hatası” sorunlarından kurtulabilmek için gerekli komutlar Å?unlar:

  1. \documentclass[12pt,a4paper]{book}
  2. \usepackage[turkish]{babel}
  3. \usepackage[latin5]{inputenc}
  4. \usepackage[T1]{fontenc}
  5. \usepackage{bookman}

Ayrıca Texmaker “platform baÄ?ımsız” güzel bir LaTeX editörü.

Kaynak koddan LaTeXsel renklendirme yapan “Highlight Converter” çok yararlı.

Windows için MiKTeX ile TeX paketlerini de kolayca yükleyebiliriz.

Malumunuz Rails “Prototype” alt yapısını kullanarak Ajaxsal olayları içerisinde bulunan “helper” dosyaları sayesinde oldukça kolay kullanıma indirgedi.

Yazıda “bildirgeç”te bulunan “tutma” sisteminin Rails ile nasıl yapılabileceÄ?ine veya bir oy sisteminin Rails ile nasıl yapılabileceÄ?ine deÄ?ineceÄ?iz. Yazının amacı “basit” ajax olaylarını nasıl yapabileceÄ?imizin dıÅ?ında “RJS” Å?ablon sistemini kullanabilmeyi göstermektir.

UYGULAMA Ã?RNEÄ?İNE BAKABİLİRSİNİZ.

Yazının sonunda “bildirgeç” üzerinde bulunan “tuttum” yapısının daha geliÅ?miÅ? bir sürümünü elde etmiÅ? olacaÄ?ız. “Daha geliÅ?miÅ?” çünkü tutulduÄ?u anda “tutan kiÅ?ilerin” listesini de güncelleyecek.

Not: Yazıda kullanıcılar ve kullanıcı giriÅ?leri Å?eklinde bir sistemimiz olmadıÄ?ı için oluÅ?turacaÄ?ımız fonksiyonları anlık yapacaÄ?ız. BaÅ?ta belirtildiÄ?i üzere asıl amaç “RJS” ile birden fazla alan güncellemesidir.

Ortamın Hazırlanması

Devamını Okumak İstiyorum

Ruby On Rails’in tabloları ve sonuçları otomatik sayfalandıran Pagination nesnesi birçok zahmetten bizleri kurtarıyor. Lakin, modelimize ait bir fonksiyonda dönen kayıtları sayfalandırmak için varsayılan olarak hazır bir yapı bulunmuyor. Mutlaka tüm dönen sonuç bilgilerini “pagination” nesnesinde “paginate” fonksiyonuna göndermek gerekiyor. Dönen kayıtların adeti, ilk ve son kayıt arası fark gibi.

Bizleri bu zahmetten kurtaracak olan ufak bir fonksiyon.
application.rb dosyasına bu fonksiyonu koyarsanız, iÅ?lev tüm yazılım denetleyicileri tarafından eriÅ?ebilir olacaktır.

# Sayfalama olaylarını dönen fonksiyon kayıtları içinde yapar
# application.rb dosyasına konulduÄ?u takdirde tüm denetleyiciler
# tarafından kullanılabilir olacaktır.
# http://snippets.dzone.com/posts/show/389
def paginate_collection(collection, options = {:per_page => 10, :page => 1})   
 
pages = Paginator.new self, collection.size, options[:per_page], options[:page]
 
first = pages.current.offset
 
last = [first + options[:per_page], collection.size].min
 
slice = collection[first...last]
 
return [pages, slice]
end

Kullanımına dair bir örnek:

Devamını Okumak İstiyorum

Ruby On Rails ile uygulama geliÅ?tirirken mutlaka kullanılması gereken “muhteÅ?em” özelliklerinden biridir ActiveRecord’un alansal hata kontrol mekanizmaları. Lakin, varsayılan olarak hatalar İngilizce’dir. Bunları TürkçeleÅ?tirmek için ActiveRecord modülündeki Errors sınıfında bulunan @@default_error_messages “Hash” deÄ?iÅ?keni düzenlenmelidir.

Türkçe Hata Mesajları

Varsayılan durumlarda kullanılan mesajları, Ruby sınıfının tarihsel deÄ?iÅ?kenlerini ayrıca hata penceresi mesajlarını TürkçeleÅ?tiren turkce.rb dosyasını kullanıma sunuyorum, buyrun.

Kullanmak için tasarınızda herhangi bir yere kaydedip daha sonra “environment.rb” dosyasına bu dosyayı ekleyebilirsiniz.

Ã?rneÄ?in; app klasöründe turkce.rb adıyla kaydederseniz environment.rb dosyasına

require "#{RAILS_ROOT}/app/turkce"

eklemeniz gerekli ayarları yapacaktır.

Yazının devamında gerekli dosya içeriÄ?ini bulabilirsiniz.

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!

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

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