1 Şubat 2014 Cumartesi

Snake Game written in JAVA (Full Source Code)

In this article, I'll re-write a simplified version of the very famous game "Snake" in JAVA programming language. You can easily find dozens of similar source code by googling around, however, a majority of them are far from being simple that the game requires, containing complex scripts and hard to read and to understand. Especially, the examples in JAVA are written by unskilled programmers who are anaware of what Object Oriented Programming is ... (more)

1 Aralık 2012 Cumartesi

C# İpuçları - #1 : İsim Uzayı Niteleyici

Yazılım geliştirme sürecinde bazen isim uzaylarının çakışması durumu ile karşılaşırız. Kullanmak istediğimiz sınıfın başka bir isim uzayındaki sınıf ile aynı ada sahip olması durumunda, derleyici tarafından belirsizlik olduğuna dair uyarı alırız. Örneğin :

20 Nisan 2012 Cuma

JAVA ile Yılan Oyunu Yapımı (Açıklamalı Kaynak Kodlar)

Bu yazımda, JAVA dilini kullanarak meşhur yılan oyununun basit bir versiyonunu yeniden yazacağım. Aslında internette bir araştırma yaparak, buna benzer onlarca kaynak kod bulabilirsiniz. Ancak bunların  bir çoğu, oyunun gerektirdiği basitlikten çok uzak, karmaşık kodlar içeren, okuması ve anlaması zor şekilde hazırlanmış. Özellikle JAVA ile yazılan örnekler ise sanki nesneye yönelik programlama (Object Oriented Programming) mantığından bihabercesine, kodların alt alta birleştirilmesinden ibaret olacak şekilde yazılmışlar… (Devam)

5 Nisan 2012 Perşembe

JAVA Bytecode Ayrıntılı İnceleme - 2 (String Ekleme / Birleştirme / Concatenation)

JAVA Bytecode Nasıl Elde Edilir? başlıklı  ve JAVA Bytecode Ayrıntılı İnceleme başlıklı önceki yazılarımda, hazırlamış olduğum ByteCodeTest isimli sınıfın JAVA bytecode'unu nasıl elde edeceğimizi ve JAVA kodlarına karşılık gelen JAVA bytecode'larını incelemiştim.

Şimdi ise ByteCodeTest.java sınıfına bir method daha ekleyip string ekleme / birleştirme (string concatenation) işlemini JAVA bytecode'ları yardımıyla inceleyeceğim ve basit ama önemli bir konudan bahsedeceğim... (Devam)

JAVA Bytecode Ayrıntılı İnceleme

JAVA Bytecode Nasıl Elde Edilir? başlıklı önceki yazımda, hazırlamış olduğum ByteCodeTest isimli sınıfın JAVA bytecode'unu nasıl elde edeceğimizi açıklamıştım. Bu yazımda ise, yazmış olduğum JAVA kodlarını ve karşılık gelen JAVA bytecode'larını inceleyeceğim.

Bu amaçla ilk önce ByteCodeTest.java sınıfını aynen kullanarak karşılaştırma yapacağım, daha sonra ise bu sınıfa bir method daha ekleyip string ekleme / birleştirme (string concatenation) işlemini JAVA bytecode'ları yardımıyla inceleyeceğim ve basit ama önemli bir konudan bahsedeceğim... (Devam)

JAVA Bytecode Nasıl Elde Edilir?

JAVA bytecode hakkında bir önceki yazımda yaptığımız girizgahtan sonra gelelim bu bytecode'u nasıl elde edeceğimize.

Bunun için ihtiyacımız olan şeyler herhangi bir konsol penceresi (Windows Command Prompt, Unix-Solaris Console vb.) ve sistemimizde kurulu olan JDK (JAVA Development Kit). Yapmamız gereken ise JDK'nın \bin klasörüne gidip javap dosyasını çalıştırmak... (Devam)

JAVA Bytecode nedir?

JAVA bytecode, JAVA sanal makinesinin (JAVA virtual machine) işlediği komutlara verilen addır. Yani sanal makinenin anlayacağı dildeki bir komut anlamına gelmektedir. JAVA dilinde yazdığımız kodlar, derleyici (JAVA compiler) tarafından bytecode'a dönüştürülürler.

Bir byte'ın alabileceği 256 farklı değer olduğundan, 256 farklı komut vardır. Ancak bunlardan 51 tanesi rezerve edilmiş ve ihtiyaç duyulduğunda kullanılmak üzere boş bırakılmıştır... (Devam)

30 Nisan 2010 Cuma

Run Length Encoding (RLE) - Bölüm-1

Run Length Encoding ya da burada kullanacağımız kısa adıyla RLE, oldukça sık başvurulan, en basit veri sıkıştırma yöntemlerinden birisidir.

Kayıpsız veri sıkıştırma tekniğine dayanan bu yöntemde, birbirini tekrarlayan uzun sembol dizileri, bu sembolün bir örneği ve sembolün kaç kez tekrarlandığı yan yana yazılarak sıkıştırma yapılması amaçlanmıştır. Şöyle ki; bir sembol dizisi, 'L' tane 'S' sembolünün tekrarlanmasından oluşuyor ise, bu diziyi kısaca 'LS' şeklinde yazmak yeterli olacaktır... (Devam)

Neler Gelecek?

Bir süredir ilgi duyduğum veri sıkıştırma teknikleri konusunu ele alacağım bir yazıyı kısa bir süre içerisinde hazırlayıp burada paylaşmayı planlıyorum.

Bu teknikler arasında ilk bahsedeceğim, Run-Length-Encoding (RLE) tekniği olacak. Bu kolay tekniğin temellerinden, kullanım alanlarından, getirilerinden ve götürülerinden bahsedecek, C# kodlarıyla konuyu programa dökmeye çalışacağım.

Bu konuda İngilizce bir kaynak olarak http://en.wikipedia.org/wiki/Run-length_encoding adresini kullanabilirsiniz.

Blogger & Wordpress

Bir blog sayfası açmayı düşünmeye başladığımda, aklıma takılan ilk konulardan birisi, blog'umun Wordpress'te mi yoksa Blogger'da mı yayınlamam gerektiği konusuydu.

Hemen kısa bir araştırma yaptım ve Blogger'da karar kıldım. Bunun sebeplerinden en belirgin olanı, Wordpress'in blog'uma bazen de olsa reklam koyabileceğini söylemesiydi. Bunun yanında bazı özellikler için de ücret istemesiydi. Blogger ise tam tersine her şeyin ücretsiz olduğunu, istersem kendi reklamlarımı yayınlayabileceğimi söylüyordu.

Diğer taraftan, Wordpress'in görsellik konusunda daha gelişkin olduğunu, daha fazla tema seçeneği sunduğunu söylemeliyim. Blogger bu konuda bence sınıfta kalıyor. Ayrıca Wordpress'in sitenize kurabileceğiniz bir CMS olarak da kullanılabilmesi büyük bir artı. Ancak benim böyle bir planım şimdilik olmadığından, karar vermemde bu özelliğinin de etkisi olmadı.

Bakalım gelecek neler getirecek ve benim bu kararımı onaylayacak mı?