Sayfalar

Cumartesi, Temmuz 07, 2007

Kırılamayacak Program olurmu ? 2

Bir önceki yazıda verdiğimiz Programı indirin ve inceleyin. Temel olarak kayıt işlemi yapması için gereken her şeye basit de olsa sahip.

Daha önce yazdığımız Anti-Crack yazısını da gözden geçirin

Derlenmiş program makina kodu olarak dosyada İşletim sisteminin belirlediği formatta tutulurlar.

Makina kodunun bire bir eşleniği Assembly programlama dilidir.

Biraz Assembly bilen biri bazı programları kullanarak programınıza müdahele edebilir

Debugger denen programlar Programınızı assembly olarak görmenize ve çalıştırabilmenizi sağlar

Önce Alet edavat toplayalım Bu basit program için sadece OllyDbg yeterli. Tabii pek çok alternatif program var. Mesela IDA için şu resme bir bakınız. Assembly koddan akış diyagramı bile çıkarıyor...

Uzun boylu anlatacak yada anlata bilecek değilim OllyDbg ile programımızı açıyoruz

Programın içindeki bütün stringleri tespit ettiriyoruz

Kayıtlı kullanıcı oldunuz mesajından pogramın bu kısmına zıplıyoruz

Bu mesajı veren koda zıplanan yeri buluyoruz o kısım işte bizim if ile kayıt numarasını kontrol ettiğimiz yer. o kısma bir breakpoint koyuyoruz
programı çalıştırıyoruz Kayıt numarasına rastgele birşeyler yazıp kayıt ol diyoruz. Breakpoint ile program duruyor. aman Allahım o da ne Hesaplanan kayıt no aşikare görülüyor.

Breakpoint koyduğumuz if kısmı var ya orada koşulu tersine çeviriyoruz
yani JE -> JNE çeviriyoruz , Programda sadece 1 bytelık değeri değiştiriyoruz 74 -> 75 oluyur. Program artık rastgele girdiğimiz kayıt numarasını kabul ediyor.

Sonra daha da ileriye gidiyoruz Programın "Hatalı Kayıt No" mesajının adresi yerine Gerçek Kayıt No adresini veriyoruz

Programa artık girdiğiniz yanlış Kayıt No için hata mesajı yerine Gerçek Kayıt No'yu gösteriyor

Programı niçin Nasrettin Hocanın türbesine benzettiğimi ve Artık Anahtarı nerede kaybettiğimizi anladınız sanırım. Artık Anti-Crack yazısını tekrar okuyun. !
Eskiden yazdığım Bir Parçacık kırılması zorlaştırılmış şu programı da inceleyin belki size ilham verir. Keygenme
Bir parçacık deyince yabana atmayın Adamlar Koca muhasebe paketini öylesine ortaya bırakıyorlar bu kadarcık bile uğraşmıyorlar...

Kırılamayacak Program olurmu ? 1



Hoca Nasrettin evinin önünde bir şeyler arıyormuş Komşusu görmüş ve sormuş
- Hayırdır hoca ne arıyorsun ?
- Abahtarımı kaybettim de
Komşu da bir süreliğine hocayla birlikte aramaya başlamış. Bir süre sonra hocaya sormuş
- Hoca buralarda kaybettiğine eminmisin ?
- Yooo ben anahtarı samanlıkta düşürdüm.
- İyide hoca niye burada arıyorsun
- Burası daha aydınlıkta ! ondan
-...
Büyüüüüüüüük emekler sarfederek programımınız yazdık satmak istiyoruz, Müşteride hazır fakat programımızı nasıl muhafaza edeceğiz. Sadece müşterimizin bu programı kullandığından nasıl emin olacağız?

Başlıyoruz diğer programları incelemeye; Programlarda genel olarak yapılan şey Kullanıcıdan bir kayıt numarası isteniyor numara doğru ise program kayıtlı hale geliyor kısıtlamaları kalkıyor, falan filan,...

Büyük bir şevkle başlıyoruz işe bilgisayarın sabit bir bilgisini alıyoruz. Sabit bilgi üzerinde bir takım işlemler yapıp Güvenlik kodu diye bir numara türetiyoruz. Müşterimiz kaydolmak istediğinde kendisinde kullanıcı adı ve Güvenlik kodunu istiyoruz. Güvenlik kodundan müşteri bilgisayarının sabit bilgisini çıkarıyoruz. Kullanıcı adıyla harmanlayıp Kayıt No oluşturuyoruz.
Buyrun Basit Kayıt Programımız hazır : Protect
Artık Programımız satılmaya hazır !... mı Acaba ?

Programlama forumlarında belli aralıklarla
... ile kopyalama koruması nasıl olabilir?
.. Lisans İşlemleri nasıl olacak
... Kırılamayacak program Nasıl olur ?

ve benzeri konular açılır ve başlanır havanda su dövülmeye Hard diskin Fabrika seri numarasını okuyalım, yok bilgisyarın mac adresini okuyalım, gibi öneriler gelir. Başa dönersek Hoca Nasrettin bize diyor ki : Anahtarı nerede kaybettiyseniz orada aramak gerektiğini biliyorsanız, Programı korumanın, Nereden kırıldığını bilmekle başlıyacağını bilmeniz lazım. Gerçekten Programcıların çoğu için bu konu karanlıktır. O yüzden çözümü başka yerlerde ararlar. Farzı muhal programınız kullanıcının cebindeki kimlik nosu okuyabilsede kullanıcının
retinasından kimliğinide alsa yaptığınız şey aydınlık diye samanlıkta kaybettiğiniz anahtarı kapıda aramaktır.
Bilin ki Bu haliyle Programınız Hoca Nasrettin'in türbesi gibi kapısında kilidi ! vardır ve fakat duvarları yoktur...




Perşembe, Temmuz 05, 2007

FGA 1.3.3 çıktı

Bizim Fatih Presta FGA – Fast Genetic Algorithm'nın yeni versiyonunu çıkarmış
Epey bir yenilik ve bir kılavuz eklenmiş.
FGA da neymiş diyorsanız bakınız 1 2

Pazartesi, Temmuz 02, 2007

YSA ile Tic-Tac-Toe

Orjinal ismiyle Tic-Tac-Toe yada benim kullandığım adıyla OXO bilmeyeniniz yoktur herhalde
Bu oyunu oynayacak bir YSA program yazmaya çalıştık.

Rastgele Eğitimli
1) YSA Dizaynı : YSA mız girdi olarak Tahtanın durumunu alıp Çıktı olarakta Hamlesini yaptığı Tahtanın durumunu veriyor. Yani (3x3) 9 giriş ve 9 çıkış değeri var Bilgisayrın hamleleri 1 İnsanın hamleleri -1 olarak kaydediliyor. Boş hücreler 0 değeri içeriyor.

2) Eğitim verilerini hazırlamak : Bu iş için bir programcık yazdım . Bilgisayar ve insan adına sırayla boş hücrelere rastgele hamle yapılıyor. Bilgisayarın kazandığı oyundaki hamleler kaydediliyor. Bu kayıtlardanda eğitim verilerimizi oluşturuyoruz. - oxo.dat -

3) Eğitim : Allaha şükür FannTool'u yazmışım. Eğitim işini çeşitli seçeneklerle oradan yapıp oxo.net diye kaydediyoruz.

4) GUI : OXO oynamak için bir program yazıyoruz. pek tabii ki CodeBlocks IDE si kullanılarak ve FLTK GUI kütüphanesiyle.

