Hatırlatma

Arkadaşlar hepimiz belki farkındayız ama hatırlatmakta yarar var diye düşündüm...

Banka Hesap İşletim Ücretleri

"Banka tırtıkları konusunda Kocaeli Üniversitesi’nden Prof. Alaeddin Bobat yazıyor...“Ne yazık ki bankalar, hiçbir yasal dayanağı olmadığı halde, vadesiz hesaplardan ‘Hesap İşletim Ücreti’ altında bir ücret kesmekte ve mevduat sahiplerinin bundan haberi bile olmamaktadır. 2005 ve 2006 yıllarında vadesiz hesabımdan kesilen ücretleri açtığım davalar sonucu faiziyle birlikte geri aldım. Her yıl ocak - şubat ayında yine ücret kesiliyor (20 YTL) ve ben yılmadan, bu haksız uygulamaya karşı her yıl dava açıyorum. Ayrıca kredi kartı için kullanım ücretini de geri aldım.”Rezalet o ki... Bankalar yüz binlerce mudiden bu paraları keserken siz geri almak için her defasında mahkemelere gitmek zorunda kalıyorsunuz.. Bir kısım vatandaşın bu kesintiden haberi yok... Bir kısmı uğraşmak istemiyor. Trilyonlarca lira bu şekilde bankaların zimmetine yazılıyor. Prof. Bobat tüketicinin korunmasından sorumlu olan Tüketiciyi Koruma Genel Müdürü’nün ilgisizliğini de kaydediyor. Bu konuda bir yasal düzenleme gerekiyor aslında. Ama iktidar halkın değil bankaların yanında olduğundan, o düzenleme de yapılmıyor. Bu yağma düzenine dur demek için, her tüketicinin hakkını tek tek ya da dernekler aracılığıyla araması zorunlu duruma geliyor."

Orjinal Yazı: Milliyet/30.04.2008 Melih Aşık

Fal

Uzun zamandır yazamıyordum ama bunu telafi edecek bir dönüş yapıyorum. Aşağıda önceden bahsettiğim kısa film atölyesinin ürünü var. Yorumları bekliyorum. İyi seyirler...

UNESCO Özgür ve Açık Kaynak Yazılım Portalı

Şu bağlantıdan UNESCO'nun Özgür ve Açık Kaynak Yazılım portalına ulaşabilirsiniz. Bu portaldan FLOSS hareketiyle ilgili belgelere ve sitelere ulaşım sağlayabilirsiniz. Ayrıca Özgür Yazılım ile ilgili kaynaklara bir geçit görevi görüyor. Özgür yazılım anlamak isteyenler için etkileşimli bir erişim noktası görevi görerek kalıcı bilgiler barındırıyor.

Poni Hoax - She sells anger

Kısa kısa

1. Aşkın diyalektiği konusunu aratırken (ne alaka demeyin merak ettim arattım :) ) Ulus Baker'in Spinoza ve Aşkın Diyalektiği ile karşılaştım. Ulus Baker ismiyle tanışmış oldum. Varolan yazılarını okumaya çalışacağım. Bir kaç aydır etkin olarak felsefe, özellikle Türkçe felsefeciler ararken karşıma çıkan bu isim oldukça iyi oldu (Ahmet İnam'ı okuyordum mesela).

2. Avatar - Son Hava Bükücü çizgi filmine sardım. İlk sezonunu bitirdim, ikinci sezonun yarısındayım. Amerikan Nickelodeon kanalı tarafından yapılan Amerikan kaynaklı bir animasyon. Miyazaki'den ve Japon Anime kültüründen oldukça etkilenmiş bir yapım. Başarılı olduğunu söyleyebilirim.

3. 13. İzmir Kitap Fuarı 19-27 Nisan arası ve ben almak için kaydettiğim kitap listesine baktım 23 tane kitap yazmışım. Bir de fuarda gezerken bu listeye eklenecek kitapları düşününce bütçemin iyice sarsılacağı kesin :) 23 Nisan Çarşamba günü resmi tatil olur ve okula gitmem gerekmezse sanırım o günü fuara ayıracağım :)

