Perşembe, Aralık 29, 2005

Hiperaktif Çocuklar

Cesur Yeni Dünya demişken Amerika'da okullarda düzene uymayı reddeden çocukların pek çoğuna ritalin verildiği konusunda ciddi iddalar var. ( 1.bağlantı 2. bağlantı ). Huxley in ileri görüşlülüğüne saygı duyuyor ve bu girdiyide burda noktalıyorum. Yorum sizlerin efendim...

Cesur Yeni Dünya

Huxleyin bu etkileyici romanını yeni bitirmişken Emre Sevinç in yazdıklarını gördüm İlginç bir süpriz oldu benim için katkıda bulunmak istedim.

Not: Üstadın aslında tam olarak karar veremediği söylenir Cesur Yeni Dünya ve Vahşilerin Dünyası arasında. Fazlamesaide gazetelerin rss feedleri ile başlayıp şu an abes ötesi biryerlerde olan konu başlığını gördükçe bazen daha diktatör yapıda editörlerimiz olsa keşke diye aklımdan geçmiyor değil...

Tabii ki yeni totaliter sistemin eskisine benzemesini gerektirecek hiçbir neden yok. Polis copu ve idam mangaları, yapay açlık, toplu hapsetmeler ve toplu sınırdışı etmeler yoluyla devlet, yalnızca insanlıkdışı değil (bugünlerde buna kimse pek aldırmıyor); açık şekilde yetersizdir ve ileri teknoloji çağında yetersizlik, Kutsal Ruh'a karşı işlenmiş bir günahtır. Gerçekten etkili totaliter devlet, siyasi patronların ve onların yönetici ordularının tüm güçleri kendisinde toplayan hükümetinin, kölelerden oluşan nüfusu köleler köleliklerini sevdikleri için zor kullanmaksızın kontrol ettikleri devlettir. Günümüzün totaliter devletlerinde köleliği sevdirmek, propaganda bakanlıkları, gazete yayıncıları ve okul öğretmenlerine verilmiş bir görevdir. Ancak yöntemleri halen kaba ve bilim dışıdır. Cizvitlerin, "bana çocuğun aldığı eğitimi söyle sana yetişkin halinin dinî inançlarım söyleyeyim" diye böbürlenmeleri, hüsnü kuruntunun ürünüdür. Ve muhtemelen modern pedagog, öğrencilerinin reflekslerini şartlandırma konusunda, Voltaire'i yetiştiren değerli rahipler denli başarılı değildir. Propagandanın en büyük zaferleri, bir şeyi yapmakla değil onu yapmaktan kaçınmakla kazanılmıştır. Gerçek yücedir, ancak pratik bir bakış açısından bakılacak olursa daha yücesi, gerçek konusunda sessiz kalmaktır. Totaliter propagandacılar; bir takım konulardan söz etmemek yoluyla, kitlelerle yerel politika patronlarının nahoş bulduğu gerçek ya da savların arasına, Mr. Churchill'in 'demir perde' diye adlandırdığı şeyi çekerek, kamuoyuna en uzdilli karalamalarla ya da en karşı konulmaz mantıksal karşıtezlerle yapabileceklerinden çok daha etkili biçimde kanaat telkin etmişlerdir. Ama sessizlik yeterli değildir. Eğer zulüm, tasfiye ve çatışmanın diğer belirtilerinden kaçınılacaksa, propagandanın olumlu yönleri, olumsuz yönleri denli etkinleştirilmelidir. Geleceğin en önemli Manhattan Projeleri, politikacıların ve katılan bilim adamlarının 'mutluluk sorunu' adını vereceği konuda -diğer bir deyişle, insanlara köleliklerini sevdirme sorunu konusunda, devlet sponsorluğunda yürütülecek büyük çaplı araştırmalar olacaktır. Ekonomik güvence olmazsa kölelik sevgisi hayata geçirilemez; kısacası, güçleri kendinde toplayan hükümet ve idarecilerinin kalıcı güvence sorununu çözeceklerini varsayıyorum. Fakat güvenceler, kolaylıkla varmış gibi kabul edilirler. Güvencelerin sağlanması salt yüzeysel, dışsal bir devrimdir. Kölelik sevgisi, insan zihin ve bedenlerinde derin ve kişisel bir devrimin sonucu olarak oluşturulmadıkça başarılamaz. Bu devrimi gerçekleştirmek için, diğerlerinin yanında, aşağıda sayacağım keşif ve buluşlara ihtiyacımız var. Birincisi, çocuk şartlandırma ve daha sonra skopolamin gibi ilaçlar yardımıyla sağlanacak ileri bir telkin tekniği. İkincisi, devlet idarecilerine, eldeki herhangi bir bireyi sosyal ve ekonomik hiyerarşide ait olduğu yere atayabilme olanağını sağlayacak, insan farklılıkları üzerine tam gelişmiş bir bilim dalı. (Yanlış görevlerde bulunan insanlar, sosyal sistem hakkında tehlikeli düşünceler besleme ve mutsuzluklarını başkalarına bulaştırma eğilimi gösterirler.) Üçüncüsü (her ne kadar ütopyaysa da gerçeklik, insanların kendisinden, sık sık tatile çıkarak uzaklaşma gereği duyduğu bir şey olduğundan), alkol ve diğer uyuşturucuların yerini alacak, daha az zararlı, ama aynı zamanda cin ya da eroinden daha fazla keyif verecek bir madde. Dördüncüsü de (ama bu uzun vadeli bir proje olurdu ve başarılı bir sonuca ulaştırmak için nesiller boyunca totaliter kontrol gerekirdi), insan ürününü standartlaştırmak ve yönetenlerin görevini kolaylaştırmak üzere tasarlanmış anılmaz bir öjenik sistemi.* Cesur Yeni Dünya'da bu insan standartlaştırma, belki imkânsız değil, ama fantastik uçlara taşınmıştır. Teknik ve ideolojik olarak şişelenmiş bebekler ve Bokanovski yarımoron gruplarından hâlâ çok uzağız. Ama F.S. 600 yılına gelindiğinde nelerin olmayabileceğini kim bilebilir ki? Bu arada, o daha mutlu ve daha istikrarlı dünyanın belirleyici özellikleri -soma, uykuda öğrenme ve bilimsel kast sisteminin eşdeğerleri- herhalde üç dört nesilden daha uzakta değildir. Cesur Yeni Diinya'daki cinsel ilişkide herkesle birlikte olabilme de pek öyle uzak görünmemekte. Şimdiden bazı Amerikan şehirlerindeki boşanma sayıları evlenme sayılarına eşitlenmiştir. Çok değil, birkaç yıl içinde, evlilik cüzdanları; oniki ay geçerli, köpek değiştirmeyi ya da aynı anda birden fazla köpek bulundurmayı yasal olarak engellemeyen köpek ruhsatları gibi satılacaktır. Siyasi ve ekonomik özgürlükler azaldıkça, cinsel özgürlük, dengelercesine artma eğilimi gösterir. Diktatör de (boş ya da fethedilmemiş bölgeleri sömürgeleştirmek için ateşe süreceği askerlere ve ailelere ihtiyacı yoksa) bu özgürlüğü teşvik etmekle iyi yapar. Uyuşturucu, filmler ve radyonun etkisiyle gündüz düşleri kurma özgürlüğüne ek olarak cinsellik, tebasını, yazgıları olan köleliğe razı etmede yardımcı olur.

Perşembe, Aralık 22, 2005

Abi burda yeşil bişey var parıldıyo

Your results:
You are Superman
Superman
70%
Supergirl
63%
Spider-Man
60%
Green Lantern
60%
Iron Man
60%
Catwoman
60%
Robin
52%
The Flash
50%
Hulk
50%
Batman
50%
Wonder Woman
28%
You are mild-mannered, good,
strong and you love to help others.
Click here to take the "Which Superhero are you?" quiz...

Çarşamba, Aralık 21, 2005

İroni

Kelimenin anlamını bilmeyenler için bugünkü küçük bir olayı anlatmak istiyorum.

Bugün Cumhuriyet gazetesi yazarları üniversitemizdeydi. Gerçekten çok ufuk açıcı bir tartışma ortamı oldu. Ancak kendileri konuşurken ( tajmin edersiniz ki bol bol iktidara yüklendiler ) arkalarında RTE'nin İstanbul Belediye Başkanlığı döneminde çok büyük gelişme gösteren bir şirket olduğu iddaları ile gündeme gelen Albayrak Holding ve yine oldukça tartışmalı bir şekilde aldıkları Trabzon Limanı ihalesi için kurdukları Alport şirketinin flamaları asılıydı.Sanırım organizasyonun sponsoruydular.

Uğur Mumcu'nun dediği gibi paranın sağı solu olmuyor...

Salı, Aralık 20, 2005

Hoşgeldin Pardus

Sabah gezegeni açtığımda S.Çağlar Onur ve Necdet Yücel'den mutlu haberi aldım. Emek anlamında yeterince katkıda bulunamamış olsamda en azından bundan sonrası için birşeyler yapmak umuduyla birazdan indirmeye başlayacağım Pardus RC1'i. Uykusuz geceleriyle bu eserin var olmasına katkıda bulunan herkese tebrikler.

Not: Pamuk konusunda söylenecek ve bazılarına gösterilecek çok şey olsada günlüğümün yayınlandığı halka açık ortamları daha fazla meşgul etmemek için sessiz kalma hakkımı kullanacağım. Söyleyecek sözü olanlara günlüğümün yorum bölümü her zaman açıktır. Saygılarımla...

Dayanamayarak yapılmış bir edit: Rahmetli Ahmet Taner Kışlalı'nın Kaleminden Orhan Pamuk

Pazar, Aralık 18, 2005

Camcı Dükkanına Giren Filler ve Eşitlik Üzerine...

Filler konusuna gelmeden Umberto Eco'dan başlamak istiyorum. Aslında söylediklerim bu kadar farklı şekilde anlaşılmasaydı yine Umberto Eco başlıklı bir girdi yazmak isterdim ama böylesi denk geldi. Sanırım Eco ile oturup bir kahve sohbeti yapmak istemeyecek bir entellektüeli kolay kolay bulamazsınız. Diğer taraftan ( Eco ile kahve içiyor olasa da ) bir insanın birden fazla yüzü olabileceğini de unutmamak gerekir. Malum, şartlar daha farklı olsaydı belki bu gün Adolf ismi bize yalnızca 21 yüzyılın ortalarında yaşayan Avrupalı bir ressamı çağrıştıracaktı...

