Sayfalar

Cumartesi, Aralık 16, 2006

BluePlayer 0.66 for Linux

En sonunda yeniden Linux altında çalışmaya başlaya bildim.
SuSe 10.1 Linux' u indirdim ve bilgisayarıma kurdum.
YasT ile gereken paketleri kurdum
Audiere ve FLTK kütüphanelerini Kaynak kodundan derleyerek kurdum.
CodeBlocks'u da kurduktan sonra başladım çalışmaya.
Kısa bir uğraş sonunda BluePlayer'ı derlemeyi başardım.
Download : BluePlayer 0.66 for Linux

Kullanabilmeniz için Audiere kütüphanesini kurmanız lazım
Kaynok Kodunu İndirin : audiere-1.9.4.tar.gz
uygun bir yere açın ve audiere-1.9.4 dizini oluşacak içine girin
./configure
make
make install
make install için yetki alın
veya kullandığınız Linux için derlenmiş paket halinde varsa
libaudiere-1.9.4 kurun

Cuma, Aralık 15, 2006

CBuiler 'ın Ölümü 1


Her şey Turbo C ile başladı Turbo Pascal gibi uçuk bir hızda derleme yapmasada C kullananlar için tek alternatifti. Microsoftun Quick C'nin esamesi bile okunmazdı.

Turbo C 3.0 ile birlikte derleme için Uzatılmış belleğide kullanmaya başladı ki değmeyin keyfimize ( Önceden büyük bir proje derlerken hafız yetmediğinde swapping diyerek diski hafıza yerine kullanmaya başlıyordu. -ölüm- Derlemeyi hızlandırmak için bir sürü dalavere yapmanız gerekiyordu - RamDisk oluşturup derlenecek projeyi oraya atıp orada derlemek gibi
Yanlış hatırlamıyorsam TurboVision kütüphaneside bu versiyonda çıkmıştı
Ben de ilk olarak TVision yüzünden farkına varmıştım. TVision pascalda yazılmış C ye tercüme edilmişti. TVision dökümantasyonunda örneklerin bazılarının tercüme edilmesi unutulmuş
pascal olarak duruyordu. Hatta birde Pascal dan C++'a çevri hatası içeriyordu ; Bir TInputLine kullandığınızda hiçbir şey yazmadan Del tuşuna basınca - c de char dizi sonunu gösteren 0 karekterini siliyorsunuz - olanlar oluyordu.
Demekki neymiş C/C++ Borlandın üvey evladıymış. Yıllar geçtikçe C/C++ camiasında ( ! )
Turbo C hakimiyeti azalmaya başladı -ne de olsa kimse üvey evlat olmak istemiyordu.

Çarşamba, Aralık 13, 2006

Yapay Zeka Optimizasyon Algoritmaları



Geçen haftasonu kitapçıları gezerken rastladım bu kitaba "Yapay Zeka Optimizasyon Algoritmaları".
Derviş KARABOĞA'nın yazdığı kitap herhalde bu konuda Türkçe yazılmış tek kaynak. Uygulamaya dönük örnekler verilmesine rağmen anlatımı bence biraz akademik olmuş ama yinede alın bir inceleyin, destekleyin.
Bu kitap yapay zeka optimizasyon algoritmaları olarak adlandırılan tabu araştırma, genetic programlama, yapay ısıl işlem, karınca koloni ve yapay bağışıklık algoritmalarını kapsamaktadır.
...

Kitap, önce optimizasyonla ilgili temel kavramları tanımakta ve sonra bu beş optimizasyon algoritmasının temel prensiplerini vererek her birisiyle ilgili değişik mühendislik alanlarından uygulamalar sunmaktadır.
google da Derviş beyin adından ufak bir araştırmayla aşağıdaki makalelerede ulaştım özellikle ilki çok ilginç, Kitapda da bahsedilen Ders Programı sistemi için Genetic Programlama kullanılmış.

Perşembe, Aralık 07, 2006

Genetik Programlamayla Bir işlem



Yine bir yapay zeka projesiyle karşınızadayız !

Bu sefer YSA değil genetik programlama metoduyla birşeyler yapya çalışacağız.

Ya bu genetik Programlamada nedir yahu ? diyenleriniz için linke müracat ediniz.
Link!

Daha yokmu diyen için google emrinize amade sizi bekliyor
Her neyse Biz uygulamamıza dönelim

Bir Kelime Bir İşlem yarışmasını bilmeyeniniz yoktur herhalde Biz Bir işlem kısmını yapmaya çalışacağız - Bir Kelime kısmınıda siz yaparsınız artık :) -

Problemi analiz edersek :
3 Basamaklı bir sayıya 6 adet sayı ile ulaşmaya çalışılır

Elimizde 6 adet sayı var ve sadece bir kere kullanabiliyoruz.
işlem 4 işlem yapılabiliyor fakat her sayıyı kullanmak zorunda da değiliz
Problemin bütün çözümleri için
sayı Num
işlem Op

Num1 Op1 Num2 Op2 Num3 Op3 Num4 Op4 Num5 Op5 Num6

sayıların kullanılacağı sıralama = 6 * 5 * 4 * 3 * 2 * 1 =6! = 720 ihtimal
her iki sayı arasında 4 işlem yada kullanılmama olmak üzere 5 ihtimal 6 sayı için 5 kere
5*5*5*5*5=5^5= 3125 ihtimal

Toplam = 720 *3125 = 62500 değişik sıralama oluyor.
Pek tabi Problemin pek çok çözümüde olabilir. Tam Çözümü olmayada bilir

Gelelim çözüme öncelikle bize bir Genetik Programlama kütüphanesi lazım
-tabii tekerleği yeniden icad edip debelenip durmak ta bir tercih olabilir biz kolay yoldan gidiyoruz -
İhtiyacınıza göre kütüphane bulmak için size freshmeat'i önerebilirim

Efendim biz bukonuda FGA -Fast Genetic Algorithm - kullanacğız
FGA sadece tek bir başlık dosyasından -fga.h- oluşan kullanımı kolay template library.
Paralel çalışa bilmek için POSIX thread kullanılmış yani windows altında bizim pthreads-win32 indirip kurmamız lazım zahmet edip aramayın indirin pthreads-win32 açın ve derleyiciniz için uygun olan library ve dll dosyalarını gereken kısımlara ekleyin

FGA ve pthreads-win32 indirip kurduktan sonra Kodumuzu yazmaya başlaya biliriz

Problemin kodlanması için veri yapımızı oluşturuyoruz

typedef struct {
int Num[6]; // sayılar
int Op[5]; // işlemler
}PData ;


sonra bu veri yapısıyla işlem yapacak GP için gereken fonksiyonlarımızı yazıyoruz

my_fitness // uygunluk yada sağlık değeri
my_random_chromosome // rasgele varyasyon üret
my_mutate_chromosome // değişme uğrat
my_crossover // Çaprazlama yap

Ooo yazı epey uzamış. kim okur bukadar yazıyı ? Daha fazla uzatmayayım en iyisi inirip inceleyin. Soracağınız bir şey olursa biz de bilebilirsek eğer cevaplamaya gayret ederiz

Download : GHedef yada daha kolay GHedef

* Kullanıcı Ara birimi pek tabii ki FLUID ile FLTK kullanılarak yazıldı. IDE olarak CodeBlock kullanıldı
** www.biliyormusun.net de bugünkü (08/12/2006) Bir işlem kısmındaki günün sorusunun çözümü

9*75 = 675
675-7= 668
668-9=659
659+10=669

Cuma, Aralık 01, 2006

BluePlayer 0.66

BluePlayer 0.66
  • Bazı ufak tefek düzeltmeler yapıldı
  • Windows'a daha uygun dosya seçim dialogu kullanıldı
  • sürükle bırak konuldu
  • Çalan dosya isimleri ufak animasyonla! gösterildi

hala eksikleri var.
Linux versiyonu için uygun bir zaman ve
uygun bir Linux versiyonu - full set - lazım bulunca İnşallah

Destekleriniz , hata bildirimleriniz, uyarı ve önerileriniz
hasretle bekleniyor ;)

Pazartesi, Kasım 27, 2006

Nadan

* Vaktiyle devr-i Osmânî'de pek müdebbir, tecrübeli, yüksek sezişli, aklı başında bir vezir vardır. Bir meseleden ötürü padişaha gücenmiş olduğu için köşesine çekilmiş, devlet işlerinden el-etek çekerek siyasetten uzak kalmayı tercih etmiştir.

Ne var ki, -her zaman olduğu gibi- devlet mühim buhranlar içindedir ve padişah, illâ ki bu müdebbir vezirin yeniden devlet hizmetine dönmesini istemekteyken vezir, Nuh deyip peygamber dememekte ve devlet kapısına yaklaşmamakta inad etmektedir. Neticede bir başka hinoğlu hin'in aklıyla şöyle bir çâre bulunur: Vezir, kıytırık bir gerekçeyle hapse atılır, yanına hücre arkadaşı olarak bir "nâdân" konulur. Nâdân saçma sapan konuşmaları ile veziri tez zamanda canından bezdirir ve neticede, "çıkarın beni buradan; ucunda ölüm de olsa bu vazifeyi yerine getirmek, şu nâdânın kahrını çekmekten evlâdır�" diyerek vazifeye başlar ve hikâye şu beyit ile sona erer:
Nâdân ile sohbet güçtür bilene, **

Nâdân ile sohbet güçtür bilene,
Çünkü nâdân ne gelirse söyler diline

* Ömer Seyfettin merhûmun meşhur bir "Nâdân" hikayesinin özeti

** A.Turan ALKAN'ın yazısı

