Salı, Ocak 30, 2007

Agop Dilaçar ve Hepimiz Ermeni miyiz ?

Şimdi milliyetçilik bayrağı altında Ermeni düşmanlığı yapanlara şunu sormak isterim:
"Malazgirt Savaşı'nı Türklerin Ermenilerle birlikte kazandığını biliyor muydunuz?
"İstanbul'un alınmasında Ermenilerin yaptığı kahramanlıklardan haberiniz var mı?
"Çanakkale'de Mustafa Kemal'in yanında savaşan Ermeni askerlerin adlarını biliyor musunuz?
"Atatürk'ün bugün kullandığımız alfabeyi Ermeni dil bilgini Agop Martayan'a hazırlattığını ve sonra ona Dilaçar soyadını verdiğini biliyor muydunuz?"
Son bir soru:
Bir Ermeni dostuna bu soruları soranın, Alparslan Türkeş olduğunu biliyor muydunuz?
O Türkeş'in, 600 yıllık Türk-Ermeni dostluğunu diriltebilmek için Ermenistan Devlet Başkanı Petrosyan'la buluştuğunu, Ermeni askerlerin Azeri topraklarından çekilmesi şartıyla Ermenistan'la diplomatik ilişki kurulmasını savunduğunu ve 1915'te ölenlerin anısına, Türk-Ermeni sınırına bir anıt dikilerek Ermenistan'a bakan yüzüne Türkçe, Türkiye'ye bakan yüzüne Ermenice "Verdiğimiz acılardan dolayı üzgünüz" diye yazılmasını bile düşündüğünü biliyor muydunuz ?

Can Dündar 30.01.2007 Milliyet

Çarşamba, Ocak 24, 2007

Turkish

Konfiçyus’e sordular :

-“Bir ülkeyi yönetmeye çağrılsaydınız, yapacağınız ilk iş ne olurdu ?”
Büyük filozof şöyle cevap verdi:

-“Hiç şüphesiz, dili gözden geçirmekle işe başlardım.”
Dinleyicilerin hayret dolu bakışları karşısında sözlerini sürdürdü:

-“Dil düzensiz olursa, sözler düşünceyi iyi anlatamaz. Düşünce iyi anlatılamazsa, yapılması gereken şeyler doğru yapılamaz. Görevler gereği gibi yapılmazsa, adetler ve kültür bozulur. Adetler ve kültür bozulursa, adalet yanlış yola sapar. Adalet yoldan çıkarsa, şaşkınlık içine düşen halk, ne yapacağını, işin nereye varacağını bilmez. İşte bunun için hiçbir şey dil kadar önemli değildir.”

Çarşamba, Ocak 10, 2007

Süleymaniye

Yazmayalı bayağı uzun zaman olmuş. Ne zaman elim gitse klavyeye hep birşeyler aldı götürdü vaktimi. Bu arada hayat akıp gitti final dönemi yaklaştı. Neyse yine vakit dar yapılacak iş çok ama bu arada bir iki satır karalamak istedim. Girdiyi Mehmet Akif ile bitirelim;

Yıkmak, insanlara yapmak gibi kıymet mi verir,
Onu, en çulpa herifler de emin ol becerir.
Hele sen gösteriver kubbe diye,
İki ırgatla iner şimdi Süleymaniye.
Ama gel, kaldıralım dendi mi, heyhat o zaman
Bir Süleyman daha lazım, yeniden bir de Sinan.

Perşembe, Kasım 16, 2006

Boş İşler

Birileri iş üretirken, neden başka birilerinin eleştirmekten başka işi olmaz. Eleştiri güzeldir de, be kardeşim binlerce satır kod içeren bir programda eleştirecek 3 harf mi kaldı ?

Biz milletçe böyle miyiz , yoksa genel anlamda insanlık mı iş yapanların ayağına dolanmayı seviyor bir tek bunu çözemedim.

Edit: Yanlışlıkla FM deki bir sonraki habere link vermişim. Yanlış linkle vakit kaybedenlerden özür dilerim :)

Pazar, Kasım 12, 2006

Derin Tasarım

Derin devlet olurda, derin tasarım olmaz mı :-) Oluyormuş. Ali Işıngör'ün blogundan ( hala adresini bilmeyen var mı ? ) esen poyrazla bu makaleye savruldum.

Sayfadan küçük bir anektod;