Sonucu görmek için bir deneme yapıyoruz. Pek de memnun olamıyoruz. Acaba neden diye şöyle bir düşünüyoruz. ve çünkü eğitim için kullandığımız veriler zeka içermiyor ki programımız zeki davransın. Zekice oynan bir oyunların verileri olmalı ki YSA mız Zekice oynaya bilsin. Böyle bir veri oluşturmak epey bir vakit alacaktı bende vazgeçtim

Böl Öğren
1) Sonra insanın oyunu nasıl oynadığını düşündüm. Insan önce kuralları öğreniyor Nasıl yeneceğini ve nasıl yenilmeyeceğini öğrenip ona göre hamle yapıyor.
2) OXO oyununda nasıl yenersiniz ? Satırlar yada Sutunlar yada Çapraz kutularda 2 tane işaretiniz varsa boş kutuyu doldurup 3 sayısına ulaşarak yenersiniz
3) OXO oyununda nasıl yenilmezsiniz ? Satırlar yada Sutunlar yada Çapraz kutularda 2 tane rakip işareti varsa boş kutuyu doldurup 3 sayısına ulaşmasını engellersiniz
4) Olay Üçlü hücreler üzerinde olduğunu öğrendik. iki adet YSA ya ihtiyacımız var. ilki Hangi 3 lü gurup daha önemli olduğunu tespit ediyor -value - İkinci YSA nasıl Hamle yapacağına karar veriyor -hamle-

5) Hücreleri önem sırasının tespiti için 3 giriş 1 çıkış kullanır. çıkış değeri olarak bir değer biçiyoruz mesela
1 1 0 ...... 1
-1-10 ...... 0.8

gibi çok fazla alternatif olmadığından elle hazırlıyoruz eğitim versini -value.dat- yine FannTool kullanılarak eğitip kaydediyoruz YSA yı -value.net-

6) En önemli olan Hücre gurubunu aldık bu gurup üzerine hamle yapmak için 3 giriş ve hamla yapılmış haliyle 3 çıkış mesela
1 1 0 -> 1 1 1
-1-10 -> -1-11

gibi çok fazla alternatif olmadığından yine elle hazırlıyoruz eğitim versini -hamle.dat- yine FannTool kullanılarak eğitip kaydediyoruz YSA yı -hamle.net-

7) Daha önce yazdığımız arabirime ekleyiveriyoruz. İlk metoda göre oldukça başarılı olduğunu görüyoruz.

Sonuç :
  • Sonuca bakıp İlk metoda haksızlık etemeyin suç eğitim verilerinde yoksa ikinci metodun hamle kısmındada aynı metod kullanılıyor Temporal Difference Learning bakınız tavlay oynayan versiyonu TD-Gammon
  • Sadece Verileri değiştirip tekrar eğitip aynı isimle kaydederek de programı geliştire bilirsiniz
  • Indirmek için buradan buyurun : Download oxo_game
  • Her türlü fikir, öneri ve hata bildirimlerinizi memnuniyetle bekleriz

Perşembe, Haziran 21, 2007

Fann GSoC da

Fann kütüphanesi Google Summer of Code ile zenginleşmeye başlıyor


VFANN (Vector Fast Artificial Neural Netwoks)


The goal of this project is to develop a vector version of FANN which can take advantage of modern CPUs like those implementing SSE or similar technologies.
Another goal of the project will be to add utility apps/functions/scripts in order to make using FANN easier. A fann_trainer script or application will be in good shape at the end of the project and will be capable of training different kind of network with appropriate algorithms.
If projects for a FANN GUI are accepted I'll collaborate with the other student in order to make the utilities well integrated.

Vektörlerle YSA oluşturulacak sebebi ise modern işlemcilere daha uygun olması

Self-Organizing Maps and Growing Neural Gas (GSoC)

Competitive artificial neural networks have increasingly become popular for visualization and clustering of the large amounts of data existing in many scientific fields. They are also used for pattern recognition, image analysis, and many other applications. This project will add Self-Organizing Maps and a similar dynamic algorithm called Growing Neural Gas into the FANN library. The implementation will be coded so as to support extensions such as adding multiple learning rules and neighborhood functions, and include features such as calculation of quantization error and other metrics.


Self-Organizing Maps ve bir benzeri sayılabilecek Growing Neural Gas tipinde YSA lar da FANN kütüphanesine dahil edilecek.



Discrete-Time Recurrent Networks (GSoC)
Recurrent networks are an important feature currently missing from the Fast Artificial Neural Network (FANN) library. Not only can they be used to model new problems, but they also better mimic the connectivity of biological neurons. For this project, the FANN library will be extended modularly to add support for discrete-time recurrent networks. The analogues of the feedforward training algorithms which FANN already supports -- recurrent backpropagation and recurrent cascade-correlation -- will be implemented. Unique to recurrent networks, Long Short-Term Memory will also be implemented to provide a method which can learn to store information over long time periods faster than recurrent backpropagation. This solution will include documentation, test cases, and a tutorial.

yine değişik tipte bir YSA FANN kütüphanesine dahil edilecek.

Conjugate gradient training methods support (GSoC)

Conjugate gradient algorithms are popular training methods in artificial neural networks. Due to speed and average memory requirements they are often good choice especially for large networks. This project consists of implementation of three such methods: Fletcher-Reeves, Polak-Ribiere and Powell-Beale.

Conjugate gradient öğrenme algoritmalarından Fletcher-Reeves, Polak-Ribiere ve Powell-Beale ekleniyor


OpenOffice.org Spreadsheet Plugin (GSoC)

Artificial neural networks have proved to be extremely helpful tool for various kind of tasks, from basic pattern recognition to data processing. As there are many tools for working with neural networks, most of them is either very expensive or requires programming skills to write appropriate programs that create and train networks. As FANN proved to be the de facto standard library in the FLOSS world for neural computation, its usage is uncomfortable and counterintuitive for many people because of the lack of a GUI. (Commercial Mathematica bindings are not considered because of the price of the product) Creating OpenOffice FANN plugin may help to widen even more the popularity of the library and provide a means of performing neural calculations to people without necessary programming background.

Open Office tablolama programı ile FANN kütüphanesinin kullanabilmek için eklenti


Native GUI (GSoC)
Using QT became possible to have also a real cross-platform native GUI, especially with QT4 (windows, linux, macOs). Goal: My objective is to create a user-friendly cross-platform native GUI using Qt4 libraries.

Qt kütüphanesi ile yazılması planlanan FANN Kullanıcı arabirimi benim yazdığım FannTool benzeri bir program

Salı, Haziran 19, 2007

Levlake Mazharına 4

EY SEVGİLİ

Senin kalbinden sürgün oldum ilkin
Bütün sürgünlüklerim bir bakıma bu sürgünün bir süreği
Bütün törenlerin şölenlerin ayinlerin yortuların dışında
Sana geldim ayaklarına kapanmaya geldim
Af dilemeye geldim affa layıkolmasam da
Uzatma dünya sürgünümü benim
Aşkın bu en onulmazından koparıp
Bir tuz bulutu gibi
Savuran yüreğime
Ah uzatma dünya sürgünümü benim
Nice yorulduğum ayakabılarımdan değil
Ayaklarımdan belli
Lambalar eğri
Aynalar akrep meleği
Zaman çarpılmış atın son hayali
Ev miras değil mirasın hayaleti
Ey gönlümün doğurduğu
Büyüttüğü emzirdiği
Kuş tüyünden
Ve kuş sütünden
Geceler ve gündüzlerde
Insanlığa anıt gibi yükselttigi
Sevgili
En sevgili
Ey sevgili
Uzatma dünya sürgünümü benim