Çarşamba, Kasım 22, 2006

BluePlayer'ın Büyük Başarısı !!!

Bir süredir BluePlayer'la uğraşıyorum
ilk olarak 27 Eylül BluePlayer 0.1 olarak başladı
13 Ekim' de BluePlayer 0.5
8 Kasım da SourceForge taşındı http://blueplayer.sourceforge.net/
13 Kasım da 0.6 versiyonu çıktı
  • BluePlayer 0.1 Download sayısı : 67
  • BluePlayer 0.5 Download sayısı : 110 * + 149 = 259
  • BluePlayer 0.6.1 Download sayısı : 96
olmak üzere toplam 422 adet indirilmiş.

eee ne var bunda demeyiniz. Bir Allahın kulu da bir mesaj atıp programın şöyle bir bug'ı var dememiş - Heyt be ne program yazarmışım ;) -

işte başarı bu !!!

* dosya arşivimden indirilenler daha sonraki kısım Sourceforgedan indirilenler

Cuma, Kasım 17, 2006

En Önemli C++ ... 'ları


* “The Most Important C++ Books...Ever”

o The C++ Programming Language by Bjarne Stroustrup
o Effective C++ by Scott Meyers
o Design Patterns by Erich Gamma, Richard Helm, Ralph Johnson, and John Vlissides
o International Standard for C++
o Modern C++ Design by Andrei Alexandrescu

* “The Most Important C++ Non-Book Publications...Ever”

o Programming in C++, Rules and Recommendations by Mats Henricson and Erik Nyquist
o “Exception Handling: A False Sense of Security” by Tom Cargill
o “Curiously Recurring Template Patterns,” by Jim Coplien
o “Using C++ Template Metaprograms” by Todd Veldhuizen
o “Exception-Safety in Generic Components” by David Abrahams

* “The Most Important C++ Software...Ever”

o Cfront by AT&T Bell Telephone Laboratories
o GCC by the GNU Project
o Visual C++ by Microsoft
o The Standard Template Library, originally by HP
o The Libraries at Boost

* “The Most Important C++ People...Ever”

o Bjarne Stroustrup
o Andrew Koenig
o Scott Meyers
o Herb Sutter
o Andrei Alexandrescu

Perşembe, Kasım 16, 2006

YSA kullanarak Kanserli Doku Teşhisi

1) öncelikle şunu belirteyim eğer okumadınızsa tarihteki ilk yapay zeka projesinin anlatıldığı Zeka Hakkında Kıssalı Yazılar - 3 yazımı tavsiye ediyorum. Okuduysanız tekrar okuyun :)

2) Bu konuda daha önce yapılmış faydalanabilecek örnek varmı diyerekten bir araştırma yapmak lazım araştırma sonunda öğreniyoruz ki değişik yollar kullanan pek çook çalışma var. Biz bu yazının yazılmasına sebep olan arkadaşımızın* önerisine uyup http://www.codeproject.com/useritems/nxml.asp deki örneği inceliyoruz

3) Bahsi geçen örnekte Assume spherical chicken** marifetiyle "multi layer back prop network" bir YSA kullanılarak 16x16 lık bir bitmap den 4 sonuca ulaşıyor. sonuç olarak
input layer 256
hidden layer 256
output layer 4


olarak YSA nın tasırmını yapıp eğitiyor vede şakır şakır :) çalışıyor.

4) Şimdi gelelim hazin gerçeğe elimize MR görüntülerini alınca göreceğiz ki 16x16 bitmap yok yerine atıyorum 300x300' lük bir resim var - dikkatinizi çekerim 0 ve 1 lerden oluşan bitmap değil resim - pekiii ne yapacağız şimdi.

5) İlk akla gelen şey Resmi bitmap'e çevirip 16X16 lık parçalara ayırabiliriz. Denemesi bedava resimi ama büyük bir ihtimalle görüntü bitmap'e çevrilince veri kaybına uğrayacak ve tesbiti zorlaşacak. Beyin boydan boya tek tip bir yapıdada olmadığından parçaların konumuda önemli olacak.

6) Anlamadan anlatamayız öğrenmeden öğretemeyiz. Bir MR'a bakıp tümörlü olan şöyle oluyor olmayan böyle diyebilmeliyiz sonra ben bunu nasıl fark ediyorum sorusuna cevap aramalyız. Bu sorunun cevabına göre filanca görüntü işleme metodunu kullanırsam tümörü daha belirgin hale nasıl gelir sonucuna ulaşabiliriz. Belirginleşmiş görütü parçalanıp gerekiyorsa parçaların konumlarıda hesaba katılarak YSA uygulamasına başlaya biliriz.

7) Sonuç olarak yapılamayacak birşey değil ama pek çok emek isteyen bir proje.

Not : Yanlış anlaşılmasın proje benim değil. Bana e-mail ile ulaşan bir arkadaşın* projesi


* H. K. K. - tekrar haberleşip iznini alamadığım için ismini yazmadım -

** Assume spherical chicken = farzedelim tavuklar küre şeklinde olsun anlamına gelen ve konu anlatımlarında olayı basitleştirmek adına nerelere varılabileceğini gösteren veciz söz.

Çarşamba, Kasım 08, 2006

BluePlayer artık Sourceforge da

BluePlayer'ı başlangıçta sadece Audiere kütüphanesinin kullanımına örnek olsun diye yazmıştım. Pek öyle geliştirmeyi düşünmüyordum. Bu haliyle güdük şekilde kalmasına gönlüm
razı olmadı. En azından 1.0 bir versiyona ulaştırmak niyetindeyim. Basit sade küçük bir program.

Geliştime için kullandığım gerek IDE -Code::Blocks - gerek GUI kütüphanesi FLTK gerekse ses kütüphanesi - Audiere - cross-platform özellikteler. Bu özelliklerinden faydalanıp değişik işletim sistemleri içinde sürüm çıkarmayı istiyorum.

Yardım etmek isteyen olursa şu an için geliştime için yardıma ihtiyacım yok. Fakat programı kullanıp değerli fikirlerinizi benimle paylaşa bilirseiniz sevinirim

Deep Not ! : Bu Sourceforge yüzünden daha önce bilmediğim konularla uğraşıyorum.
Web sayfası gözünüzü tırmalıyorsa bu yüzdendir acemiliğime verin.

Web sayfası - Tek sayfası ;) - : http://blueplayer.sourceforge.net/
Projenin sayfası : http://sourceforge.net/projects/blueplayer
İletişim için : BlueKid

Pazartesi, Kasım 06, 2006

Audiere Ses kütüphanesi kullanımı

Esasında benim pek öğretici makale yazmada maharetim yoktur
bu yüzden sizlere daha çok kendi yaptığım örnekleri sunabiliyorum.
Audiere ses kütüphanesini BluePlayer için kullanmıştım

Şimdide basit bir şekilde kullanımını anlatacağım becerebilirsem tabii

char* GetVersion()
Audiere Kütüphanesinin versiyon bilgisini verir

Örnek:
printf("Audiere versiyon : %s\n",GetVersion());
Audiere versiyon : 1.9.4


void GetSupportedFileFormats(std::vector& formats)
Çalabileceğiniz ses formatlarını verir
FileFormatDesc 'ın yapısı aşağıdaki şekildedir.

struct FileFormatDesc {
std::string description;
std::vector extensions;
};

Örnek:

std::vector formats;
// Desteklenen Ses Dosyası formatları
GetSupportedFileFormats(formats);
puts("Desteklenen Ses Dosyası formatları");
for(int i=0;i<>
puts((formats[i].description).c_str());
std::vector ext=formats[i].extensions;
for(int j=0;j<>
puts(ext[j].c_str());
}
}



void GetSupportedAudioDevices(std::vector& devices)

kullanıla bilecek ses aygıtlarını listeler, Windows için Directsound ve WinMM
Linux için Oss gibi

AudioDeviceDesc in yapısı aşaıdaki gibidir

struct AudioDeviceDesc {
std::string name; // aygıt ismi

// Textual description of device.
std::string description; // açıklama
};

Örnek :

puts("Desteklenen ses aygıtları");
std::vector devices;
GetSupportedAudioDevices(devices);
for(int j=0;j<>
puts((devices[j].name).c_str());
puts((devices[j].description).c_str());
}


AudioDevice* OpenDevice (const char * name = 0, const char * parameters = 0 )

Ses aygınını açmak için kullanılır ismi ve parametreleri kullanılabileceği gibi paramateresizde çağrılabilir.


Örnek:

AudioDevicePtr device;
device =OpenDevice(); // yada
device =OpenDevice("winmm"); //gibi
if(device)
printf("Kullanılan aygıt : %s\n",device->getName());
else
puts("Aygıt açılamadı !");


OutputStream* OpenSound ( const AudioDevicePtr & device,
const char * filename,
bool streaming = false,
FileFormat file_format = FF_AUTODETECT
)


device = daha önce açtığımız aygıt
filename = açılacak ses dosyasının adı
streaming = ses dosyası çalıma şekli
false : Bütün dosyayı hafızaya yükle öyle çal
true : Dosyadam çalmaya başla


Örnek :

OutputStreamPtr sound;
sound=OpenSound(device,"BW.mp3",true);


evet artık açılmış bir ses dosyamız var pekii neler yapabiliriz

void play (); // ses dosyasını çalmaya başla

void stop (); // ses dosyasını çalmayı durdur

bool isPlaying (); // ses dosyası çalıyorsa doğru değeri döndür

void reset (); // ses dosyasını başa al