...‘oyunlu tasarım’ deyince babasına bunun püf noktalarını anlattırıyoruz: ‘Çocuk saflığından daha değerli bir şey yok bence. Çocuk resim yapıyormuş annesi ne çizdiğini sormuş. ‘Tanrı’yı çiziyorum’ demiş. Anne şaşırarak ‘İmkansız! Tanrı’yı nasıl çizersin, onun yüzünü kimse bilmiyor ki’ demiş. Çocuk son sözü söylemiş: ‘Ben çizeceğim bundan sonra herkes bilecek’. Bunun ne kadar güzel bir mantık olduğunu anlatabildim mi? Ben de o çocuk gibi bütün şartlanmalardan uzak durarak tasarım yapıyorum.’

Perşembe, Temmuz 27, 2006

...Başarabiliriz...

İnanmak ve Başarmak. Birbirine çok sıkı bağlı iki kavram. Aşağıdaki bağlantılar inanmayanlar ve inancını tazelemek isteyenler için.

Vista,Red Hat,Ubuntu,Suse,Pardus

Windows XP,Red Hat,Ubuntu,Suse,Pardus

Salı, Temmuz 25, 2006

Hızlı ve Kirli Bir mod_chroot Kılavuzu

Başlangıç ve Sorumluluk Reddi

Bu belge Apache yi chroot içinde çalıştırmak için uğraşırken yaşadığım kişisel tecrübelerden ortaya çıkmıştır. Kullanılan sistem Fedora Legacy projesi ile güncellemeleri yapılan bir Fedora Core 1 sunucu ve üzerinde Apache 2.x PHP 4.x barındırmaktadır. Bu belgeyi uygularken sorumluluk tamamen size aittir doğacak zaralardan vs vs. Artık başlayabiliriz;

Ben Apache yi kafes içinde çalıştırmak için 3 temel yöntem biliyorum. Önce bunlara kısaca bir göz atalım;

1. Klasik chroot yaklaşımları


Zor ve zahmetlidir ( genellikle ) aşağıdaki yapıyı chroot içinde oluşturmanız gerektirir

* C kütüphanesi
* Pekçok diğer kütüphane (libssl? libm? libmysqlclient?)
* Çözümleyici dosyalar (/etc/nsswitch.conf, /etc/resolv.conf)
* Kullanıcı dosyaları (/etc/passwd, /etc/group)
* log dosyaları için ayrı bir klasör
* Program tarafında kullanılacak modül dosyaları (for Apache: mod_php and other modules)

2. Mod-security nin chroot fonksiyonu

Basit, ancak kılavuzdaki kurulum belgesi kaynak koddan kurulmuş bütün dosyaları tek dizin içinde toplayan bir apache sunucusuna uygun. Dosyaları değişik konumlara dağılmış bir sunucuda uygulaması zor.

3. Mod_Chroot yaklaşımı


Basit hızlı ve kolay. Yalnızca chroot işlemine odaklanmış sade bir modül. Ek hiç bir dosyanın kopyalanmasına gerek kalmaz ( 1 - 2 istisnai durum olabilir :) )

Mod-security ve Mod_chroot u kısaca kıyaslarsak

* mod_chroot uzak istemcilerle iletişim kurmaz.
* mod_chroot yalnızca bir kere hafıza ayırır, başlangıçta.
* mod_chroot istekleri yakalamaz kendi işi ile uğraşır :)

Kurulum

Kuruluma başlamadan önce aşağıdaki sistemlerden birini kullanıyorsanız hazır paketlerden kurulum yapabilecek şanslı kişilerdensiniz :)
Apache Dinamik modülleri ile mod_chroot kurulumu için birkaç basit adım gerekiyor.

1. Kodu indirin ve açın

wget http://core.segfault.pl/~hobbit/mod_chroot/dist/mod_chroot-0.5.tar.gz
tar zxvf mod_chroot-0.5.tar.gz


2. Kendi sunucunuza uygun kaynak kod klasörüne gidin ( örneğin mod_chroot-0.5/src/apache20/ ) ve

apxs -cia mod_chroot.c

komutunu root olarak çalıştırın.

Not: Bazı headerlara ihtiyaç duyabilirsiniz eğer debian kullanıyorsanız apache2-prefork-dev veya
apache2-threaded-dev paketlerinden birini kurmanız gerekmekte.