2008 Blog Ödülleri

Bu sene bir ilk gerçekleşiyor ve Türkçe bloglar arasında bir oylama düzenleniyor. Kod ve us günlüğü Teknoloji kategorisinde oylamaya giriyor. Daha önce rastlamadığımız başarılı günlüklerle karşılaşma ortamını oluşturması bu oylamanın en büyük avantajıdır. Şimdi değerli okuyucularımızdan bu blog ödülleri içerisindeki oylanan günlükleri incelemek için zaman ayırmalarını rica ediyorum. Böylece ilginizi çekebilecek başarılı günlüklerle tanışma şansına ulaşabilirsiniz. Bu arada hafif bir manipülasyon yaparak başarılı olduğunu düşündüğüm adaylarımı yazayım :)

Kültür-Sanat Kategorisi'nde Goddess Artemis' Blog
Haber Gündem Kategorisi'nde Çağatayca

Henüz diğer kategorileri ayrıntılı incelemeye fırsatım olmadı. Yukarıda yazdığım adaylar benim sürekli takip etmeye çalıştığım beğendiğim bloglar.

JOGL Ne ola ki?

JOGL adı üstünde Java OpenGL kütüphanesidir. Bu kütüphane Bilgisayar Grafiği programlayanların Java'yı ve dolayısıyla nesne yönelimli yaklaşımı kullanmasını sağlar.

Kullanmadan önce nasıl kuracağımızı görelim
  1. JOGL sitesinden windows için gereken dağıtımı indirelim. Ayrıca eğer JOGL belgesini indirirsek geliştirmede çok faydalı olabilir.
  2. Daha sonra geliştirme ortamımızın kullandığı Java SDK/JRE dizinini tespit edelim.
  3. Zip dosyası içerisindeki dll dosyaları yukarıda tespit ettiğimiz dizin içerisindeki bin altına kopyalayalım.
  4. jar dosyalarını ise lib/ext dizini altına kopyalayalım. (Bende Eclipse E:\jdk\jre konumunu kullanıyordu, bu yüzden dll dosyalarını E:\jdk\jre\bin, jar dosyalarını ise E:\jdk\jre\lib\ext dizinine kopyaladım.)
Eclipse kullananlar için alternatif kurulum yöntemi bu dosyaları projenin kütüphanesi olarak tanıtmaktır. Aşağıda bu yöntemin aşamalarını görebilirsiniz:

1. JOGL sitesinden kullandığımız işletim sistemine uygun dağıtımı indirelim.
2. Eclipse içerisinde açtığımız lib isimli bir klasör içerisine bu sıkıştırılmış dosyadan ortama göre dll veya so dosyalarını ve ek olarak içerisindeki jar dosyalarını (sıkıştırılmış dosya içerisinde lib klasöründeki tüm dosyalar oluyor bu durumda) açalım.
3. Projeye sağ tıklayıp "Properties" seçeneğiyle (ayrıca proje seçiliyken Alt+Enter tuş birleşimi de açar) özellikler penceresini açıyoruz. Bu pencerede sol taraftan "Java Build Path" menüsünü seçiyoruz. Sağ tarafta açılan pencereden "Libraries" sekmesine geçiyoruz.










Bu sekmede sağ tarafta "Add JARs" düğmesiyle JAR seçim penceresini açıyoruz. Bu açılan pencerede workspace içerisinde projemizin lib klasörüne açtığımız gluegen-rt.jar ve jogl.jar dosyalarını seçip projeye ekliyoruz.












4. JARları ekledikten sonra native kütüphane ayarlamasını yapmak için "Libraries" jogl.jar'ı sol taraftaki ok uçlarından açıp içerisindeki "Native Library Location" bilgisini yine sıkıştırılmış dosyayı açmış olduğumuz "ProjeIsmi/lib" şeklinde seçiyoruz.









5. Bu işlemler bittikten sonra ilgili projemiz JOGL kullanabilir hale gelmiş oluyor.