Pamuk konusuna gelince; Anlatabileceğim en basit biçimde anlatmaya çalışayım, olmadı anlayanlar anlamayanlara anlatsın. Birisi bana senin baban katildi, 10 Ermeni 3 Kürt öldürdü bunu kabul et derse herkesin önünde, onun bu iftirasına karşılık hakaret davası açarım. Bundan daha doğal bir hak yoktur. Bu kişi bana değil 70 milyon kişiye sizin dedeleriniz zamanında 1 milyon Ermeni , sizde 30 bin Kürt öldürdünüz derse ve bundan dolayı insanlar rencide olduysa hukuk yollarına başvurma hakları yok mudur ? Diğer taraftan konuyla ilgili her türlü şiddet içeren harekete karşı olunması gerektiğinin de özellikle altını çizmek isterim.

Ha eğer mesele bunu söyleyen adamın dünyaca ünlü yazar olmasıysa (ki öyle olmasa ortalık bu kadar ayağa kalkar mıydı ? ) işte bu en büyük ayrımcılıktır. Pespaye yazarların (ki şahıs hakkındaki sıfata tek itirazım çok hafif kalmasıdır yaptıkları karşılığında) hakkında dava açılabilir ama iyi kitap yazanların hakkında açılamaz. Bu mantık yeni değil. Birilerini kendimizden veya başkalarından üstün görüp onlara ayrıcalık tanıma isteği. Charles de Gaulle o meşhur diyalogda eğer Satre'ın 100 metre ötesinde gazete satan öğrencinin tutuklanmasına ses çıkarmayıp Satre'ın tutuklanmamasını emretmişse en büyük ikiyüzlülüğü yapmış demektir. Bilen bilir 50 li yıllarda bizde de bu zihniyet deki bazı aklı evveller, eğitimlilerin 2 eğitimsizlerin 1 oy hakkı olması gerektiğini savunmuşlar. Anlaşılan bu durum hep vardı ve ne yazik ki hep var olacak bazı zihinlerde. Büyük usta George Orwell'ın yazdığı gibi "Bütün hayvalar eşittir ama domuzlar daha eşittir" bazılarına göre.

Not: Ne bu girdimde ne de bundan öncekilerde hiç kimseyi vatan hâyinliği veya korkaklıkla suçlamadım. Bu düşüncelerimi açıklarken kullandığım bir üslup da değildir. Hiç kimsenin durup dururken bu kavramlarla suçlanmış gibi davranıp kendini mağdur hissetmesine gerek yoktur. Bu arada Emre beyin yazdıkları sayesinde "Yahu yaşda kemale ermeye başladı galiba " diye düşünürken kendimi yine genç hissettim. Kendisine teşekkür ederim. ;-)

Not2: Aslında bu girdiyi sayın başabakanımızın siyaset literatürüne kattığı veciz cümlelerin geçmişine ayıracaktım ama o da başka bir sefere.

Cumartesi, Aralık 17, 2005

Hemşerim medeniyet ne yanda kaldı ?

Murat Sağlam günlüğünde İskeletor'un düşünce özgürlüğünden dem vurmuş. Haklıdır kendisi. Yalnız merak ettim bu iskeletor kardeşimiz Avrupa'nın içinden mi köyünden mi ?

Diyeceksiniz ki ne ilgisi var ? Var, eğer herhangi bir Avrupa ülkesinin vatandaşı değilse veya onların fikirlerini savunmuyorsa mazallah hemen açarlar hakkında bir soruşturma.

Saçmalıyor muyum ? E ben olanı söylüyorum. Daha iki gün önce Türk Tarih Kurumu Başkanı olan Prof.Dr Halaçoğlu, hem de " ona buna yaranayım belki bana da verirler bir ödül " maksadıyla değil. medeni kanunumuzu aldığımız medeniyetler beşiği Avrupa'nın en bi medeni ülkesi İsviçre’nin Winterthur şehrinde yapılan bilimsel bir toplantı'da Ermeni soykırımı iddaları doğru değildir tezini savunduğu için hakkında soruşturma açılmadı mı ?.

Aslında bu medeniyet çok güzel bir şey canım. Ama biz yalnış mı anladık nedir ? Bu ülkede %100 ermeni soykırımı tezinin savunulduğu bilimsel toplantılar ( o da nasıl bir bilimsellikse tesadüfe bakınız ki; bir tane karşıt görüşlü bilim insanı yok toplantıda ) ülkede yaşayan milyonlarca insanı rencide ettiği halde yapılmadı mı ? Ki biz o insanlara millet diyoruz (Hani şu kayıtsız şartsız egemenliğe sahip olan insan topluluğu...) .

Ama biz kendi çıkarları uğruna bilimsellikten çok uzak bir yaklaşımla ülkesini alçaltma maksdıyla yapıldığından şüphe duyduğumuz bir açıklamayı soruşturmaya kalkınca dünya ayağa kaldırılıyor.

Medeniyet güzel şey canım. Ama bizim için uygulaması zor. Alışmamışız ki biz iki yüzlülüğe, gördüğümüz doğruyu yalnışı hemen söylüyoruz. Daha çok yolumuz var medeni olmak için...

İlk edit: Bu girdiyi yazdıktan 3-5 dakika sonra " şiddete açık teşvik ve bariz hakaret içermediği sürece düşünce özgürlüğü sınırsız mı olmalı ? " diye düşünerek net de gezinirken Gülay Göktürk'ün aşağıdaki ifadeleri kullandığı yazısına denk geldim ve aklımda kocamn bir Hayır yanıtı belirdi...

Yani, insanların çocuklara zarar vermedikleri sürece "sübyancı olma hakkı"nı savunuyorum... Ama çocukların porno filmlerde oynatılması kabul edilebilir bir şey değil. Ne demek istediğimi daha iyi anlatabilmek için şöyle farazi bir örnek vereyim: Diyelim ki, çocuk pornografisi çekenler, o filmlerde gerçek çocukların yerine bilgisayarda yaratılmış sanal çocuklar kullansalardı, yani filmin kahramanı animasyonla yaratılmış olsaydı, benim hiçbir itirazım kalmazdı.

Cuma, Aralık 16, 2005

Queen of the Damned

Gün bitiyor, yeni gün başlıyor. Ben hala Rails formlarında geziniyorum. Lanetliler Kraliçesi'ni az önce bitirdim. İzlenmeye değer bir film eğer fantastik-kurgu dan hoşlanıyorsanız. Gece'nin bir vakti rastladığım güzel bi Rails linki. Yazdığınız uygulamaya çoklu dil desteği vermeniz için 10 kolay adım.

Neden Ruby ?

Atilla ÖZGÜR'ün X. İnternet konferansında sunduğu " WATIR Web Application Testing in Ruby " başlıklı bildirisinden;
WATIR hakkında en çok sorulan sorulardan biri neden ruby dilinin kullanıldığıdır. Yani neden perl/python/java/c# kullanılmadığıdır. Her dilin kendisine göre güçlü ve zayıf yanları bulunmaktadır.


• WATIR kullanıcısı olarak, programlama bilmeyen veya yeni başlayan kişiler düşünülmüştür. Girişteki zorlukların mümkün olduğunca azaltılması, compiler’a ihtiyaç duyulmaması gerektiğine karar verilmiştir. Betik dillerinin tümü bu ihtiyaca cevap vermektedir. Java ve C# bu aşamada elenmektedir.

• Ruby/python/perl çok popüler üç dinamik programlama dilidir. Bunların arasında Ruby en az popüler olanıdır. Ama kullanım kolaylığı açısından tam bir nesneye yönelimli bir programlama dilidir. Java ve C#’ta olan reflection özelliğine sahiptir. Multiple inheritance özelliği olmamasına rağmen mix-in özelliği bu eksiği çok rahat bir şekilde kapatmaktadır.

• IRB (İnteraktif Ruby Shell) girilen Ruby komutlarının sonuçlarının aynı anda izlenmesine izin veren bir programdır. Sayfaları test eden betiklerin yazılmasını son derece hızlandırmaktadır.

• Ruby’nin bir diğer güzel özelliği run-time kütüphanelerinin dinamik olarak değiştirilmesine izin vermesidir. WATIR kütüphanesinden örnek vermek gerekirse
class String

def matches (x)

return self == x

end

end


Burada run-time string class’ı değiştirilerek “matches” isminde bir mettot eklenmektedir. Bunun güzel yanı, WATIR’i kullanan eklentilerin WATIR kodunda bir değişiklik yapmadan WATIR’in çalışma biçimini değiştirebilmesidir. WET eklentisi Ruby’nin bu özelliğini kullanarak bir çok yeni özelliği WATIR’e eklemiştir.

• Ruby Iteratorları. En basit şekli ile Ruby iteratorları okunması ve yazması kolay programlar sağlamaktadır. Örnek olarak

10.times{ puts “a”} ekrana 10 adet a harfi basmaktadır.


5.upto(10){|i|

puts i

}

5’ten 10 kadar olan sayıları ekrana basar.

WATIR Ruby iteratorlarını DOM nesneleri olarak kullanıcılarına sunmaktadır.

$ie.text_fields.each { |t|

}

Bu kod ekrandaki bütün textfieldları gezmektedir.

Yaram Yarimdir

Yara beni,yara beni,
aşkın oku,yara beni,
bıraksınlar,yara beni,
atsın yardan,yara beni,
yaram yarimdir,
yarim yaramdır,
azığım zehir,
bineğim gamdır,
yaram yarimdir yarim yaramdır,
yaraydın gönül yaraydın,
her yer karanlık,yar aydın,
hem ilaçtın hem yaraydın,
sırrımı deşip,
yaraydın gönül yaraydın,
azığım zehir,
bineğim gamdır,
yaram yarimdir,
yarim yaramdır,

Perşembe, Aralık 15, 2005

Şemdinli'yi Bilen Var mı ?

