Tuesday, December 13, 2011

Radyo Projesi ve Last.fm API

Yaklaşık 1 yıl önce, vaktimi staj ararken firmaların dikkatini yaptığımız projelerle çekebileceğimiz ve bu projelerin bizi bir adım öne çıkaracağını dinleyerek geçirdim. Hatta kimi akademisyen hocalarımıza bu durumdan rahatsız olduğumu belirttim. Onlarda bugün git yarın gel edasında bilgi yetersizliğimiz nedeniyle bu durumun olağan olduğu kanısındaydılar. Yazın bir araya geldiğim 2 arkadaşımla beraber hiç bir fikrimiz olmadan web üzerinden ufak bir radyo yayını yapan bir site üzerinde kafa yorduk. Epeyce konuştuk, tartıştık. Öncelikle yapacağımız radyo webte olanlardan farklı olmalıydı onlarda olmayan bir takım farklı özelliklerle yayına başlamalıydık. Hatta bunun yanı sıra bugün hala bir çok radyo yayını yapan web sitelerindeki eksikliklerden olan çalan parçayı anında görme, geçmişte çalınan parçalara göz atma, ya da dinlediğimiz parçanın sözlerini aynı web sayfası içinde görememe bizi düşündüren problemlerin başında geliyordu. Yaklaşık 3-4 ay sonunda ufak bir prototip çıkardık ortaya henüz test aşamasından geçmedi. Ancak bu noktada asıl bahsetmek istediğim şey yukarıdaki sorunlarımızın hepsine last.fm API'si kullanarak çözüm bulabildiğimiz gerçeğiydi. Projeye başlamadan önce gerekli olacak tüm verilerin tarafımızdan sağlanması gerektiğini düşünüyordum. Ancak projede epey vakit harcadıktan sonra aslında webte hali hazıra bulunan API'leri kullanmanın daha faydalı olduğunu gördüm. API kullanmak yararlı olduğu kadar işlerimizi daha kolay ve hızlı halletmemizi de sağlıyor. Kısaca last.fm API'sinden bahsetmek gerekirse içerisinde Album, Artist, Track... ve bunun gibi birçok sınıf(class) barındırıyor, her sınıfın ise kendine özgü metodları(methods) var. Bu metodları kullanarak parçaya ait XML'e ulaşabiliyorsunuz. Ulaştığınız XML dosyasından ise işinize yarayan bilgiyi rahatlıkla çekebiliyorsunuz. Bugün salt PHP kullanarak yaptığım veri çekme işleminin pek verimli olduğunu düşünmüyorum. PHP'ye özgü, özellikle XML'den veri çekmek için hazırlanmış pek çok kütüphane var. Yakın zamanda bunları kullanıp güzel bir XML ayrıştırıcı yazmayı planlıyorum. Yazdığım vakit, kodları sayfaya koyarım. Takipçilere iyi günler.

Friday, November 18, 2011

JAVA [Ders - 5] String Sınıfı ve Metodları

Herkese merhaba. Bir önceki dersimizde Java'da en çok kullanılan sınıf olan "String" sınıfına giriş yapmakla birlikte bir string'i tanımlamak ve görüntülemekle ilgili ufak bir program yazmıştık. Şimdiki dersimizde bu sınıfa ait metodların bazılarını kullanmayı öğreneceğiz. Bu linkten "String" sınıfı ile ilgili daha detaylı bilgiye ulaşablirsiniz. Şimdi gelelim bu sınıfa ait metodları kullanmaya, öncelikle bu sınıfa ait tüm metodların listesine bu linkten ulaşabilirsiniz. Karşınıza çıkan listede yer alan metodların hepsini "String" sınıfından türemiş olan her obje için kullanabilisiniz. Mesela elimizde ad ve soyad diye iki tane string olsun ve bizde bu iki stringi birleştirelim. Kodumuz şu şekilde olacak;

Sunday, September 4, 2011