Not 2: apsx fedora üzerinde apache-dev paketi ile gelmekte Dinamik modül olarak mod_chroot kurmak için bunu indirin.

Ayarlar

Sunucunuzun konfigürasyon dosyasında ( httpd.conf ) Apache için root olarak kabul edeceğiniz dizini ChrootDir direktifi ile belirtin ve DocumentRoot unuzu buna göre ayarlayın, Örneğin:

ChrootDir /var/www
DocumentRoot /


( Eğer DocumentRoot u /var/www şeklinde bırakırsanız sunucu /var/www/var/www dizinide arayacaktır ana dizininizi )

Apache 2.x için Özel Ayar Notları

Apache 2 deki MPM (multi-processing modules) yapısından dolayı pid dosyası chroot un içinde yer almalı Bunun için;

1. Pid dosyası için özel bir klasör yaratılmalı

mkdir -p /var/www/var/run
chown -R root.root /var/www/var/run


2. apachectl nin mutluluğu için gerçek pid dosyası ile arada bir sembolik bağ kurulmalı

ln -s /var/www/var/run/httpd.pid /var/run/httpd.pid

3. ve son olarak httpd.conf a chroot direktifinden önce

PidFile /var/run/httpd.pid

satırı eklenmeli. Sonuç olarak yapılandırma dosyanız şuna benzemeli

PidFile /var/run/httpd.pid
ChrootDir /var/www
DocumentRoot /
... diğer MPM direktifleri (LockFile? ScoreBoardFile?)


Yalnızca pid dosyasını jail içine almak yeterli olmalı ancak Apachenin özelleşterilebilirliğini düşünecek olursak kullanıcıya göre değişiklik gösteren istisnalar her zaman olabilir. mod_chroot tarafından etkilenen bütün MPM lerin tam listesi için buraya bakın adresine bakın.


Modül Sıralaması


mod_chroot Apache nin bütün işi bittikten sonra çağırılmalı bunun için modül listesinin en başına eklenmeli ( Apache modülleri yazım sırasının tersine yükler ) . Eğer modülü dinamik olarak derlediyseniz.

LoadModule chroot_module /usr/lib/httpd/modules/mod_chroot.so

satırlarını modül listesinin en başına ekleyin. Tabi burada kullandığınız dağıtıma bağlı olarak mod_chroot.so dosyasının tam yolunu yazmalısınız (apsx bu direktifi ( büyük ihtimalle ) modül listenizin en sonuna eklemiş olacak buradan kes-yapıştır yapabilirsiniz).

Evet buraya kadar mod_chroot un kurulum ve ayarlarını bitirdik. Ancak;

Başlamadan Önce

Apache yi chroot içinde çalıştırmak bir takım problemlere sebep olabilir.

Bilinen problemler ve çözümleri için okumaya devam edin :)

Apache yi Yeniden Başlatmak

'apachectl reload', 'apachectl graceful' veya 'kill -HUP apache_pid' komutlarını kullandığınız günleri unutun. Apache bunları yapmak için konfigürasyon dosyasını okumak log dosyalarına yazmak ve modüllerini yeniden yüklemek isteyecek ancak kafesinin dışına çıkamayacaktır. Tabi bu sorunu çözmek için gerekli dosyaları kafesin içine yerleştirebilirsiniz ancak bu durumda da chroot yapmanızın bir anlamı kalmaz :)

Sözü fazla uzatmadan çözümü söyleyeyim bundan sonra apacheyi durdurup başlatmak için yalnız iki komut kullanıyoruz. apachectl stop' ve 'apachectl start'

Veritabanları

Eğer veritabanı sunucunuz yalnız Unix soketlerini dinliyorsa onu 127.0.0.1 i de dinlemesi için ayarlamalısınız.

PHP mail() fonksiyonu