Aslında burada genelde teknik konuları yazarım ama bazen insanın damarında kan hareket ediyor, ve o hareketin her saniyesinde insan sanki geçmişin ruhlarıyla yüzleşiyor. İsteyen istediği kadar görmezden gelebilir. İsteyen şoven ve militarist bulabilir. Ama Galileo nun dediği gibi siz öyle istiyorsunuz diye dünya durmuyor. Belki ben bu satırları yazarken dahi birileri kimbilir hangi Çağdaş ve Modern ülkeden gelen parayla alınan kurşunu, hiç görmediği insanları korumak için yemin etmiş bir gencin hayatına sıkıyor. Ama boş verin siz bunları fazla düşünmeyinki rahatınız kaçmasın. Ama ben yine de yazıyorum. İstemeyen okumasın...

Bu yazıyı kaleme alan Oktay Yıldırım, Astsubay rütbesiyle Orduya katılmış, Güneydoğu'da yıllarca çarpışmış bir askerdir. Kendisi de güneydoğu gazilerinden olan ve üsteğmen rütbesinde iken ordudan ayrılan Hakan Evrensel'in "Yer Eksi İki" adlı romanında anlattığı gerçek
kahramanlardan biridir.Görevi gereği yerinden ayrılmadan saatlerce buzlu suda kaldığından ayaklarından sakatlanmış ve zorunlu olarak malulen emekli edilmiştir. Kendisiyle ilgili bu bilgiyi de Hakan Evrensel vermiştir Halen yürüme güçlüğü çekmektedir.Yazıları Yeni Hayat dergisinde yayımlanmaktadır. Aşağıdaki yazısı Yeni Hayat Dergisinde yer alan bir yazıdır.

ŞEMDİNLİ'Yİ BİLEN VAR MI? / Oktay YILDIRIM

Şemdinli'yi bileniniz var mı? Hiç gitmişliğiniz, Otuz iki virajları aşıp, Kaymakam çeşmenin soğuk suyunu hiç içmişliğiniz var mı? Her sabah uyandığınızda size merhaba diyen Efkâr tepeyi, Gomane tepeyi gezdiniz mi karış, karış?

Mayına basan aracın içinden, tam on dört metre uzağa fırlayan bir arkadaşınız oldu mu sizin? "Yenge vallahi az önce yanımda oturuyordu, şimdi dışarı çıktı" diye yalan söylediniz mi karısına? Dükkânına girip alışveriş yaptınız mı bir esnafın?

Gomane tepenin zirvesinden, içinde eşinizin, çocuğunuzun bulunduğu lojmana doğru yanarak gidip evinizin duvarında patlayan RPG-7'leri izlediniz mi siz?

Ama yine de bulunduğunuz görev yerini terk etmeden, acaba öldüler mi,yaralandılar mı, diye sabaha kadar hiçbir haber alamadan beklediniz mi?

"Ben bu insanlar rahat uyusun diye buradayım, ama neden benim aileme saldırıyorlar" diye düşündünüz mü hiç. Evinizin roketlendiği mahalleden ve hatta roketin atıldığı, makineli tüfeğin yanı başında çalıştığı evin sakinlerinden, "vallahi biz bir şey görmedik" dediklerini duydunuz mu kulaklarınızla?

Her şeye rağmen deyip görevinize devam ettiniz mi? O patlamalardan dolayı yıllardır psikolojik tedavi gören bir çocuğunuz veya çocuğu bu yüzden tedavi gören bir tanıdığınız oldu mu? Hiç böyle bir baba'nın veya Anne'nin yüz ifadesini gördünüz mü?

Tabancanızı evinizde bırakıp " bir şey olursa, eve girmeye çalışırlarsa gerekeni yap, son iki mermiyi de kendinize ayır, ellerine sağ geçme" diyerek her defasında eşinizle helalleşip çıktınız mı evden, ya da böyle bir tanıdığınız oldu mu?

Sürekli telsiz anonslarını dinlediği için, ilk kurduğu cümle " atışlar normal" olan bir çocuğunuz oldu mu sizin?

Lojman'ın emniyetini sağlayan silahlı nöbetçilerin yanında mı oynadı çocuklarınız ve uzaktan dahi gelse, her silah sesinde o çocukların evlere, mevzilere nasıl koşturduğunu, koşarken düşenlerin nasıl yerlerde sürüklendiğini, nasıl hıçkırarak ağladıklarını gördünüz mü hiç?

Bu gün yaşanan olayların, ilk olduğunu mu sanıyorsunuz?

Bunları yapmadı ve yaşamadıysanız eğer, orası hakkında bildiklerinizin hiç bir kıymeti harbiyesi yoktur efendiler. Affedersiniz bu kadar net konuşmak istemezdim ama ne yazık ki sabrım tükendi artık.

Siz oturduğunuz ceylan derisi koltuklarda belki farkında değilsiniz, belki de umurunuzda değil ama orada görev yapan insanların öncelik sıralarında, ailelerinden önce vatanları geliyor, yeminleri geliyor. İşte bu yüzden mevzilerini terk edip ailelerinin yanına koşmuyorlar. Biz de onun için koşmadık zamanında görevimizi bırakarak. Yüreğimiz titreyerek bekledik ama görevimizin başında, dağda, hudutta bekledik efendiler, görevimiz bitene kadar bekledik.

Bu insanlar tüm bunlara vatanları için, üstüne el koyup yemin ettikleribayrakları için katlanıyorlar, sizin başınızın üzerindeki, ama nasıl sağlandığını bile bilmediğiniz "egemenlik örtüsü"'nün bekası için katlanıyorlar.

Peki, onlar bu şartlar altında görev yaparken siz veya sizden öncekiler bu fedakârlıklara liyakat gösterebilmek için, geçmişte ne yaptınız, Şimdi ne yapıyorsunuz?

Anıtlaştırılan terörist mezarlarının hesabını mı soruyorsunuz?

O cenaze araçlarının görevlendirme emrinde kimlerin imzasının olduğunu mu araştırdınız?

Başbakana güç gösterisi yaparak "uçaklardan ve validen hoşlanmadık, ayrıca dağdakilerden vazgeçmeyiz" diyenlere mi hesap sordunuz yoksa?

Ya bütün kutsal değerlerimize söverek ayaklanan kalabalıklar, onlara
devlet'in varlığını mı hissettirdiniz?

Baldırı çıplak peşmergelerden tutun da, Danimarkalısından, Hollandalısından,Rum'undan duyduğunuz her türlü hakaret ve aşağılamaya cevap mı verdiniz?

Roj TV muhabirlerinin nasıl olup ta olaylardan 3 dakika sonra canlı yayın yaptığını mı buldunuz?

Bir el bombasının nasıl olup ta o kadar hasar meydana getirdiğini mi,Almanya ile yapılan telefon konuşmasını mı, o kalabalığın nasıl bir anda örgütlendiğini mi, araştırdınız?

Arabası parçalanarak yakıldıktan sonra, şerefsizce ve insafsızca dövülerek komaya sokulan uzman çavuşu mu, evi kurşunlanan polisi mi, okulunda tartaklanıp kovalanan asker çocuklarını mı, araştırdınız?

Bütün bu eylemleri kimin planladığını ya da organizasyonu kimin veya kimlerin yaptığını mı, o gün halkı sürüsünü idare edenbir çoban maharetiyle kimlerin idare ettiğini mi araştırdınız?

Hayır, bunların hiçbirisini yapmadınız. Siz ne yaptınız peki?

Sizin farkında bile olmadığınız değerler için orada görev yapan bir astsubay ve bir uzman çavuş bulup, sonra bütün aydıncıklar, sağduyucular, mozaikçiler, üst kimliği, yan kimliği, alt kimliği olanlar ve hatta kimliksizler, sonra dalkavuklar, sendikacılar, susurluk Paranoidleri, Soroscular, hülasa ne idüğü belirsiz, ne kadar adam varsa etrafınızda, bila istisna topunuz bir koro nizamında toplanıp, koroyu kimin yönettiğine bile bakmadan-ki ben bundan emin değilim- " Vurun Kahpeye" konseri verdiniz.

Yanlış şarkıyı çalıyordunuz ama çaldınız, sesler, akortlar, notalar hep bozuktu ama yinede çaldınız, orkestra şefi, "müzik" demişti nasılsa.

Şimdi yapılan araştırmalar neticesinde şu anda bile kuvvetle muhtemel olan

sonuç çıkarsa ki bu sonuç, olayların altından terör örgütü ve onunla beraber bazı gizli servislerin çıkmasından doğacak sonuçtur, o vakit ne yapacaksınız?

Allanıp pullanıp önüne çıkarak tek, tek arzı endam ettiğiniz o basına(!) bu defa ne söyleyeceksiniz? Acaba yapacağınız hangi açıklama ile durumu kurtarmaya çalışacaksınız?

Bir açıklamanız var mı efendiler? Daha doğrusu bir "B" planınız var mı?

Ama bana sorarsanız, sizin minik kafalarınızı böyle şeylerle yormanıza gerek de yok zaten. Zira sizin adınıza orkestra şefi düşünür, besteler, önünüze koyar ve size de yine icra-i sanat etmek kalır ki bu, yani başkalarının bestelerini okumak zaten sizin en iyi yaptığınız şey değil midir? Ne demişler "gözlerimi kaparım, vazifemi yaparım".

Yapın efendiler; vazifenizi yapın, hem de gözünüz kapalı yapın. Açarsanız gözünüzü belki Türk Bayrağına sarılı tabutları görürsünüz, ağlayan ailelerini, yetim çocuklarını görürsünüz de vicdanınız depreşir, vazifeniz yarım kalır. Sonra ne der Avrupalı, değil mi?

Hatta bakın ne diyeceğim, asın gitsin o astsubayla uzman çavuş'u,
Şemdinli'yi, Yüksekova'yı, Hakkâri'yi de belediye başkanlarına teslim edin, seçilmiştir nihayet atanmış değil. Öyle Vali'ye filan da gerek yok canım, boşa zahmet. Tayin et, beğenmediler değiştir, ne lüzum var efendim. Siz de bu arada sanatsal sergiler açın, fotoğraf çekin, resim yapın, medeniyetleri buluşturun, dinlere diyalog kurdurun.

Değil mi ki ateş düştüğü yeri yakar. Ateş sizin yüreğinize mi düştü sanki? Bölen bölsün, satan satsın, Avşar'ı da ayırsınlar, Yörüğü de ayırsınlar, dadaşı da, sarışını da, esmeri de.

Şehirleri, köyleri, mahalleleri hatta ev ev ayırsınlar Türk Milletini, size ne gam efendiler.