Haftanın Tavsiyeleri - 4




 Haftanın Kitabı - Sophie's World / Jostein Gaarder



 Haftanın Müziği - Blood Like Lemonade / Morcheeba

 

Saturday, September 3, 2011

JAVA [Ders - 4] String Sınıfı

Öncelikle merhaba, çok uzun süredir Blogspot'a giriş yapamadım. Gerek stajlar gerekse almış olduğum bazı projeler sonunda yazı yazmayı biraz aksattım. Bu yüzden özür dileyerek bir sonraki Java dersimize geçiyoruz. Şimdi göreceğimiz ders Java'da en çok kullanılan sınıf olan String sınıfı. String sınıfı java.lang kütüphanesi içinde yer alan ve metinlerle ilgili aklımaza gelebilecek hemen her türlü işlemi yapabildiğimiz bir sınıftır. Sözü fazla uzatmadan hemen kod kısmına geçelim aşağıdaki kod Java'da String sınıfını kullanmak ve görüntülemekle ilgilidir. Burada dikkat etmemiz gereken şey "String" ifadesinin diğer değişkenlere(byte, int, float, char) nazaran büyük harfle başlamasıdır.

Friday, May 20, 2011

Oyun Geliştirme Platformu

Bu döneminde sonuna geldik sayılır. Bu yıl isteyipte yapamadıklarım arasında ufak bir proje ekibi kurmak vardı. Derslerin yoğunluğu ve ekip oluşturabilecek eleman sayısının yetersizliği ya da bu projenin benim dışında pek kimsede heyecan uyandırmaması ekibi oluşturamamanın başlıca nedenleriydi. Fakat şu da bir gerçek ki yeterli hazırlığın olmamasınında bunda payı büyüktü. Bu yüzden bu yıl yaşanan hatalardan ders çıkararak seneye oluşturacağım ekibin ön çalışmasına bugünden itibaren başlama kararı aldım. İnsanlara böyle bir projeden bahsettiğim zaman herkes büyük bir heyecanla karşılıyor. Ancak iş faaliyete gelince hemen hemen hiç kimse bir şeyler yapmak için çaba sarfetmiyor ya da her kafadan bir ses çıkıyor. Ekibin geliştireceği projelerde kullanılacak dilden tutunda geliştirilecek oyun projelerine kadar herkes kendi bildiğini okuma derdine giriyor. Durum bu olunca ortaya hiçbir şey çıkmamasının yanı sıra büyük bir heyecanla başlanan proje ortada kalıyor. Bu gibi karmaşaların önüne geçmek için yaklaşık bir hafta sonra facebook'ta ufak bir grup açma kararı aldım. Grup projemin tanıtımı için gerekli olan her şeyi içerecek. Gruba davet edilecek insanları ben belirleyeceğim için anlaşamadığımı düşündüğüm insanları davet etmeyeceğim. Projeleri geliştireceğimiz dil olarak Java'yı belirledim. Java hakkında bilgi sahibi olmayan kişiler için gruba eğitici içerik taşımayıda planlıyorum. Bunun yanı sıra önümüzdeki yaz tatili ekipte bulunmak isteyenler için bir sınav niteliği taşıyacak. Yaklaşık 1 - 1,5 aylık bir süreç Java bilmeyenlerin öğrenmesi üzerine geçecek. Akabinde grupta ufak çapta projeler yayınlamayı düşünüyorum. İsteyen istediği projeyi yapabileceği gibi kişilere özel proje vermekte mümkün olacak. Ve yeni eğitim döneminde ekibe alınacak kişileri belirleyeceğim. Ekibe alınmayanlar dışarıdan destek verebilecekler. Ancak projelerin gidişatı genelde ekip içindeki kişiler tarafından belirlenecek. Her 4 ayda yeni bir oyun projesiyle yolumuza devam etmek gibi bir amacımda var. Bu projelerin hem bizleri geliştireceğine hem de ekip çalışmasına daha uyumlu hale getireceğine inanıyorum. Umarım bu sefer başarılı olur!