Unix altında php nin mail() fonksiyonu sendmail programının çalıştırılabilir haline ihtiyaç duyar. Bu sorunu aşmak için birkaç alternatif metod olmasına karşın ben smtp ile direkt olarak mail gönderen bir sınıf kullanmanızı önereceğim ( örneğin http://pear.php.net/package/Mail gibi).

Paylaşımlı Kütüphaneler Meselesi


Paylaşımlı kütüphaneler programlara çalışma zamanında bağlanan kütüphanelerdir. Bir programın kullandığı paylaşımlı kütüphanelerin tam listesine ldd /programın/tam/yolu şeklinde erişebilirsiniz.

Normal şartlarda bu kütüphaneler başlangıç sırasında ld.so tarafından otomatik olarak yüklenirler, mod_chroot un bu durumla ilgili bir sorunu yoktur. Ancak bazen programlar çalışmaya başladıktan sonrada bu kütüphaneleri dlopen() ve dlsym() fonksiyonları ile çağırabilirler. İşte bu durum chroot ortamı içinde size sorun yaratabilir.

Bununla ilgi şu ana kadar 2 durum raporlanmıştır. Çözüm olarak bu dosyaları chroot yapmadan önce elle yüklemeyi seçebilirsiniz. Bunun için ayar dosyanıza LoadFile direktifi ile beraber dosya adını eklemelisiniz.

1- DNS Lookup problemi için

LoadFile /lib/libnss_dns.so.2

direktifini eklemeniz gerekmektedir

2- Apache 2.0 mpm_worker modülünü Linux 2.6 çekirdeği üzerinde kullanıyorsanız GNU libc libgcc_s.so.1 kütüphanesini pthread_cancel fonksiyonu çağırıldığında yüklemeye çalışacaktır. Çözüm için:

LoadFile /lib/libgcc_s.so.1

direktifini eklemeniz gerekmektedir.

Sanal Sunucular Konusu

mod_chroot sanal sunucularla kesinlikle problemsiz ( tabi başka bir probleminiz yoksa ) çalışmaktadır. Ancak daha öncede belirtildiği gibi her bir Sanal Sunucu için ayrı bir ChrootDir direktifi kullanamazsınız yani şunu yapMAMANIZ gerekir


ServerName birinci.ornek.com
ChrootDir /var/www/bir_ornek_klasoru
DocumentRoot /

ServerName ikinci.ornek.com
ChrootDir /var/www/ikinci_ornek_klasoru
DocumentRoot /


Bunu yerine aşağıdaki biçimde bir yapılandırma oluşturmalısınız.

ChrootDir /var/www
ServerName birinci.ornek.com
DocumentRoot /birinci_ornek_klasoru

ServerName ikinci.ornek.com
DocumentRoot /ikinci_ornek_klasoru

Not: Bütün işlemleri başarıyla tamamlasanız bile apache başlangıç sırasında

Warning: DocumentRoot [/biricini_ornek_klasoru] does not exist

gibi bir hata verebilir. Bunu dikkate almayın :)


Diğer sorunlar ve destek için
modchroot@core.segfault.pl listesini kullanbilirsiniz. ( Üyelik için modchroot-subscribe@core.segfault.pl adresine boş bir posta atın )

Son olarak http://core.segfault.pl/~hobbit/mod_chroot/install.html adresinde daha detaylı bir kurulum kılavuzu bulabilirsiniz.



Pazar, Temmuz 23, 2006

Mayk Hammır nasıl Yazılır

Tost ve Çay blogundaki linkleri kurcalarken gördüm. mod-chroot la uğraşmaya başlamadan biraz kafa dağıtalım ;)

Afif Yesari, Muzaffer Ulukaya takma adıyla 200 kadar polisiyeye imza atarak bir rekorun sahibi oldu. Başlangıcından bugüne dek, Cumhuriyet döneminde Türkiye’de yazılan polisiye metinlerin toplamından çok daha fazladır “Afif Yesari”nin kaleminden çıkanlar. Bu nedenle, Mayk Hammer’i tanıtma hakkını da ona vermek gerekir:

“New York’lu ve kafadan müselleh bi polis hafiyesinin akla mantığa sığmaz deli saçmalı serüvenlerine ve eskilerine taş çıkartan yenilerini eklediğim bu detektif romanlarını şöyle yazıyordum; Patron, ressama para vermemek için yabancı dergilerden ve jiletle kesip oyduğu ve ayrı ayrı harf ve resimleri yan yana yapıştırarak hazırladığı ve kompozisyonunu da aynı yöntemle yaptığı kapakları bana veriyor ve ben de romanı bana verilen kapağa göre uyduruyordum. Örneğin kitabın adı ‘Genç Kızlar Cehennemi’ ve bir de şöyle bir resim; iri kıyım hayvan gibi bir herif, bir piknik sepeti başına çömelmiş gibi ve sarışın bir kızı, ağaçların arkasından kötü kötü dikizliyor... Ve demek oluyor ki, aşk, kin, ırza tecavüz, intikam, entrika ve fiilen tasallutta bulunma gibi olayların yanı sıra, kan ve heyecan ve bir kaç da cinayet bu kapağın hakkıdır.