bool isSeekable (); // çalınan dosyanın istenen kısmına ulaşılabiliniyormu
int getLength (); // ses dosyasının uzunluğu
int getPosition (); // çalma esnasındaki yer kısım
void setPosition ( int pos ); // çalınan kısmı ayarlar

// ses değer aralığı 0.0 to 1.0
float getVolume (); // ses değerini oku
void setVolume ( float volume ); ses değerini ayarla

void setRepeat ( bool repeat ); // çalma işlemi tekrar ayarı
bool getRepeat (); //

// Hopörlör ses çıkış ayarı
// -1.0 = Sol, 0.0 = Eşit (default), 1.0 = Sağ
void setPan ( float pan ); // ayarla
float getPan (); // öğren

// Ses dosyası çalma hızı
// Hız aralığı 0.5 ile 2.0, normal değer 1.0
void setPitchShift ( float shift ); // ayarla
float getPitchShift (); // öğren

Örnek :

sound->play();
sound->setVolume (0.8);

Cumartesi, Ekim 28, 2006

Code Blocks'a Giriş

CodeBlocks'un sitesinde yayınlanan versiyonu epey bir eski son halini Nightly-Build'den bulabiliyorsunuz ama yeni başlayanlara için zor oluyor.
Code Blocks' başlamak artık çok daha kolay "Brooklyn College of CUNY"den
Lawrence Goetz, Yedidyah Langsam, Theodore Raphan güzel bir paket hazırlamışlar

1) MingW yi indirin ve kurun download
2) CodeBlocks'u (22/10/06) indirin ve kurun download
3) Bu konuda hazırlanmış olan dökümanı indirin ve inceleyin
download

Cumartesi, Ekim 21, 2006

Fl_OpenCV



Fl_OpenCV OpenCV kütüphanesinin FLTK ile birlikte kullanmak için yazılmış bir sınıf
ve Kullanımını göstermek için yazılmış basit bir kenar bulma -Edge detection- programı
OpenCV örnek programlarından edge deki metodla yapılıyor. Bir alttaki yazdığım gibi
Bu haliyle kullanılabilir halde, eksikleri olduğunu biliyorum geliştimek için vakit bulabilirmiyim bilemiyorum. ama yine de paylaşmak istedim.
Programı kullanabilmek için OpenCV'yi kurmuş olmanız gerekiyor.

Download : Fl_OpenCV

Fl_SQLite3



SQLite3 veritabanı kütüphanesinin kullanımını kolaylaştırmak için yazmış olduğum basit bir
sınıf Fl_SQLite3 ve bu sınıfın kullanımına dair basit bir program. Bu haliyle kullanılabilir halde, eksikleri olduğunu biliyorum geliştimek için vakit bulabilirmiyim bilemiyorum.
ama yine de paylaşmak istedim.

Download : Fl_SQLite3 : CodeBlocks projesi Fluid dosyası Kaynak kodu

Perşembe, Ekim 19, 2006

Bu gece Kadir gecesi

Bu gece kadir gecesi
Bu gece hürmetine Allah rızasına erişmemize nasip etsin
İhlas risalesinde dendiği gibi
“Amelinizde rıza-yı İlâhî olmalı. Eğer O razı olsa, bütün dünya küsse ehemmiyeti yok. Eğer O kabul etse, bütün halk reddetse tesiri yok. O razı olduktan ve kabul ettikten sonra, isterse ve hikmeti iktiza ederse, sizler istemek talebinde olmadığınız halde, halklara da kabul ettirir, onları da razı eder. Onun için, bu hizmette, doğrudan doğruya, yalnız Cenâb-ı Hakkın rızasını esas maksat yapmak gerektir."
ve Kuran ayında Bir Kuran Linki
http://www.hayrat.com/kuranoku.php

Pazartesi, Ekim 16, 2006

Baki bir hakikat, fani şahsiyetler üstüne bina edilmez.

BK - Hocam izninizle gündemle ilgili bir şey sorabilirmiyim ?
MCH - Sana daha önce anlattığım koyun ile keçi hikayesini hatırlıyormusun ?
- Evet hatta ben onu* yazmıştım ?
- Şimdi öncelikle o yazını oku.
- Peki hocam
- İkinci olarakta bu sözleri aklından çıkarma ?
Baki bir hakikat, fani şahsiyetler üstüne bina edilmez.
Edilse, hakikate zulümdür. Her cihetle kemalde ve devamda
bulunan bir vazife, çürümeye ve çürütülmeye maruz ve
müptela şahsiyetlerle bağlanmaz; bağlansa, vazifeye
ehemmiyetli zarardır.
...
başta zındıklar ve ehl-i dalalet ve ehl-i siyaset ve ehl-i gaflet,
hatta safi-kalb ehl-i diyanet, şahsa fazla ehemmiyet verdikleri
cihetinde haksızlar...**
- Peki hocam
- Ne soracaktın sen ?
- Gerek kalmadı hocam !

* Asparagastan Kim ölmüş - 2
** Emirdag Lahikası I

Cuma, Ekim 13, 2006

BluePlayer 0.5


BluePlayer'ı azıcık geliştirdim yine kaynak koduyla - CodeBlocks Projesi - Fluid dosyasıyla birlikte veriyorum. FLTK için hallice bir örnek programda sayılır. ;)
Deneyip hata ve eksikliklerini bildirecek ve hatta yardımda bulunacak babayiğitler olursa
sevinirim.

Malesef yalnız windows versiyonu var. -Ubuntuyla başım belada ! - ama Linux altında derlenmemesi için hiç bir sebep yok
indirmek için - Artık Proje Source Forge'e taşındı bakınız Açıklama
Download : BluePlayer 0.5

Çarşamba, Ekim 04, 2006

Görüntü işlemeye giriş




Görüntü işlemeye giriş - An Introduction To Digital Image Processing - konusunda güzel bir çalışma C kodlarıyla birlikte içeriği

I – A simple approach of image processing
1 – The colour data: vector representation
2 – Immediate applications to filters
3 – Grayscale transforms: light and contrast
4 – Resizing and rotating algorithms
5 – Blending
II – Matrix convolution filters 24
1 – Definition, properties and speed
2 – A few common filters
3 – FFT enhanced convolution
III – Examples of application 37
1 – Motion detection
2 – Shape recognition
Makale
Kodlar

Kodlar da Allegro kütüphanesi kullanılmış bakınız
http://derindelimavi.blogspot.com/2006/03/codeblocks-ile-allegro-kullanmak.html

Çarşamba, Eylül 27, 2006

BluePlayer 0.1


Audiere bir Ses kütüphanesi. Hatta daha önce bahsettiğim Irrlicht Oyun motoru da Bu kütüphaneyi kullanıyor. Pek tabii ki cross-platform ve açık kaynak kodlu.Tek büyük dezavantajı kötü bir dökümantasyonu var.
Peki Neymiş efendim özellikleri

Audiere is a high-level audio API. It can play Ogg Vorbis, MP3, FLAC, uncompressed WAV,AIFF, MOD, S3M, XM, and IT files.
For audio output, Audiere supports
DirectSound or WinMM in Windows,
OSS on Linux and Cygwin,
and SGI AL on IRIX.
Audiere is open source and licensed under the LGPL. This means that you may freely use
Audiere in commercial products, as long as you do not modify the source code. If you do modify Audiere and release a product that uses your modifications, you must release your changes to the code under the LGPL as well. Audiere is portable. It is tested on Windows, Linux-i386, Cygwin, and IRIX with at least three major compilers. Most of Audiere is endian-independent, so I expect it would work with few modifications on other architectures.
features
* Braindead easy API
* Supported file formats: Uncompressed WAV*, Uncompressed AIFF*, Ogg Vorbis*, FLAC*, MP3, MOD, S3M, IT, XM (* supports seeking)
* Streaming and buffered audio
* Volume, pan, and pitch shift modification
* Flat tone, square wave, white noise, and pink noise generation
* Runtime enumeration of audio devices and supported file formats
* Custom file streams
* Python, Delphi, Java, XPCOM (JavaScript in Mozilla) bindings

FLTK dan daha önce zaten bahsetmiştim. FLTK ve Audiere kullanılarak yazılmış basit bir ses dosyası çalar yazdım. ve pek tabii ki CodeBlocks Kullandım. Peki özelliği ne bunun diyorsanız
cross-platform olması. Hem IDE C::B hem GUI FLTK hem Ses kütüphanesi Audiere taşınabilir. Şimdilik windows sürümünü veriyorum. Linux için daha sonra inşallah
Indirmek için : BPlayer

Pazartesi, Eylül 25, 2006

Ramazan-ı Şerife dairdir

BK - Hocam Ramazan ayı gelince medeyada abidik gubdik konularda Fetvalar arıyorlar verecek Abidik gubidik adamları buluyorlarda sonra başlıyorlar Ramazan ayına ve Oruca demogojiye.

