19 Nisan 2012 Perşembe

Active Directory

 Active Directory ile çalışırken aldığım notları yazıyorum.

DN (Distinguished Name)
Active Directory altındaki her nesnenin bir Distinguished Name (DN) ismi olmalı.

DN isimleri hiyerarşik bir yapı izlerler. Hiyerarşi için Microsoft dc=X,dc=y gibi başlayan bir yapı benimsemiştir.

Aşağıda bir örnek var.


17 Nisan 2012 Salı

udev

Not : /dev altında yaratılan diğer dosyalar için TTY ve Devpts ile Posix Standart Streamleri başlıklı yazıları okuyabilirsiniz.

udev Cihaz Yöneticisi
Linux altında çalışan cihaz yöneticisinin ismi udev.  Çekirdek tarafından bulunan yeni cihazlar aşağıdaki şekilde de görüldüğü gibi udev yöneticisine bildiriliyor.


udev yöneticisi ise /etc/udev/rules.d/ altında bulunan kurallara bakarak yeni cihazla ilgili bazı dosyaları çalıştırabiliyor.
Örneğin detect usb(s) attachment/deattachment and send email çok bilgilendirici.


12 Nisan 2012 Perşembe

Spring ApplicationContext

Spring ApplicationContext ile Otomatik Yüklenen Beanler

Aşağıdaki şekli buradan aldım ve ApplicationContext ayağa kalkarken otomatik olarak yüklenilen bazı beanleri gösteriyor.

MessageSource
MessageSource bean'i Spring konfigürasyon dosyaları arasında varsa ApplicationContext ayağa kalkarken otomatik olarak yüklenilir. Bir örneği burada bulmak mümkün. Tek yapılması gereken ismi messageSource olan bir bean tanımlamak.

Bu bean'i kendi kodumuz içine enjekte etmek istersek tek yapmamız gereken kendi sınıfımızı MessageSourceAware arayüzünden türetmek. Örneği burada bulabilirsiniz.


7 Nisan 2012 Cumartesi

Per Process File Table , inode ve fork ilişkisi

Unix dosya sistemi karmaşık bir yapıya sahip.

Per Process File Table

Her uygulamanın açık tuttuğu file descriptorları sakladığı bir tablo var. Buna "Per Process File Table" deniliyor.

Tablodaki her satır ise işletim sistemin çekirdeğinde bulunan "System Open File Table" tablosundaki bir satırı işaret ediyor. Aşağıda şekili buradan aldım ve uygulama ile çekirdek arasındaki bağlantıyı gösteriyor.

Per Process File Table ve fork()

Unix üzerinde çalışan bir process fork() sistem çağrısını kullanınca yeni yaratılan process, onu yaratan process ile birebir aynı file descriptorlara sahip oluyor. Aşağıda bunun bir örneğini görebilirsiniz.
 İki farklı process aynı dosyaları nasıl paylaşıyor ?

Bunun cevabı işletim sistemi tarafından yönetilen "Open File Table" veri yapısında saklı. Bir dosyayı open() komutuyla açınca bize verilen sayı aslında "Open File Table veri yapısına erişmek için verilen bir indeks. Aşağıdaki şekli buradan aldım ve durumu çok güzel özetliyor.


fork() ile process file descriptor yeni yaratılan uygulamaya aktarılıyor. Eğer yeni uygulama bu dosya'dan okuma yaparsa, onu yaratan uygulama da kendi file descriptor'ının değiştiğini görecektir. Sebebi ise yukarıdaki veri yapısıdır.

4 Nisan 2012 Çarşamba

Hibernate ve JSR 303

Bu konu ile ilgili bir yazı hazırlamak istiyorum ancak şimdilik sadece aşağıdaki buradan aldığım şekli ekliyorum.

Şekilden de görüldüğü gibi JSR 303 standardını gerçekleştiren hibernate-validator kütüphanesi var.
Buradan aldığım şekilden de görüldüğü gibi JSR 303 ile domain modeline validasyon kodu eklenebiliyor.