Siz fotoğraf çekmeye devam edin. Fakat unutmayın ki bir gün sizin de bir fotoğrafınızı çeken çıkar elbet. Ama o fotoğraf hangi salonlarda, nasıl teşhir edilir bilemem. Malum ya yaşlı tarih fotoğrafları çekilip, tozlu sayfalarında bir yerlere asılmış liderlerin, fotoğrafları ile doludur.

"VARLIĞIM TÜRK VARLIĞINA ARMAĞAN OLSUN"

OKTAY YILDIRIM
27 Kasım 2005

Çarşamba, Aralık 14, 2005

Ve O Geldi

Rails ın versiyonuna dikkat edelim...



Salı, Aralık 13, 2005

Yorgunum Dostlarım Yorgunum Yorgun

Checkbox la aldığım verileri select-option la bir türlü alamadım controllerıma. Rails dan bahsettiğimi söyleyemeyecek kadar yorgunum. Herkes kendine göre bir standart geliştiriyor OR Mapping için. Yaw yok mudur Object SQL diye standart bir dil geliştirecek 3-5 babayiğit delikanlı ? Kurtarsın birileri bizi bu OR bolluğundan.

Not : HP 1994 yılında birşeyler denemiş ama pek tutmamış anlaşılan.

Pazar, Aralık 11, 2005

Rails ve Türkçe

Rails da türkçe karakter problemleri yalnızca görüntü sorunlarına sebep olmayıp aynı zamanda veri tabanında kayıt problemlerine sebep olabiliyor. Çözüm application.rb dosyasına eklenecek aşağıdaki satırlarda
before_filter :set_content_type
def set_content_type
@headers["Content-Type"] = "text/html; charset=iso-8859-9"
end

Cumartesi, Aralık 10, 2005

Eski Alışkanlıklar

İnsan onca zaman sql yazdıktan sonra gerçek anlamda nesnel programlama ile web programcılığına alışması biraz zaman alıyor. Ama RoR da her şeyin çözümü bulunur. Neyse bugünkü kısa ipucumuz RoR da ORDER BY nerde diyenler için geliyor. İşte burda
def new
@anabilimdali = Anabilimdali.find (:all , :order => "ad")
@ogretimuye = Ogretimuye.find (:all , :order => "ad")
end

Başka bir arzunuz...

Cumartesi, Aralık 03, 2005

Gizli bir Galaksi

FM galaksi bir süredir fazlamesai takipçilerinin kullandığı bir blog alemi. Lakin bu gün daha küçük ve daha gizli bir başka galaksiyi keşfettim ;-). İşte burda.

Rails ve Öntanımlı Değerler

Rails da öntanımlı değerler insanın canını sıkabiliyor bazen. Özelliklede acemiyiseniz :) İşte bir örnek aralarında ilişki bulunan iki tabloyu belongs_to gibi bir ifade ile çok rahat bağlayabiliyorsunuz. Örneğin

class Ogretimuye < ActiveRecord::Base
belongs_to :anabilimdali
end

gibi. Ama burada Ogretim uye tablonuzdaki foreign key ön tanımlı olarak anabilimdali_id olarak tanımlanmış. Bundan başka bir alan adını tanımlamak istiyorsanız ilişki için aşağıdaki şekilde ezebilirsiniz öntanımlı değeri

class Ogretimuye < ActiveRecord::Base
belongs_to :anabilimdali , :foreign_key => "abilimdal"
end

What happens when you're not on Rails...

Cuma, Aralık 02, 2005

JSF ve Olay Yakalayıcılar

Bir süredir JSF olay yakalayıcılar (event listeners) la ilgili aklıma takılan bir soru vardı. Jsf gibi tamamen sunucu taraflı olduğu idda edilen bir teknolojide olay yakalama işlemi nasıl gerçekleşiyordu ? Bu durum kullanıcı tarafın da javascript kullanımı gerektirirmiydi ? Eğer gerektiriyorsa o zaman nerde kaldı tamamen sunucu taraflı uygulama geliştirme konsepti ?

Sonuç olarak bu soruya j2ee-tr listesinde Bora Güngören'in verdiği yanıtları derleyerek kısa bir bilgi notu oluşturdum. Faydalı olması dileğiyle...


Olay tetiklenmeleri istemci tarafında javascript veya ajax kullanılarak oluşturulabiliyor. Buradaki anahtar nokta ise bu bileşenlerin JavaScript işlemlerinin sunucu tarafı olay modelinde "değerdeğişikliği" gibi bir faaliyeti olmadığı.

JSF'de tum olay döngüsü sunucu tarafindaki görsel bilesen ağacinda olur. JavaScript ile olay döngüsü ile bağlantılı olabilecek tek sey bir HTTP istegi iletilecekse onun iceriğinin ayarlanmasıdir.

Ama şunu gözardı etmeyelim. Görsel sunuma dair detayları istemcide JavaScript ile değiştirebiliriz. Örnegin bir tabloda silmek istedigimiz bir satırın rengi değişebilir. Ancak bu o satırın silinmesi için bir istek oluşturmaz. Sadece formdaki bir değişkenin değeri (DOM olarak düşünürsek, ağactaki bir nodun degeri) değişmistir.

Form yollandığında bu DOM ağacındaki değer değişikligi önce doğrulanır. Doğrulamadan geçerse sunucudaki görsel bileşen ağacına uygulanır. Bu arada deger degisikligi olayı, vb olaylar işler. Daha sonra formun işlenmesi için olan eylemin (ornegin düğmeye tıklanması) sunucu tarafındaki görsel bileşen ağacındaki dengi olan olay işlenir.

Iste bu olay işleyici modelde yani JavaBean'lerde değişiklik yapar. Veri tabanı yada baska bir şekilde erişilen "esas veri"den silme yada benzeri
işlemler ise burada yapılır. Bu katmanlı yapı sayesinde sisteme bozuk veri giremez ve veriler de bozulamaz.

JSF bu nedenle .NET'den bir kaç gömlek ustun zaten. :-)

JSF'de Sadece render-kit değiştirilerek HTML + JS + AJAX ureten JSF kodu kolayca WAP, XUL, XSLT, vb. çıktı üretir hale getirilebilir. Bunun nedeniuygulamanın sunucuda çalışması. .NET için bu iş bu kadar kolay değil.

Resmin icine AJAX konduğu zaman; AJAX HTTP istek ve yanıtlarının sayfaya anında yansımasını engelleyen bir teknoloji. Bu nedenle siz hala aynı sayfada olduğunuzu sanırken birden fazla HTTP istek/yanıt çevrimi bitmiş oluyor. Bu durumda JSF tarafında gelen bu isteklerin işlenmesini gerekir.

Bu istekler tıpkı az önce anlattığım gibi işlenir. JSF, yani sunucu tarafında özel bir anlamları yoktur. Sunucu istegin AJAX ile gelmesini önemsemez. Sadece bir HTTP isteği olarak görür. Bu isteği işlerken değer değişiklikleri, vb şeyler olabilir. Gorsel bileşenlerde değişiklikler gerekebilir. Bu durumda render-kit tarafından olusturulan HTML farklı olacaktır. İstemcinin de bu durumda "ekranı" güncelleyeceğini bekleriz.

İstemci tarafındaki AJAX'in gelen HTTP yanıtlarını işleme becerisi ile bunu yapacağını biliyoruz.

Dolayisi ile olayları JS oluşturmuş gibi gözükse de aslında olaylar her zaman oldugu gibi JSF çevriminde yani sunucuda islenir. JSF'in kendi olay döngüsünün istemci tarafındaki hiç bir teknoloji ile ilgisi ve bağımlılığı olmaz. Onlarla render-kit ilgilenir.

Perşembe, Aralık 01, 2005

Ruby ve Türkçe

Daha önce Ruby on Rails ın tablolar ve sınıflar arasında tekil çoğul kelime ilişkileri kurduğunu yazmıştım. Yalnız bu iş türkçe tablo isimlerinde problem çıkardı. Örneğin var olan ogretimuye tablosundan bir model oluşturduğumda bunun için ogretimuyes adında bir tablo arıyor. Mysql in view özelliini kullanarak oluşturduğum sanal tablolar da yalnız okunabilir olduğu için çözümü "config" klasöründe yer alan enviroment.rb dosyasında buldum. Dosyanın sonuna şöyle bir tanım ekleyip

Inflector.inflections do |inflect|

inflect.uncountable %w( ogretimuye )
end

tablomuzu oluşturan ismi uncountable olarak gösterdiğimizde sorun çözülüyor.

Salı, Kasım 29, 2005

Daha ne Olsun

Ruby yakında konuştuğunuzu anlayacak muhtemelen ;-)

This seemingly empty class definition is the recipe business object that Rails maps to the recipes table in the database. You will see more concretely what I mean by this in a moment. Right now, I want to point out that this little bit of programming magic happened because we used a Rails naming convention: a singular model class name (Recipe) maps to a plural database table (recipes). Rails is smart about English pluralization rules, so Company maps to companies, Person maps to people, and so forth.

Pazartesi, Kasım 28, 2005

Biz kırk kişiyiz birbirimizi biliriz

Geçen hafta tıbbi bilişim derneği tarafından Antalyada düzenlenen tıbbi bilişim kongresindeydim. Beklediğimin üstünde bir etkinlikdi. Çok faydalı oldu. Özellikle sağlık bakanlığının yoğun katılımı kongrenin verimini ve etkinliğini büyük ölçüde arttırdı bana kalırsa.

Bu arada piyasadaki hastahane yönetimi programlarını da inceleme fırsatı buldum toplu halde. Ve hayatımda gördüğüm en büyük kaynak israflarından biriydi... Bu yazılımların hepsi aynı işi yapıyor, aynı şekilde yapıyor. Sağlık bakanlığı bunlardan birini alıp kodunu açsa hastahaneler büyük ölçüde bu yazılıma yöneleceklerdir. Firmalarda açık kaynak modeline uygun olarak destek satacaklardır. Geliştirilen diğer modüllerde programa ekelndikçe çok verimli ve standart bir yapı oluşacaktır sağlık camiasında ama... Nerde o vizyon...

Bir umuttur yaşatan insanı

Kötü cumartesi,
Kötü pazar,
Berbat pazartesi,

Ve umut ve hayal,
Nerden geldi ?
Tam umutdan umudumu kesmişken,
Şair söyledi,

Akıyorsa göz yaşım kurumasın
Coşup seven gönlümse durmasın,