MCH - Öncelikle böyle yapanaları uyaralım
Mesail-i şer'iyede bir kısım mesail, eşhasa taalluk eder; bir kısım, umuma, umumiyet itibariyle taalluk eder ki; onlara "Şeair-i İslâmiye" tabir edilir. Bu şeairin umuma taalluku cihetiyle umum onda hissedardır. Umumun rızası olmazsa onlara ilişmek, umumun hukukuna tecavüzdür. O şeairin en cüz'îsi (sünnet kabilinden bir mes'elesi) en büyük bir mes'ele hükmünde nazar-ı ehemmiyettedir. Doğrudan doğruya umum âlem-i İslâma taalluk ettiği gibi; Asr-ı Saadetten şimdiye kadar bütün eazım-ı İslâmın bağlandığı o nuranî zincirleri koparmaya, tahrib ve tahrif etmeye çalışanlar ve yardım edenler düşünsünler ki, ne kadar dehşetli bir hataya düşüyorlar. Ve zerre miktar şuurları varsa, titresinler!..
- Pek sonra
- Sonrada Ramazan risalesini tavsiye edelim

Ramazan-ı Şerifteki orucun çok hikmetleri; hem Cenab-ı Hakk'ın rububiyetine, hem insanın hayat-ı içtimaiyesine, hem hayat-ı şahsiyesine, hem nefsin terbiyesine, hem niam-ı İlahiyenin şükrüne bakar hikmetleri var.
...
Ramazan-ı Şerifte ise, ehl-i iman birden muntazam bir ordu hükmüne geçer. Sultan-ı Ezelî'nin ziyafetine davet edilmiş bir surette akşama yakın "Buyurunuz" emrini bekliyorlar
...
İşte Ramazan-ı Şerif'teki oruç, hakikî ve hâlis, azametli ve umumî bir şükrün anahtarıdır. Çünki sair vakitlerde mecburiyet tahtında olmayan insanların çoğu, hakikî açlık hissetmedikleri zaman, çok nimetlerin kıymetini derk edemiyor. Kuru bir parça ekmek, tok olan adamlara, hususan zengin olsa, ondaki derece-i nimet anlaşılmıyor. Halbuki iftar vaktinde o kuru ekmek, bir mü'minin nazarında çok kıymetdar bir nimet-i İlahiye olduğuna kuvve-i zaikası şehadet eder. Padişahtan tâ en fukaraya kadar herkes, Ramazan-ı Şerifte o nimetlerin kıymetlerini anlamakla bir şükr-ü manevîye mazhar olur. Hem gündüzdeki yemekten memnuiyeti cihetiyle; "O nimetler benim mülküm değil. Ben bunların tenavülünde hür değilim; demek başkasının malıdır ve in'amıdır. Onun emrini bekliyorum." diye nimeti nimet bilir; bir şükr-ü manevî eder.
...
zenginler, fukaranın acınacak acı hallerini ve açlıklarını, oruçtaki açlıkla tam hissedebilirler. Eğer oruç olmazsa, nefisperest çok zenginler bulunabilir ki, açlık ve fakirlik ne kadar elîm ve onlar şefkate ne kadar muhtaç olduğunu idrak edemez.
...
Nefis, kendini hür ve serbest ister ve öyle telakki eder. ...İşte Ramazan-ı Şerifte en zenginden en fakire kadar herkesin nefsi anlar ki: Kendisi mâlik değil, memluktür; hür değil, abddir. Emir olunmazsa en âdi ve en rahat şeyi de yapamaz, elini suya uzatamaz diye mevhum rububiyeti kırılır, ubudiyeti takınır, hakikî vazifesi olan şükre girer
...
Ramazan-ı Şerif âdeta bir âhiret ticareti için gayet kârlı bir meşher, bir pazardır. Ve uhrevî hasılât için, gayet münbit bir zemindir. Ve neşvünema-i a'mal için, bahardaki mâh-i Nisandır.
...

http://www.nur.org/risale/ramazanrisalesi.htm
http://medya.nurpenceresi.com/np-SesliDers/29Mektub-RamazanRisalesi1.wma



Perşembe, Eylül 21, 2006

Anti Crack üzerine

Nedir Bu Reverse Engineering dedikleri ? yazımızda belirttiğimiz gibi çoğu kimse Reverse Engineeringden Crack işini anlıyor. Oysa RE sayesinde programlarınızın kırılmasını zorlaştırabilirsiniz

  • Program korunmaya değermi ? Değmezse hiç uğraşmayın çünkü Kırılmıyacak program yoktur…
  • Programınız çok kıymetliyse ! profosyonel çözümlere bakın
  • Anti-Debugging* için önlemler alın.
  • Programlarınızda anlamlı prosedür isimleri kullanmayın bool KontrolSeriNo(...) gibi Kolaylıkla devre dışı bırakılabilir - siz hiç derlediğiniz programlara DeCompiler** larla baktınızmı baktınız mı ?
  • Kullanıcının bir şekilde programı kırmaya çalıştığını tespit ettiyseniz . aman uyandırmayın bir veya iki gün bekleyip haberdar edin. Mesela Hatalı bir seri noyu bir jump değişikliğiyle doğru olarak kabulettirdiyse hemen bunu bidirmeyin bir gün sonra akkında dialogunda gösterin
  • CheckSum kullanın
  • Kodunuzun kendi kendini onarır hale getirin. SMC***
  • Parola girildikten sonra 1 veya 2 sn bir bekleme koyun. Deneyerek parola kırmayı -brute force -zorlaştıracaktır.
  • Birden fazla kontrol rutini yazın her seferinda farklı yada rastgele- bir şekilde çağırın.
  • Seri No kontrolünü string karşılaştırmayla yapmayın ****
  • Sistem saatine ve tarihine güvenmeyin!
  • Kritik Mesajları – mesela kullanım süreniz dolmuştur vb gibi- kodun içine düz şekilde yerleştirmeyin şifreleyin ve dinamik olarak oluşturun.
  • Koruma şemanızı açıklamayın
  • Önemli dialog kutularınızı ve menülerinizi dinamik olarak oluşturun -çalışma zamanında-
  • Demo versiyonlarınızda kısıtladığınız opsiyonları sadece disable yaparak yapmayın ilgili koduda kaldırın. – sadece ilgili kısmı enable yaparak kullanıma açabilirler-
  • Kullanıcıya programın hakkında bilgiyi Hakkında dialog kuytusunda verin
kısa kısa ve yazdım ama sizin için birer ip ucu olabilir eğer açık olmayan kısımlar varsa becere bildiğim kadarıyla açıklamaya çalışırım.

* En basit olarak IsDebuggerPresent() API var mesela
**
mesela Delphi ve CBuilder için DeDe var
*** Self Modified Code kendini değiştiren kod
**** Debugger ile kontrol kısmına gelip doğru Seri No yu kolaylıkla alabilirler hatta verdiğiniz hata mesajıyla doğru seri Noyu değiştirip sizin programınızla keygen yapıverirler :)

Perşembe, Eylül 14, 2006

Algoritma Dersleri

Top Coder sitesinin hazırladığı Algoritma Dersleri. Basit kalıpları öğrenip RAD* kullanarak programlar yapan insanların ihmal ettiği bir konu. Değişik problemlerle karşılaştıklarında ya tekerleği yeniden icat etmeye kalkışırlar ya da bu işi yapan component aramaya başlarlar.
Oysa RAD programcıları tembelleştirmek için değil işlerini kolaylaştırmak için vardır
her ne ise

Algorithms Tutorials
Başlıkları şöyle
The Importance of Algorithms
How To Dissect a TopCoder Problem Statement
How to Find a Solution
Geometry Concepts:
- Section 1: Basic Concepts
- Section 2: Line Intersection and its Applications
- Section 3: Using Geometry in TopCoder Problems
Introduction to Graphs and Their Data Structures:
- Section 1: Recognizing and Representing a Graph
- Section 2: Searching a Graph
- Section 3: Finding the Best Path through a Graph
Greedy is Good
Dynamic Programming: From novice to advanced
Computational Complexity
Using Regular Expressions
Understanding Probabilities
Data Structures
Sorting
Maximum Flow
Representation of Integers and Reals
Binary Search

Ulaşabileceğiniz adres ise burada
bu sitede Algoritma problemleri de var

* Rapid Application Development Hızlı uygula geliştirme (VBasic ,Delphi, CBuilder gibi)

Çarşamba, Eylül 06, 2006

Vel Asr

Asra and olsun;
Gerçekten insan, ziyandadır.


Ancak iman edip
salih amellerde bulunanlar,
birbirlerine hakkı tavsiye edenler ve
birbirlerine sabrı tavsiye edenler başka.

BK - Asırdan başlıyalım dediniz başladık hocam çok kısa olmadımı ?
MCH - Onca kısalığına rağmen gereken herşeyi anlatıyor.
- Nasıl yani ?
- Bu sure hakkında İmam Şafi (r.a.) şöyle buyurdu.
"İnsanlar sadece bu sure inmiş olsaydı bu süre insanlara yeterdi. Zira bu sürede bir şahsın kemal derecesine ulaşabilmesi için gerekli olan mertebeler mevcuttur. Bunlar hakkı bilmek, hakla amel etmek ve o hakkı ehil olanlara öğretip yaymak ve bunu öğretmek üzerine sabırla devam etmektir"
- ...

Cumartesi, Eylül 02, 2006

Hoş geliniz MCH !

MCH'nin katılış hikayesi

BK
- Hocam bir şey sorabilirmiyim ?
MCH
- Tabii evladım buyur.
- Üç aylar girdi Kandiller geçti dini konularda hiç bir şey yazamadım. Bu da beni rahatsız ediyor.
- Niçin yazamıyorsun ?
- Şey hocam bu konularda ehil değilim, çekiniyorum.
- Duyanda İslami ilimlerin derin mevzularında tetkikatlarını yazacak sanır. Ehil ağızlarda işittiğin nasihatlardan başta nefsin için olmak üzere aktarsan yeter.
- Allah razı olsun hocam sizden ehlini mi bulacağım
- Estağfirullah
- Pekii Bu karışık, hızlı, günahkar Asrımızda nereden başlamamız lazım
- Asır'dan Başlayalım evladım Asırdan

Çarşamba, Ağustos 30, 2006

Çocuk katillerine karşı İnsaf sahibi bir ses



http://www.youtube.com/watch?v=9Wdwk1dp-uU