Bütün şiirlerde söylediğim sensin
Suna dedimse sen Leyla dedimse sensin
Seni saklamak için görüntülerinden faydalandim Salome'nin Belkıs'ın
Boşunaydı saklamaya çalışmam öylesine aşikarsın bellisin
Kuşlar uçar senin gönlünü taklit için
Ellerinden devşirir bahar çiçeklerini
Deniz gözlerinden alır sonsuzluğun haberini
Ey gönüllerin en yumusağı en derini
Sevgili
En sevgili
Ey sevgili
Uzatma dünya sürgünümü benim

Yıllar geçti sapan ölümsüz iz bıraktı toprakta
Yıldızlara uzanıp hep seni sordum gece yarılarında
Çatı katlarında bodrum katlarında
Gölgendi gecemi aydınlatan eşsiz lamba
Hep Kanlıca'da Emirgan'da
Kandilli'nin kurşuni şafaklarında
Seninle söyleşip durdum bir ömrün baharında yazında
şimdi onun birden bire gelen sonbaharında
Sana geldim ayaklarına kapanmaya geldim
Af dilemeye geldim affa layık olmasam da
Ey çagdaş Kudüs (Meryem)
Ey sırrını gönlünde taşıyan Mısır (Züleyha)
Ey ipeklere yumuşaklık bağışlayan merhametin kalbi
Sevgili
En sevgili
Ey sevgili
Uzatma dünya sürgünümü benim


Dağların yıkılışını gördüm bir Venüs bardağında
Köle gibi satıldım pazarlar pazarında
Güneşin sarardığını gördüm Konstantin duvarında
Senin hayallerinle yandım düşlerin civarında
Gölgendi yansıyıp duran bengisu pınarında
Ölüm düşüncesinin beni sardığı şu anda
Verilmemiş hesapların korkusuyla
Sana geldim ayaklarına kapanmaya geldim
Af dilemeye geldim affa layık olmasam da
Sevgili
En sevgili
Ey sevgili
Uzatma dünya sürgünüm benim

Ülkendeki kuşlardan ne haber vardır
Mezarlardan bile yükselen bir bahar vardır
Aşk celladından ne çıkar madem ki yar vardır
Yoktanda vardan da ötede bir Var vardır
Hep suç bende değil beni yakıp yıkan bir nazar vardır
O şarkıya özenip söylenecek mısralar vardır
Sakın kader deme kaderin üstünde bir kader vardır
Ne yapsalar boş göklerden gelen bir karar vardır
Gün batsa ne olur geceyi onaran bir mimar vardır
Yanmışsam külümden yapılan bir hisar vardır
Yenilgi yenilgi büyüyen bir zafer vardır
Sırların sırrına ermek için sende anahtar vardır
Göğsünde sürgününü geri çağıran bir damar vardır
Senden umut kesmem kalbinde merhamet adlı bir çinar vardır
Sevgili
En sevgili
Ey sevgili



Sezai Karakoç

Pazartesi, Haziran 18, 2007

Bakan Bilgisayar - Gören Bilgisayar



Zeka Hakkında Kıssalı Yazılar - 4 *

Vakti zamanında padişahın birinin ahmak bir oğlu varmış. Padişah belki faydası olur umuduyla oğluna gizli bilimlerin öğretilmesini emretmiş. Memlektin en güzide alimlerinden dersler almış. Gel zaman git zaman icazet alacak dereceyede ulaşmış.

Padişah oğlunu imtihan etmek istemiş avcuna akik taşından bir yüzük alıp, oğlunu çağırtmış.
- Ey oğlum yıllarını verdin ve gizli ilimleri öğrendin
- Evet babacığım
- şimdi seni imtihan edeceğim.
- Evet babacığım
- Avcumun için de bir şey saklı bil bakalım ne
- Oğlan marifetini göstermeye başlar
- Avcunuzun içindeki şey yuvarlaktır babacığım
- Evet
- Ortası deliktir babacığım
- Eveeet
- Taştan yapılmıştır babacığım
- Eveeeeet
der padişah heyecan içinde ve sorar
- peki nedir o ?
Oğlan başlar sesli düşünmeye
- Yuvarlak ortası delik taştan, Tamam buldum babacığım değirmen taşı !

Padişahın ahmak oğlu öğrendiği gizli bilimlerin marifetiyle Padiaşın avcunun içine bakmıştır ve fakat Görememiştir. Bakmak ve görmek farklı farklı şeylerdir. Görmek baktığından gereken bilgiyi çıkaramaktır.

Günümüzde Bilgisayarlar da bakabiliyorlar fakat göremiyorlar. Bir kamera vasıtasıyla görüntüler Renk Noktacıklarından oluşan Matris Şeklinde alınabiliyor. Yani bigisayarda görülecek şeyin Renk Noktalarından oluşan bu bir matris den çıkarılması gerekiyor. Genel bir Yapay görme sistemi mevcut değil zaten şu an itibarıyla Genel bir Yapay zeka sistemi de yok. Yine de Bilgisyarlı Görme için sayısız çalışma yapılıyor. Sınırlandırılmış yönlendirilmiş sistemler hazırlanıyor. Genel Yapı itibarıyla bu sistemler Şöyle çalışıyorlar

Matris Görüntü -> Görüntü İşleme -> Yapay Zeka -> Bilgi


Mesela Elimizde geniş bir Nota arşivi bulunsun, Biz de bunu elektronik ortama geçirmek istiylelim. Kolaylıkla Notaların yazılı olduğu kağıtlar taratılarak görüntü olarak bilgisayara aktarılır. Bilgisayar artık Notalara bakmış olur ! Peki Bilgisayar Notaları nasıl görecek ?
Bunun için Bir Optik Nota Okuyucu** projesi yapmamız gerekir. Basitçe anlatırsak;
  1. Taranmış Notaların görüntüsü alınır. - Martis Görüntü -
  2. Notaların Daha belirgin olması için işleme tabi tutulur - Görüntü İşleme -
  3. Portrelerin Yerleri Belirgenleştirilerek Tespit edilir. - Görüntü İşleme -
  4. Notaları Portre üzerinde tanıyacak bir Örüntü tanıma sistemi oluşturulur - Örüntü Tanıma Yapay Zeka -
  5. Yerleri tespit edilen Portreler Notaları okunmak üzere Örüntü tanıma sistemine verilir.
  6. Okunan Notalar İstenen şekilde kaydedilir. Bilgisyar artık notaları görmüştür.

Görüntü işleme Yapay Zekanın bilgi çıkarabilmesini mümkün kılan ara bir safhadır. Fakat Sizinde tahmin edeceğiniz gibi Bu işin en Önemli safhası Yapay Zeka safhasıdır. Padişahın ahmak oğlunun durumuna düşmemek lazım..

* Zeka Hakkında Kıssalı Yazılar - 1 2 3 Seriyi hatırlatıp, tekrar başlanmasına vesile olan Volkan Salma 'ya ithaf olunur

** Yapay Zeka konusunda bizler pek çok projeye ihtiyaç duyuyoruz, ama görebildiğim kadarıyla Bitirme tezi veren öğrenciler hariç bu konularda fazla çalışan yok. Veritabanı programlarıyla köşeyi dönen vede çeşmenin başına kurulup ufacık yazılım güncellemelerinden Çuvalla para götüren yazılm firmları, alın bir kaç elemanda bu işler için, Çalışsınlar bu konularda size fazla bir zararları olmaz. Hatta başarılı olurlarsa rakiplerinizin kolaylıkla el atamıyacakları bir işe sahip olursunuz.