Öyle ya

Hiç bir kere hayat bayram olmadı
yada
Her nefes alışımız bayramdı...

Salı, Ekim 18, 2005

Matematik ve Romantizm

Bu yakın çağ yazarlarının nasıl bu kadar romantik olduklarına şaşırmamak gerekiyor. Adamların yaşadığı çağın gereği. Son asırda düello sırasında vurulup ölen kaç matematikçi biliyorsunuz ki ?

Sözü fazla uzatmadan pek fazla tanınmayan bir matematikçiden bahstmek istiyorum.

Fransız matematikçisi Galois, 1811-1832 yılları arasında yaşadı. Abel'in çağdaşı olan bu matematikçinin doğum ve ölüm tarihlerine bakarsanız 21 yıllık bir ömür sürdüğünü görür ve bu işte bir yanlışlık olduğunu düşünebilirsiniz. Hiçbir yanlışlık yok. Galois'nın hayatı Brezilya dizilerine konu olmaya aday şanssızlıklarla sürüp gitmiş ve 21 yılda tükenmiştir.Fransız matematikçisi Galois, 1811-1832 yılları arasında yaşadı. Abel'in çağdaşı olan bu matematikçinin doğum ve ölüm tarihlerine bakarsanız 21 yıllık bir ömür sürdüğünü görür ve bu işte bir yanlışlık olduğunu düşünebilirsiniz. Hiçbir yanlışlık yok. Galois'nın hayatı Brezilya dizilerine konu olmaya aday şanssızlıklarla sürüp gitmiş ve 21 yılda tükenmiştir.

Paris yakınlarındaki küçük bir kasabanın belediye başkanının oğlu olan Galois, matematiğe okul yaşamı sırasında ilgi duymaya başlamış ve 14 yaşındayken Lagrange ve Abel'in eserlerini okumuştur.Sınıfta, büyük matematikçilerin kuramları üzerine düşünmesi, ödevlerini unutması ve dikkatsizliği nedeniyle öğretmenlerini kızdırdığı bilinmektedir. Galois'in matematiğe karşı duyduğu sevgi o kadar büyüktü ki birgün öğretmenlerinden birisi, "Anne-babasının Galois'e sadece matematik dersi aldırmalarının iyi olacağını düşünüyorum." demiştir.

Daha 16 yaşında iken pek çok matematik klasiğini okumuş olmasına rağmen üniversiteye kabul edilmedi. Kendisini kanıtlayabilmek için 17 yaşında zamanın tanınmış matematikçilerinden Cauchy'ye verdiği makalesini Cauchy kaybetti. 18 yaşındayken bir yarışmaya soktuğu bir diğer makalesi de, yarışmanın hakemi Fourier ölünce kayboldu. Zorla girebildiği öğretmen okulundan, okul yönetimini eleştirdiği için kovuldu. Bir dergiye sunduğu bir başka makalesi, hakem ispatların içinden çıkamadığı için reddedildi. Bir taraftan matematik dersleri vererek hayatını kazanmaya çalışan Galois bir tarfatan da siyasete bulaşmıştır. 1830 Devrimi'ne Cumhuriyetçi olarak katıldı. Siyasi nedenlerle de iki kez hapse girip çıktı.

Ve nihayet, ertesi sabah düello edeceği, o soğuk mayıs gecesi gelip çatar. Galois henüz 21 yaşındadır. Tüm hayatı siyasi fikirler ve matematik teorileriyle geçmiş bir genç elbette insan öldürme 'sanatı' üzerine bilgisizdir. Öldürüleceğini anlar. Oysa daha kafasındaki matematik fikirlerini olgunlaştıracak zamanı olmamıştır. Ölümün bekleme odasında volta vurduğu bir saatte bu genç adam insanoğlunun ölümsüzler listesine adını yazdırmak için son kez hamle yapar. Bu son gece arkadaşı Chavelier'e bir mektup yazar. Bu mektupta Gauss'un kullandığı bazı teknikleri genelleştirerek, derecesi dörtten büyük olan her polinom için çalışacak bir 'kök bulma yöntemi' bulmanın neden imkansız olduğunu anlatır. İçinde kökleri aradığımız sayı sistemleri "cisimler" ile kökleri kendi arasında döndüren permütasyon "grupları" arasında daha önce gözlenmemiş ilişkiler bulur. Bu ilişkiler yumağına bugün genel olarak Galois teorisi denir.

Denklemin katsayılarını içine alan sayı sistemine denklemin tüm köklerini teker teker katarak sistemi büyüttüğümüzü düşünelim. Öte yandan tüm kökleri kendi arasında dönüştüren permütasyon grubu ve onun bazı kökleri sabit bırakan alt gruplarını düşünelim. Galois bu iki dünya arasında köprü kurar ve bir taraftaki kök bulma problemini, öbür tarafta bir grubun yapısını inceleme problemine dönüştürür. Görür ki, eğer bu tarafta kök bulunabiliyorsa öbür tarafta da grubun özel bir yapısı olması gerekir. Oysa bu özel yapının, derecesi dörtten büyük denklemelere karşılık gelen gruplarda, her zaman olmadığını tespit eder.

Sonuç olarak insanlığın iki bin yıldır aradığı kökler, basit cebirsel yöntemlerle bulunamaz. İşte Galois teorisinin basit bir özeti. Belki bu 'basit' açıklama size gereğinden fazla ayrıntılı ve teknik gelmiş olabilir. Daha kısa ve daha öz Galois teorisini neden anlatamayacağımı Galois teorisi hakkında söylenen bir sözle açıklayayım; "Galois teorisi sarımsağa benzer, azı olmaz..."

Galois'nın mektubu ölümsüzlüğe doğru fırlatılmış bir çığlıkla biter: " Bütün bu karmaşık hesapları açmakta kendisine yarar görecek birilerinin çıkacağını umarım." Ertesi gün düelloda vurulur. Hastanede bir gün can çekiştikten sonra ölür. Arkadaşı bu mektubu üç ay sonra yayınlarsa da mektup ilgi görmez. makalelerinin çoğu 1846'da yayımlanıncaya kadar gün ışığına çıkmamıştır. Bu tarihte Cauchy, grup kuramı hakkında yayınlar yapmaya başlayınca, Galois'in çalışmaları da matematikçilerin ilgisini çekmiştir.

Galois'in öneminin tam olarak anlaşılması, Camille Jordan'ın 1870 yılındaki yayımlarıyla gerçekleşmiştir. Eğer Galois, Newton ya da Gauss gibi uzun yıllar yaşamış olsaydı, matematiğe yapacağı katkıların çok daha fazla olacağı kesindir.

Pazar, Ekim 16, 2005

İlk jsf Uygulamam

Bütün o iyi hazırlanmış help sayfalarına rağmen yinede biraz zor oldu. Ama sonunda oldu . Jdeveloper'la ilk jsf uygulamamı yazdım. İlk başta biraz karışık görünüyor ama alışınca işleri oldukça kolaylaştıracak kadar güçlü bir teknoloji hissi verdi bana JSF. I sense the power. I want the all power :-).

Not: Bu arada deployment da problem çıkardı jdeveloper. O işi şimdilik elle hallettim. Ama hata mesajlarından anlayabildiğim kadarıyla windows ve karakter problemlerinden kaynaklanıyor sorun. Büyük bir hocamızın dediği gibi "Then I curse the Bill Gates"

Not2: Bu arada bir hatada EJB diagramına veri tabanı tablolarını sürükle bırak yaparken oluşabiliyor. Verdiği hata java.lang.NullPointerException şeklinde. sorun bilinen ve düzeltilmiş bir hata (Metalink Bug number 4624229). Ancak son versiyonu nedense halen indiremedim. Geçici bir çözüm dil ayarlarını denetim masasından ingilizce olarak belirleyip programı yeniden başlatmak...

Cumartesi, Ekim 15, 2005

Let's Go

What Video Game Character Are You? I am a Gauntlet Adventurer. I am a Gauntlet Adventurer.

I strive to improve my living conditions by hoarding gold, food, and sometimes keys and potions. I love adventure, fighting, and particularly winning - especially when there's a prize at stake. I occasionally get lost inside buildings and can't find the exit. I need food badly.

What Video Game Character Are You?

Pazar, Ekim 02, 2005

Tatil Dönüşü Oracle

Tatil bitti çalışma zamanı. Bir yandan aldığım 10 ders diğer taraftan iş yerindeki projeler. Spora vakit ayırmak lazımdı ama o meseleyi sabah 6.20 de kalkıp koşarak hallettim gibi. Diğer taraftan tenis ve aikidoyu bırakmak istemiyorum. Bir de vucut geliştirme için zaman lazım. Yazın kütüphaneye iade ettiğim japonca kitabını geri almak istiyorum. Ve tüm bunların ötesinde kişisel projeler var ( para kazanmak lazım :) ). Ve bir arada eğlenmek ve dinlenmek lazım. Ooof oof benden bana bir tane daha lazım.

Tatilde Myeclipse kurcalamıştım biraz. Küçük bir JSF gösterisi yaptım bölüm başkanın hoşuna gitti ama onun kalbi alışık olduğu Oracle'dan yana :) Benden Jdeveloperı incelemi istedi. Bende ADF destekli 10.1.3 versiyonunu indirdim. Adamlar sağlam iş çıkarmış. Kapalı kodlu ama ücretsiz. Açık kodlu alternatiflerinden çok çok üztün durumda olduğunu itiraf etmem gerekiyor. Sahip olduğu özellikler gerekse Oracle ın dokümantasyon desteği sayesinde çok başarılı bir ürün çıkmış ortaya. Hemen her konudaki flash öğreticileri gerçekten çok güzel. Sanırım biraz PL/SQL öğrenmemi gerektirecek olsada Oracle ı tercih edeceğim.

Yeni projede kullanacağımız sunucu da geldi bu arada. Çok şık bir alet standart özelliklerine ek olarak + 1 GB ram ve 2 x 72.8 SCSI HDD içeriyor. İç tasarımı mükemmel. Kurulumu yapan gençlerin iddası iç tasarımı ferrarinin tasarımcısın yaptığı yönündeydi. Doğrumu bilmiyorum ama çok hoş bir oyuncak. Tek kusuru win2003 yüklü olarak gelmesi oldu :-). Ama çok yakında değişecek bir aksilik olmazsa.