Daha sonra JOGL kullanacağımız projeyi kodlamaya başlayabiliriz. Kurulumu test etmek için şu kodu deneyebilirsiniz:
import java.awt.Color;
import java.awt.event.WindowAdapter;
import java.awt.event.WindowEvent;
import javax.media.opengl.GL;
import javax.media.opengl.GLAutoDrawable;
import javax.media.opengl.GLCanvas;
import javax.media.opengl.GLEventListener;
import javax.media.opengl.glu.GLU;
import javax.swing.JFrame;

public class JOGLDeneme extends JFrame implements GLEventListener {
private GLCanvas canvas;
private static GLU glu;

public JOGLDeneme() {
init();
}

private void init() {
this.setTitle("Merhaba Dünya!");
canvas = new GLCanvas();
canvas.addGLEventListener(this);
this.add(canvas);
this.setSize(300, 300);
this.setBackground(Color.WHITE);
this.addWindowListener(new WindowAdapter() {
public void windowClosing(WindowEvent e) {
System.exit(0);
}
});
dinleyicileriAyarla();
sahneyiOlustur();
this.setVisible(true);
}

private void dinleyicileriAyarla() {
// Bu metodta canvas uzerinde eylemleri yakaliyoruz
canvas.addGLEventListener(this);
}

private void sahneyiOlustur() {
// Burada basit sahneyi canvas uzerinde olusturalim
}

/**
* Ekrani temizler
*
* @param Temizlenecek
* GLDrawable
*/
public void clearScreen(GLAutoDrawable glDrawable) {
final GL gl = glDrawable.getGL();
// ekrani temizle
gl.glClearColor(0.5f, 0.5f, 0.5f, 1.0f); // arkaplani gri yapiyoruz
gl.glClear(GL.GL_COLOR_BUFFER_BIT); // pencereyi temizle
}

private void ucgenCiz(final GL gl) {
// rengi yesil renk olarak ayarlayalim
gl.glColor3fv(new float[] { 0.0f, 1.0f, 0.0f },0);
float x = 0.0f;
float y = 0.0f;
float length = 1.0f;
float half_length = 0.5f * length;
// bir kenarin uzunlugu veriliyor ve orta noktayi biliyoruz
// bitis noktalarini hesaplayip her koseden kenarlari ciziyoruz
float hypotenus = ((float) (half_length / (Math.sin(Math.toRadians(60)))));
float adjacent = ((float) (half_length / (Math.tan(Math.toRadians(60)))));
// Ucgeni ciz
gl.glBegin(GL.GL_POLYGON); // cizelim
// Sag ust
gl.glVertex2f(x, hypotenus);
// sol ust
gl.glVertex2f(x - half_length, y - adjacent);
// sol alt
gl.glVertex2f(x + half_length, y - adjacent);
gl.glEnd();
}

/**
* Program basladigi zaman grafik islemleri icin gereken ayarlamalar yapilir
*/
public void init(GLAutoDrawable glDrawable) {
final GL gl = glDrawable.getGL();
glu = new GLU();
gl.glMatrixMode(GL.GL_PROJECTION);
gl.glLoadIdentity();
glu.gluOrtho2D(-1.0f, 1.0f, -1.0f, 1.0f);
gl.glMatrixMode(GL.GL_MODELVIEW);
gl.glLoadIdentity();
}

/**
* Bu metod java.awt.Component.paint() metoduna benzer Canvas her yeniden
* cizileceginde cagrilir
*
*/
public void display(GLAutoDrawable glDrawable) {
// ekrani temizle
clearScreen(glDrawable);
ucgenCiz(glDrawable.getGL());
}

/**
* Ekrani yeniden boyutlandirmak icin kullanilir
*/
public void reshape(GLAutoDrawable gLDrawable, int x, int y, int width,
int height) {
final GL gl = gLDrawable.getGL();
gl.glViewport(0, 0, width, height); // viewportu guncelliyoruz
}

/**
* Program calisirken display modu degisirse
*/
@Override
public void displayChanged(GLAutoDrawable arg0, boolean arg1, boolean arg2) {
// birsey yapma
}

public static void main(String[] args) {
new JOGLDeneme();
}
}