george galloway'ın artık meşhur olan konuşması. Kimyasal silah bile kullanmaktan, ve çocukları öldürmekten çekinmeyen şerefsizlere ithaf olunur.
Ez bütün çiçekleri kendine canavar dedir.

soru :siz israilin lübnanı işgaline şiddetle karşı çıkmıştınız.. ve şimdi de hizbullah’ın yani nasrallah’in israili hedef almakta haklı olduğunu söylüyorsunuz… bu iddianızı nasıl destekliyorsunuz?

cevap :konuyu gündeme getiriş ve tanıtış şekliniz oldukca ilginç.. ve çok ilginç/komik bir soru… bundan 34 yıl önce bir kızım dünyaya gelmişti.. bugünlerde doğum gününü kutladık… onun doğuşunu görmek üzere hastaneye gittiğimde sokaklarda çok şiddetli protestolar oluyordu.. israilin lübnanı işgali protesto ediliyordu.. israil lübnanı benim kızımın hayatta olduğu süre boyunca işgal altında tuttu ve halen tutuyor.. hizbullah lübnanın ulusal kurtuluş savaşının bir parçasıdır.. 2000 yılında kendi topraklarından israili çıkarma konusunda başarılı olmuş bir güçtür.. bu sıralarda israilin lübnanı işgal ettiğinde kendi topraklarında yaşamakta olan lübnanlıları hapishanelere dolduran israiliden bu insanları serbest bırakmasını istemekte ve bunun mücadelesini vermektedir.. bu hapishanedeki insanlar israilin topraklarında degil kendi topraklarındaydı ve ülkeleri işgal edilince hepsi tutuklandı.. hizbullahin israilden serbest bırakmasını istedigi insanlar bu insanlardır… lübnana saldıran israildir, topraklarını işgal eden de öyle… bunları yapan, israile saldıran ve topraklarını işgal eden lübnan/hizbullah degil.. sizler az onceki raporunuzda/bülteninizde israil askerlerinin sınırda lübnanı işgal etmek üzere hazırlık yaptıklarını belirttiniz ve şimdi de bana hizbullahı neden haklı bulduğumu soruyorsunuz.. lubnanda ölen sivil sayısı israilde ölenlerin 30 katı.. bu şartlar altında asıl siz neden hizbullahı desteklemediğinizin veya israili desteklediğinizin cevabını vermek zorundasınız… bana neden hizbullahı haklı görüyorsun sorusunu sormak yerine…

soru : biraz once 2000 yılında hizbullahın israili topraklarından atmayı başardığını söylediniz…

cevap : hayır tamamıyla değil.. bir çok bölgeden cıkardılar ancak lübnan toprakları halen işgal altında… hizbullah işgal sırasında yakalanıp/kaçırılıp hapse atılan insanlarının serbest bırakılma mücadelesini veriyor…

soru : israilden bir yetkili tutuklu bulunanların sizin deyiminizle kaçırılanların mahkeme edilecegini ve sonucuna gore işlem yapılacağını ve bunun yasanın bir parcası olduğunu söyledi…

cevap : hayır lütfen yapmayın.. lütfen hafızalarınızı 4 hafta öncesinden daha gerilere götürün… ben 18 yil önceki işgalden ve bu işgal sırasında kendi topraklarından alınıp israildeki hapishanelere tıkılan binlerce insandan bahsediyorum… hizbullahin 2 askeri serbest bırakmasına karşılık olarak serbest kalmasını istedigi insanlar, kendi topraklari isgal edilen ve kendi topraklarindan alınıp götürülen insanlar..

soru : size bugün sunday telegraph gazetesinde yayınlanan rapor hakkında soru sormak istiyorum.. rapora gore iran hizbullaha israilin her yerini vuracak güçte uzun menzilli füze sağlamış… israili bu füzeleri imhaya yonelik yaptığı bir saldırıda suçlayabilirmisiniz…

cevap : ne bicim soru bu… amerika israile füze sagliyor ve bu füzeler sadece lübnanin tüm şehirlerini vuracak guçte değil, bütün arap ve müslüman dünyasında her yeri hedef alacak güçte.. bunu yaptığı için amerikayı suçlamayacagız, ama hizbullaha israili vurabilecek fuze verdigi için iranı suçlayacağız.. neden amerika bunları israile sagliyor? hatta nükleer füzeler de sağlıyor…

soru : ama hizbullah bir terör örgütü…

cevap: hayir bir terör örgütü degil, başta da söylediğim gibi lübnan topraklarını savunan tek ulusal güc… sadece sizlerin ve rupert murdoch’un diğer medyasının görüşü bu… diğer bircoklarına göre hizbullah bir teör örgütü değil, ülkesini savunan bir güç… sky’ın, sunday’ın, times’ın görüşü yalnizca bu..

soru : neyin terör örgütü olup olmadığı başka bir tartışma konusu… bunca rapor var hizbullahin bir terör örgütü olduğunu söyleyen… bir seçim şansları vardı… kabineden 2 kişiyi kaçırmışlardı, politik olarak sorun cözülebilirdi…

cevap: birine göre terörist diğerine göre özgürlük savaşçısıdır… şunda kesinlikle yanılıyorsun ki bir çok insanın gözünde hizbullah terör örgütü değildir… bir çok insanın gözünde israil bir terörist devlettir… bu gerceği kavrayamıyorsunuz… bu sizin ne kadar yanlı olduğunuzu gösteriyor hem raporlarınızda hem de bu konusma boyunca…

soru: bir soru daha sorabilirmiyim? hizbullahın bunu politik olarak çözme şansı vardı.. neden iki asker kaçırdılar… ve bir cok askeri öldürdüler…

cevap: çünkü israil onların ülkelerini işgal etmişti… ve binlerce insanını mülteci kamplarında hapis etmişti… bu çok basit.. ancak tabi bunca olayı sadece 4 hafta geriye gidip hizbullahın 2 askeri kaçırmasına bağlarsanız başka… siz de çok iyi biliyorsunuz ki bu problem ne son 4 haftanin, 4 ayin, yılın problemi değil… onlarca yıldan beri sürmekte olan bir problem bu… bu sorun 4 hafta once başlamadı ki…

soru: peki son bir soru, sizce bu son dört haftalık süreç hizbullahın amaçlarına hizmet ettimi? daha fazla insani ölüp, toprakları yeniden işgal edilmedimi? lübnan demokratik bir ülke olma yolunda iken bunu baltalamadımı ?

cevap: ne kadar aptalca bir soru bu… ne kadar aptalsiniz… bugun hizbullah herkesin gözünde daha popüler hale geldi… savaşı asıl kaybedenler ise israil, bush ve blair.. politik olarak buna yol açtıkları ve izin verdikleri için.. herkes görüyor ama siz görmüyorsunuz.. eğer bu başarı ise ne hissettiğinizi bilmek isterim.. bu sorun sürecek.. BM hiç bir şey yapmıyor, lübnanlıya hiç bir şey vermiyor… binlerce tutukluya hiç bir şey sağlamıyor.. bu sorun ancak şu şekilde çözume kavuşur… israil 1967 den sonra işgal ettigi tüm topraklardan geri çekilir, o zamandan bu yana hapse attığı tüm politik tutukluları serbest bırakır, filistinde baskenti Kudüs olan bağımsız filistin devleti kurulur… o zaman bu sorun çözülür… aksi takdirde çözülmesi mümkün değildir, böyle devam edecektir… adalet yoksa barış ta yoktur

soru: karmasik cumleler…

cevap: filistinliler hakkında hiç bir şey bilmiyorsunuz… onların yaşadıklarından bile haberdar değilsiniz…gazzede hunharca katledilen 7 kişilik ailenin bir ferdinin adını söyleyin bana… onların isimlerini bile bilmezsiniz siz… ama kaçırılan veya ölen her israil askerinin adını bilirsiniz… çünkü farkında olun ya da olmayın sizler şuna inanıyorsunuz… bir israillinin kanı bir lübnanlının kanından daha değerlidir… bu sizin bakışınız ve haberi sunuş şeklinizdir… bunu böyle bilin…
http://sozluk.sourtimes.org/show.asp?id=9922541

Cuma, Ağustos 25, 2006

Kodlar arasında gezinmek

Açık kaynak kodlu bir program indirdiniz ve kodlarınını incelemek istiyorsunuz yada Açık kaynak kodlu bir kütüphane kullanıyorsunuz ve kullandığınız kütüphaneyi daha iyi anlamak için kodlarını incelemeniz lazım.
Vay halinize uğraşıp durursunuz
- şu dosyayı açayım yok burda değilmiş ötekine bakayım
- falanca fonksiyonu nerede tanımlamışlar nerede nasıl kullanmışlar
Doxygen ile hazırlanmış dökümantasyonu varsa bir nebze işiniz kolaylaşır ya yoksa

Ama artık bu işler daha kolay olacak artık The Source-Navigator var

What is Source-Navigator?
Source-Navigator is a source code analysis tool. With it, you can edit your source code, display relationships between classes and functions and members, and display call trees. You can also build your projects, either with your own makefile, or by using Source-Navigator's build system to automatically generate a makefile.

Source-Navigator works with the Insight GUI interface for GDB.

Source-Navigator supports C, C++, Java, Tcl, [incr Tcl], FORTRAN and COBOL, and provides and SDK so that you can write your own parsers.

Use Source-Navigator to:

* Analyze how a change will effect external source modules.
* Find every place in your code where a given function is called.
* Find each file that includes a given header file.
* Use the grep tool to search for a given string in all your source files.

Source-Navigator is released under the GNU Public License.
Hiç durmayın indirip kullanmaya başalayın