Cuma, Haziran 01, 2007

FannTool yazılmaya başladı !

FANN kullanımı hakkında yazdığım dizi sonunda farkına vardım ki nihai programı yazmadan önce YSA nın yapısıyla ilgili pek çok parametre ayarı yapmak gerekiyor. fannExplorer diye bir tuhaf program var ama benim hoşuma gitmedi .

Neyse efendim bende kollarımı sıvayıp basit bir program yazdım. FannTool henüz kodunu eklemedim. Şimdilik ön görücüye çıkarıyorum.
Windows için buyrun indirin FannTool
Deneyip fikirlerinizi bildirirseniz sevinirim

Cumartesi, Mayıs 26, 2007

Gök ekini biçmiş gibi...

Miskin âdem oğulları,
Ekinlere benzer gider.
Kimi biter kimi yiter,
yere tohum saçmış gibi.

Bu dünyada bir nesneye,
yanar içim göynür özüm.
Yiğit iken ölenlere,
Gök ekini biçmiş gibi.


22. Mayıs 2007 sıradan bir iş günüydü. İş yeri servisimizle yine her zamanki yolumuzdan şehre döndük. Son Durak Ulustu. Herşey sıradandı ta ki Saat 19 da Bentderesinde hemen bizim önümüzde Polis yolu kapatana kadar...
Orada indim ve yukarıya doğru yürümeye başladım. Ambulanslar bir bir peşine geçmeğe başladı. Ve gersini biliyorsunuz....

Her iş günü dönüşü indiğim yer, Dükkanların da alışveriş yaptığım veya vitrinlerine bakarak oyalandığım yer. Karşısındaki -Zincirli - Camide namaz kıldığım yer....

Ve Gök ekinler ; Damatlığını almaya gitmiş birisi, bir diğerinin iş yeriymiş, bir diğeri sadece oradan geçiyormuş, bir diğeri, bir diğeri, bir diğeri ...


Eğer dünya ebedî olsaydı, insan içinde ebedî kalsaydı ve firak ebedî olsaydı, elîmâne teessürat ve meyusâne teellümâtın bir mânâsı olurdu. Fakat madem dünya bir misafirhanedir; vefat eden ... nereye gitmişse, siz de, biz de oraya gideceğiz. Ve hem bu vefat ona mahsus değil, umumî bir caddedir. Hem madem mufarakat dahi ebedî değil; ileride hem berzahta, hem Cennette görüşülecektir. "El-hükmü lillâh," demeli. "O verdi, o aldı. Elhamdü lillâhi alâ külli hal" deyip sabırla şükretmeli.
gibi teselliler de olmasa, ne yapardık bilmem.

Ölenlerimize rahmet, yaralılarımıza acil şifa, Bu musibetinde bölünüşlüğmüze* ilaç olması duasıyla...

Naçar kalacak yerde
Nagâh açar o perde
Derman eder ol derde
Mevlâ görelim neyler
Neylerse güzel eyler


* Ne demişler "Hakikate nasihat ile seve seve gelmeyenleri, musibet döve döve getirir. "

Çarşamba, Mayıs 23, 2007

FANN Kullanımı 3 Uygulama

Bir önceki yazımızda bahsettiğimiz gibi bu yazımızda bir uygulama yapacağız. Sizden gelmesi beklenen değerli fikirler gelmeyince mecburen abuk bir konuda uygulma hazırlamak zorunda kaldık. Güneş lekeleri

Güneş lekeleri , Güneş'in yüzeyinde (ışık yuvarda), çevresine oranla daha düşük sıcaklığa sahip olan, ve mıknatıssal etkinliğin gözlemlendiği bölgelerdir. Her ne kadar 4000-4500 K sıcaklık ile son derece parlak olsalar da, çevrelerinin 5778 K'de olması, karanlık bölgeler olarak görüldüklerinden bu ismi alırlar.


Neyse işte insanların işi gücü yok bu lekeleri sayıp kaydını tutmuşlar.Biz de bu verileri kullanacağız.

Öncelikle Neural networks for financial time series prediction isimli dosyaya bir göz atın. O yazıda detaylarıyla anlatıldığı gibi Verileri aldığımız haliyle kullanmayız, ön işlemeden geçirmeliyiz. ( 3.4 Design of ANNs in finance kısmı )

Güneş lekelerinin (2006 - 1980) aralığında aylık ortamalarını raw.dat isimli dosyaya her satır 1 değer olarak kaydedildi. Öncelikle verileri YSA da kullanabilmek için - Kullandığınız aktivasyon fonksiyonuna göre - (0 , 1) yada ( -1 , 1 ) değerleri arasına çekiyoruz Normalizasyon. Bir ay sonraki ortalama güneş lekesi sayısını bulmak için önceki 24 ayın değerleri kullanılıyor. 2 adet gizli katman kullanılıyor yani YSA mızın yapısı girişten çıkışa doğru
24 -> 16 -> 7 -> 1

şeklinde oluyor. Peki Bu değerleri Nasıl belirliyoruz ? derseniz Net bir cevabı yok.* Genellikle Giriş ve çıkış düğüm sayısı bellidir. Saklı katman yada katmanlardaki düğüm sayıları YSA nın eğitim performansına göre seçilir.

Programımız
LoadRawData("raw.dat");
Normalize();
WriteTrainData(24,1,"sunspot.dat");
Train();
Test();
Run();

dan ibaret
Açıklamalarına gelince
  • LoadRawData : Ham verileri ismi verilen - Veri dosyasında Her satır 1 veri içeriyor- text dosyasından okuyup data dizisine aktarıyor

  • Normalize : Diziye atılmış verileri -0.8 ile 0.8 arsına çekerek Normalize ediyor

  • WriteTrainData : Normalize edilmiş verileri alıp FANN kütüphanesinin kullanabileceği veri dosyası olarak kaydediyor
  • Train : YSA yı Eğitiyor.

  • Test : test.dat dosyasındaki verileri kullanarak Eğitilmiş YSA'yı test edip sonuçta ulaşılan Hatadeğerini bildiriyor

  • Run : Verilerimizden Rasgele 10 adedini kullanarak YSA çalıştırılıyor ve YSA nın hesapladığı ve gerçek değeri birlikte gösteriyor

Şimdi gelelim benim yapmadığım fakat aslında yapılması gereken şeylerden bazılarına

1) Veri sayısı yeterince büyük olması lazım
2) Bu veriler Eğitim, Test ve Kontrol için 3 parçaya ayrılıp her işlem için kendine ayrılan veri kulanılması lazım.


Sonuçta yazılan proje : SunSpot

* bakınız NN_FAQ Bu YSA için yazılmış Sıkça Sorulan Soruları İndirmenizi ve incelemenizde tavsiye ediyorum FAQ. Kısmetse YSA da uygun dizayn için test programı yazmayı da düşünüyorum.

Cuma, Mayıs 18, 2007

Yakşıklı Fotoğrafım !




SetEnaniyet(KAF_DAGI);
Şenlikteki fotoğraflara göz gezdiriyordum ki BEN'im o yakışıklı fotoğrafıma rastaldım. Sizleri de bundan mahrum bırakmamak için buraya alıyorum. Niçin bu açıdan çekilmiş diyorsanız diğer açılardan fotoğraf çekmeğe cüret edildiğinde fotoğraf makinaları zarar görür!
Mesela Bu fotoğrafı çektirmek için neler çektim bir bilseniz ! Pek çok güzelim makina heder oldu. En sonunda Özel filitreler kullanarak ancak çektirebildim...
ReleaseEnaniyet();