Tabi bu iş için gerçekçi nedenlerim olması gerekiyordu bölüm başkanına anlatmak için.
Sonuçta Win2003 ile M$ nin iyi bir iş çıkardığını kabul etmek gerekir. Ancak kendi jvm sinin geliştirmesini durduran, Java'yı piyasadan silmek için .net e milyonlarca dolar yatıran M$ nin java teknolojileri konusunda ileride takınacağı tavrın belirsizliği ve M$ nin bu tip konulardaki kirli geçmişi yeterli nedenleri sağladı bana. Sonuçta bundan 3-4 yıl sonra M$ ve Java birlikteliği üzerine yapılan bilgi-birikimin boşa gitmesi ihtimalini sağlam bir şekilde ortaya koyduktan sonra bu anlamda oldukça yol aldım sanırım.

Bu arada yeni elemanın sorumluluğuna verdiğim php projesinden de tamamen kurtulamadım ne yazık ki :( Sorunlu kodları düzeltmem gerekiyor halen. Neyse şimdilik iyi gidiyor sanırım yeni gelen iki elemanıda yetiştirmemle php defterini tamamen kapatacağım muhtemelen ;-)

Cumartesi, Eylül 03, 2005

Hava Durumu Tahminleri ve Ekonomik Tahminler

Katrina kasırgasının ABD yi vurduğu şu günlerde fraktallarla ilgili araştırma yaparken gözüme çarptı. Yazıdan ilginç alıntılar;

1961 yılının kış aylarında bir gün, Lorenz bu ardışık sayı dizilerinin birini uzun uzadıya incelemek istediği bir sırada kestirme bir yol izlemeye kalkıştı. Programı tekrar başa dönüp çalıştırmak yerine ortalarda bir yerden başladı. Makineye başlangıç durumundaki şartları vermek için, daha önce yazıcıdan çıkardığı dizilere bakıp oradaki sayıları klavyeden aynen girdi. Sonra da hem makinanın gürültüsünden kaçmak, hem de bir fincan kahve içmek üzere koridorun sonundaki hole gitti. Bir saat kadar sonra döndüğünde hiç ummadığı bir şeyle karşılaştı; hem de öyle bir şey ki bununla artık yepyeni bir bilim dalı filizlenmeye başlıyordu.

Bilgisayarın yaptığı bu dökümde bir önceki dökümün tıpatıp tekrarlanması gerekirdi. Lorenz aynı sayıları makineye kendi elleri ile girmişti. Programda bir değişiklik yoktu. Oysa Lorenz yazıcıdan yeni çıkan döküme baktığında gördüğü şey şuydu: Hava durumu bir önceki dökümde yer alan şekilden o kadar hızla uzaklaşmaktaydı ki, bir kaç aylık bir süre zarfında, aradaki bütün benzerlik ortadan kalkmıştı. Lorenz bir bu sayı kümesine baktı, bir de önceki sayı kümesine. Sanki bir şapkanın içinden rastgele iki hava durumu seçip almış gibiydi. İlk aklına gelen şey, gene vakumlu tüplerden birinin bozulduğu oldu. (1961 yılından bahsediyoruz, o zamanlar bilgisayarlar şimdikinden çok farklıymış) Birden gerçeği farkına vardı. Makina bozulmuş falan değildi. Mesele makinaya işlediği sayılardan kaynaklanıyordu. Bilgisayarın hafızasına kaydedilen ondalık kesir sayıları altı haneydi: .506127. Yazıcıdan çıkan dökümde ise yerden kazanmak için, sadece üç hane görünüyordu: .506. Lorenz sayıları kısaltarak son üç rakamı yuvarlamış, binde birlik bir farkın sonucu etkilemeyeceğini düşünmüştü. Aslında bu varsayımın akla aykırı bir yönü yoktu. Bir meteoroloji uydusu okyanusun yüzeyindeki sıcaklığı binde birlik bir hassaslıkla okuduğunda, uzmanlar kendilerini şanslı addediler. Lorenz'in Royal McBee'si (*) klasik programı uyguluyordu. Tamamiyle determinizme dayalı denklemler sistemi kullanmaktaydı. Belirli bir çıkış noktasından hareket edildiğinde hava durumunun her seferinde tıpatıp aynı gelişmeyi göstermesi gerekirdi. Biraz daha farklı bir çıkış noktasından hareket edildiğinde, hava durumunun da biraz daha farklı bir gelişme göstermesi gerekecekti. Küçücük bir sayı hatasının rüzgarın hafif esintisinden farkı yoktu; tabi ki hafif esintiler hava durumunda önemli, büyük ölçekli değişimleri getirmeden önce ya zayıflayıp ortadan yok oluyorlar ya da birbirlerini dengeliyorlardı. Oysa Lorenz'in kendine özgü denklemler sisteminde küçücük hatalardan büyük felaketler doğmaktaydı. devamı...

Cuma, Eylül 02, 2005

Bill Gates ve Apple




Ne Yorum Yapayım ki şimdi ben bu resmin üstüne...

Çarşamba, Ağustos 31, 2005

Programcılık Nereye Gidiyor ?

Bazen düşünüyorum programcılık nereye gidiyor diye....


Linux-programlama listesinde bir süredir devam eden bir tartışma var. Bir arkadaşımız genetik ile ilgili bir proje için 2 bitlik bir veri tipni nasıl oluşturacağını ve bu işin kazançlı olup oladığını soruyordu. Tüm tartışmaya linux-programlama listesinden erişebilirsiniz. Ancak benim aklıma takılan serdar hocanın yazdığı bir iletiydi


Alıntı:
Selamlar...


İki bitlik değişken olur. Ama bu yanındaki diğer bitlerde doluysa bir anlam ifade eder. Bkz: struct, ":" vs.


10^7 ne eder 10 milyon mu? 2 bit olsa her değer ne olur ? 20 Milyon bit. Ne eder, kabaca 2.5 MB filan. Her biri 8 bit olsa, 10 MB eder.


Genel olarak çoğu mimaride "int" 32 bit uzunlukta. Bu da bir int içine 16 tane 2 bit saklayabileceğiniz anlamına gelir. Fakat bu bitleri buradan çıkarmak ve yerleştirmek için çok çok daha fazla zaman harcarsınız. Kabaca, bu bitleri karşılaştırmak 5 saat çevrimi sürse, bitleri çıkarmak 30 saat çevrimi, koymak 30 saat çevrimi filan eder. Toplam 65 saat çevrimi. Bu da 10 kat daha yavaş çalışacaksınız demek olur.


2 yerine 8 bit kullanmakta benzer bir yavaşlığa sebep olur. Genel kural olarak en hızlı işlenen değişkenler "int" olanlardır.


Görüldüğü üzere sorun optimizasyon sorunu. Seçim yapmanız lazım: "Optimize for size" yada "Optimize for speed" arasında. 256 MB RAM olan bir sisteme dudak büküldüğünü düşünürsek, bir kaç MB için bir sürü takla atmaya ihtiyaç olmaz sanıyorum. O kodu yazarken kullanacağınız elektrik/su parasına sisteme biraz daha RAM
alabilirsiniz nerdeyse.


Saygı ve sevgiler..



Yıl içinde java ile ilgili bir sunumda java için yaklaşık şöyle birşey deniyordu


Alıntı:
JIT


Java ilk çıktığında bytecode işletme hızı çok iyi değildi. yerine göre sistemin öz yazılımlarından 5-10 kat yavaş çalışıyordu. Bu nedenle bazı yazılım geliştirme şirketleri JIT yanı "Just-in-time compile", "anında derleme" araçları üretmeye başladılar. Yapılan şey byte kodu sanal makinenin kurulu olduğu gerçek sistemin diline anında derleme yaparak dönüştürmesiydi. Bu sayede performansta ciddi artışlar sağlandı. Ama 2000 yılından sonra HotSpot teknolojisinin gelişmesi ile JIT'in işlevi VM'içinde yer almaya başlamış, işlemci hızı ve bellek miktarının dramatik biçimde artması ile dış JIT yazılımları popülerliğini kaybetmiştir. Bugün halen bir kaç ürün pazarda bulunsa da genellikle bu yöndeki ihtiyaç yok olmuş gibi gözükmektedir.


Kaynak vikipedi



Yani sonuç olarak gelişen teknolojinin işçilerinin yerini alan robotları üretmesi gibi gelişen teknoloji ve görsel programlama araçları da biz programcıların (en azından kod optimizasyonu vs gibi konulara değer ve önem verenlerin) yerinimi alacak.


Şimdilik Büyük ölçekli projelerde kod optimizasyonu önemli olsada sıradan günlük kullanım için olan ve pc ler için yazılan programlarda önemini kaybetmekte gibi geliyor bana.


Teknolojinin bu hızda gelişimyle yakın gelecekte sunucular üzerinde yazılacak uygulamalar içinde önemini kaybedecek ve bizde hala burda lisp şöyle hızlı Ruby de şöyle kolay kod yazılıyor üstelik java dan da % bilmem kaç hızlı oluyor diye konuştuğumuzla kalacağız.


Bu gün sürekle bırak programcılığının yaygınlaşmasıyla yazdığı programın kodunun tamamını görmeyen (zaten görsede anlamayan) programcı sayısı o kadar fazla ki.


Üstelik bu adamlar bayağı ticari işlerde yapıyorlar. Mesela benim yarı-zamanlı çalıştığım kuruma gelip bizim sektör için son derece komik br fiyata komple çözüm öneren ve bayağı ciddi referanslar veren bir yazılım firması ile ilgili şefe sorduğum soru halen aklımdadır.


Ben : "Ne ile yazmışlar programı ? (Bahsettiğimiz program 300+ bilgisayar ve 100 bin doların üzerinde sunucularla çalışan bir kuruma kurulacak) "


Şef: "Visual Basic"


Ben : ..... ?!&%

Pazar, Ağustos 28, 2005

Tatil Bölüm 1

Tatile çıkabildim sonunda. Hesapta işten uzak duracaktım. Ama nerde gene jsp, jsf derken daldım işlere.

Hazır başlmışken biraz anlatayım. www.myeclipseide.com da bulabileceğiniz oldukça güzel bir ide var jsp,jsf,hibernate gibi ihtayacım olan pek çok teknolojiyi destekliyor. Ayrıca entegre bir görsel web tasarım aracı sayesinde jsp tasarımını oldukça kolaylaştırıyor. Kusursuz değil ama yıllık 29$ a sahip olabileceğiniz güzel bir ide.