Kapağı alıp eve geliyor, bir kahve, bir cıgara içiyor ve New York Şehir Rehberini önüme açarak kafadan gayri müselleh detektifi daha da çileden çıkaracak serüvenlere koşturuyordum. Ve bu 92-96 sayfalık cep kitaplarından her birini, üç günde tamamlayıp vermek zorundaydım. Bu iş için New York Şehir Rehberinden faydalanıyordum çünkü ben New York’a hiç gitmemiştim. Beş yıl süreyle bu kitaplardan bir çok yazdım ve çok da satıldı ve kimse de şikayetçi olmadı. Serüvenlerini ürettiğim detektifi uyduran yazar, uydurduğu detektiften daha üşütüktü ve bu nedenle detektif de ipe sapa gelmez bir hergelenin tekiydi. Ben, herife az bir şey çeki düzen verdim, bayağı adama döndü, daha insancıl oldu ve doktor o sıralar bana içkiyi yasakladığı için ben de ona viskiyi bıraktırdım. Böylece bu kitaplardan 200 kadar yazdım. Üşütük detektifin yazarı Spillane, o tarihte henüz 7 tane kadar Mayk yazmıştı ve 200’e yaklaşık kitabın adını taşıdığından haberi yoktu ve hala da bilmez.

Neyse bu da haberin tam kaynağı.

Cuma, Temmuz 21, 2006

En tehlikeli Cracker

Daha önce bir yerlerde okumuşsunuzdur belki ama ben yeni karşılaştım kendileriyle. http://johnny.ihackstuff.com ile google ı çok etkili bir crack aracına dönüştürebilirsiniz. Ayrıca arama için kullandığı tekniklerde oldukça öğretici.

Salı, Haziran 20, 2006

Programer Strikes Back

Neredeyse bir aydır uğraştığım sınavlar, epidemiyoloji öğrenmeye çalışmam ve grid projesi, Oracle Application server manualleri ile cebelleşme ve App Sunucusu kurulumu, ve yine sınavlarla geçen günlerin ardından tekrar kodlarıma geri döndüm. En son 2 ay önce baktığım programı çözmektense ( evet bundan sonra kodlarımı daha iyi belgelendireceğim :) ) yeni baştan başladım RoR projeme. Bu sefer mümkün olduğunca örneklerdeki her satırı özümseyerek ilerliyorum.

Tabiki bu Ruby ve RoR un ne kadar zevkli olduğunu unutmadım. Her web programcısının sıklıkla karşılaştığı bir örnek tablodan belirli bir alanı veya alanları çağırma ile ilgili.

Baştan kısaca özetlersek RoR ile çalışırken modeldeki sınıflar tablolarınız nesneler ise tablodaki alanlar (kolonlar) olarak düşünebilirsiniz. Örneğin siparişler tablonuz için;
@order = Orders.new
@order.find()
satırları ile sipariş tablonuzdaki bütün bilgileri nesnemize depoladık. Bu tabloda ad gibi bir alan olduğunu düşünürsek bu alanın bilgilerine basitçe find_by_ad fonksiyonu ile ulaşabiliriz.

35 Gün Sonra Gelen DEVAM

Yukarıdaki satırları yazıp draft olarak kaydetmemin üzerinden 35 gün geçti bu arada ben RoR projesini büyük ölçüde bitirdim. Maceralı bir Mailman kurulumu yaptım. ( Mailman ve turkish locale sorunları ayrı bir makale konusudur :) ). Bu arada QtTürkiye sitesi ve tartışma gurubu açıldı.

Ben de şu sıralar javascript kullanmadan bir popup içinden RoR a veri alabilirmiyim diye bakıyorum. Bir yol bulursam yazacağım.

Bir de unutmadan AjaxScaffold diye harika bir generator keşfettim sayfalarınızı zahmetsizce şekillendirmek için birebir. Mutlaka bakın.... Bu arada generatorlardan söz açılmışken Ruby Engines i duymuş muydunuz ?

Pazartesi, Mayıs 15, 2006

Ah şenlik vah şenlik