Thursday, April 21, 2011

Blogspot Yasağı

Uzun bir süredir bloguma yazı yazamıyorum, derslerin çok yoğun bir tempoyla devam etmesinin yanı sıra Blogspot yasağının bunda çok önemli bir payı var. İlk başta DNS değişikliği ile atlattığım bu durum kısa bir süre sonra benim için bir kabusa dönüştü. Şöyle ki işletim sistemi için yaptığım güncelleme sonucu Firefox'un DNS değişikliğine karşı sürekli modemi resetlemesi gibi bir problemle karşılaştım. Üstelik bu sorunun başlarda Firefox'tan kaynaklandığından haberim yoktu. Ta ki Firefox 4'ü yükleyene kadar. Bu işlem sonucunda DNS değişikliği ile bloguma girmeye devam ettim. Kısa bir süre sonra Blogspot yasağının kalkması ile artık DNS değişikliğine de gerek kalmadı. Yaklaşık bir aylık süre zarfı içerisinde başımdan geçenler bunlardı. Şimdi sıra geldi bu yasağa neden olan olaya. Yasak, yayın hakları Digitürk'e ve Lig TV'ye ait olan futbol maçlarını gerekçe göstererek Diyarbakır 5. Asliye Ceza Mahkemesi'ne başvurması sonucu mahkeme kararı ile alındı. Kimi Blogspot servislerinin hiçbir ücret ödemeksizin bu maçları yayınlaması sonucu mahkemeye giden kuruluş Blogspot kullanıcılarının çok büyük bir kısmınıda mağdur etmiştir. Halbuki iş mahkeme boyutuna varmadan iki kurum arasında daha kolay bir şekilde halledilebilirdi. Digitürk yayın haklarını ihlal eden Blogspot servislerinin listesini Google gibi kendi alanında dev bir şirkete bildirse ve gerekenin yapılmasını isteseydi durum çok daha farklı olur yüzbinlerce kişi mağdur durumuna düşmez ve yasak söz konusu olmazdı. Yakın gelecekte buna benzer başka bir yasakla karşılaşmamız temennisi ile tüm Blogspot kullanıcılarına geçmiş olsun dileklerimi iletiyorum.

Sunday, February 20, 2011

Haftanın Tavsiyeleri - 3

Haftanın Filmi - Dead Poets Society / Peter Weir



Haftanın Kitabı - Ports of Call / Amin Maalouf

Haftanın Müziği - Tatar Love Song / Oi Va Voi

Thursday, February 17, 2011

JAVA [Ders - 3] - Veri Tipleri

Herkese merhaba! Geçtiğimiz derslerde Java'da konsol ekranına nasıl çıktı yazdıracağımızı öğrenmiştik. Şayet bu dersle ilgili hala ufak problemler yaşıyorsanız bir önceki yazımı tekrar okumanız ve biraz pratik yapmanız sizin için faydalı olacaktır. Bugünkü dersimizde ise Java'daki veri tiplerine değinip konuyla ilgili ufak örnekler yazacağız. Java'da 8 tane primitive (asıl) veri tipi vardır.

byte: Hafızada 8-bit yer kaplayan -27 veya +27-1 arasında bir değer alan veri tipidir.

short: Hafızada 16-bit yer kaplayan -215 veya +215-1 arasında bir değer alan veri tipidir.

int: Hafızada 32-bit yer kaplayan -231 veya +231-1 arasında bir değer alan veri tipidir.

long: Hafızada 64-bit yer kaplayan -263 veya +263-1 arasında bir değer alan veri tipidir.

float: Hafızada 32-bit yer kaplayan ve kesirli bir sayı değeri alan veri tipidir.

double: Hafızada 64-bit yer kaplayan ve kesirli bir sayı değeri alan veri tipidir.