Salı, Ağustos 22, 2006

OpenCV 1.0 RC 1 çıktı

OpenCV RC1 duyruldu
>>> New functionality/features: <<< -
New Compilers/Environments supported:
* GCC 4.x
* Visual Studio .NET 2005.
* On MacOSX universal OpenCV binaries are now built by default, so both PPC and Intel Mac's are fully supported.
* Borland C++ support has been removed. There is still script utils\gen_make.py available that can generate makefile.bcc's out of MSVC's project files (not tested with rc1).
* New command-line makefiles _make\makefile.
* are introduced that allow user to build OpenCV for Win64 (EM64T/AMD64 and Itanium). For details, see INSTALL file. - cxcore:
* added several new functions: cvMixChannels, cvRandShuffle, cvRange, cvCalcPCA, cvProjectPCA, cvBackProjectPCA, cvNormalize, cvReduce, cvGetNumThreads, cvSetNumThreads, cvGetThreadNum. See docs/ref/opencvref_cxcore.htm for details.
* extended cvCalcCovarMatrix, cvMulTransposed
* added macros for the library version: see cxcore/include/cvver.h
* added C++ classes CvImage and CvMatrix: see cxcore/include/cxcore.hpp and the sample samples/c/image.cpp
* the maximum number of channels in matrices has been increased up to 64. though, only the basic functions can handle such images. - cv:
* new functions: cvPyrMeanShiftFiltering, cvWatershed, cvGetAffineTransform. see docs/ref/opencvref_cv.htm for details.
* extended: cvDistTransform (true distance transform algorithm), cvThresh (Otsu adaptive algorithm), cvCanny (using true gradient as an option)
* all the filtering functionality has been reworked, new C++ classes for linear separable and non-separable filtering, morphology, laplace, box filer (blur) have been added. see cv/include/cv.hpp. The older C API is still supported and is preferrable sometimes (e.g. when IPP is used).

****** API changes:
* cvCamShift, cvBoxPoints and all the other functions taking/returning an angle (as a field of the structure CvBox2D or as a standalone parameter) now measure the angles in degrees. - cvaux:
* new large video surveillance module has been added (cvaux/src/vs and cvaux/include/cvvidsurv.h). It implements smart blob tracking. See the description at docs/vidsurv) - ml (stands for Machine Learining):
* this is a completely new C++ module containing classes for statistical classification, regression and clustering. See docs/ref/opencvref_ml.htm. - highgui:
* the whole video capturing code has been restructured and split by modules, better function names have been introduced (older names are supported via macros)
* Quicktime (MacOSX) and Xine (Linux, (attention: watch the license!)) support added.
* many small and big improvements have been made in most of the video capturing modules
* a helper thread can be used to refresh highgui windows content w/o having to call cvWaitKey() (Linux only).

Salı, Ağustos 15, 2006

Genetik metodla optimizasyon problemlerinin çözümü

Genetik,Yapay zeka konusunda kullanılan algorithmalardandır.
http://ai-depot.com/Articles/48/Programming-Linear.html
http://ai-depot.com/Articles/48/Programming-Linear.html
http://ai-depot.com/Articles/48/Programming-Evolution.html

C örnek kodu da bulunuyor

Cuma, Temmuz 28, 2006

Or'da kimse var mı?

- Or'da kimse var mı? *
Bunun cevabını bilemiyorum fakat
varsa eğer bendeniz bir hafta buralarda olamayacağım
Haftaya bekleriz :)

* :Alev Alatlının
viva la muerte,
nuke türkiye,
valla kurda yedirdin beni,
ok musti türkiye tamamdır
kitaplarından oluşan roman serisi okumadıysanız tavsiye ederiz...


Çarşamba, Temmuz 26, 2006

Doors

* Bundan 20 yıl sonra, yaptıkların değil,yapamadıkların için üzüleceksin. Dolayısıyla halatları çöz. güvenli limandan uzaklara yelken aç. Rüzgarı yakala, araştır, düşle, keşfet.

* Düşün, onları seyredecek birileri olmasaydı, kaç kişi mercedes otomobil alırdı.
* Bilimde ve güzel sanatlarda en üstün başarılar, tek başlarına çalışan kişiler tarafından elde edilmiştir. Hiçbir parkta bir kurul için dikilmiş bir anıt yoktur.

* Yapabileceğin kadar söz ver. Sonra söz verdiğinden daha fazlasını yap.

* Oturarak başarıya ulaşan tek yaratık bir tavuktur.

* Dertlerini gözyaşlarında boğmak isteyenlere dertlerin yüzme bildiğini söyle.

* Dalın ucuna gitmekten korkma, meyve oradadır.

* Büyük adam büyüklüğünü küçük adama davranışıyla gösterir.

* Şans bukelamun gibidir. Biraz zaman tanı, mutlaka değişecektir.

* "tarihte en etkili 100 kişi" adlı kitabı okudum. Onların hepsiyle ortak olduğumuz tek şeyin zaman olduğunu hayretle gördüm.

* Günün sonunda kendini bir sokak köpeği kadar yorgun hissediyorsan,bu belki bütün gün hırladığın içindir.

* Başlamak için en uygun zamanı beklersen hiç başlamayabilirsin.şimdi başla! Şu anda bulunduğun yerden, elindekilerle başla.

* Gülümsediğinde güzelleşmeyen bir yüz hiç görmedim.

* Kimi zaman içindeki o sessiz sese uzmanlardan daha fazla güven. Aerodinamik yasalarına göre o tombul ve tüylü arının hiç uçmaması gerekiyordu. herhalde bunu ona hiçkimse söylemedi ki, uçuyor.

* Zamanlarının büyük bir kısmını para kazanmak ve saklamakla geçiren insanlar, sonunda, en çok istediklerinin satın alınamayacak şeyler olduğunu anlarlar.

* Öteki insanlardan daha akıllı ol. Yalnız bunu onlara söyleme!

* Mutlu olmanın en garantili yolu bir başkasını mutlu etmektir.

* Hayatta ya tozu dumana katarsın, ya da tozu dumanı yutarsın.

* İyi çalışan, sık gülen ve çok seven başarıyı elde eder.

* İnsanin tüm evrende kesin olarak düzeltebileceği tek bir şey vardır. Kendisi.

aldous huxley
the doors of perception

Cumartesi, Temmuz 22, 2006

Erol Taşların sonu iyi olmaz !


Duygular paketlenmiş, tecime elverişli
gövdede gökyüzünü kışkırtan şiir sahtedir
gazeteler tutuklamış dünya kelimesini
o dünyadan, o şiirden öcalmalı demektir


Ölüm gelir, ölüm duygusuna karşı saygısız
ve zekâ babacan tavrıyla tiksinti verir

söz yavan
, kardeşlik şarkıları gayetle tıkız

öcalınmazsa çocuklar bile birden büyüyebilir

Yargı kesin: Acı duymak ruhun fiyakasıdır
kin, susturur insanı; adına çıdam denir

susulunca tutulan çetele simsiyahtır
o siyah öcalmakcasına gür ve bereketlidir


Vandal yürek! Görün ki alkışlanasın
ez bütün çiçekleri kendine canavar dedir
haksızlık et, haksız olduğun anlaşılsın
yaşamak bir sanrı değilse öcalınmak gerektir.

Eski türk filimlerin hatırlayın. Erol Taş filmin kötü karakteri olara olmadık zulümleri yapar, seyredenleri filim olduğunu bildikleri halde rahatsız eder. Bu rahatsızlık o dereceye ulaşır ki filmin sonunda iyi karakter intikamını* alırken hiç kimsede bir acıma duygusu oluşmaz. İsrail Erol Taş'ın tahtına oturmuş ve fakat filim çevirmiyor. Sonlarını artık siz düşünün

* hatta bir kerde intikam almak yetmediği için bu anam için bu babam için diye bilimum intikamlar alınırdı

Not : yazının başındaki resim israil büyük elçiliği sitesinden alındı !

Perşembe, Temmuz 20, 2006

CodeBlocks ile OpenCV kullanmak



OpenCV yani 'open source library for computer vision'
Intelin Açık kaynak kodlu bir kütüphanesi bize görüntü işleme konusunda yardımcı oluyor.
  • Image creation and access (same image header used for both libraries).
  • Image arithmetic and logic operations.
  • Image filtering.
  • Linear image transformation.
  • Image morphology.
  • Color space conversion.
  • Image histogram and thresholding.
  • Geometric transformation (zoom-decimate, rotate, mirror, shear, warp, perspective transform, affine transform).
  • Image moments.
resimde gördüğünüz OpenCV örnek programlarından ve görütüdeki kenarları tespit ediyor

Kullanmak için
1) Hala CodeBlocks'u kurmadıysanız bir zahmet kurun ( nightly builds kullanın)
2) http://sourceforge.net/projects/opencvlibrary/ den indirin ve sisteminize kurun ( C:\Program Files\OpenCV )
3) OpenCv template for CodeBlocks indirin ve sıkıştırılmış dosyayı açıp
CodeBlocksun template kısmına atın

Artık OpenCV için de bir template sahipsiniz :)

Algoritma Sorusu / Eş ağırlıklar

Eş Ağırlıklar // Tübitak Kamp '93

Bir grup eşyayı, ağırlıkları mümkün olduğu kadar birbirine yakın (mümkünse eşit) iki gruba ayırmak istiyoruz.
Eşyaların toplam sayısı n (1 < n < 100) olarak, bir eşyanın ağırlığı, w(i) ise 1 < W(i) < 250 tamsayı olarak belirtiliyor,
istenen işlemi gerçekleştirecek programı yazınız.


çözüm için yazadığım program

