Thursday, December 27, 2012

GGJ - Ege 2013

Herkese merhaba, bu yazımın konusu başlıktan da anlaşılacağı gibi GGJ - Ege 2013. Geçen yıl Şeyda Çobanoğlu tarafından İzmir Ekonomi Üniversitesi'nde gerçekleştirilen ve bir çok katılımcının fazlasıyla memnun kaldığı bir organizasyondan sonra bu yıl yine İzmir Ekonomi Üniversitesi'nde farklı ancak en az geçen yıl ki kadar çaba sarfeden bir ekip tarafından gerçekleştirilecek. Organizasyon ekibinin çalışmalarını ve toplantılarını yakından takip eden birisi olarak şunu söyleyebilirim ki, bu yıl İzmir Ekonomi Üniversitesi'nde gerçekleştirilecek olan GGJ gerçekten iddaalı. Oyun geliştiricilere sunduğu konforlu ortam ve ödulleriyle Türkiye'deki ve hatta dünyadaki bir çok GGJ'den çok daha başarılı bir etkinlik olarak hafızalara kazınacağa benziyor. Şu an takip ettiğim kadarı ile özellikle İzmir'de ikamet eden, oyunlarla ve/veya oyun geliştirme ile ilgilenen jüride bulunacak kişilerle iletişime geçiliyor. Eğer bildiğiniz, tanıdığınız isimler varsa organizasyonun akademik danışmanı Gazihan Alankuş ile iletişime geçip yardımcı olabilirsiniz. Ya da buraya yazabilirsiniz. Önerdiğiniz tüm isimleri Gazihan hocam ile paylaşabilirim.

Sunday, December 9, 2012

Tasarım Desenleri (Design Patterns) Nedir?

Tasarım desenleri(Design Patterns), yazılım tasarımında sürekli karşılaşılan genel sorunlara esnek, yeniden kullanılabilir, başarılı çözümler getiren bir takım hazır kalıplardır. Hazır olarak kodun içine konulup çalışabilen, bitmiş tasarımlar değildir. Çeşitli durumlarda sorunların nasıl giderileceğini açıklayan, bunlara yol gösteren açıklamalardır. Nesneye dayalı programlamada, tasarım desenleri sınıf ve nesneler arasındaki ilişkilerin en iyi şekilde nasıl olmaları gerektiğini açıklayan yöntemlerdir. Algoritmalar, tasarım deseni değildir. Çünkü bunlar hesaplama sorunlarına çözüm getirirler, oysaki tasarım desenleri yazılım tasarımı sorunlarıyla ilgilenir. Günümüzde sıkça yapılan bir diğer hata ise, çok spesifik bir soruna karşılık kullanılan ve esnek olmayan yapılara tasarım deseni adını vermemizdir.

Saturday, October 27, 2012

WikiLeaks ve Türkiye Belgeleri

Uzunca bir süredir WikiLeaks oluşumunu takip ediyorum. Mümkün mertebe Türkiye için yazılmış, çizilmiş tüm belgeleri okumaya ve analiz etmeye çalışıyorum. Bilmeyenler ya da duymayanlar için kısaca tanımlarsak; WikiLeaks, kaynaklarının gizliliğini koruyarak hükümetlerin ve diğer organizasyonların hassas belgelerini yayınlayan, İsveç merkezli uluslarararası bir organizasyondur.

Yakın zamanda tüm dünya medyasının ilgisini çekmiş bir organizasyon olmakla beraber özellikle ABD Dışişleri Bakanlığı'na ait olan gizli belgeleri açıklamasıyla son döneme damgasını vurdu. Bende ne olur ne olmaz diyerek Türkiye için var olan tüm kayıtları yazdığım ufak bir scriptle sitesinden çektim. Yarın öbür gün sitenin kapanması durumunda veriler elimin altında olsun diye hepsini id numarası ile kaydettim. Ve ilgisi olan kişiler için burada yayınlamayı düşünüyorum. Kayıtlara erişmek isteyenler şu linkten indirebilirler.

Monday, October 15, 2012

Radio Teleport ve Hayallerin Gerçekleşmesi

Yaklaşık 5 gün önce, 10 Ekim 2012'de Ulaş Göde(ki kendisi üniversiteki en yakın arkadaşlarımdan birisidir) ansızın, Radyo Teleport adında internetten canlı yayın yapan bir radyo servisiyle, uzun süredir aklımızda olan bir projenin ilk adımını hayata geçirdi. Arkadaş grubumuz içinde her zaman mevzu bahis olan bu servisin gerçekleşmesi beni çok sevindirdi. Şu an 24 saat canlı yayın yok. Ancak Facebook sayfasından yayın olduğu vakit anons yapılıyor. Radio Teleport ilk haftasında birbirinden farklı konseptlerle dinleyicileri ile buluştu. Geçtiğimiz Cuma gerçekleşen 80'ler ve 90'lar programında çalan parçalarla adeta çocukluğuma döndüm. Akabinde Cumartesi sabahı çalan Nostaljik parçalar böylesine bir projeye ne kadar özlem duyduğumu bir kere daha hatırlattı. Radio Teleport'un şu an için belli bir konsepti yok gibi. Ancak ben bunu olumlu karşılıyorum. Zira bir çok radyo yayınının aksine çok daha geniş bir kitleye ulaşabilme potansiyeli taşıyor.

Saturday, September 22, 2012