Not : Bu yazımı Enaniyetli Müdür KÖA 'a ithaf ediyorum. ;)

Perşembe, Mayıs 10, 2007

Padişahın fakirhanemize teşrifini bekliyoruz

Vâsıl olmaz kimse Hakk’a cümleden dûr olmadan
Kenz açılmaz şol gönüle tâ ki pürnûr olmadan
Sür çıkar ağyarı dilden tâ tecelli ede Hakk
Padişah konmaz saraya hâne mamur olmadan
Şemsettin Sivasi (k.s.)

cümleden olmamıza, gönülümüzün pürkusurluğuna, ağyar ile meşgul olmasına rağmen
Padişahın fakirhanemize teşrifini bekliyoruz. - yıllardır -
Başka kapı yok

Senin kapından başka hangi kapıya gideyim? Hangi kapı var? Senden başka Rab yok ki dergâhına gidilsin. Senden başka hak mâbud yoktur ki ona iltica edilsin.
On Yedinci Lem'a

Çarşamba, Mayıs 09, 2007

FANN Kullanımı 2

Önce Hatırlayalım Neler yapmıştık ; YSA oluşturduk, Eğittik, Çalıştırdık ve tekrar kullanabilmek için kaydedip yüklemeyi öğrendik
Eveet çooooook ! yoğun istek üzerine devam ediyoruz

5) Test Etmek : Eğittiğimiz YSA yı test etmek gerekmektedir Eğitim için kullandığımız verinin % 10 - 30 arasındaki bir miktarda veriyle YSA test edilir ve Hata faktörüne bakılır. Öncelikle aynı Eğitim verisi için kullandığımız dosya yapısında bir dosya hazırlanır ve fann_read_train_from_file fonksiyonuyla yüklenir. Bundan sonra tek yapacağınız fann_test_data fonksiyonunu çağırmak. işi bitincede fann_destroy_train ile hafızdaki yerleri boşaltmak

Mesela :
struct fann_train_data *dt;
dt=fann_read_train_from_file("test.dat");
ann=fann_create_from_file("aproje.net");
fann_reset_MSE(ann);
fann_test_data(ann,dt);
printf("\n Test Sonucu MSE : %f \n\n", fann_get_MSE(ann) );
fann_destroy_train(dt);

MSE (Mean Square Error) dediğimiz şey ortalama karesel hata yani bizim YSA mız yaptığı - Eğitim yada Test - işte istenenle hesaplanan değerler arasındaki - Hata - farklarının karelerinin ortalaması gibi birşey

void fann_reset_MSE(struct fann *ann)
MSE değerini sıfırlar

float FANN_API fann_get_MSE(struct fann *ann)
MSE değerini okur


6) Diğer Faydalı Fonksiyonlar

Eğitim Algoritmalarını ayarlayanlar
enum fann_train_enum fann_get_training_algorithm(struct fann *ann)
Kullanılan Eğitim metodunu okur
void fann_set_training_algorithm(struct fann *ann,enum fann_train_enum training_algorithm)
* Eğitim metadunu değiştirir.

Eğitim metodları ise FANN_TRAIN_INCREMENTAL, FANN_TRAIN_BATCH, FANN_TRAIN_RPROP, FANN_TRAIN_QUICKPROP olarak 4 çeşittir. Metodların detayı için kitaplara yada google müracaat edilsin

* Öğrenme hızını ayarlayanlar

float fann_get_learning_rate(struct fann *ann)
kullanılan öğrenme hızını döndürür.
void fann_set_learning_rate(struct fann *ann, float learning_rate)
Öğrenme hızını ayarlar. Öğrenme hızı için geçerli Normal Değer 0.7
Bu fonkisyonları FANN_TRAIN_RPROP metodu için kullanamıyoruz

* Aktivasyon Fonksiyonlarını Ayarlayanlar
Daha önce geçmişti
Gizli katman için
fann_set_activation_function_hidden(
struct fann * ann,
enum fann_activationfunc_enum activation_function
)
Çıkış katamanı için
fann_set_activation_function_output(
struct fann * ann,
enum fann_activationfunc_enum activation_function
)

kullanılır

Aktivasyon fonksiyonlarıda ; FANN_LINEAR,FANN_THRESHOLD,FANN_THRESHOLD_SYMMETRIC,FANN_SIGMOID, FANN_SIGMOID_STEPWISE, FANN_SIGMOID_SYMMETRIC, FANN_GAUSSIAN, FANN_GAUSSIAN_SYMMETRIC, FANN_ELLIOT, FANN_ELLIOT_SYMMETRIC, FANN_LINEAR_PIECE, FANN_LINEAR_PIECE_SYMMETRIC gibi pek çok çeşit var detayı için bakınız

Bu yazının devamı olacak mı ? Kısmet, yazının devamı olarak basit bir uygulama yazmayı düşünüyorum. Şu an için aklımda bir uygulama yok fikrilerinize açığım. Hatta "Şu konuda elimde datalar var onları kullanabilirsiniz " derseniz büyük kolaylık olur.

Pazartesi, Mayıs 07, 2007

6. Linux ve Özgür Yazılım Şenliğinin ardından

Bütün bir yıl toz toprak içinde çalışan birisi için ODTÜ mesire yeri gibi geliyor bana. İnsanın içi açılıyor. Neyse efendim sözü fazla uzatmayalım. Pazar sabahı çıktım yola saat 9 da ODTÜ ye varmıştım.

Bu senede aynı geçen seneki gibi katılım pek fazla değildi. önce "OpenCV ile görüntü işleme ve bilgisayarlı görme" konulu seminere katıldım. Genel bir giriş anlatıldığından pek yeni birşey öğrendim diyemiyeceğim fakat Linux altında çalışmasını görmüş oldum -itiraf ediyorum Ben hala Linuxa kurmayı denemedim -

Bu seminerin çıkışındada İnternetten aşina olduğum volkansalma ve musaulker ile tanışma fırsatı oldu. Tabiii arkadaşların hayal kırıklığına uğradığının farkındayım. :) Senin Neren Blue Neren Kid ? der gibiydiler. Bu görüşmeye istinaden Profilimde düzeltme yaptım. Yarın öbür gün tanışırsak şaşırmayın.

Daha sonra "Açık Kaynak Kodlu Kütüphanelerle 3B Oyun Motoru Yazmak" konulu seminere girdim. OpenCv ye nazaran ilgi büyüktü. Kafama takılan "Niye hazırda olan Oyun motorları yerine yenisi yazılıyordu ?" sorusuna çoook güzel bir cevap aldık Hoca zoruyla oluyormuş. 4 Öğrenci arkadaş Proje olarak aldıkları bu iş için 2 kez bütün yazdıklarını çöpe atıp 3. de teslim etmişler. Hazır Oyun motorlarındanda söz ettiler tabi. Irrlicht den bahsetmediler. Niye diye de soramadım acelem vardı çıkmak zorundaydım malum Hastane ziyaret saati.

Ne "Gömülü Linux Geliştirme" konulu seminere katılabildim Ne volkansalma ve musaulker le tekrar görüşme imkanım oldu. Bu senede kısmet bu kadarmış.

Son olarak Gönül ister ki katılım daha fazla olsun yine de kimsenin moralini bozmasına gerek yok. Pazar sabahı yatmak yerine buraya gelecek azimde ve şevk de arkadaşlar var ya İnsana ümit veriyor.