Pazartesi, Temmuz 03, 2006

Nedir Bu Reverse Engineering dedikleri ?

İlgi alanlarım arasında geçmesine rağmen daha önce hiç Reverse Engineering konusunda yazmamıştım.
Nedir Bu Reverse Engineering* dedikleri şey ?

Herkesin bildiği gibi Engineering 'in karşılığı Mühendislik. Nedir Mühendislik ? Mühendis dediğin Uygulama ve Üretim yapar -asıl olarak - Mesela Bir benzinli motorun çalışma prensibini herkes bilir - Liselerde bile öğretiyorlar- Ama herkes motor üretemiyor, çünkü pek çok uygulma probleminin halledilmesi lazım. İşte mühendisler bu alanlarda çalışırlar. Yani Ana bir fikirden yola çıkıp umumun kullanabileceği bir ürüne ulaşmak. Bunun içinde Hem araştırma geliştir me hemde üretim vardır. İyide Reverse Ne olaki. Reverse'yi ters diye çeviriyorlar ama bu işte bir terslik var . :) buradaki Reverse'nin anlamı ortada bir ürün vardır ve siz o üründen yola çıkıp nasıl üretildiğini anlamaya çalışırsınız. Kısaca Mühendislik fikirden ürüne ise ters mühendislik üründen fikire ulaşır - tabii ki üzerinde ufak tefek değişiklikler yapıp ürünü kendisi üretmek için-

Eğer tanımı anladıysanız, Tarihçesinin de taa tekerleğin icadına kadar gittiğini anlarsınız. Bize ne tekerleğin icadından sen bize düzgün bir örnek ver derseniz, Size common-rail yeni nesil dizel motorları örnek olarak verebilirim.
cdti Opel
crdi Hyundai
hdi Peugeot
cdi Mercedes
jtd Fiat
tdci Ford
bu yani bunu ilk üretenin ürünü üzerinde diğer firmalar RE çalışması yapıp
bazı değişikliklerle başka bir isimde tescil ettirmişler Hepside common rail dir aslında

İyi de kardeşim sen ne diyorsun bir RE denince Cracking işini anlıyoruz. Cevap veriyorum yanlış anlıyorsunuz. Cracking**adı üzerinde kırma işlemidir ve programların lisanssız kullanımını engellemek için konulmuş korumaları kırmaya / kaldırmaya denir. -yazılım alanında tabii ki - RE çok daha geniş manası var ve tabii ki Programlar konusundada uygulaması var. Diyelim ki bir program yazacaksınız ve bu konuda yazılmış çok başarılı bir program var. Alıp incelersiniz.

- Oo programı başarılı yapan ne ? ne gibi eksiklikleri var ?
- Menüleri nasıl düzenlenmiş - hımm biz de benzeri şekilde yapalım aynı kısa yol tuşlarını kullanalım kolaylık olsun-
-Verilerini dosyda şu şekilde tutuyorlarmış - bu veri yapısından import edelim-
-Bunları yapmak için filan kütüphane kullanılmış yada hangi API lar nasıl kullanılmış

gibi pek çok sonuca ulaşabilirsiniz. Tabii bunları yapa bilmeniz için Assembly'yi bilmeniz lazım Bu işler için kullanılan araçları kullanabilmeniz lazım. Anti Debugging tekniklerinide öğrenmeniz lazım. Bu Aynı zamanda kendi kendi ürünleriniz konusunda RE uygulamaya kalkanların işlerini zorlaştırmak için de lazım olur :)
Pek Tabii Bu kadar şeyi bildikten sonra Cracking de yapabilirsiniz. Yalnız sadece program kırmak için bu kadar emek haracamak ne kadar mantıklıdır ? Kırığını bulun ;) daha iyi .

Bu arada Crackingi küçümsediğim anlaşılmasın. Eğer Cracking olmasaydı kim Ne öğrene bilirdi ki. Sadece lisanslı programların kullanıldığı -daha doğrusu lisans ücretleri yüzünden kullanılamadığı- bir ülkede büyüdüğünüzü düşünün. Hemen hemen hiç birşey öğrenemezdiniz. Ama Bu işinde bir ahlakı olmalı diye düşünüyorum. kısaca Cracker RobinHood*** gibi olması lazım Ama bu belkide başka bir yazı konusu...

Son olarak Bir kaç link verelim

http://mdkgroup.com/forum/
http://exetools.com/
http://boomerang.sourceforge.net/
http://lkubaski.free.fr/reverse/reverse.html
http://www.sct.tr.cx/
http://www.dtcg.org/
http://tutorials.accessroot.com/
http://www.informit.com/articles/article.asp?p=353553&seqNum=3&rl=1
http://community.reverse-engineering.net/
http://home.arcor.de/idapalace/

* Reverse engineering (RE) is the process of discovering the technological principles of a mechanical application through analysis of its structure, function and operation. It often involves taking something (e.g., a mechanical device, an electronic component, a software program) apart and analyzing its workings in detail, usually with the intention to construct a new device or program that does the same thing without actually copying anything from the original. The verb form is to reverse-engineer. diyor Wikipedia bir inceleyin derim
** reverse engineering ile karıştırılan manasıyla yoksa başka anlamlarıda vardır
*** cracking dökümanlarında rastlayacabileceğiniz
Bir programı kullanarak para kazanıyorsanız, programı satın alın.
Bir programı eğer gerçekten kullanıyorsanız, programı satın almayı düşünün.
gibi sözlerden anlaşılanda bu.

Cumartesi, Temmuz 01, 2006

Şu Laedride ! ne güzel sözler söylemiş

Söyleyemem derdimi kimseye, dermân olmasın diye
İnleyen şu kalbimin sesini ağyâr duymasın diye
Sakladım gözyaşımı vefâsız o yâr görmesin diye
İnleyen şu kalbimin sesini ağyâr duymasın diye


Laedri

Cuma, Haziran 23, 2006

Nedir o şey ?



Nedir o şey ki ...
Aramakla bulumuyor ve fakat bulanlar sadece arayanlar oluyor
Nedir o şey ki ...
Süreyya yıldızında olması Bazı insanların o şeye ulaşmasını engellemiyor
Nedir o şey ?

Cumartesi, Haziran 17, 2006

FLTK v1.1.7 Dev pak

FLTK v1.1.7 Dev pak hazıranmış CodeBlocks dan DevPak updater/Installer plugin'i kullanarak indirin bu sefer içinden FLUID de çıkıyor :)

Perşembe, Haziran 15, 2006

FM Forumlar

http://forum.fazlamesai.net/ adresinde artık

FM Forumlar belki geri doner...

Bu arada Fazlamesai.net'i izleyin

mesajı çıkıyor. Elveda dememe rağmen içim burkuldu
İnşallah FM' nin kalitesi ve sevyesine layık bir şekilde döner

Çarşamba, Haziran 07, 2006

OpenGL Örnek Programlar


Nasıl ulaştım bilmiyorum ama güzel örnek programların olduğu bir site
David Henry's homepage
Başlıkları veriyim ilginizi çekerse bir ziyaret edin

C ile Yazılmış örnekler

  • Simple GLUT window
  • Simple GLX window
  • TGA (Truevision TARGA, *.tga) Texture Loader
  • DDS (DirectDraw Surface, *.dds) Texture Loader,
  • PNG (Portable Network Graphics, *.png) Texture Loader
  • JPEG (Joint Photographic Experts Group, *.jpg) Texture Loader,
  • PCX (ZSoft PCX, *.pcx) Texture Loader
  • BMP (Windows/OS2 Bitmap, *.bmp) Texture Loader
  • OBJ (Alias|Wavefront Object, *.obj) Model Loader, (dec. 15, 2005), for OpenGL.
  • GL_ARB_texture_compression demo (using TGA texture loader),
  • Reflective environment mapping demo, (dec. 27, 2005)
  • Object outlining demo,
  • Quake's MDL Viewer (*.mdl),
  • Quake 2's MD2 Viewer (*.mdl)
  • Doom 3's MD5 Viewer (*.md5mesh, *.md5anim)
  • Doom 3's Ultralight MD5 Viewer (*.md5mesh, *.md5anim),

C++ ile yazılmış örnekler

  • 3D Math library (Vector, Matrix, Quaternion), for OpenGL.
  • Texture loaders, Some OpenGL texture class loaders.
  • Shader library, (jan. 31, 2006). GLSL shader classes.
  • md5loader picture
  • md3loader picture Quake 3's MD3 Viewer
  • md2loader picture Quake 2's MD2 Viewer
  • mdlloader picture Quake's MDL Viewer


bu konular ilginizi çektiyse buyrun link

Cumartesi, Haziran 03, 2006

Turbo C canlanıyor


Borlandın Emektar conio kütüphanesi için mingw32 yazılmış bir karşılığı var artık
http://conio.sourceforge.net/
Borland-style CONIO implementation for MinGW/Dev-C++.
artık eskiden Turbo C ile yazdığınız programları yeniden windows consolu için derleyebileceksiniz
ben bir deneme yaptım fi tarihinde -classları öğrenmek için- yazdığım yılan artık windowsta
:)

vakit bulabilirsem -zannetmiyorum ya- diğer eski programlarımı da deneyeceğim

kullanması çok kolay
1) öncelikle http://conio.sourceforge.net/ den indirip C::B'a ekleyin
2) consol projesi oluşturun
3) header olarak conio2.h kullanıp link libraries kısmına conio deyin
bu kadar ...

Çarşamba, Mayıs 31, 2006

Bir zerreciğim ki eşref-i mahlukatım