Earthquake Analysis - [Proje]

Herkese merhaba! Bugün size "Earthquake Analysis" isimli yeryüzünde son 1 saat, 24 saat ve 7 gün içerisinde meydana gelen depremleri gösteren ve 2012'nin Ocak ayında yapmaya başladığım bir projeden bahsedeceğim. Ekstra bir kaç özellik ile birlikte blogda yayınlamayı planlıyordum. Ancak Şubat 2012'den bu zamana ilgilenme fırsatım olmadı. Projeyi birkaç kısımda incelemekte fayda var. Öncelikle verileri USGS (U.S. Geological Survey) sitesinden alıyorum. Verileri PHP'de yazdığım bir kod parçası ile alıyorum. Bu kısım bilginin alındığı ve işlendiği bölüm. Daha sonra aldığım verileri Javascriptte oluşturduğum "Earthquake" sınıfına uygun bir biçimde parse edip HTML vasıtası ile Google Map üzerinde gösteriyorum. Bu da projenin 2.kısmı. Proje PHP, Javascript, CSS, JQuery ve Google Map API V3 ile hazırlanmıştır. Sayfa her 60 saniyede 1 kendini yenilediği için sürekli güncel verileri görüyorsunuz. Şimdi adetim olduğu üzere resimler eşliğinde projeyi sizlere tanıtacağım.

Sunday, September 2, 2012

Haftanın Tavsiyeleri - 7

Haftanın Filmi - V For VendettaJames McTeigue


Haftanın Kitabı - Nineteen Eighty-Four / George Orwell


Haftanın Müziği - Eternity Theme / Eleni Karaindrou

Mandelbrot Kümesi ve Fraktal Simülasyonu - [Proje]

