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

SSH Config Dosyası ve ForwardAgent


Sisteminizdeki SSH anahtarlarını uzaktaki bir makinada (örneğin sunucu) kullanabilmek için SSH AgentForwarding yapabilirsiniz.

$ cd ~/.ssh
$ touch ~/.ssh/config

Config dosyasını düzenleyin:

Host sepet
    HostName 172.x.x.x
    Port xxx
    User serhat
    ForwardAgent yes
    SendEnv LANG LC_*

Host kavun
    HostName 172.x.x.y
    Port xxx
    User serhat
    ForwardAgent yes
    SendEnv LANG LC_*

Bu düzenleme sonrasında ForwardAgent ile makinanızdaki SSH anahtarlarını uzak makinada kullanabilecek ve SendEnv sayesinde yerel ortamınızı uzak makinada uygulayabileceksiniz. Eğer uzak makinada Türkçe karakterlerin bozuk görünmesi vs. problemler yaşıyorsanız SendEnv oldukça kullanışlıdır.

Continue reading

Rails - Callbacks


Kullanıcılardan herhangi biri hesabını iptal ettiği zaman adminlere bilgilendirme maili gitmesi, bir işlem tetiklendiğinde - başka bir işlemin de gerçekleşmesi veya bir model nesnesi oluşturduğunuzda, başka bir model nesnesinin de onla ilişkili olarak oluşması gibi durumları tanımlarken ihtiyaç duyduğumuz metodların en sık kullanılanları Rails'te 6 tanedir. Bunlar:

  • before_create
  • after_create
  • before_save
  • after_save
  • before_destroy
  • after_destroy

Zaten bu ifadelerin ne iş yaptığı isimlerinden de anlaşıldığı için tekrarlamayacağım.

Continue reading

KPS - MERNİS Sorgulama - Ruby, Savon ve SOAP


Geçtiğimiz hafta hem TTMesaj servisini hem de KPS'i (Kimlik Paylaşım Sistemi) Rails uygulamalarına entegre etme ihtiyacımızla birlikte, ismini pek sık duyduğum SOAP ile haşır neşir olmak durumunda kaldım. Üç-dört gün sonunda SOAP bana herhangi bir üçüncü dünya ülkesinin beyaz yakalı "plaza" çalışanını çağrıştırıyor. Bu çağrışımda ülkemizdeki SOAP servisleri ile haberleşen kod örneklerinin büyük çoğunlukla C#, ASP.Net ve Java ile yazılmış olmasının payı büyük.

Continue reading

Rails CRUD Cheatsheet


Metod Etki Alanı Örnek Not
new Model Student.new(adi: 'Serhat', soyadi: 'Dundar') Model bir nesneye atandığında, nesnenin save metodu ile kayıt edilmesi gerekir.
new_record? Nesne student.new_record? true veya false döndürür.
attributes Nesne student.attributes attribute'leri hash olarak döndürür.
* attribute_ismi Nesne student.finalnotu = "65" Model ismi komut olarak çağırılarak mümkün attribute'ler listelenebilir.
save Nesne student.save SQL muadili: INSERT INTO. Eğer nesne daha önceden mevcutsa UPDATE.
count Model & Nesne Student.count veyastudent.count SQL muadili: SELECT COUNT(*) FROM "students"
create Model Student.create(adi: 'Serhat', soyadi: 'Dundar') veya; x = {ad: 'Serhat', soyad: 'Dundar'} ve sonra Student.create(x) new metodundan farklı olarak doğrudan save işlemi yapar. SQL muadili: INSERT INTO
find(:id) Model & Nesne Student.find(1) veya Student.find([1,5]) find metodunu bir nesneye atayıp, daha sonra nesneyi çaşitli işlerde kullanabiliriz. SQL muadili: SELECT "students".* FROM "students" WHERE "students"."id" = ? LIMIT 1 [["id", 1]]
first Model & Nesne Student.first SQL muadili: SELECT "students".* FROM "students" ORDER BY "students"."id" ASC LIMIT 1
last Model & Nesne Student.last SQL muadili: SELECT "students".* FROM "students" ORDER BY "students"."id" DESC LIMIT 1
all Model Student.all SQL muadili: SELECT "students".* FROM "students"
class Model & Nesne Student.class [Class] veya student.class [Array] -
size Nesne student.size Nesnenin boyutunu verir.
order Model Student.order('ogrenci_no') SQL muadili: SELECT "students".* FROM "students" ORDER BY ogrenci_no
where Model Student.where(ogrenci_no: '09310009') SQL muadili: SELECT "students".* FROM "students" WHERE "students"."title" = 'My first post'
update_attributes Nesne student.update_attributes(ad: 'Mustafa', ogrenci_no: '08310009') true veya false döndürür.
destroy Nesne & Model Nesne üzerinde kullanım: student = Student.last && student.destroy. Model üzerinde kullanım: Student.last.destroy veya; Student.destroy(1) veya; Student.destroy([1,5]) DELETE FROM students WHERE id = 5; Nesne üzerinde kullanıldığında, kayıt silinmiş olmasına rağmen student nesnesi hala bellekte tutulur, fakat durumu read-only'dir, yani frozen durumdadır.
delete Model Student.delete(1) veya Student.delete([1,5]) find ve create gibi işlemi anında uygularlar. SQL muadili: DELETE FROM "students" WHERE "students"."id" = 1
delete_all Model Student.delete_all("ogrenci_no = 09310009") delete'den farklı olarak şartlı silme işlemlerini yapar. delete_all argümansız çalıştırılırsa tablonun tüm satırlarını siler!
destroy_all Model Student.destroy_all('ogrenci_no = 09310009') delete'den farklı olarak şartlı ve ilişkili silme işlemlerini yapar. destroy_all argümansız çalıştırılırsa tablonun tüm satırlarını ve ilişkili olduğu tüm tabloları siler!
Continue reading
Date: | Tags: ruby on rails dersleri, rails crud işlemleri | Categories: tech, ruby

Cronjob ve Moodle Cron İşleri


Cron çok basit ifade etmek gerekirse, zamanlandırılmış görevlerdir. Cron görevleri 2 kısımdan oluşur. Birinci kısım cron'un ne zaman çalışacağını, ikinci kısım ise çalıştığı zaman ne yapacağını belirtir. İlk kısım, yani cron'un ne zaman çalışacağının belirtildiği kısım 5 alandan oluşur ve alanlar bir tane boşluk karakteri (space) ile ayrılır.

# * * * * * çalıştırılacak komut
# ┬ ┬ ┬ ┬ ┬
# │ │ │ │ │
# │ │ │ │ │
# │ │ │ │ └───── Haftanın günü (0-6 arası değer veya *) (0 = Pazar'ı ifade eder.)
# │ │ │ └────────── Ay (1-12 arası değer veya *)
# │ │ └─────────────── Gün (1-31 arası değerveya *)
# │ └──────────────────── Saat (0-23 arası değerveya *)
# └───────────────────────── Dakika (0-59 arası değer veya *)

* karakteri ise "her" anlamı taşır. Örneğin "her hafta", "her gün", "her saat" vb.

Continue reading