Eğer kod hatasız derlenip, hatasız çalışır ve aşağıdaki resimdeki gibi ekranda gri arkaplan üzerinde yeşil bir üçgen çizilirse kurulum başarılıdır. Şimdi OpenGL/JOGL öğrenmeye başlayabilirsiniz.

Kaynak: https://www.cs.umd.edu/%7Emeesh/kmconroy/JOGLTutorial/
Ayrıca şurada farklı sitelere linkler bulabilirsiniz : http://yzgrafik.ege.edu.tr/%7Eugur/05_06_Spring/BG_05_06.htm
http://yzgrafik.ege.edu.tr/%7Eugur/06_07_Spring/COURSES_06_07_Spring.htm

Güncelleme: JOGL kodu güncel JOGL sürümüne göre değiştirildi.
Güncelleme 2: Eclipse projelerinde kullanım eklendi.

ODTÜ Açık Ders Malzemeleri Projesi

ODTÜ Açık Ders Malzemeleri Projesi 16 Nisan günü resmen çalışmaya başlayacak. Mustafa Akgül tarafında listelere gönderilen ilgili bilgilendirme postasını ilgilenenler için paylaşıyorum:

"ODTU Acik Ders Malzemeleri Projesi Acilisi

Amerika Birlesik Devletleri'nde 2000 yilinda "Massachusetts Institute
of Technology (MIT)" onculugunde baslatilan, daha sonra 19 farkli
ulkeden cok sayida universitelerin de katilimi ile yayginlasan Acik
Ders Malzemeleri Projesinin (Open CourseWare Project) benzerini
ulkemizde de hayata gecirmek icin Turkiye Bilimler Akademisi
onculugunde bir Ulusal Acik Ders Kaynaklari Projesi, 50’ye yakin
universite, Yuksekogretim Kurumu ve Turkiye Bilimsel ve Teknolojik
Arastirma Kurumu katkisi ile 2007 yili icinde baslatilmis ve bu amacla
bir konsorsiyum kurulmustur.

Ulusal Acik Ders Malzemeleri Konsorsiyumu uyelerinden olan Orta Dogu
Teknik Universitesi (ODTU), bu konudaki test calismalarini tamamlamis
ve kendisine ait ilk grup acik ders kaynaklarini hazirlayarak, genel
kullanima hazir hale getirmistir. ODTU tarafindan acilan ders
malzemeleri, http://ocw.metu.edu.tr/ adresi uzerinden, diger
universiteler ve hayat boyu ogrenme amaci ile kaynak ihtiyaci duyan
kisilerce de serbestce kullanilabilecektir. Ulusal Acik Ders
Malzemeleri Konsorsiyumu, ayni zamanda uluslararasi konsorsiyumun da
bir parcasi oldugu icin paylasima acilan ders malzemelerine tum
dunyadan ulasilabilecektir. Bu sayede, ders malzemelerini paylasima
acan ogretim uyeleri otomatikman uluslararasi toplulugun da bir
parcasi olacaklardir.

ODTU Acik Ders Malzemeleri Projesi’nin resmi acilisi 16 Nisan 2008,
Carsamba gunu saat 14:00’da ODTU Kultur ve Kongre Merkezi (KKM) C
Salonu’nda yapilacaktir.


Kursat Cagiltay
kursat@metu.edu.tr"

Arama ile Problem Çözme

Arama, problemin durum uzayında sistematik olarak araştırma yapmaya dayanan bir problem çözme tekniğidir. Durum uzayı bir problemin farklı durumlarını barındıran bir kümedir. Bu durumlar bir oyun tahtası ve üzerindeki taşların konumları, çıkarsama sürecindeki ara adımlar, satıcının gezdiği şehirler olabilir. Bu durumların oluşturduğu küme içerisinde arama yapılarak problemin çözümü bulunmaktadır. Başka bir ifadeyle aramayı, formülleştirme ve alternatifleri inceleme süreci olarak tanımlayabiliriz.