Evet gidemedim. 2. vizelerin ve proje teslim haftasının ortasına denk gelince Ankarada olamadım. Daha önce kaçırdığım hiç bir şenliğe bu kadar üzülmemiştim. Bu arada aklıma geldi neden şenlik mayıs ayında yapılıyor ? Mesela Temmuz başında bütün okullar (ve iş yerlerinin bir kısmı) tatilken yapılsa katılım daha yüksek olmaz mı acaba ? Belki o zaman 746 kişilik derneğin n tane üyesi (n > 59 ) katılırdı genel kurula ?

Sonunda Oldu


Bir arkadaşımın bilgisayarında müzik dinlerken karşıma çıkan tatsız süpriz. kölelik insanlık tarihinin büyük utançlarından birisidir. Ancak bu millet tarihinin hiç bir döneminde köleleştirilmedi. İnşallah bizim neslimiz ilk olmaz.

Perşembe, Mart 30, 2006

Java ve GTK+

As of v1.4.2, the Java platform supports the GTK+ look and feel, which makes hundreds of existing look and feels available to Swing programs.

Java ve GTK+ ilginç...

Salı, Mart 28, 2006

Teşekkürler Herkese

Bu gün güzel bir gün benim için. 4 gündür evden çıkamama sebep olan gribi atlattım gibi. İşler gene yığılmış beni bekliyor ama olsun en azından sağlıklıyım. Mediko-sosyal doktorumuz Mutlu Bey'e teşekkürler.

Sabah bilgisayarı açtığımda. A.Murat Eren'in bu ibretlik yazısıyla güne başladım. Zaman zaman tartışmalarımız olsada, bu önemli yazının daha fazla insana ulaşmasını sağladığı için içtenlikle teşekürler kendisine.

Akşam eve dönüp gezegene baktığımda gördümki Penguence'nin 4. sayısı çıkmış üstelik içinde benim Bilgi Üniversitesindeki Açık Kaynak Günlerinde kaçırdığım Trusted Computing yazısıyla. Teşekkürler Penguence ekibi ve Bora.