Özelliklerini keşfettikçe yazacağım.

Bu arada en sonunda Kubuntu kurdum. Gerçekten güzel olmuş. Yalnız paket deposunda MidnightCommander olmamasını kınıyorum. Onun dışında güzel. Debianımın her seferinde sorun çıkardığı usb belleğimi sorunsuz tanıdı. Java ve Zemberek işini de halledersem babamı Linux a geçirmiş olacağım.

Perşembe, Ağustos 11, 2005

Hoş Geldin Galaksi

Otostopçunun galaksi rehberinin buradaki sinemaya gelişinin 3 hafta ertelendiği haberinin verdiği üzüntüyü. FM galaksi biraz olsun hafifletti. Netekim 100 ünlü türk büyğünden birinin dediği gibi "Fazlamesai zağmiağsı biır zağmia değil biır Zumğuriyettir".

Cumartesi, Temmuz 09, 2005

Hoşgeldin Thunderbird

Vakti zamanında Miguel De Iceza'ya gıcık olduğumdan evolution ı bırakıp kmail a geçmiştim ama onun da yaptığı saçmalıklardan sıkılınca Thunderbird de karar kıldım. Artık bu da olmazsa bundan sonra mutt kullanacağımı ahanda buraya yazıyorum...

Not: Acaba TDK sözlüğüne göre ahanda daki "da" eki bitişik mi yazılır ayrı mı ?

Cumartesi, Temmuz 02, 2005

Bu gün Linux için ne yaptın ?

Sizde Linux'dan sistem kurcalamaktan vs. hoşlanıyor olabilirsiniz. Ama şu donanım sürücülerinin problem çıkarması yok mu... Hem o kadar para ver makina al hem de donanım üreticisinin sağlaması gereken işleri yap. Yok çekirdek derle yok modül ekle. Mecbur muyuz kardeşim ? O zaman ne yapılır ? Kuruma alınacak sunucun şartnamesine şöyle ufak bir madde eklenir hem ruh sağlımız hem de Linux için faydalı bir iş yapılır...

Madde 3.4



Sunucunun bütün parçaları Debian Linux 3.1 işletim sistemi ile uyumlu olmalıdır. Firma işletim sistemi tarafından tanınmayan veya sağlıklı olarak hizmet vermeyen donanımı üniversite tarafından belirlenecek uyumlu eşdeğeri veya uyumlu üst modeli ile değiştirmeyi taahüt edecektir.


Evet efendim bence de pek leziz oldu :-)

Perşembe, Haziran 30, 2005

Sun Ne Kullanıyor ?


Sun research sitesinde gezinirken yukarıdaki durumla karşılaştım php (jsp zor mu geldi acaba :) belki yakında ruby on rails ile yapılmış bir sun siteside görürüz...)+ mysql kullanan sitenin hangi işletim sistemini kullandığına bakmadım ama o da linux olabilir mi acaba :)

Çarşamba, Nisan 20, 2005

Bill Amca Kızarsa

Bir yazı okudum hayatım değişti. Bu adresteki arkadaş windowzunda java ile program yazmaya çalışırken biraz zorlanmış ve klavyesinden şu cümleleler dökülmüş;

.NET'te böyle miydi? Açıyordun Visual Studio.NET i, sürükle bırak ile ekranı tasarlayıp, sonra onlara çift tıklayıp kod yazıyordun, run edip kullanıordun...

Bir gün gelecek Bill amca artık dayanamayacak :
-tamam ulen, yeter zaten kazandığım para, siliorum piyasadan tüm Microsoft ürünlerini, bakem ne halt etceksiniz, diyecek, işte o zaman JAVA'cılar Linux'cular görecekler dünyanın kaç buçak olduğunu... Anlayacaklar Bill amcanın kıymetini...

Yazıyı okuduğumdan beri halen korkmakdayım. Lütfen yardım ediniz...

Cumartesi, Nisan 16, 2005

Java ile Tasarım Modelleri

Bana kalırsa Java'nın .Net e karşı en büyük üstünlüğü geniş ve çok seçenekli yapısı. Bu sayede Hem geniş bir kullanıcı ve döküman desteğine sahip oluyor hem de geliştiriciler için pek çok alternatif sağlıyor.

Ancak bu yapı öyle bir kavram karmaşasına sebep oluyor ki insan bazen bir java sözlüğüne ihtiyaç duyuyor.

Java ile web tabanlı yazılım geliştirme konusunu araştırırken karşıma sürekli "Model 1" ve "Model 2" olarak adlandırılan kavramlar çıkıyordu. Bu kavramların ne olduğuna dair açıklama burada , hangi modelin ne zaman kullanılması gerektiğini anlatan kısa not ise burada mevcut.

Ayrıca jsp ile web tabanlı uygulama geliştirmeyi planlayanların mutlaka gözatması gereken güzel ipuçları içeren bir diğer belge de burada bulunuyor.

Çarşamba, Nisan 13, 2005

Gezegen'e İnmişim

Bu gün ne zamandır göz atmadığım gezegen e bakarken haftalar önce atmış olduğum mail neticesinde (ben umudu kesmiştim) günlüğümün gezegene eklendiğini fark ettim. Tüm camiaya hayırlı uğurlu olsun :)

Cuma, Ocak 21, 2005

Uygulamalar Çekirdekle Nasıl İletişim Kurar

Uygulamalar ve çekirdek arasıdaki iletişim sistem çağrıları ile sağlanır. Çekirdek çağrı isteyenin bu çağrıdan yararlanıp yararlanamayacağına karar verir. Örneğin her isteyenin sabit diske veri yazmaması sağlanır.

Linux’ta strace komutu ile, çalıştırılan programların kullandığı sistem çağrılarını görebilirsiniz.

void main()
{
printf("Denemen");
}

Derleyip, strace ile inceleyelim.

siseci:~/kernel# make 1

siseci:~/kernel# strace ./1

execve("./1", ["./1"], [/* 32 vars */]) = 0

...

...

write(1, "Denemen", 7)= 7

....



execve ile yeni bir process başlatılıyor. write ile 1 ile gösterilen dosyaya 7 bayt uzunluğunda "denemen" yazılıyor.

Şimdi yukarıda anlatılanları burada somut olarak görmekteyiz. Uygulamamız çalıştığında write çağrısını kullanıyor. Çekirdek ise burada programın isteğini değerlendiriyor ve eğer uygunsa izin veriyor.

Burada bir noktayı hatırlatmak istiyorum. Biz direk makine koduyla (assambler) çalışıyor dahi olsak. Uygulamamız ve işlemcinin arasında çekirdek bulunduğundan sistem çağrılarını kullanmamız gerekir. Biraz daha açmak gerekirse çekirdeğin yüklenmiş olması işlemcinin artık meşhur protected mode safhasına geçmiş olması demektir. Bu noktadan sonra bizim uygulamamızın çekirdeğin izini olmadan aygıtlara direk erişimi söz konusu değildir.

Konunun daha açıklayıcı olması açısından sistemin başlama anına geri dönelim ve neler olduğuna bir bakalım:

Linux çekirdeği sadece standart bir C programıdır aslında. Yalnızca iki önemli farklılık vardır. C dilinde
yazılan programların başlangıç noktası main(int argc,char **argv) yordamıdır. Linux çekirdeği start_kernel(void) kullanır. Sistem baslarken ve çekirdek yüklenecekken daha program çevresi mevcut değildir. Yani ilk C yordamı çağrılmadan önce bir kaç şey daha yapılmalıdır. Bu isi gerçekleştiren donanım kodu arch/i386/asm/ dizini altında yer alır.


Assembler dili yordamı çekirdeği tam olarak 0x100000 (1 Mbyte) bellek adresine yükler, ardından da başlatma süreci esnasında dışlamalı olarak kullanılan kesme hizmet yordamlarını (interrupt servicing routines), genel dosya tanımlayıcı çizelgeleri (global file descriptor tables) ve kesme tanımlayıcı çizelgeleri (interrupt descriptor tables) yükler. Bu noktada işlemci korunurlu moda girer. Çekirdeği başlatmak için gereksiniminiz olan her şey init& dizini altındadır. Burası çekirdeği doğru düzgün başlatmakla görevlendirilmiş, geçirilen tüm açılış (boot) parametrelerini dikkate alan start_kernel() yordamıdır. İlk süreç sistem çağrıları kullanılmadan oluşturulur (daha henüz sistemin kendisi yüklenmemiştir).


Ayrıca Aşağıdaki tablo'da işlerin genel olarak nasıl yürüdüğünü anlamamıza yardımcı olacaktır. [En kısa zamanda türkçeleştireceğime söz :) ].

Buradaki gösterim basit ve anlaşılabilir olması için yalnızca temel öğeleri içermektedir. Ancak temel yapıyı kavramak için oldukça yeterlidir.




Yukarıda printf fonksiyonun sebep olduğu write çağrısını basitçe gördük. Ancak iş sistem çağrısı gerçekleştiğinde bitmiyor.

Aşağıda read çağrısı ve ardından gerçekleşen olaylar gösterilmiştir.




Şimdi burada neler olduğunu adım adım inceleyelim.

read çağrısın işlevi basitçe herhangi bir veriyi kaynağından alıp, onu isteyen programın bu iş için ayırdığı belleğe kopyalamaktır.

Bir sistem çağrısının çekirdeğe iletilmesi belirli bir "yazılım kesmesi" tarafından gerçekleştirilir. Bu kesme (aynı zaman da "kapı" da denir) x86 işlemcili Linux sistemler için 0x80 kesmesidir.

0x80 kesmesi hakkında not: Programcının işletim sistemi çekirdeğinden sistem servisi alması için kullanılır. Dosya açma, dosya kapama, aygıtlara erişim, terminal'e çıktı gönderme, yeni süreç yaratma gibi işlemleri yaparken çekirdek bize servis sağlar. Bu yapı, her programcının aygıtlar için kendi erişim kodunu tekrar tekrar yazması gibi bir zorluktan kurtarır bizi (ve tabi zaman kazandırır).Birçok programcı 0x80 kesmesini kullanmaz, hatta çoğu hayatında bir yada birkaç kez sadece ismini duymuş olabilir. Bunun nedeni ise bu tür servislerin üst seviye dillerde (HLL) programcının kolay kullanımı için önceden yazılmış fonksiyonlar tarafından yapılıyor olmasıdır. 0x80 kesmesinin direkt olarak kullanılmak zorunda olduğu tek dil Assembly Programlama dilidir.