Yaklaşık 2 hafta önce izlemiş olduğum BBC Science tarafından hazırlanmış "The Secret Life of Chaos" (Kaos'un Gizli Yaşamı) belgeseli ile daha önceden fikir sahibi olduğum fakat vakit nedeniyle pek üzerine düşünemediğim bir konu olan fraktallar ile ilgili araştırma hevesim tekrar gün yüzüne çıktı. Fraktal, matematikte çoğunlukla kendine benzeme özelliği gösteren karmaşık geometrik şekillerin ortak adıdır. Daha basit tanımıyla, kendi kendini sonsuza kadar tekrar eden şekiller olarakta görebiliriz.

"The Secret Life of Chaos" belgeselinde bahsi geçen fraktal kümelerinden birisi de "Mandelbrot kümesi"dir. Mandelbrot kümesi, Benoit Mandelbrot'un ikinci derece kompleks değişkenli polinomların dinamiklerini açıklamak için geliştirdiği ve incelediği kümedir. Mandelbrot kümesi, karmaşık düzlemin bir fraktal alt kümesidir.

Bugünkü yazımda bahsedeceğim konu ise, Mandelbrot kümesinin, Java programlama dili ve OpenGL kütüphanesi kullanılarak hazırlanmış simülasyonudur. Programı yazarken kullandığım algoritmanın pseudocode hali buradaki linkte mevcuttur.

Programın kullanımı çok basit. Öncelikle Grafik ve Ayarlar Paneli olmak üzere 2 kısımdan oluşan programda, Grafik kısmına farenin mercek(zoom) görevi görebilen tekerlek kısmı ile fraktalın istediğiniz bölgesine yakınlaştırma ya da uzaklaştırma yapabilirsiniz.

Tuesday, August 7, 2012

Windows'a Django 1.4.1 Kurulumu

Django, çok uzun zaman önce duyduğum fakat zaman sıkıntısı sebebiyle hiç alakadar olamadığım Python programlama dili için hazırlanmış ve BSD lisansı ile lisanslanmış yüksek seviyeli bir web çatısıdır. Basit kurulumu ve kullanımı, detaylı hata raporu sayfaları ve sunduğu yeni arayüz kodlama yöntemleriyle diğer sunucu yazılımı ve çatılardan kendini ayırmaktadır. İsmi, ünlü jazz gitaristi Django Reinhardt'tan gelmektedir.

Bu yazımda Django 1.4.1'in Windows XP üzerine kurulumunu anlatacağım. Öncelikle bize lazım olan uygulamaların bir listesini çıkaralım. Django, Python programlama dili kullanılarak geliştirildiği için sistemde Python kurulumu olması ön şart. Ancak GNU/Linux dağıtımlarının aksine, Windows işletim sisteminde Python programlama dili kurulu olarak gelmez. Dolayısıyla Python’ı Windows’ta kullanabilmek için sitesinden uygun kurulumu indirmemiz gerek.

İlk olarak şu adresten hangi Python sürümünün hangi Django sürümü ile uygun olduğunu kontrol etmeliyiz. Benim bu yazıyı yazdığım tarihlerde Django 1.4 sürümü için Python 2.5, 2.6, 2.7 sürümleri birbirleri ile uyumlu sürümler idi. O yüzden Python kurulumunu 2.7, Django kurulumunu 1.4'e göre yapacağım. Fakat siz istediğiniz sürümü kullanmakta özgürsünüz bu yüzden istediğiniz Python sürümü için [http://www.python.org] sitesinden, istediğiniz Django sürümü için ise [https://www.djangoproject.com] sitesinden uygun sürümleri indirmemiz gerekiyor. Ya da benim bu yazı için kullandığım Python 2.7.3 sürümünü indirmek için buraya, Django 1.4.1 sürümünü indirmek için buraya tıklayınız.

Thursday, August 2, 2012

Radyo Voyage 107.4 ve THY Reklam Spotlarında Çalan Müzikler

UYARI - 13.02.2015
------------------------------------------------------------------------------------------------------------
Bazı kullanıcılardan sitede bulunan parçaların radyoda çalanlar ile uyuşmadığı şikayeti geldi. Evet doğrudur, sanırım Radyo Voyage, ülke müziklerinin tamamında değişime gitmiş. Şu an bulunduğum programın yoğunluğu nedeniyle açıkçası bloguma pek fazla vakit ayıramıyorum. Ama değerli dinleyicilerin katkılarını yorumlar kısmında yayınlıyorum. Gözükmeyen yorumlar için aşağıdaki uyarıyı dikkate alırsanız sevinirim.

UYARI - 05.02.2015
------------------------------------------------------------------------------------------------------------
Bazı kullanıcılardan yorumların yayınlanmadığına dair şikayetler geldi. Bu sorun Blogger servisinden kaynaklanmaktadır. Şu an Fransa'da olduğum için internete erişimim Fransız bir servis sağlayıcı aracılığı ile oluyor. Ve Blogger servisi bu yorumları Fransa domain'i altında yayınlıyor. Tutarsızlık için herkesten özür dilerim, hatayı Blogger'a bildirdim. Şayet burada göremediğiniz yorumlar varsa birde şu linke bakınız lütfen 

LINK --> http://tanergungor.blogspot.fr/2012/08/radyo-voyage-1074-ve-thy-reklam.html

Ayrıca İspanya domaini için

LINK --> http://tanergungor.blogspot.com.es/2012/08/radyo-voyage-1074-ve-thy-reklam.html
------------------------------------------------------------------------------------------------------------

Yaklaşık 2.5 - 3 yıldır internet üzerinden Radyo Voyage dinliyorum. "Dünyanın müziğine yolculuk.." mottosu ile yayın hayatına başlayan ve bana göre Türkiye'de kaliteli müzik yayını yapan ender radyolardan birisi. Ayrıca çalışırken dikkatim dağılmadan dinleyebildiğim tek radyo olması ve 24 saat içerisinde çalan tüm müzikleri "Bugün kaçta ne çaldı?" uygulaması ile dinleyicisine inanılmaz bir kolaylıkla bildirmesi nedeniyle bende özel bir yere sahiptir. Dünyanın dört bir yanından, çok duyulmamış ama güzel müzikler dinlemek istediğinizde deneyebileceğiniz bir radyo. Sözü fazla uzatmadan bu yazıyı neden yazmak istediğime değineceğim. Radyo Voyage'ın benim bildiğim kadarı ile şuan tek sponsoru olan Türk Hava Yolları'nın(THY) her saat başı radyoda reklamı olmakta. Reklam sonunda çalan müzikler ise THY MADRID, THY MILANO etiketleri ile yayınlandığı için dinleyicilerin bir çoğu sevdiği müziği arayıp bulmakta güçlük çekiyor. Ayrıca Facebook'taki, Radyo Voyage 107.4 sayfasında yetkililere parça ile ilgili bilgi almak istediğinizi söyleyince, yetkililer müziğin reklam spotunun devamında yer alan bir müzik olduğunu ve reklam spotlarının kurumlara ait özel çalışmalar olduğu için onların izni olmadan paylaşılmadığını söylüyorlar. Ben de bu sorunu yaşayan Radyo Voyage dinleyicilerinden birisi olduğum için bu yazımda reklam spotlarının devamında çalan bildiğim bazı müzikleri paylaşacağım. Şimdilik çok az olsalar da, yakın zamanda Radyo Voyage dinleyicilerinin destekleri ile daha da büyüyeceğine inanıyorum. Umarım başka dinleyicilere faydası olur. İstekleriniz ve talepleriniz doğrultusunda yazımda güncellemeler yapabilirim. Eğer parçaların hatalı olduğunu düşünüyorsanız lütfen bildirin ona göre düzeltme yapalım. Şimdiden herkese iyi dinlemeler..

Tuesday, July 24, 2012

Eclipse İçine Google App Engine SDK Kurulumu

Bugün kü yazımda, Eclipse içine Google'ın yeni bir hizmeti olan "Google App Engine SDK"sini yüklemeyi anlatacağım. Daha önce duymayanlar için hemen kısa bir özet geçeyim. Google App Engine, Google'ın uygulama geliştirme ve barındırma platformudur. Yüksek trafikli altyapıları yönetmek zorunda kalmadan yüksek trafikli web uygulamaları oluşturmanıza olanak sağlar. Google App Engine'de oluşturulan uygulamalarınız hız ve güvenilirlik açısından Google'ın web sitelerinin temelini meydana getiren teknolojinin aynısını kullanır. Siz yalnızca kodu sağlarsınız. Daha önce duymayanlar için, Google Application Engine ile ilgili ileride daha detaylı bir yazı yazmayı planlıyorum. Bu yüzden burada daha detaylı bir şekilde bahsetmeyeceğim. Burada anlatacaklarım "Eclipse Indigo" kullanılarak Windows XP üzerinde denenmiş ve sorunsuz bir şekilde çalışmaktadır. Farklı işletim sistemleri ya da Eclipse sürümlerinde yapılacak kurulumlarda hemen hemen aynı adımlar izlenmektedir. Uygulamayı yüklemek için öncelikle sisteminizde yüklü olan Eclipse versiyonunu bilmeniz gerekli.

Thursday, July 5, 2012

Batıya Doğru Akan Nehir

Günlerden 4 Temmuz 2012, Çarşamba günü televizyonda kanalları tek tek geçerken, TRT Haber'de rastladığım "Batıya Doğru Akan Nehir" adlı belgeseli izlemeye başladım. Belgesel bittiğinde hemen internet ortamında aramaya başladım. Akabinde 20 bölümden oluşan, Başbakanlık Türk Tanıtma Fonu’nun destek verdiği, Bahçeşehir Üniversitesi Medeniyet Araştırmaları Merkezi’nin (MEDAM) katkılarıyla hayata geçirilen bir yapım olduğunu öğrendim. Merak eden detayları internette bulabilir. Aklıma yaklaşık 3 ay önce izlemiş olduğum "Islam: Empire of Faith" adında başka bir belgesel daha geldi. İki belgeselinde ortak noktası(Bu arada 2 belgesel derken "Batıya Doğru Akan Nehir" belgeselinin izlemiş olduğum tek bölümündeki anlatıma göre yapıyorum bu yorumu), medeniyetin dünyaya yayılışını farklı bir açıdan bakarak ele almış olmalarıydı. Bu bakış açısının, hepimizin düşündüğü gibi Batı'dan değilde Orta Doğu'dan(İslam Medeniyeti) olması ilgimi çeken en önemli noktaydı. "Batıya Doğru Akan Nehir" belgeselini izlerken kimi ilginç keşiflere ve bunların Batı'ya taşınma hikayelerine tanık olan ben bu yazıyı yazma ihtiyacı duydum. İstedim ki, bugün Batı Medeniyetinin temellerini oluşturan sayısız eserin ve buluşun, aslında günümüzde kan gölüne dönmüş Orta Doğu'dan çıktığını okuyucuya bir nebze olsun ulaştırabileyim. Belgeselde, Avrupa'nın karanlık çağı yaşandığı dönemde Doğu'nun bilim dünyasında zirveye oynadığı sürekli olarak vurgulanmış. Belgeseli izlerken, döneminin çok ilerisinde ve türlü fonksiyonelliğe sahip "Usturlab" en çok dikkatimi çeken cihazdı. Usturlab, astronomi ölçümlerinin yanı sıra, Güneş, Ay, gezegen ve yıldızın konumlarını belirlemek, yerel saatin ve İslam dininde namaz vakitlerinin belirlenmesi için kullanıyormuş. Aşağıda Usturlab resimleri görmektesiniz.

Tuesday, June 12, 2012

Eclipse İçine Android SDK ve Emulator Kurulumu

Uzun zamandır Eclipse içinde nasıl Android uygulaması geliştireceğimizle ilgili yazı yazmak istiyordum. Bunu yapmak için öncelikle Android SDK'sini yüklememiz gerekiyor. Burada anlatacaklarım "Eclipse Indigo" kullanılarak Windows XP üzerinde denenmiş ve sorunsuz bir şekilde çalışmaktadır. Farklı işletim sistemleri ya da Eclipse sürümlerinde yapılacak kurulumlarda hemen hemen aynı adımlar izlenmektedir. Öncelikle Android'i bilmeyenler için kısaca tanıtalım. Android, Google ve Open Handset Allience tarafından kodlanmış Linux İşletim Sistemi tabanlı bir mobil cihaz (PDA ve cep telefonları) için geliştirilmiş açık kaynak kodlu bir işletim sistemidir. Bu işletim sistemi üzerinde yapacağınız uygulamalar bugün hemen hemen her akıllı telefonda çalışabilecek durumdadır. Tabii versiyon farklılıkları bazen sıkıntı yaratabiliyor. Çok fazla uzatmadan kuruluma geçmek istiyorum.

Saturday, June 9, 2012

X8086 Microişlemcilerde Programlama - [Ders 1]

Üniversite hayatım boyunca birçok ders aldım. Bunlar arasında en sevdiklerimden birisi "CE 302" kodlu "Mikroişlemciler" adlı dersti. Dersin temel amacı, öğrencilere mikrobilgisayarları ve mikroişlemcileri tanıtmanın yanı sıra bu yapıların Assembly programlama dili ile programlanmasını öğretmekti. Bu uzun zamandır yazmak istediğim bir konuydu. Bu yazı Debug Kullanımı ve Debug üzerinde yapabileceğimiz kimi işlemler üzerine olmakla beraber kullandığım sistem Windows XP'dir. Daha fazla uzatmadan Debug kullanımına geçmek istiyorum.

DEBUG KULLANIMI

Debug, çoğunlukla X8086-X8088 mikroişlemcisi programlamada, simulasyon olarak kullanılan bir arayüz programıdır. Debug'ı çalıştırmak için sırasıyla şu işlemleri uygulamalısınız. Başlat > Çalıştır'a tıklayıp, çıkan pencerede "" bölümüne "cmd" yazıp "Tamam"a tıklayın, karşımıza çıkan dos ekranına "debug" yazıp enter tuşuna basıyoruz. Bu sayede simulasyon ortamına geçiş yapmış olduk. Enter tuşuna bastığımızda, bir alt satıra geçeceğiz. Debug, giriş yapmamızı söyleyen "-" ile bizi karşılayacak. Aşağıdaki resimde buraya kadar anlattıklarım gösteriliyor.

Knuckles Adventures - [Proje]

Herkese merhaba! Hazır yazın bol vaktim varken, bahsetmek istediğim diğer bir projede üniversite 3. sınıfta "SE 350" kodlu, "Oyun Programlama" dersinde Unity oyun motoru üzerinde C# programlama dili ve Standart Unity kütüphanelerini kullanarak bir arkadaşımla beraber yazdığım 2 boyutlu platform oyunu. Kısa ve klasik hikayemizdeki oyunun ana kahramanını hemen hemen hepiniz biliyorsunuz. Karakterimiz Knuckles. İşin bu kısmının tamamen farklı bir hikayesi var. Uygun bir vaktimde bu konuyuda sizinle paylaşmak istiyorum. Zira anlatacağım bazı şeyler disiplinler(branşlar) arası uyuşmazlığın projeyi götüreceği yer açısından önemi ile ilgili. Aslında oyunumuzun hikayesi çok farklıydı fakat kimi sebeplerden dolayı oyunun konusu ve akışı çok değişti bu yüzden oyunu çalıştırdığınızda oyunun ismini görmeyince şaşırmayın. Knuckles Adventures ismi ise şu an benim tarafımdan koyulmuş ismidir. Daha güzel isim önerilerine açık olduğumu belirterek oyunla ilgili ufak bilgiler vermeye devam ediyorum. Oyunumuzdaki temel amaç; ana karakterin türlü engeller içeren bölümleri geçerek kız arkadaşına ulaşması. Oyunda 5 farklı bölüm var. Her bölümde oyuncu engelleri aşarak hedefe ulaşmaya çalışıyor. Oyun içinde kullanıcı için arka planda bilgiledirici resimler de bulunmaktadır. Karakterimizi yön tuşları ile hareket ettiriyoruz. "Space" tuşu ile zıplayan karakter, herhangi bir kutunun yanına gelip "CTRL" tuşuna basınca kutuyu çekip, itebiliyor. Tekrar "CTRL" tuşuna basınca kutuyu bırakıyor. Oyunumuzda bir üst katlara geçmek için varolan asansörü çalıştırmak için ise, asansörün düğmesine "X" tuşu ile basmamız yeterli. Bu arada oyunumuzun mekanı olarak basit bir şantiye belirlemiştik. Ancak yaşanan bir takım sorunlar nedeniyle garip bir mekan ortaya çıktı. Bu oyun, diğer yaptığım oyunlara nazaran çok daha profesyonel ve görsellik açısından çok daha iyi. Oyun motoru kullanmak, yapacağımız işlerin gerçekten hafiflemesi anlamına geliyor. Bu noktada kodlamadan ziyade fikir ve tasarım ön plana çıkıyor. Oyun içinde kullandığımız sprite yukarıda da bahsettiğim gibi Knuckles karakteri, bunun dışında bazı ses dosyaları ve scriptler, bu oyunu(olurda) geliştirip ticari bir boyut kazandırmak isteyecek kişiler için sıkıntı yaratabilir. Bunun farkında olup paylaşacağım kaynak kodlarını ona göre yorumlarsalar herkes için daha iyi olur. Çok fazla uzatmadan oyunu resimler eşliğinde tanıtmak istiyorum.

Thursday, June 7, 2012

Polynomial Equations - [Proje]

Herkese merhaba! Çok uzun bir aradan sonra tekrar birlikteyiz. Gerek derslerin yoğunluğu, gerekse projelerin fazlalığı nedeniyle bloğa pek fazla yazı yazamamıştım. Ancak önümüzdeki günlerde blogla daha fazla ilgilenmeyi planlıyorum. Bugün sizlere OpenGL üzerinde 2 kişi birlikte geliştirdiğimiz, üniversite 3. sınıfta "SE 313" kodlu, "Bilgisayar Grafiği ve Görsel Programlama" dersinde Java programlama dili, OpenGL ve Glut kütüphanelerini kullanarak yazdığımız 2 ve 3 boyutlu polinom denklemleri çizdiren programı tanıtacağım. Programız kullanıcının girdiği ve seçtiği değerlere göre oluşan polinom denklemin grafiğini ekrana çizdiriyor. Programı yazarken belli limitler koydum mesela 2 ve 3 bilinmeyenli ve maximum 3.dereceden denklemleri çizdirebiliyoruz. Ancak kaynak kodlarda yapacağınız ufak değişiklikler sonucu bu sınırları genişletip, kısabilirsiniz. Şimdi projemi sizlere resimler eşliğinde daha detaylı bir şekilde açıklayacağım.

Sunday, February 26, 2012

OpenGL'de Doğruları Kullanarak Ekrana Harf Yazdırmak

Herkese merhaba, bugünkü yazımda Java üzerinde OpenGL programlamaya giriş yapmayı planlıyorum. Basit bir program yazıp, bu programı çok fazla detaya girmeden açıklayacağım. Programımız OpenGL içinde hazır bulunan "glVertex2f" fonksiyonunu kullanarak ismimizin baş harfini ekrana yazdıracak. Bu programın amacı, hem OpenGL'deki koordinat sistemini kavramak hem de "glVertex2f" fonksiyonunun kullanımını görmek ve anlamak. Yazıyı daha fazla uzatmadan kodumuzu veriyorum.

Saturday, February 25, 2012

Eclipse İçine OpenGL Kurulumu

Herkese merhaba, geçmiş yazılarımdan birinde Visual Studio 2010 içine OpenGL kurulumunu anlatmıştım. Bu yazımda ise Eclipse içine OpenGL kurulumundan bahsedeceğim. Öncelikle sistemimize uygun ve ihtiyacımız olan JOGL kütüphanesini buradan indiriyoruz. Şuan üzerinde çalıştığım sistem 32-bit Windows XP olduğu için ben "jogamp-windows-i586.7z" kütüphanesini indirdim. İndirdiğimiz dosyayı WinRAR programı ile açabilirsiniz. Arşivi açtıktan sonra, "jogamp-windows-i586 > jar" klasörü içindeki "gluegen-rt.jar" ve "jogl.all.jar" dosyalarını Eclipse içindeki projemize ekleyeceğiz. İlk olarak Eclipse'i açıp, menuden "File > New > Java Project" seçeneğini seçip, açılan pencereden projemize isim koyup "Finish" butonuna basacağız.

Tuesday, February 21, 2012

Haftanın Tavsiyeleri - 6

Haftanın Filmi - Malcolm XSpike Lee


Brothers and sisters, I am here to tell you that I charge the white man. I charge the white man with being the greatest murderer on earth. I charge the white man with being the greatest kidnapper on earth. There is no place in this world that this man can go and say he created peace and harmony. Everywhere he's gone he's created havoc. Everywhere he's gone he's created destruction. So I charge him. I charge him with being the greates kidnapper on this earth! I charge him with being the greatest murderer on this earth! I charge him with being the greatest robber and enslaver on this earth! I charge the white man with being the greatest swine-eater on this earth. The greatest drunkard on this earth! He can't deny the charges! You can't deny the charges! We're the living proof *of* those charges! You and I are the proof. You're not an American, you are the victim of America. You didn't have a choice coming over here. He didn't say, "Black man, black woman, come on over and help me build America". He said, "Nigger, get down in the bottom of that boat and I'm taking you over there to help me build America". Being born here does not make you an American. I am not an American, you are not an American. You are one of the 22 million black people who are the *victims* of America. You and I, we've never see nany democracy. We didn't see any... democracy on the-the cotton fields of Georgia, wasn't no democracy down there. We didn't see any democracy. We didn't see any democracy on the streets of Harlem or on the streets of Brooklyn or on the streets of Detroit or Chicago. Ain't no democracy down there. No, we've never seem democracy! All we've seen is hypocrisy! We don't see any American Dream. We've experienced only the American Nightmare!
Haftanın Kitabı - The Grapes of Wrath / John Steinbeck

Haftanın Müziği - Feeling Good / Nina Simone

Sunday, February 19, 2012

Unity'de Oyun Programlama - [Ders - 1]

Herkese merhaba, yaklaşık bir ay önce Unity ile ilgilenmeye başladım. Bilmeyenler için Unity hakkında ufak bir açıklama yapayım. Unity, 3D oyun motorudur. Daha detaylı bilgi için resmi sayfasına bakabilirsiniz. Bu yıl üniversitede bu oyun motorunu öğrenip, kullanacağımız bir ders açıldı. "SE 350" kodlu bu dersin adı "Oyun Programlama". Derse çok yoğun ilgi oldu. Yaptığım gözlemlere göre, teoriden ziyade, uygulama yapılabilecek dersler öğrenciler tarafında daha fazla ilgi topluyor, diyebilirim. Daha fazla uzatmadan, asıl konuya değinmek istiyorum. Dersten sonra hepimize ufak bir proje verildi. Proje kısaca şöyleydi; Unity'de kontrol edebileceğimiz bir karakter oluşturup, bu karakter ile etrafımızda var olan bir takım objeleri toplamak. Unity hakkında hiçbir fikri olmayanlar için zor bir proje olarak gözükebilir. Fakat tek satır kod dahi yazmadan, istediklerimizi kolayca yapabiliriz. Şimdi hep birlikte bu projeyi yapmaya başlayalım. Öncelikle Unity'i açıp, menüden File > New Project seçeneğini seçip, yeni bir proje oluşturuyoruz.

Thursday, February 16, 2012

Visual Studio 2010 İçine OpenGL Kurulumu

Herkese merhaba, bugün sizlere, bu dönem ilk dersine girdiğim "SE 313" kodlu, "Bilgisayar Grafiği ve Görsel Programlama" adlı ders için gerekli olan OpenGL kurulumunun Visual Studio 2010 içine nasıl yapılacağını anlatacağım. Öncelikle ihtiyacımız olan glut-3.7.6-bin dosyasını buradan indiriyoruz. Daha sonra Visual Studio 2010’nun kurulu olduğu dizine gidiyoruz. VC klasörü içinde ki,  include klasörü içine GL diye klasör oluşturuyoruz. İndirdiğimiz dosya içinde ki glut.h dosyasını GL içine  atıyoruz. Daha sonra ise yine VC içinde ki lib klasörüne glut32.lib dosyasını atıyoruz.  Sıra geldi .dll dosyasına. glut32.dll dosyasını ise Windows/system32 klasörü içerisine atıyoruz. Şimdi sıra geldi test projesi oluşturmaya. Visual Studio 2010'u açtıktan sonra ilk önce, menülerden File > New > Project'i seçerek, proje penceresini açıyoruz, ardından bu pencereden Empty Project seçeneğini seçip projemize bir isim veriyoruz.

Sunday, February 12, 2012

Haftanın Tavsiyeleri - 5

Haftanın Filmi - War Horse / Steven Spielberg


Haftanın Kitabı - The Hunchback of Notre-Dame / Victor Hugo


Haftanın Müziği - All Of This Could Have Been Yours / Shooter Jennings & Hierophant

Saturday, February 11, 2012

GGJ - İzmir 2012

Herkese merhaba, bu yazımda, bu yıl ilk defa katıldığım GGJ'den bahsetmek istiyorum. Öncelikle GGJ nedir, bilmeyen arkadaşlarımız için ufak bir bilgilendirme yapayım. GGJ(Global Game Jam) türünün tek örneği ve tüm dünyada aynı 48 saat içinde gerçekleştirilen bir oyun geliştirme etkinliğidir. Türkiye'de her yıl Ankara ODTÜ'de yapılmaktayken, bu yıl İstanbul, Ankara, İzmir ve Elazığ olmak üzere 4 ilde birden gerçekleştirildi. Bunun biraz öncesine gidersek, bu dönem başında arkadaşlarla GGJ Ankara'ya katılma gibi bir planımız vardı. Fakat GGJ'nin bu yıl İzmir'de de düzenlenmesi, işleri biraz değiştirdi. İlk başta İzmir'deki GGJ'nin ilk defa yapılacağını göz önüne alarak Ankara'da olandan daha iyi bir şey çıkmayacağını düşünüyordum ve Ankara'ya gitmekte diretiyordum. Ancak gerek diğer arkadaşların tutumu gerek GGJ İzmir ekibinin hevesli ve özverili çalışması düşüncemin değişmesinde önemli rol oynadı. Netice olarak GGJ İzmir'e katılma kararı aldım ve başvurumu yaptım. Açıkcası bu benim ilk GGJ serüvenim olmasına rağmen başvurumun reddedileceğini hiç düşünmedim. Başvurum onaylandıktan sonra GGJ gününü beklemeye başladım. Yazımın devamını GGJ izlenimleriyle devam ettirmek istiyorum. GGJ İzmir'de birçok tanıdık yüzün yanı sıra yeni insanlarla tanıştım.

Saturday, February 4, 2012

Izmir Mass Transit Guide - [Proje]

Herkese merhaba! Bugün Android işletim sistemi üzerinde çalışan cep telefonları için, üniversite 3. sınıfta "SE 310" kodlu, "İleri C++: Şablonlar ve Soysal Programlama" dersinde Javascript, XHTML, Google Map API(V3) ve Qt kütüphanesini kullanarak yazdığım daha çok tasarım odaklı olan "Izmir Mass Transit Guide" projesini anlatacağım. Proje kısaca İzmir belediye sınırları içerisinde seçilen iki nokta arasında, başlangıç noktasından varış noktasına en hızlı ulaşımı sağlayacak şekilde belediye otobüslerini kullanarak aktarmaları da göz önünde bulundurup seyahat planı oluşturup, oluşturulan planı Google Map üzerinde gösteriyor. Projeyi açıklamaya başlamadan önce ufak bir kaç noktaya değinmek istiyorum. Bu proje client(müşteri) ve server(sunucu) olmak üzere iki kısma ayrılıyor. Projenin client yani istek talep eden kısmını ben yazdım. Ancak projenin server kısmı, dersi aldığımız öğretim görevlisi tarafından verildi. Bu yüzden projenin sadece client kısmına ait kaynak kodunu paylaşacağım. Projeyi tekrar kısaca anlatacak olursam, kullanıcı programı açtığı zaman karşısına aşağıdaki gibi bir ekran gelmektedir. Programın çalışma prensibi oldukça basit. Bulunduğumuz ve varmak istediğimiz noktanın bilgilerini sunucu tarafında çalışan koda yolluyoruz, sunucu almış olduğu bu verilere göre başlangıç noktasından varış noktasına en hızlı ulaşımı sağlayacak şekilde, aktarmaları da göz önünde bulunduracak şekilde bir seyahat planı oluşturuyor. Son olarak bu plan client tarafına iletiliyor. Ve bu veriyi javascript aracılığı ile işleyip, ekrana bastırıyorum.

Monday, January 30, 2012

Road to Droko's Castle - [Proje]

Herkese merhaba! Hazır bol vaktim varken, bahsetmek istediğim diğer bir projede üniversite 3. sınıfta "SE 320" kodlu, "Bilgisayar Oyunlarına Giriş" dersinde JAVA programlama dilini ve Slick2D oyun kütüphanesini kullanarak yazdığım 2 boyutlu platform oyunu. Kısa ve klasik hikayemiz şöyle; oyunun ana kahramanı Henry ve onun kız arkadaşı vardır. Fakat günlerden bir gün Henry'nin kız arkadaşı Droko adı verilen kötü kalpli bir canavar tarafından kaçırılır ve bunun doğrultusunda oyunumuz başlar. Oyunda 10+1(+1 bölüm sonu canavarı ile karşılaşma) olmak üzere toplam 11 level var. Oyundaki karakterlerin resimleri(sprite), Little Fighter II ve Mario tarzı oyunlardan alınmış olup üzerinde ufak birkaç değişiklik yapıldıktan sonra oyuna entegre edilmiştir. Karakterimiz koşabiliyor(yön tuşları +X tuşuna aynı anda basılmalı), zıplayabiliyor(Yukarı ok tuşuna basılmalı) ve ateş edebiliyor(Space tuşuna basılmalı). Diğer yaptığım oyunlara nazaran daha profesyonel ve görsellik açısından daha umut verici olsa da henüz işin başında olduğumu bir kez daha belirtmek isterim. Tekrar oyunun genel dinamiklerine dönecek olursak, ateş etme hakkımız sınırlı, bu yüzden oyunda ateş ve sağlık bonusu bulunmaktadır. Aynı zamanda oyunda 2 tip farklı düşman var. Bu iki düşmanda Mario'dan tanıyacağınız karakterler.Oyunumuz kısa hatları ile bu kadar. Şimdi size resimlerle daha fazla detay vermeye çalışacağım.

Thursday, January 26, 2012

Hacop Fighter - [Proje]

Herkese merhaba, hazır vaktim varken bahsetmek istediğim başka bir projede üniversite 2. sınıfta "CS 340" kodlu, "Yazılım Geliştirmede İlerlemeler" dersinde JAVA programlama dilini kullanarak yazdığım 2 boyutlu uzay simulasyonu. Oyun hem iki kişilik hem de tek kişilik oynanabilir. Eğer tek kişi oynuyorsanız, oyundaki amaç düşman gemilerinin tamamını yok edip, bölüm sonu canavarı ile karşılaşmak. Oyuncu sahip olduğu uzay gemisi ile sağ taraftan üzerine gelen düşman gemilerini yok edip bölüm sonu canavarına ulaşmaya çalışır. Ancak oyunu iki kişi oynamak isterseniz, ilk oyuncu uzay gemisini yönlendirirken, ikinci oyuncu mouse ile haritanın izin verilen kısımlarına tıklayarak düşman bırakıp ilk oyuncuyu yok etmeye çalışıyor. Haksız rekabet olmaması için ikinci oyuncunun mouse ile her tıklamasında random fonksiyon çağrılıyor. Karşı tarafa düşman bırakayım derken bonusta bırakabilirsiniz. Oyunda düşman gemilerinden ayrı olarak sağlık(health) bonusuda bulunmaktadır. Bu bonusu aldığınız vakit geminizin dayanaklılığı artmaktadır. Oyundaki tüm düşman gemilerini yok ettikten sonra bölüm sonu canavarı ile karşılaşıyorsunuz. Bu yaratık diğerlerine göre daha büyük ve daha güçlü olmakla birlikte, ilk yapay zeka denemem olması bakımından benim için ayrı bir yere sahiptir. Şimdi de oyunumu resimler eşliğinde sizlere tanıtmak istiyorum.

RISK - [Proje]

Çok uzun zamandır düşündüğüm, fakat zaman sıkıntısı nedeniyle yapamadığım şeylerden biriside, üniversite yılları boyunca yapmış olduğum projeleri blogumda yayınlamaktı. Bunlardan ilki üniversite 1.sınıfta "CS 116" kodlu, "Programlamaya Giriş II" dersinde, C programlama dilini kullanarak bir arkadaşımla yaptığım RISK adlı konsol oyunu. Görsel anlamda pek iç acıcı olmasada programlamaya yeni adım atmış birisi için hatırı sayılır derecede güzel bir oyun yapmaya çalıştım. Bu yazımda oyunla ilgili ufak bilgiler verip, yazının sonunda kaynak kodunun linkinide vereceğim. Öncelikle RISK, 2 kişilik bir savaş simulasyonu. Oyun "Soğuk Savaş" konseptini baz alarak ilerliyor. Konseptin "Soğuk Savaş" olmasının nedeni oyunu geliştirmeye başladığım ilk zamanlarda, deneme amaçlı oynadığım oyunlarda rakip oyuncuların hiçbirinin ilk hamleyi yapmaması, oyundaki asker ve tank gücünün bloklaşmasıyla ilgili. Her oyuncunun oyun başında 5 asker ve 5 tank birliği bulunuyor. Oyun sıra tabanlı, bir oyuncu hamlesini yaptıktan sonra hamle sırası diğer oyuncuya geçiyor. Askerlerin 25 atak, 20 savunma gücü varken, tankların 65 atak, 60 savunma gücü bulunuyor. Oyundaki harita 2 boyutlu bir matris. Hamle sırasına sahip kullanıcı; Sahip olduğu birliği hareket ettirebilir(Askeri birliklerin hareketi 1 birim iken tank birliklerinin hareket kabiliyeti 2 birim) ya da sırasını rakibine devredebilir. Hamle sırasına sahip kullanıcı, oyuncu açısından rahat bir oynanabilirlik sunması için ordusunun o anki durumunuda görüntüleyebiliyor. Unutmadan son bir şey daha var onuda söyleyeyim, oyunda 2 tanede şifre var. Bu şifrelerden ilki(HUSEYIN) birliklerinizin atak ve savunma gücünü 100 yaparken, ikinci şifre(AKCAN) birliğinizin harita üzerinde istediğiniz herhangi bir noktaya ilerlemesine imkan sağlıyor. Şifredeki isim ve soyisim dersi almış olduğumuz öğretim görevlisine aittir. Bu kadar detaydan sonra şimdi size birkaç resim eşliğinde oyunu göstermek istiyorum.