Son olarak baktım ki KDE 3.5.2 çıkmış (zamanın meşhur taktiğini hatırlamadı mı size de ? Türkiye'ye Jupp Derwal getirmişti bu oyun sistemini neyse dağıtmayalım konuyu ) ftpye göz atarken bakayım dedim başka hangi dağıtımların paketleri hazır ? Sadece 3 dağıtım var listede. Biri on milyonlarca dolarlık bütçesiyle SUSE, diğeri dünyanın en çok tercih edilen dağıtımı'nın KDE versiyonu Kubuntu ve son olarak da Pardus. Başta Pardus'daki KDE geliştiricileri olmak üzere bütün ekibe teşekkürler.

Pazar, Mart 26, 2006

Ağustos Böceği ve Karınca

Hasan Pulur'dan. Üstad yine dans ettirmiş kalemini ;)

SONRA bu hikâye değiştirildi...
O kış, hem çok şiddetli hem de uzun sürmüş, karıncanın yiyecekleri de tükenmiş, içecekleri de, yakacakları da... Zavallı yuvasında tir tir titrerken kapı çalmış, açmış. O da ne?
Ağustosböceği arabasına kurulmuş, kürkler içinde, başında kalpak, dizinde kalın battaniye...
Karınca "Bu ne hal?" demeden, ağustosböceği dalga geçmiş:
"Paris'e gidiyorum, diyeceğin var mı?"
"Var git, o La Fontaine denilen herifi bul, uydurduğu hikâyeden utansın!"
* * *
TRAKYA Üniversitesi Tıp Fakültesi Öğretim Üyesi Dr. Funda S. Pala, bu hikâyeyi çeşitli milletlere göre uyarlamış...
Çin uyarlamasında, ağustosböceği açlıktan ölüyor.
Fransız uyarlamasında, ağustosböceği karıncanın kapısını çalıyor. Elinde bavulu, "Kışı geçirmek için Karayibler'e gidiyorum!" diyor.
* * *
TÜRK uyarlamasına gelince...
Karınca bütün yaz çalışır, kış için yiyecek içecek, yakacak depolar. Ağustosböceği ise vur patlasın, çal oynasın yaşar. Kış gelince karınca sıcak yuvasında yaşarken aç kalan ağustosböceği basın toplantısı düzenler:
"Etrafta bunca aç ve üşüyen varken, bu karıncaların vurdumduymazlıklarına dur diyecek yok mu? Durumu kamuoyunun vicdanına sunuyorum."
Televizyoncular, derhal bu haberin üstüne atlayarak, bir yandan aç ağustosböceğinin, öbür taraftan da karnı tok, sırtı pek karıncanın görüntülerini "az sonra" kaydıyla tekrar tekrar yayımlarlar.
* * *
HABER bir anda bomba gibi patlar, onların deyimiyle kamuoyu "şoke olmuştur."
Yeşil Böcekleri Koruma Derneği Temsilcisi, Ali Kırca'nın "Siyaset Meydanı"na çıkarak, yıllardır çektikleri sıkıntının nedeninin renklerinin yeşil olmasından kaynaklandığını ağlayarak, gözyaşlarıyla anlatır.
Şöhretleri Türkiye'yi çoktan aşmış ve "En çok Nobel kazanamayan yazarlar" unvanını kimseye kaptırmayanlar da, Türkiye'deki bu adaletsizliği protesto ederler.
Hatta "30 bin Kürt'ü, 1 milyon Ermeni'yi katledenlerden başka ne beklenir" diye ahkâm keserler. (Bu bizim ilavemizdir. H.P.)
* * *
KONU Bakanlar Kurulu'na da gelir. Başbakan, "Geçmiş hükümetler döneminde ihmal edilen ağustosböceği kardeşlerimizi huzura kavuşturacağız, onların sorunu bizim sorunumuzdur" der.
Reha Muhtar, karıncayı canlı yayına çıkararak, "Reklamını yapmak için, zavallı bir ağustosböceğinin içler acısı durumundan yararlanmaktan utanmıyor musunuz?" diye azarlar ve haşlar.
Ertesi akşam da Fatih Altaylı, karıncayı "Teke Tek" karşısına alır, "Ağustosböceğinden çaldığın yiyecekleri nereye sakladın, öt çabuk!" der, bir güzel döver.
* * *
KARINCA, sonunda çareyi yurtdışına kaçmakta bulur... Ağustosböceği karıncanın yuvasına yerleşir, yiyeceklerine konar, eşyalarının üzerine oturur, gül gibi yaşayıp gider.
Kamuoyu baskısı bir haksızlığı daha önlemiş; adalet, anlı şanlı medyamız aracılığıyla sağlanmıştır.

Perşembe, Mart 16, 2006

Rüya Tabirleri Bölüm #1

İnsan sabahtan akşama kadar bilgisayar düşününce böyle oluyor demek ki... Rüyamda Google Maps Canlı yayına geçmişti. Ben de yukarıdan bulut hareketlerini izliyor istediğimde de zoom yapıp bulut altına inerek çok yüksek çözünürlükte dünyayı seyrediyordum. Şimdi bir yerlerden rüya tabirleri ansiklopedisi falan bulsam bunun da tabiri var mıdır acaba ? Rüyada Google görmek yazdığınız programın 10 sene daha beta aşamasından çıkamayacağına delalet eder gibisinden...

Pazar, Mart 12, 2006

Float to Integer

Buradan Object Pascal dilini tasarlayan güzel kardeşlere sesleniyorum (Türkçe bilmiyorlarsa bu onların sorunu :) ). Madem normal insanlar gibi inttostr() ve benzeri akılcı fonksiyanlar yazabiliyorsunuz da niçin floattoint() gibi basit bir fonksiyon yazmak aklınıza gelmiyor. Tamam hadi dediniz ki float dı double dı uğraşmayalım round() ve trunc() diye iki fonksiyon yazalım, ama insan hiç olmazsa alias olarak koyar bir tane floattostr() yi. Neyse biraz daha ilerleteceğim ki Delphi bilgimi, yarın birgün insanlığı uyarırken Delphi hakkkında bildiklerimden yola çıkıp bilmediklerimi eleştirir konuma düşmeyeyim.

Cuma, Mart 10, 2006

Utanıyorum

Önce kendimden utanıyorum. Keşke Ruby bilgisi genlerimde kodlanmış olarak bulunsaydı da iyi yada kötü kod yazarak geliştirmek zorunda olmasaydım. Evet utanıyorum beni saçma sapan insanlarla aynı kefeye koyan kişilerin blogunda benden bahsedildiği için utanıyorum. Evet utanıyorum bilgisayar bilimlerini öğrenmeye çalışırken kod yazdığım için utanıyorum.