Bu Ülkenin Farkındamısınız !

Takib ettiğim forumların off topic yada sohbet kısımlarında rastlıyorum . Siyaset üzerine olan konularda başlıyor bir kapışma. Pek çok konuda hem fikir olan, gerektiğinde biribirlerinin yardımına koşan bu kişilere neler oluyor da böyle davranıyorlar ?
Bu sorunun cevabı için Cemil Meriç'e müracaat etmek lazım. Peki neler diyor Cemil Meriç

Pamuk ipliğinden biraz daha sağlam tek bağ: düşünce birliği. da rüzgarın her an tehdit ettiği bir kandil. Düşünce birliği, düşünen insanlar arasında olur. İnsanların kaçta kaçı düşünür? Düşünenlerin kaçta kaçı karşılaşır ve açılır birbirine.

Internet alemindeki sevyeli forumlar işte bence düşünen insanların karşılaşıp birbirlerine açılacağı yerelerdir. Oysa düşünce yerini slogana bırakıyor. Alın size kör döğüş sloganları her kesim kullanabilir
.... Elden gidiyor
Kahrolsun ... Yaşasın ...

üç noktayı kendi görüşünüze göre doldurup savurun düşmanın ! yüzüne .

Ellerinde birer mühür "bizdensin, bizden değilsin, solcusun, sağcısın"* gibi bir tespitte bulunmak gibi bir görevleri de vardı bazılarının. Siz kimdiniz, onlar kimdi? İki tarafta bu ülkenin insanlarıydı ama ya ideolojiler: "Sol-Sağ" çılgın sevgilerin ve şuursuz kinlerin emzirdiği iki ifrit.
oysa ki

karanlık kinlerin birbirine saldırttığı çılgın sürülerin savaş çığlığıdır slogan, ilkelin budalanın papağanın ideolojisidir. düşünce ile çığlık bağdaşmaz. şuurun sesi çığlık değildir. yabani bağırır. medeni insan konuşur.
ve Milleti biri birine düşüren aydınlarımızada bir çift lafı vardır Cemil Meriçin
her dudakta aynı rezil şikayet: yaşanmaz bu memlekette! neden? efendilerimizi rahatsız eden bu toz bulutu, bu lağım kokusu, bu insan ve makine uğultusu mu? hayır, onlar türkiye'nin insanından şikayetçi. insanından, yani kendilerinden. aynaya tahammülleri yok. vatanlarını yaşanmaz bulanlar, vatanlarını yaşanmazlaştıranlardır. türk aydını, kitab-ı mukaddes'in serseri yahudisi... hangi türk aydını? kaçanlar ne türk, ne aydın. bu firar bir kabil** kompleksi.
Yıllar evvel -tekrar tekrar - okuduğum Bu Ülke 'yi Bütün arkadaşlara tavsiye ediyorum.
Denize atılan bir şişe her kitap. Asırlar, kumsalda oynıyan birer çocuk. İçine gönlünü boşalttığın şişeyi belki açarlar, belki açmazlar.

Açın bu şişeyi Bu ülkenin farkında olmak için.


* Ben tarihden "Türkler Hilal taktiğiyle pek çok orduyu yendiğini " okudukça Hayret eder dururdum. Nasıl oluyorda aynı taktiği yiyorlar diye ? Şimdi düşünüyorumda Türklerinde bu konuda Diğer milletlerden bir farkı yok. Ta Hunlardan beri Türkleri Bölerek yıkıyorlar...
Doğu - Batı Hun, Doğu - Batı Göktürkler, şimdilerde devam ediyor Doğu - Batı taraftarları , İlerici -Gerici , Sağcı-Solcu, Cumhuriyetçi -Demokrat ,...
Bu böyle sürüp gider Ne demiş İstiklal Marşımızın şairi
Tarih tekerrürden ibarettir derler İbret alınsaydı hiç tekerrür mü ederdi?


** Kabil kardeşi Habili öldüren İlk Katil...

Salı, Mayıs 01, 2007

6. Linux ve Özgür Yazılım Şenliği




Linux ve Özgür Yazılım Şenliği ve Konferansı
3-6 Mayıs 2007
ODTÜ KKM, Ankara


Linux Kullanıcıları Derneği'nin düzenlediği ve Ortadoğu Teknik
Üniversitesi'nin destek verdiği 6. Linux ve Özgür Yazılım Şenliği 3-6
Mayıs 2007 tarihleri arasında ODTÜ Kültür ve Kongre Merkezi'nde
yapılacak. Bu sene ilk kez şenlikle birlikte Linux ve Özgür Yazılım
Konferansı'nı da gerçekleştirilecek.

Programdan Dikkatimi Çeken Konular

  • Qt ile Programlama İşbaran Akçayır
  • Python ve Web 2.0 Gökmen Göksel
  • Özgür Yazılım Lisanslarının Türkiye'deki Geçerliliği ve Yasal Süreç Mehmet Ali Köksal
  • Java programcıları için Pardus Mehmet D. Akın
  • Panel: Özgür yazılım ve Yasal Konular
  • PostgreSQL Toplantısı Rails İle Ağ Uygulamaları Geliştirimi Murat Arif Çeliker
  • Panel: Kurumların Linux ve Özgür Yazılımlara Geçişi
  • Yeni Başlayanlar için: Linux nedir Harun Şeker
  • Nasıl Pardus Geliştiricisi Olunur? A. Murat Eren
  • Kurumsal Linux Uygulamaları Mustafa Karakaplan
  • Linux ve Pardus Deneyimlerim Mehmet Sucu
  • Panel: Özgür Yazılım Para Kazandırır mı?
  • Python ile Python gibi Kod Yazma Gürer Özen
  • OpenCV ile görüntü işleme ve bilgisayarlı görme İsmet Yalabık
  • Tembel Penguenlere Çekirdek Programlama Faik Uygur
  • Açık Kaynak Kodlu Kütüphanelerle 3B Oyun Motoru Yazmak M. Yükselen, B. Sapaz, Ö. Gülderen, S. Yaşar
  • Gömülü Linux Geliştirme Yaman Çakmakçı
Hafta içi gidemiyeceğim. Pazar günü için gözüme kestirdiklerim
"OpenCV ile görüntü işleme ve bilgisayarlı görme" ve
"Açık Kaynak Kodlu Kütüphanelerle 3B Oyun Motoru Yazmak"
Bir de "Tembel Penguenlere Çekirdek Programlama" var ama malesef OpenCv ile aynı zamana geliyor...

Artık Kısmet

Cuma, Nisan 27, 2007

FANN Kullanımı


FANN yani Fast Artificial Neural Network Library Bir Yapay Sinir Ağı (YSA) Kütüphanesi.

YSA nın ne olduğunu bildiğinizi varsayıp. Basitçe kullanımını anlatmak istiyorum.
1) YSA oluşturulur
2) YSA Eğitilir
3) YSA Çalıştırılır.
4) YSA yı Tekrar Kullanama

1) Öncelikle Bir YSA oluşturmamız lazım
Kullanabileceğimiz Fonksiyonlardan biri fann_create_standard

struct fann *FANN_API fann_create_standard( unsigned int num_layers, ... )

YSA nın kaç katmandan oluştuğunu yazıp - num_layers -
Sırayla Giriş, Gizli Katman - yada Katmanlar - Çıkış Katmanlarının kaç birimden oluştuğunu yazıyoruz

Mesela :