char: Hafızada 16-bit yer kaplayan 0 veya +216-1 arasında bir değer alan veri tipidir.

boolean: Hafızada 1-bit yer kaplayan true veya false değerini alan bir veri tipidir.

Monday, February 14, 2011

JAVA [Ders - 2] - Hello World!

İlk dersin devamı niteğinde olacak ikinci derse hoşgeldiniz. Öncelikle ilk derste yaptıklarımzdan biraz bahsetmek istiyorum. İlk derste yapılanlar Java programlama dilinde kod yazıp derlemek için gerekli olan minimum yazılımları yüklemek ve ekrana "Hello World!" yazdıran bir konsol uygulamasını geliştirip bunu derlemekten ibaretti. Bu derste öğrendiğimiz en önemli şeylerden birisi kodumuzda varolan class adının dosya adıyla aynı olması gerektiğidir. Şimdi sıra geldi aşağıdaki kodumuzu açıklamaya:

Sunday, February 13, 2011

JAVA [Ders - 1] - Hello World!

Üniversitedeki ilk yılımı bitirene kadar neden Java değil de daha düşük seviye olan "C" programlama dilini öğrettiklerini hep kendime sordum. Ancak daha sonra farkettim ki bize öğrettikleri ya da öğretmeyi amaçladıkları şey bir programlama dilinden çok daha öte, kişinin bireysel olarak bir şeyleri öğrenme kapasitesini ve hevesini artırmaktı. (en azından benim üzerimde böyle bir etki bıraktı) Bende bu şekilde uzun bir süredir kendi çabalarım ve internetteki kaynakların da sayesinde "Java" öğrenmeye başladım. Java'yı tercih etmemde birkaç neden etkili oldu. Bu nedenlerden ilki Java'nın nesne yönelimli bir programlama dili olmasıydı. (ileride bu konuya daha ayrıntılı bir biçimde değineceğim) İkinci neden Java'nın açık kaynak ve çapraz platform bir programlama dili olmasıydı. Bunun yanı sıra C programlama dilinde varolan kimi çarpıklıklar ve zorlukların üstesinden gelinmiş çok daha kolay, rahat ve güvenli bir dil vardı karşımda. Bu ve buna benzer daha bir çok şeyle birlikte Java öğrenmeye başladım. Ve öğrendiklerimi parça parça blogumda yayınlama kararı aldım. Bugünkü ilk ders olarak da konsol ekranına (henüz grafiksel kullanıcı arayüzüne sahip programlama için çok erken) "Hello World!" yazdıracağız.

Thursday, February 10, 2011

Windows vs Linux

Birçoğumuz Windows ve Linux Dağıtımları arasındaki rekabet ve farktan haberdarız. Bu yazımda ele alacağım konuların bunlar olmadığını peşinen söylemek istiyorum. Bu yazıda ele alacağım şey yıllardır Windows işletim sistemini kullanan bir kişinin herhangi bir Linux dağıtımını kullanmaya başladığı an karşılaşabileceği zorluklar ve güzelliklerle ilgili. Yaklaşık bir yıldır açık kaynak ve ücretsiz olan Linux dağıtımlarından biri Ubuntu 10.04 işletim sistemini kullanıyorum. İçimdeki merak yüzünden bunu çok önceleri yapmak istiyordum. Ancak bir türlü cesaret edememiştim taaki okuduğum bölüm ve kimi hocaların bunu bir noktadan sonra zorunluluk haline getirmeye çalıştıklarını hissettiğim o ana kadar. İşte o gün ilk defa Windows XP ile birlikte Linux Ubuntu 9.04 (hatırladığım kadarıyla) kurdum bilgisayarıma. Ama bilgisayarımdaki Windows'un varlığı ve benim bu sisteme alışmış olmam Ubuntu'yu kullanmamam için yeterli sebeplerden sadece birkaçıydı. Ardından bir vakit geldi Windows 7 adında başka bir sürüm çıktı, olağanüstü görsellik ve reklam beni kendimden almış, bilgisayarda ne var ne yok hepsini silip Windows 7 ile yoluma devam etme kararı aldım. Ancak format atmaya çalışırken "Error 17 File not found" adında daha sonradan öğreneceğim, GRUB'u yanlış silmekten dolayı rastlanılan bir hata aldım.