İstediğiniz sistem çağrısını "EAX" yazmacına (yazmaç=register) atarsınız. Çağrının kabul ettiği parametreleri de geriye kalan yazmaçlara (EBX, ECX gibi) atayarak "0x80" kesmesini çağırırsınız. Şekilde direk olarak görünmese de aslında atanan __NR_read değil buna karşılık gelen çağrı kodudur. Söz konusu çağrı kodu ve __NR_read in alabileceği diğer parametreler /usr/include/asm/unistd.h dosyasında tanımlanmıştır.Ayrıca read ile ilgili man sayfasına "man 2 read" komutuyla ulaşabilirsiniz.

Buraya kadar yapılan işlemler "user space" de (user mode) da gerçekleşti. Basitçe read adlı sistem çağrısını 0x80 kapısını kullanarak "kernel space" e aktardık.
Şimdi bundan sonra kernel space'de (kernel mode da) olanlara bir bakalım.

Çekirdek ilk olarak bütün yazmaçları kaydeder (SAVE_ALL). Bir sonraki adımda EAX yazmacı tarafından yapılan isteğin bellek sınırlarını aşıp aşamdığı kontrol edilir (Check Limit of EAX) [1]. Daha sonra system çağrıları tablosuna bakıp (EAX yazmacındaki isteği kullanarak) uygun fonksiyonu çaliştırır. ( syscall_tab[EAX]() ). Burada çalıştırılacak fonksiyon sys_read fonksiyonudur.

Bir sonraki aşamada dosyaya ilişkin parametreler ve izinler kontrol edilir, eğer herşey uygunsa dosyadaki veri alınır (kopyalanır). Sonuç uygulamanın istediği belleğe kopyalanır ve sonuca dair onay değeri uygulamaya gönderilir.

Bu aşamadan sonra işlem tekrar user mode da devam eder. Uygulama kontrol değerine bakar hatasız ise işlemine devam eder. Artık uygulama istediği verinin hatasız biçimde geldiğini ve hafızadaki yerini bilmektedir.

Bu yazıda sizlere bir uygulamanın çekirdekle olan iletişimini elimden geldiğince sade ve basit bir biçimde anlatmaya çalıştım.
Umarım faydalı olmuştur.


Serbülent ÜNSAL
serbulentunsal (et) meds.ktu.edu.tr

Not: Bu belgedeki bilgiler GNU/Linux sistemler için olmasına karşın genel olarak diğer pek çok sistem içinde doğrudur.

[1]:İşlemcilerdeki hafıza oruma mekanizması ile ilgili daha ayrıntılı bilgi için (http://www.cs.ucsb.edu/~cs170/notes/memory/)

Kaynaklar:

http://www.acikkod.org/yayingoster.php?id=30
http://www.linuxfocus.org/Turkce/January1998/article19.html
http://www.core.gen.tr/Security/Documents/12.html
http://www.freebsd.org/doc/en_US.ISO8859-1/books/design-44bsd/overview-kernel-service.html
http://plg.uwaterloo.ca/~itbowman/CS746G/a1/
http://www.linux-mag.com/2000-11/gear_01.html

Salı, Ocak 18, 2005

User mode ve Kernel mode nedir ?

Daha önce kulağıma çalınan ancak ne olduğunu tam olarak bilmediğim bu iki terim hakkında ne yazik ki tam ve açıklayıcı bir Türkçe kaynağa rastlayamadım. Bu yüzden öğrendiklerimi özetleyen kısa bir bilgi notu yazmaya karar verdim. Bu notun bir kopyasını tr.wikipedia.org adresinde User mode ve Kernel mode başlıkları altında bulabilirsiniz.


Önce birkaç terime açıklık getirelim.

Protected mode: x86 (286 ve üstü intel ailesi ve uyumlu (amd,via vb.) ) işlemcilerde bellek adreslerine erişim belirli kısıtlamar çerçevesinde olur. Yani her uygulama her istediği bellek adresini istediği gibi kullanamaz. Her bellek bölgesinin erişim hakları descriptor denen kayıtlarla saklanır. Bu kayıtların arka arkaya dizilimi ile hafızanın tamamen adreslendiği bellek haritası ( memory map ) oluşturulur.

CPL: Code Privilege Level (Kod Yetki Düzeyi). x86 işlemcilerde descriptor tarafından ayarlanan ve o kodun çalıştığı yetki seviyesini (privilage level) gösteren 2 bitlik değer. 0 en yüksek yetki seviyesidir, ring 0 diye geçer. 3 ise en düşük değerdir, ring 3 olarak geçer. Arada ring 1 ve ring 2 diye tanımlanan başka seviyeler olmasına karşın işletim sistemlerinin çoğu yalnızca ring 0 ve ring 3 seviyelerini kullanırlar.

Kernel Mode

Linux işletim sistemi açılışta kernel mode’da ( ring 0 ) baslar. Sistem açılışı sırasında kernel yüklenir yüklenmez işlemci Protected Mode'a geçer ve bunun ardından çalıştırılan tüm programlar User Mode'da çalışır ( bazı donanım sürücüleri hariç ). Kernel mode'da çalışan uygulamalar bütün hafıza adreslerine ve Giriş-Çıkış (harddisk ve benzeri) aygıtlarına tam yetki ile erişirler. Ayrıca bu mode'da iken tüm sistem fonksiyonlarına erişilebilir, hafıza yeniden adreslenebilir.

User Mode

Linux sistemi açılışta kernel mode’da baslar. Sistem açılışı sırasında kernel yüklenir yüklenmez işlemci Protected Mode'a geçer. Bu mode’da uygulamalar sistem için kullanılan fonksiyonları güvenlik açısından direkt olarak kullanamaz. Kullanıcı sadece kendi başlattığı uygulamaların adres alanları içerisinde kalmak suretiyle işlerini yürütebilir. Sistemin güvenli bir şekilde çalışabilmesi için kullanıcıya kısıtlı izinler tanınmıştır. Bu mode'da çalışan uygulamalar sistem kaynaklarına erişmek istediklerinde ring 3 seviyesinde çalışmakta olan çekirdek servisleri aracılığı ile çekirdeğe istek gönderirler. Sistem çekirdeği de eğer uygunsa isteği yerine getirir.


Not 1: Yukarıda yazılanlar Linux işletim sistemi referans alınarak yazılmıştır. Ancak diğer pek çok işletim sisteminde de geçerlidir.

Not 2: Bu belge'yi Tonguç Yumruk'un uyarıları doğrultusunda yeniden gözden geçirdim, kendisine teşekkür ederim. Ayrıca bu gözden geçirme işlemi sırasında bu belgeye rastladım. Konu ile ilgili daha ayrıntılı bilgi isteyenler için oldukça faydalı.



Pazartesi, Ocak 17, 2005

CNN LIVE vs IRAK LIVE

Irak'tan yazan bir kızın günlüğü, internette dolaşırken tesadüfen buldum. Söylenecek fazla birşey yok. Link burda.

Amerikan Özel Birlikleri İran'da

BBC NEWS sitesindeki bu habere göre Amerikan özel birlikleri İran'da bulunuyormuş. Daha Irak'tan çıkamayan Amerika İran'da ne yapacak merakla bekliyorum doğrusu.

Debian Postası

www.Debian-tr.org daki günlüğümüde buraya taşımaya karar verdim. Debian postası ile başlayacak olan bu dizide yaşadığım sorunları ve çözüm yollarını yazarak yeni başlayanlara yol gösterici olmaya çalışacağım.

1- Nerde benim Firefox'um

Yanlis Çözüm: " apt-get install firefox "
Dogru Çözüm: " apt-get install mozilla-firefox "

2-Kurulum dilini Türkçe seçtigim halde þðÝý karakterleri niye yazmiyor ? ve alt_gr tusu niye calismiyor. Bu tuslar hem X serverda hemde terminalde sorunlu.

Çözüm: Herhangi bir metin editörü ile /etc/XF86Config-4 dosyasını açıp "Input Device" kısmında "keyboard" yazan bölümü buluyoruz. Bu bölümde Option "Xkbmodel" "pc105" olarak ve "Xkblaout" "tr" olarak değiştiriyoruz. Kurulumu türkçe ayarlarla yapmama ve klavye olarakta trq seçmeme rağmen nedense "us" idi, öntanımlı değer.

3-firefox'u nasil türkce yapacagim.

Bu sorunun yanıtını debian türkçe listesinde buldum.

Onceki iletide mozilla-firefox-locale-tr paketini bir yabanci
gelistiriciye: Cesar Martinez Izquierdo'ya devrettigim belirtmistim.
Paketin Debian arsivlerine gonderilmesi icin kendisiyle gorusuyorum.
Asagidaki bagda bu calismanin bir urununu bulabilirsiniz. Paketi
hizlica test ettim. Gayet sorunsuz gorunuyor.

http://users.evtek.fi/~k0400388/debian/mozilla-firefox-locale-all/mozilla-firefox-locale-tr-tr_1.0-3_all.deb

Bu paketi kurmak icin once normal bir mozilla-firefox kurulumu yapin:

apt-get install mozilla-firefox

Daha sonra da paketi indirip dpkg ile kurun:

dpkg -i mozilla-firefox-locale-tr-tr_1.0-3_all.deb

--
roktas


4-Gnome'dan Kde ye nasil gececegim.

Soruma 2 yanıt aldım fcn ve Emre'ye teşekkürler. Yanıtlar aşağıda...

"gnome'dan kde'ye nasıl geçeceğim?" sorunuz bende soru işaretleri yarattı. eğer x açılışında nasıl seçim yapacağınızı soruyorsanız, http://ordiluc.net/selectwm adresinde ufak bir program var. incelerseniz işinize yarayabilir. ayrıca benim kullandığım desktop manager programım (gdm) hangi masaüstü yöneticisiyle açılacağını seçme fırsatı veriyor.

kolay gelsin.

Gnome dan kde ye update-alternatives --config x-window-manager komutuyla ya da kdm paketini yukleyip dpkg-reconfigure kdm den kdm yi secip masaüstünü kde olarak seçip login olarak geçebilirsiniz