Arama ile ilgili olarak Russell ve Norvig'in kitabında problem çözme etmeni anlatılmıştır. Bu etmen istenen durum(lar)a ulaşmak için sonraki durumları (adımları) bularak karar verir. Böylece etmenimizin bir hedefi, bu hedefe ulaşmak için geçebileceği durumlar (adımlar) vardır.

Varolan duruma göre hedef formülasyonu problem çözmedeki ilk aşamadır. Hedefi bir durumlar kümesi olarak düşüneceğiz, bu durumlar bizim hedefe ulaştığımız durumlar olacaktır. Bu durumlar arasındaki geçişler de eylemlerimizi oluşturacaktır.

Problem çözmede ikinci aşama problemin formüle edilmesidir. Problemin formüle edilmesi hangi eylemlerin ve durumların değerlendirileceğine karar verme sürecidir.

Hedefimizi ve problemimizi tanımlama sürecini daha iyi anlamak konuyu bir örnekle gösterelim:

Problem : İzmir'den İstanbul'a gitmek
Hedef : İstanbul
Başlangıç durumu : İzmir
Durumlar : Belli bir şehirde olma (aradaki herhangi bir şehir de olabilir)
Eylemler : Bir şehirden başka bir şehire geçiş

Bu bilgileri oluşturup etmenimize verdikten sonra problemi, hedefi, durumları ve eylemleri tanımlamış oluyoruz. Etmenin yapması gereken başlangıç durumundan (İzmir), bitiş durumuna (İstambul) geçiş için uygun adımları (eylemleri) bulmasıdır. İzmir'den İstanbul'a gitmek için geçilebilecek yolları bilmeden etmenin bu işi yapması mümkün değildir. Yapılması gereken etmene bir yol haritası vermektir. Bu haritanın amacı etmenin şehirler arasında yapabileceği geçişleri göstermektir. Böylece gidebileceği şehirleri (durumlar) ve yapabileceği eylemleri (hangi şehirler arasında yolculuk yapabileceği) öğrenmiş olur. Etmen bu bilgilere de sahip olduktan sonra, farklı eylemleri ve durumları sınayarak yapması gereken eylemleri bulur ve adım adım durumlar arasındaki geçişlerle hedef duruma ulaşmaya çalışır. Sonraki durumlara geçişte farklı kriterleri göz önüne alabilir (en kısa yol, en iyi yol, vb.).

Bu anlatılan sürece arama adı verilmektedir. Bir arama algoritması problemi girdi olarak alır ve çıktı olarak bu probleme bir çözüm (yapması gereken eylem aşamaları) üretir. Bir çözüm bulunduğu zaman, bu çözümün önerdiği eylemler gerçekleştirilebilir. Buna çalıştırma aşaması adı verilmektedir. Böylece etmen için basit  bir "formüle et, ara, çalıştır" tasarımı elde etmiş oluyoruz. Buraya kadar anlatılanları yine Russell ve Norvig'in kitabındaki bir algoritma ile gösterelim:



Bağlantılar: 
Stuart Russell and Peter Norvig , Artificial Intelligence: A Modern Approach
http://www.aaai.org/AITopics/pmwiki/pmwiki.php/AITopics/Search
http://www.cs.dartmouth.edu/~brd/Teaching/AI/Lectures/Summaries/search.html
http://cs-alb-pc3.massey.ac.nz/notes/59302/l03.html
http://www.cs.indiana.edu/~leake/papers/p-01-07/p-01-07.html

Biraz Magazin, Dağıtımların İsimleri Nereden Geliyor?

Linux ve BSD dağıtımlarının isimlerinin nereden geldiğine dair bir ingilizce blog yazısı ile karşılaştım, işin magazinsel boyutunu oluştursa da merak edenler vardır sanırım (ben bir kısmını duymuştum, ama hepsini öğrenmek linux kültürüme iyi katkı sağladı :P ). Şurayı tıklayarak öğrenebilirsiniz :)

Devrimci Gençlik Köprüsü