Evet utanıyorum benim yazdığım kodlara şurası da şöyle olabilirdi diyebilecek kişilerin içinden bana haykırmak geldiği için utanıyorum.

Haykırmak benim de içimden geliyor. Bu gereksiz insanların faydalı işler için çalışan o güzel insanları nasıl bir ruh haline getirdiğinden haberdar mısınız ? O saçma sapan insanlar LKD listelerini kirletirken benden başka haykıran olmadığının farkında mısınız ? Ve farkında mısınız bir zamanlar paylaşım kültürü vardı. İnsanlar birbirlerine bağırmadan haykırmadan yardım etmeye çalışırlardı. Yazık çok yazık...

...Ruby Bölüm 2

Hiç hız kesmeden yeni kodlarla devam edelim. Bu programımız da işletim sisteminde çalışan süreçleri takip ederek bir dosyaya yazıyor. ve bu dosyayı belirli aralıklarla okuyor. Eğer ardışık iki okumada bir süreç belirli bir cpu kullanım % sini aşmışsa o süreci öldürüyor. Programın içinde Ruby ye ek olarak awk da kullandım.
def anaProgram
# sistemde calisan sürecler listeleniyor
system("ps -aux")
#log dosyasi indexi
i = 0
# cpu % si ardisik iki okumada bu degerin üzerinde ise process sonlandirilir
olum = 1
# log dosyalari icin yazim araligi (sn olarak)
logla = 2
# cpu calisma kontrolu icin okuma araligi (sn olarak)
kont_zaman = 7
#loglama threadi basliyor
t1= Thread.new { loop {
sleep logla
# calisan süreclere ait butun bilgiler log dosyasina yaziliyor
system("ps aux > process#{i}.log")
# log dosyasi indexi arttiriliyor
i += 1
}
}
# kontrol threadi baslatiliyor
t2= Thread.new { loop {
# ilk okunan process id
pid1 = 0
# ikinci okunan process id
pid2 = 0
# ilk okunan cpu yuzdesi
cpu1 = 0
#ikinci okunan cpu yuzdesi
cpu2 = 0
h1 = []
h2 = []
kontrol = []

sleep kont_zaman
# her son okunan ve bir onceki process log dosyalarından pid ve cpu bilgileri alinarak
# gecici.txt adli dosyaya yaziliyor
system("awk '{ if( NR !=1 ) printf \"%d %f \", $2, $3 } { if( NR !=1 ) printf \"%d %f \\n\", $2, $3 }' process#{i}.log process#{i-1}.log > gecici.txt" )

#gecici.txt dosyasinin herbir satiri line degiskenine ataniyor
File.foreach("gecici.txt") { |line|
sayac = 0
# satir kelimelere bolunuyor
line.split.each { |kelime|
# herbir kelime uygun degiskene ataniyor

case sayac
when 0
pid1 = kelime.to_i
when 1
cpu1 = kelime.to_i
when 2
pid2 = kelime.to_i
when 3
cpu2 = kelime.to_i

end
sayac += 1


}
#atanan degiskenler 2 ayri dizide toplaniyor
h1[pid1] = cpu1
h2[pid2] = cpu2

}
pidx = 0
sayac1 = 0
#birinci okumadan gelen butun surecler taraniyor
while (pidx < 65536)
#birinci okumada olum sinirinin uzerinde oldugu saptanan
#surecler kontrol dizisine atiliyor
if (h1[pidx] != nil && h1[pidx] > olum)
kontrol[sayac1] = pidx
sayac1 +=1
end
pidx += 1

end


#ikinci okumadan gelen butun surecler taraniyor
pidy = 0
while (pidy < 65536)

# ikinci okumadan gelen süreclerin olum sinirinin
# uzerinde olup olmadigi kontrol ediliyor.
if ( h2[pidy] != nil )
if ( h2[pidy] > olum )
#Eger uzerinde ise birinci okumadan gen surec id leri ile karsilastiriliyor
kontrol.each {|kont|

if (pidy.to_i == kont.to_i)
# sureci gercekten oldurmek icin system("kill -9 pidy") satirini aktive edin
puts pidy.to_s + " olecek"
#system("kill -9 pidy")
end
}
end
end
pidy += 1
end

}
}

#threadler baslatiliyor
t1.join
t2.join

end

# ana program cagiriliyor
anaProgram