5 giriş 2 çıkışlı Tek ve 7 birimlik Gizli Katmanlı bir YSA oluşturmak için

struct fann *ann = fann_create_standard(3, 5, 7, 2);

5 giriş 2 çıkışlı , 7 ve 3 birimlik olmak üzere 2 Gizli Katmanlı bir YSA oluşturmak için

struct fann *ann = fann_create_standard(4, 5, 7,3, 2);

ann işaretçisi artık bizim oluşturduğumuz YSA yı gösteriyor


2) YSA Eğitimi için Kullanabileceğimiz Fonksiyonlardan biri fann_train_on_file

void FANN_API fann_train_on_file(
struct fann * ann, // fann_create_standard ile almıştık
const char * filename, // Veri Dosya
unsigned int max_epochs,
unsigned int epochs_between_reports,
float desired_error
)


ann : fann_create_standard ile aldığımız bizim YSA mızı gösteren işaretçi
filename : Eğitim için kullanacağımız Veri Dosyasının adı
max_epochs : Eğitimin çalışacağı maksimum adım Sayısı
epochs_between_reports : Kaç Adımda bir Rapor verilmesi isteniyor
desired_error : Eğitim sonunda arzulanan hata miktarı

Bu fonksiyonu çağrılınca İsmini belirttiğimiz Dosyadan veriler alınır ve Hata miktarı istenen değere yada maksimum adım sayısına ulaşana kadar YSA eğitime tabi tutulur. Arada belirttiğimiz adımda rapor verilir. Eğer istenen hata değerine ulaşılamazsa eğitim başarısız olmuş olur.

Veri Dosyasının yapısı : Veri Dosyası dediğimiz şey Giriş ve çıkış değerlerinin bulunduğu basit bir text dosyasıdır.
Örnek Sayısı(N) Giriş(K) Çıkış (J)
G11 G12 G13 ...G1K
Ç11 Ç12 Ç13...Ç1J
G21 G22 G23 ...G2K
Ç21 Ç22 Ç23...Ç2J
....
GN1 GN2 GN3 ...GNK
ÇN1 ÇN2 ÇN3...ÇNJ

Mesela 3 Giriş 1 Çıkışlık 2 Örnekli bir veri dosyası

2 3 1
1 1 1
0
1 0 1
1

Eğitim öncesi Aktivasyon Fonksiyonlarını Ayarlamak istiyorsanız

fann_set_activation_function_hidden(
struct fann * ann,
enum fann_activationfunc_enum activation_function
)

fann_set_activation_function_output(
struct fann * ann,
enum fann_activationfunc_enum activation_function
)

Mesela
fann_set_activation_function_hidden(ann, FANN_SIGMOID);
fann_set_activation_function_output(ann, FANN_SIGMOID_SYMMETRIC);
gibi

Kendi rapor Fonksiyonumuzuda tanımlayabiliriz
void fann_set_callback( struct fann * ann, fann_callback_type callback )
Mesela

int FANN_API my_report(struct fann *ann, struct fann_train_data *train,
unsigned int max_epochs, unsigned int epochs_between_reports,
float desired_error, unsigned int epochs)
{
printf("Adım %8d. MSE: %.5f. Desired-MSE: %.5f\n", epochs, fann_get_MSE(ann),desired_error);
return 0;
}

fann_set_callback( ann, my_report );

3) Artık Eğitimini tamamladığımız YSA yı çalıştırabiliriz. YSA'nın çalışması demek Giriş değerleri verilerek sonuçta elde edilen çıkış değerlerini almak demektir
Bu iş için kullanacağımız fonksiyon fann_run

fann_type * FANN_API fann_run( struct fann * ann,
fann_type * input )

Yani YSA'yı giriş değerlerini içeren bir dizinin adresini gönderiyoruz.

Mesela 3 giriş 2 çıkışlı bir YSA için

fann_type *sonuc;
fann_type input[3]={1,1,0}; // giriş değerleri
sonuc = fann_run(ann, input);
printf("Çıkış Değerelri %f %f \n", sonuc[0], sonuc[1] );

4) YSA yı her kullandığımızda yukardekileri tekrar tekrar yapmamıza gerek yok. YSA eğitildikten sonra Kaydedip. Kullanacağımız zaman bu kayıttan yeniden YSA yı oluşturabiliriz.
Kaydetmek için fann_save Kullanımı çok basit

int fann_save( struct fann * ann, const char *FileName )

FileName kısmına bir Dosya ismi girip kaydediyoruz. Kayıt Geri dönüş değerine göre 0 ise başarılı -1 ise başarısız.

Kaydettiğimiz YSA yı tekrar yüklemek için fann_create_from_file fonksiyonu kullanılır.

struct fann * fann_create_from_file(const char *FileName)

Fonksiyon Kaydedilmiş Dosya ismiyle çağrılır.

Eğer YSA ile işimiz bittiyse fann_destroy kullanılarak hafızada YSA için kullandığımız alanlar boşaltılır.

void fann_destroy( struct fann * ann )

Mesela : YSA için İlk üç adımı yaptık kaydediyoruz

fann_save(ann, "YSA.net");
fann_destroy(ann);

Tekrar çağırıyoruz

fann_create_from_file("YSA.net");

Sonuç : Gördüğünüz gibi kullanımı hiç de zor olmayan bir kütüphane, Herşey çok kolay olacak da demiyorum ( bakınız Zeka Hakkında Kıssalı Yazılar - 3 )
Fakat
"Öldüm Mahvoldum Nereden aldım şu projeyi ..."
deyip de gözünüzü korkutacak bir şey de yok çekinmeyin araştırın sorun, deneyin, kullanın.

Çarşamba, Nisan 25, 2007

Levlake Mazharına 3



Seccadeden kumlardı…
………………………………
Devirlerden, diyarlardan
Gelip göklerde buluşan
Ezanların vardı!

Mescit mü’min, minber mümin…
Taşardı kubbelerden Tekbir,
Dolardı kubbelere “amin!”

Ve mübarek geceler, dualarımız,
Geri gelmeyen dualardı…
Geceler ki pırıl pırıl,
Kandillerin yanardı!

Kapına gelenler, ya Muhammed,
Uzaktan, yakından
Mü’min döndüler kapından!

Besmele, ekmeğimizin bereketiydi;
İki dünyada aziz ümmet,
Muhammed ümmetiydi.

Konsun -yine- pervazlara
Güvercinler;
“hu hu” lara karışsın
Aminler…
Mübarek akşamdır;
Gelin ey Fatiha’lar, Yasin’ler!

Şimdi seni ananlar,
Anıyor ağlar gibi…
Ey yetimler yetimi,
Ey garipler garibi;
Düşkünlerin kanadıydın,
Yoksulların sahibi…
Nerde kaldın ey Resul,
Nerde kaldın ey Nebi?

Günler, ne günlerdi, ya Muhammed;
Çağlar ne çağlardı;
Daha dünyaya gelmeden
Müminlerin vardı…
Ve birgün, ki gaflet
Çöller kadardı,
Halime’nin kucağında
Abdullah’ın yetimi,
Amine’nin emaneti ağlardı!

Hatice’nin koncası,
Aişe’nin gülüydün.
Ümmetinin gözbebeği,
Göklerin resulüydün…
Elçi geldin, elçiler gönderdin…
Ruhunu Allah’a,
Elini ümmetine verdin.
Beşiğin, yurdun, yuvan
Mekke’de bunalırsan
Medine’ye göçerdin.