Bugün oldukça güzel bir hafta sonunun (Cuma ile başlayan güzellikler) oldukça güzel bir Cumartesi günü. Düşünün aylardır umutsuzluğa kapıldığınız, insanlara güveninizi yitirebildiğiniz gelgitli dönemler yaşıyorsunuz. Sürekli olarak kendinizi depresyonda olduğunuz şeklinde kandırıyorsunuz ve artık üretiminiz durmuş durumda. Üretmeye başlamanız gerektiğini biliyorsunuz ve üretmeye çabalıyorsunuz. Bir kaç alanda "mücadele" etmeye devam ediyorsunuz sürekli üreterek ve artık bir şeylerin o kadar kötü olmadığını gördüğünüz zaman tekrar umutlanıyorsunuz. İzlediğiniz her filmde, tiyatroda, belgeselde, okuduğunuz her kitapta, etkileştiğiniz her insanda bir çaba görmek, etrafınızda bir çaba görmek, umut görmek sizi daha da çoşkulandırıyor. Ne olursa olsun, ama ne olursa olsun Ataol Behramoğlu'nun şu dizeleri dökülüyor bir yerlerden dilinize gelerek;

Kucaklıyor beni Metin Altıok
"Aldırma" diyor gülerek
"Yaşamak görevdir bu yangın yerinde
Yaşamak, insan kalarak"

Bu dizeler Sivas 93 oyununda söyleniyor. Bu oyuna dün akşam gittim. Ve unutulmaması gerekenleri tekrar tekrar hatırlattığı için, değerli insanların yüzlerini bize tekrar tekrar gösterdiği için bu oyun izleyen çoğu kişi gibi beni de etkiledi. Umut var, unutmadığımız sürece, hatırladıkça ve doğrularımız için yaşadıkça umut var diyor insan. Evet bu yangın yerinde yaşamak zor, ama yaşamak görevdir bu yangın yerinde insan kalarak. Eğer bu oyun sizin şehrinize uğrarsa ne olursa olsun gidin izleyin, unutmak üzere olduklarınızı, hiç öğrenmediklerinizi size tekrar anlatacaktır.

Cumartesi günü dedim, Cuma gününü anlattım :) Konu oraya yöneldi.

Cumartesinin güzel olması izlediğim bir belgesel ve o belgeselin yaratıcılarının katıldığı bir panel sayesinde oldu. Yine bir insan duyarlılığı, umudu görüp ben hiç bir şeyi yanlış yapmıyorum diyebildim. Yalnız değilim en azından diyebildim (yalnız olmadığımı biliyorum, arkadaşlarım alınmasınlar :D )

Bu belgesel bir 68 belgeseli. 1968 Yılında o kuşaktaki mühendislik öğrencileri Boğaziçine, İstanbul'a yapılacak köprüye karşı çıkıyorlar. Bu karşı çıkışlarında, tek köprünün yetmeyeceği bu köprünün yeni köprülere yol açacağı ve tamamen kapitalist petrol tekellerinin işine yarayacağı söylemi egemen. Ve temel savundukları düşünce Türkiye'nin doğusunda da batısında da eşit yatırım yapılması gerektiği. Bu yüzden bir göreve kalkışıyorlar, Hakkari Zap suyu üzerine, tamamen sembolik olarak seçilen bu yere "Devrimci Gençlik Köprüsünü" inşa ediyorlar. Bu süreci ve köprünün yaşamını anlatan bu belgeseli de mutlaka izlemelisiniz.

Panelden edindiğim en önemli gözlemim, 1968 yılında oldukça az olanaklara rağmen köprü yapmak, gidip depremde yıkılan evleri onarmak gibi öğrencilerin günümüzde çekindiği işlerde bizzat çalışarak, halkla bütünleşen bir gençlik var. Belki günümüzde de gençliğin bu etkileşime girmesi gerekiyor. Bir de o dönemin eğitim sistemindeki Köy enstitülerini, doğrudan işin içinde meslek öğrenen mühendisleri unutmamak gerekiyor. Mühendislik imza atarak yapılan bir iş değildir, doğrudan yaşamın içerisinde halkla birlikte yaşanarak yapılan bir iştir, eğitimi de böyle olmalıdır.


Biterken Kardeş Türküler'den Asfur çalıyordu.