Gözlerinizi kapatın ve düşünün Evinizin içinde ne kadar küçük bir yer işgal ettiğinizi. Sonra evinizin Mahllenizin içindeki küçüklüğünü, Mahallenizin Şehrinizin içindeki küçüklüğünü düşünün. Şehrinizin Ülkeniz içindeki küçüklüğü ülkenizin Dünya üzerindeki küçüklüğü
Dünyanın Güneş, Güneşin diğer Büyük yıldızlara göre küçüklüğünü düşünün
Düşün ki O Koskoca Yıldızlarda Kainat içinde küçücük bir zerre...








Ben ki, toz kanatlı bir kelebeğim,
Minicik gövdeme yüklü Kafdağı,
Bir zerreciğim ki, Arş'a gebeyim,
Dev sancılarımın budur kaynağı!

demiş Necip Fazıl Çile'sinde
Bir Zerrecik olarak insanı Eşref-i Mahlukat yapan Ne ?
ve hatta Bu zerreciğin ne hükmü var ki Esfel-i Safiline düşebiliyor ?

Hayat
dört şeyle kaimdir, derdi babam
su ve ateş ve toprak.
Ve rüzgâr.
ona kendimi sonradan ben ekledim
pişirilmiş çamurun zifiri korkusunu
ham yüreğin pütürlerini geçtim
gövdemi alemlere zerkederek
varoldum kayrasıyla Varedenin
eşref-i mahlûkat
nedir bildim.*

Bir zerreciğim ki eşref-i mahlukatım / Dev sorumluluklarımın budur kaynağı!

* (1974) İsmet Özel Amentü

Cumartesi, Mayıs 20, 2006

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


Üzerinden bir hafta geçtikten sonra anca fırsat bulup yazabiliyorum. Sadece seminer başlıklarına bakarak bile ne kadar önemli bir etkinlik olduğunu göre bilirsiniz.

  • Common Lisp ile Yazlım geliştirme
  • PHP'ye Giriş + Kurulum, PHP 5 ,...
  • Libcap ile Paket yakalama
  • Beowulf Kümeleri ve Paralel Programlamaya giriş
  • Tembel Penguenlere Çekirdek Programlama - tam benlikmiş :) -
  • Cross-Platform Taşınabilir Kod Yazma
  • Özgür Yazlım Geliştirme süreçleri

ve bunlar gibi pek çok güzel konuda verilmiş olan seminerler hem de ücretsiz, daha ne olsun - acaba ücretli olsa katılım dahamı fazla olurdu :) - Fakat malesef ben ilk üç gün gidemedim; Çok yoğun olarak çalışmam ve çalıştığım işin bilgisayarlarla alakasız olması sebebiyle - alakalı olsa patron işle ilgili çok önemli şeyler öğretiyorlar bahanesiyle belki yırta bilirdim -

Amma Pazar sabah düştüm yollara. Zaten Şenlik vesilesiyle yıllardır uğramadığım okulumu da görmek nasip oldu. Tozlu topraklı isli dumanlı fabrika - çalışma ortamım oluyor - atmosferinden sonra ODTÜ'nün yeşillikler içindeki sakin hali beni mest etti. Burdan peşin peşin söyleyi okulunuz kıymetini bilin öğrenci kardeşler., Mezun olduktan sonra çalıştığınız yerler hiç te böyle olmayacak.

Neyse Konuyu dağıtmayalım.

Serdar Köylünün vereceği Nesneye Yönelik Programlama konulu seminerine gitmeyi planlamıştım ama Malesef iptal edilmiş. Kısmet LATEX imiş. Nereden aklımda kalmış bilmem, Programcılığın baba Kitabı sayılan The Art of Computer Programming in yazarı Donald Knuth 'un bu işle alakalı olması bu seminere katılmama sebep oldu. Semineri Çağıl Uluşahin adlı hanım hanımcık bir geç kardeşimizden dinledik sağ olsunlar. Daha Sonra Metasploit Framework ile Güvenlik Denetimi adlı semineri dinledim. Daha sonra devam edemedim ettirmediler - Laf aramızda Cracker'ın Hazin sonu ! yazımdaki Crackerden pek bir farkım yok ;)

Artık seneye kısmetse

Cuma, Mayıs 19, 2006

Fazla Mesai'ye Forum fazla -mı ! - geliyor

Fazla mesai takip ettiğim ve sevyeli bir ortam emeği geçe herkese peşin peşin teşekkür ediyorum. FM nin bir de forumu var. FM itibarıyla bu forumuda takip etmeğe başladım

Bir gün Ali Budak diye bir vatandaş

Bir C kodu icin yardim ariyorum.
diye bir başlık açmış ve

Forum sayfalarinda, insanlara yardimci olmak icin gecesini gunduzune katmis humanist arkadaslarima yurekten saygilarimi sunuyorum...C den aldigim odev konusunda yardim alma umidiyle yaziyorum, ama kimse bunu bi somuruculuk olarak gormesin lutfen. Arkadaslar ben bil. muh. 1. sinifta okuyorum ve aldigim odev su:""Bir kelimeyi hecelerine ayirmak icin C programi yaziniz."" Acikca soylemek gerekirse calismaya dun basladim ve herseyden once tukce kitaplarini karistirdim hece bilgisiyle ilgili bisey bulabilir miyim diye. Bana ipucu olabilecegini dusundugum 5 hece cesidi cikti. Program kodunu kurmak icin gerekli temel bilgiye sahip olmadigimi dusunerek sizlerden bana yardimci olmanizi rica ediyorum. TESEKKURLER..
diye sorusunu cevaplayacak - ödevini yapacak - hümanist adam aramaya başlamış hatta
C heceleme algoritmasi ve kodu
diye bir başlık daha açmış bu da yetmemiş forumun vatandaşın konusuyla alakasız başka konuların sonunada yamanıp sorusunu o kısımlara da yazmış 1 2
bunun üzerine ben konu edilen şahsa şöyle cevap vermişim

ödevin amacı zaten senin türkçe heceleme sistemi kurman değil C yi kullanmayı öğrenmendir önce bu konuda çalış ama senin buna pek niyetin yok gibi görünüyor yazdıklarından anladığım ödevi -hümainst olan - birilerinin senin yerine yazmasını istiyorsun.Bulabilirsen eğer o hümanist arkadaşa kolay gelsin

sağ olsun spud ve anhanguera da münasip cevaplar vermişler

ama vatandaş üstelemeye başladı ve bir cevap daha yazdım ve
Doğru Düzgün Soru Sormanın Yollarını tavsiye ettim
sonra ilgili vatandaş iyiden iyiye çileden çıktı. ben de baktımki bu durumda en güzel yol eskilerin dediği gibi
Cevabül ahmak es-süküt
susmaktı bende sustum

Her ortamda böyle adamlar olabilir dedim Lakin Bu forumu takip eden biri olarak ortadaki bu kadar mesaj kirliliğine de gönlüm el vermedi ve Forumun Moderatorlerinden Sundance! bir pm (Cum May 05, 2006) attım bir cevap gelmedi hatta pm yerine ulaşmadı daha sonra diğer Moderator arkadaşa Larweda'ya pm (May 10, 2006) attım.

Yine aynı sorunuç attığım pm ler ulaşmamış görünüyordu Her halde işleri dolayısıyla arkadaşlar FM ye uğramıyorlar derken FM de arkadaşların haberleri çıkınca Hımm dedim artık Fazla Mesaiye Forum fazla geliyormuş. Artık Forumdan FM yi haberdar etmek için haber olarak da bildirdim -Fazla Mesai'ye Forum fazla mı geliyor diye - ama nafile.

Her forumda budaklar çıkabilir lakin bu budakları budanarak forum ortamı muhafaza edilir.
Bu durumda benim için artık yapılacak tek şey kalmıştı.
Elveda demek onu da diyorum
Elveda FM Forum

Cumartesi, Mayıs 13, 2006

MODERN MÜTEŞAİR!

Öncelikle Muazzam müteşairimizden bir şiir okuyalım


ey hayatımın tüm renksiz gölgeleri razı olur musunuz?
hayallerimi tarttığım yoldaki korkular
kirletsinler tüm yüreklerdeki vakitleri
ey hayatımın tüm deli geceleri razı olur musunuz?
düşsün bütün korkunç gölgeler göklere
razı olur musunuz?..

Sonra bu eserin yazarının yazarına kulak verelim

Şairi değil belki ama müteşairi pek bol bir ülkeyiz. Doğru dürüst bir şairi okuma zahmetine katlanmadan şair olmaya çıkan müteşairlerin hiçbir kurala tabi olmadan, yazdıkları "modern" şiirleri okudukça aklımdan geçen şeyi nihayet gerçekleştirdim: "Müteşair Bilgisayar Programı!" Aslında yaptığım, ilk kıvılcımını Peyâmi Safâ'nın çok kıymetli bir makalesinden aldığım bir fikri hayata geçirmekti. Programım, "Şiir Yaz" düğmesine basıldığında, kelime bankasındaki çok sayıdaki sıfat, isim ve fiil arasından tamamen tesadüfi olarak seçtiği kelimeleri bir araya getirerek "şiir" yazmakta. Modernliği eksik kalmasın diye programımın kelime haznesini "uydurukça" kelimelerle doldurmayı ihmal etmediğimi de burada belirtmek isterim!

İlk taslaklarını javascript ile yazdığım programı ASP.NET ile son haline getirdim. Bakalım programımın yazdığı şiirler beğenilecek mi... Düşüncelerinizi, yorumlarınızı bekliyorum...

Salih Cenap Baydar

Merak ettiyseniz buyrun link : http://www.mavicadir.net/mavicadir/sair.aspx