Biz dünyadan nereye
Göçelim ya Muhammed?
Yeryüzünde riya, inkar, hıyanet
Altın devrini yaşıyor…
Diller, sayfalar, satırlar
(Ebu Leheb öldü) diyorlar:
Ebu Leheb ölmedi, ya Muhammed;
Ebu Cehil, kıtalar dolaşıyor!

Neler duydu şu dünyada
Mevlid’ine hayran kulaklarımız:
Ne adlar ezberledi, ey Nebi,
Adına alışkın dudaklarımız!
Artık, yolunu bilmiyor;
Artık, yolunu unuttu
Ayaklarımız!
Kabe’ne siyahlar
Yakışmamıştır, ya Muhammed,
Bugünkü kadar!

Haset, gururla savaşta;
Gurur, Kafdağı’nda derebeyi…
Onu da yaralarlar kanadından,
Gelse bir şefkat meleği…
İyiliğin türbesine
Türbedar oldu iyi!

Vicdanlar sakat
Çıkmadan yarına.
İyilikler getir, güzellikler getir
Adem oğullarına!

Şu gördüğün duvarlar ki
Kimi Taif’tir, kimi Hayber’dir…
Fethedemedik, ya Muhammed,
Senelerdir!

Ne doğruluk, ne doğru;
Ne iyilik, ne iyi…
Bahçende en güzel dal,
Unuttu yemiş vermeyi…
Günahın kursağında
Haramların peteği!

Bayram yaptı yabanlar:
Semave’yi boşaltıp
Save’yi dolduranlar…
Atını hendeklerden -bir atlayışta-
Aşırdı aşıranlar…
Ağlasın Yesrib,
Ağlasın Selman’lar!

Gözleri perdeliyen toprak,
Yüzlere serptiğin topraktı…
Yere dökülmeyecekti, ey Nebi
Yabanların gözünde kalacaktı!

Konsun -yine- pervazlara
Güvercinler;
“hu hu”lara karışsın
Aminler…
Mübarek akşamdır;
Gelin ey Fatiha’lar, Yasin’ler!

Ne oldu, ey bulut,
Gölgelediğin başlar?
Hatırında mı, ey yol,
Bir aziz yolcuyla
Aşarak dağlar taşlar,
Kafile kafile, kervan kervan
Şimale giden yoldaşlar?

Uçsuz bucaksız çöllerde,
Yine, izler gelenlerin,
Yollar gideceklerindir.

Şu Tekbir getiren mağara,
Örümceklerin değil;
Peygamberlerindir, meleklerindir…
Örümcek ne havada,
Ne suda, ne yerdeydi…
Hakkı göremiyen
Gözlerdeydi!

Şu kutu, cinlerin mi;
Perilerin yurdu mu?
Şu yuva-ki bilinmez,
Kuşları hüdhüd müdür, güvercin mi, kumru mu?-
Kuşlarını, bir sabah,
Medine’ye uçurdu mu?

Ey Abva’da yatan ölü
Bahçende açtı dünyanın
En güzel gülü;
Hatıran, uyusun çöllerin
Ilık kumlarıyla örtülü!

Dinleyene hala,
Çöller ses verir:
“Yaleyl!” susar,
Uğultular gelir.
Mersiye okur Uhud,
Kaside söyler Bedir.
Sen de, bir hac günü,
Başta Muhammed, yanında Ebubekir;
Gidenlerin yüzbin olup dönüşünü
Destan yap, ey şehir!

Ebubekir’de nur, Osman’da nurlar…
Kureyş uluları karşılarında
Meydan okuyan bir Ömer bulurlar;
Ali’nin önünde kapılar açılır,
Ali’nin önünde eğilir surlar.
Bedir’de, Uhud’da, Hayber’de
Hak’kın yiğitleri, şehid olurlar…
Bir mutlu günde, ki ölüm tatlıydı;
Yerde kalmazdı ruh… kanadlıydı.

Konsun -yine- pervazlara
Güvercinler;
“hu hu”lara karışsın
Aminler…
Mübarek akşamdır;
Gelin ey Fatiha’lar, Yasin’ler!

Vicdanlar, sakat çıkmadan,
Ya Muhammed, yarına;
İyiliklerle gel, güzelliklerle gel
Adem oğullarına!

Yüreklerden taşsın
Yine imanlar!
Itri, bestelesin Tekbir’ini;
Evliya, okusun Kur’an’lar!
Ve Kur’an’ı göznuruyla çoğaltsın
Kayışzade Osmanlar!

Na’tini Gaalip yazsın, Mevlid’ini Süleyman’lar!
Sütunları, kemerleri, kubbeleriyle
Geri gelsin Sinan’lar!
Çarpılsın, hakikat niyetine Cenaze namazı kıldıranlar!

Gel, ey Muhammed, bahardır… Dudaklar ardında saklı Aminlerimiz vardır!.. Hacdan döner gibi gel; Mi’raç’tan iner gibi gel; Bekliyoruz yıllardır!

Bulutlar kanad, rüzgar kanad; Hızır kanad, Cibril kanad; Nisan kanad, bahar kanad; Ayetlerini ezber bilen Yapraklar kanad… Açılsın göklerin kapıları, Açılsın perdeler, kat kat! Çöllere dökülsün yıldızlar; Dizilsin yollarına Yetimler, günahsızlar! Çöl gecelerinden, yanık Türküler yapan kızlar Sancağını saçlarıyla dokusun; Bilal-i Habeşi sustuysa Ezanlarını Davud okusun!

Konsun -yine- pervazlara
Güvercinler;
“hu hu”lara karışsın
Aminler…
Mübarek akşamdır;
Gelin ey Fatiha’lar, Yasin’ler!

Arif Nihat ASYA


Allah bizi şefaatına mazhar etsin ( Amiiin )

Pazartesi, Nisan 23, 2007

Levlake Mazharına 2


Avucunda küçük taşların zikir ve tesbih etmesi;
وَمَارَمَيْتَ اِذْ رَمَيْتَ
sırrıyla aynı avucunda, küçücük taş ve toprak, düşmana top ve gülle hükmünde onları inhizama sevketmesi;
وَانْشَقَّ الْقَمَرُ
nassı ile aynı avucunun parmağıyla Kamer'i iki parça etmesi;
ve aynı el, çeşme gibi on parmağından suyun akması ve bir orduya içirmesi;
ve aynı el, hastalara ve yaralılara şifa olması,
elbette o mübarek el, ne kadar hârika bir mu'cize-i kudret-i İlâhiye olduğunu gösterir.
Güya ahbab içinde o elin avucu küçük bir zikirhane-i Sübhanîdir ki, küçücük taşlar dahi içine girse, zikir ve tesbih ederler.
Ve a'daya karşı küçücük bir cephane-i Rabbanîdir ki; içine taş ve toprak girse, gülle ve bomba olur.
Ve yaralılar ve hastalara karşı küçücük bir eczahane-i Rahmanîdir ki, hangi derde temas etse derman olur.
Ve celâl ile kalktığı vakit, Kamer'i parçalayıp Kab-ı Kavseyn şeklini verir;
ve cemâl ile döndüğü vakit, âb-ı kevser akıtan on musluklu bir çeşme-i rahmet hükmüne girer.

Acaba böyle bir zâtın bir tek eli, böyle acib mu'cizata mazhar ve medar olsa; o zâtın Hâlık-ı Kâinat yanında ne kadar makbul olduğu ve davasında ne kadar sâdık bulunduğu ve o el ile biat edenler, ne kadar bahtiyar olacakları, bedahet derecesinde anlaşılmaz mı?..