Monday, February 7, 2011

Tatil ve Hedefler

Hemen hemen herkes tatilleri sever haliyle bende o kişilerden birisiyim ancak tatilleri genelde hiçbir şey yapmamak üzerine kurulu insanlardan olmamakla birlikte boş günler dizisi olduğu için seviyor değilim. Aslında tatillerin, insanların isteyipte zaman sıkıntısından dolayı yapamadıkları şeyleri yapmak için ellerine geçen harika fırsatlardan birisi olduğunu düşünüyorum. Benimde her tatil için özel planlarım olur. Ancak planlardan kastım (genel itibari ile) okumaya fırsat bulamadığım kitapları okumak, izlemek istediğim filmleri seyretmek ve öğrenmeye vaktim olmayan şeyleri öğrenmek. Bu istediğim şeyleri yaptıktan sonra tatil benim için çekiciliğini kaybetmeye başlar ve okulun başlayacağı günü iple çekmeye başlarım. Ama sanırım bu tatil dönemi öyle olmayak. Çünkü yapmak istediklerim arasında pek öyle yenilir, yutulur cinsten şeyler yok. Öncelikle elimde var olan 3 kitabı bitirmek gerek, dönem içinde izlemeye fırsat bulamadığım filmleri izlemek, java öğrenmek (buraya kadar hepsi normal ve bir tatil döneminde yapılacak şeyler) ama bir dördüncü şey var ki daha önceden planlanmadığı için ilk defa ara tatilde hedeflerimden birisine ulaşamayacağım. Fransızca öğrenmek(en azından başlangıç seviyesinde) ana hedeflerimden biri haline geldi. Evde pek fazla materyal yok ancak internette var olan bilgi yetti de arttı. Telaffuzun çok zor olduğunu söylememe gerek yoktur. İlk günler baya bir zorlanmıştım ancak ilerleyen zamanlarda kelimeleri daha doğru telafuz etmeye başladım. Şu an karşıma çıkan her dört kelimeden birini doğru okuyabiliyorum. Gramer yapısının Almancaya benzemesi ve Almancadan daha kolay olmasıda benim için bir avantaj haline geldi. Ancak şöyle bir gerçek var ki dil öğrenmek süreklilik isteyen bir şey ve Fransızca gibi bir dil öğrenmeyi bu ara tatile sığdırmak imkansız. Ve sonunda şu karara vardım hedeflerimden biri olan Fransızca "öğrenmek" maddesini Fransızca "öğrenmeye başlamak" olarak değiştirmek çünkü bu herkes için daha iyi olacak. Yoksa bu tatil benim için hiç bitmez bu arada takipçilere fransızca kitap, film ve müzik tavsiyelerine sonuna açık olduğumu belirtmek istiyorum.

Saturday, February 5, 2011

Haftanın Tavsiyeleri - 1

Blog yazmayı planladığım ilk andan beri aklımda var olan başka bir projeyi daha hayata geçirmenin vakti geldi. Yazının başlığındanda anlaşılacağı gibi (her hafta diye planlasamda en azından 2 haftada bir) beni en çok etkileyen filmlerden, kitaplardan ve müziklerden yapacağım bir tavsiye listesiyle karşınıza çıkmayı planlıyorum. Lafı fazla uzatmadan bu haftanın tavsiye filmini, kitabını ve müziğinı yazmak istiyorum.

Haftanın Filmi - Jeux d'enfants / Yann SAMUELL



Haftanın Kitabı - Animal Farm / George ORWELL



Haftanın Müziği - Disse mi / ESTAMPIE