HELLO, I’M SERHAT AND THIS IS MY FANCY TITLE.

GEM - Pundit ile authorization (cancan alternatifi)


Ryan Bates'in sırra kadem basmadan önce geliştirdiği GEM'lerden biri de cancan. Ryan ortadan kaybolup cancan'i yetim bırakınca Bryan Rite önderliğinde bir grup geliştirici başka bir proje olan cancancan'i sahiplendi ve bunu geliştirmeye devam etti.

Yani cancancan sanılanın aksine cancan'den sonra ortaya çıkmış veya cancan'in yokluğuna karşılık geliştirilmiş bir GEM değil, 2009'dan beri hayatta olan bir proje. Ancak en aktif geliştirme sürecini ise 2014'ün Ocak ve Eylül ayları arasında (Ryan'ın ortadan kayboluşu) yaşıyor. Ryan nerede birileri tartışadursun, biz ayakları yere daha sağlam bakan alternatiflere gidelim.

Continue reading

Ruby ile iki veri arasındaki benzerliğin hesaplanması


Bir RoR projesinde, iki farklı veritabanında bulunan ad-soyad ve kimlik numarası verilerinin birbirlerine ne kadar benzediğinin hesaplanması ve farklı veri setlerinin birbiriyle aynı olma olasılığının tespiti gibi bir ihtiyacım olmuştu.

Örneğin aşağıdaki iki veri birbirine ne kadar benziyor, bu kişiler gerçekten aynı kişiler olabilir mi bunu hesaplamam gerekiyordu:

"Ahmet Metin 123456789"
"Ahmet Makin 123123123"

Bu hesaplamayı yapabilmek için Elasticsearch ve Ruby'nin marifetleri yeterli oldu. Elasticsearch'ün Ruby için sağladığı records.each_with_hit metodu ile herhangi iki veri birbirlerine ne kadar benziyor (yakınsıyor) kontrol edebilir ve benzerlik oranını 0-2 aralığında matematiksel olarak alabilirsiniz.

Continue reading
Date: | Tags: ruby programlama, ruby dersleri, ruby örnekleri, ruby kodları | Categories: tech, ruby

Rbenv ile ruby ve rails kurulumu - debian 7


Rbenv, RVM gibi ancak RVM'ye göre çok daha basit bir şekilde, birden çok Ruby versiyonunu birlikte kullanmak için geliştirilmiş bir araçtır. Sisteminizde tek bir Ruby sürümüne ihtiyaç duyuyorsanız dahi, gelecekte farklı sürümlere ihtiyaç duyabileceğiniz için rbenv ile kurulum yapmanızı öneririm.

Öncelikle rbenv'i /home/foo altına klonlayın:

git clone https://github.com/sstephenson/rbenv.git ~/.rbenv

Daha sonra PATH'e rbenv değişkenlerini ekleyin:

echo 'export PATH="$HOME/.rbenv/bin:$PATH"' >> ~/.bashrc
Continue reading

GEM - unicode utils


MERNİS'e yaptığım bir request'te, Ruby'nin upcase metodu kaynaklı Türkçe karakter problemi ile karşılaştım.

SOAP request'ini incelediğimde "ü" karakterinin büyük harfe çevrilemediğini gördüm:

<env:Body>
  <tns:TCKimlikNoDogrula>
  ...
    <tns:Ad>MUSTAFA SERHAT</tns:Ad>
    <tns:Soyad>DüNDAR</tns:Soyad>
  ...
  </tns:TCKimlikNoDogrula>
</env:Body>

Türkçe karakterlerin doğru şekilde büyük ve küçük harflere çevrilmesi için unicode_utils GEM'ini kullanabilirsiniz. Daha sık güncellenen ve daha performanslı benzer bir GEM olarakta unicode'u kullanabilirsiniz. Bu yazıda unicode_utils GEM'i takip edilecek.

Continue reading

Ubuntu'da rubymine kurulumu


Ubuntu 12.04 altında RubyMine kurmak için öncelikle sisteminizde Ruby interpreter (irb)'ın kurulu olması gerekiyor. Kurulum için RVM kullanımı önerilse de zorunlu değil. Benim ve komünitenin genel önerisi ise RBenv kullanmanız. Ayrıca sisteminizde Oracle JDK kurulu olması gerekiyor, bunu da daha önce anlatmıştım.

Herşey hazırsa RubyMine arşiv dosyasını indirin. Arşiv dosyasını masaüstüne indirdiğinizi varsayıyorum. Dosyaları arşivden çıkartın.

$ tar xzvf RubyMine-4.5.1.tar.gz

Arşivden çıkarttığınız dosyaları, uçbirimden ulaşmanızın kolay olduğu bir klasöre taşıyın. Ben hepsini home/msdundar/apps altında tutuyorum.

Continue reading
Date: | Tags: ubuntu rubymine kurulum, rubymine kurulumu, rubymine nedir, ruby | Categories: tech, ruby, linux