1 Ağustos 2012 Çarşamba

Zeban - Projekent 2012 Türkçe Programlama dili yazımı projesi

İTÜ'de düzenlenen Projekent 2012 etkinlikleri kapsamındaki Türkçe Programlama Dili yazımı yarışmasında hazırladığım ve yarışmada 1. olduğum dil(Zeban), Akademi Insurance Solution şirketine teslim edilmiştir.

Zeban programlama yetisine sahip olmayan fakat bazı hesaplamalar açısından uzman olan kişilerin istedikleri programı basitçe yazabilmeleri adına tasarlanmıştır.

----------------------------------------------------



saAt ttat  =  _simdi +1-sa - 2-sn – 1-yil;
tam a = 0;
onDAlik İşüöçöülşpğiİa = 1;
yazdir(a + "knlm"  + 'r' + 5.3 + 2);
yazdir(ttat);
yazdirsatir();
yazdirsatir(a + "asd" + 'i');
İşüöçöülşpğiİa += -1;


tam i = {1,2,3,4,5};
tam dizii = {1,2,3,4,5}{7,8,9,0,'4'};
tam ab = dizii[a*2]['2' + 4];
ab = i[dizii['2' + 4 - "5"][i[2]]];
tam Aa = A/0;
aa = A;
tam b = 3 ;
yazi ssq = "egerİÇİNDĞüişıeatama" + 5.4;
tam oo = 2.34;
tAM  ii = oo + 2;
ii += asdsdfg + 2;
tam deneme;
eger(ii<a){
don(ii == 4 ve dogru)
{ ii += 1;}
            tam ih = 2;tam tt = 2.4;
            eger(a == oo + ii){
                        tam onda = 2 + oo * 2;
            }
            yaeger(dogru == yanlis){
                        oo = 1 + oo*2;
            }
            yada{
                        oo = 1 + oo*3;
            }
}
yazdir(oo);yazdirsatir(ii);

----------------------------------------------------

Zeban dilinde yazılan kod parçacığı native java koduna dönüştürülür. 

Zeban dili, tam sayı, ondalık sayi, mantıksal ifade, string, değişkenlerini tanımlamanıza, bu degiskenleri herhangi bir dönüştürme(cast) işlemi olmadan, farklı bir değişken türüne atamanıza, bu değişken türlerinde tek-çift katlı diziler tanımlamanıza ve bunlar arasında dönüştürme işlemine ihtiyaç duymadan 4 işlem gerçekleştirmize yardımcı olur. Zeban'da zaman degiskenleri yaratabilir, zaman hesaplamaları yapabilirsiniz. if-elseif-else karar mekanızmalarını ve while dongu mekanızmalarını sağlar. Çıkan sonuçları ekrana bastırmanızı sağlar.


22 Temmuz 2012 Pazar

Hibernate türkçe karakter sorunu

Hibernate ile veritabanına bağlanıyoruz, fakat kayıt yaparken türkçe karakter problemi yaşıyoruz. Türkçe karakterlerin yerine ? karakteri geliyor. Bu problemin çözümü oldukça basittir.

Hibernate config xml dosyamızın içindeki bir property değerini atamamız gerekecektir. Bu değeri utf-8 olarak atarsak problem çözülmüş olacaktır:

<property name="hibernate.connection.characterEncoding">utf8</property>


12 Nisan 2012 Perşembe

Gwt ile mysql veritabanına bağlanma sorunları

Gwt'ye benim gibi yeni başladıysanız, kaynak sıkıntısı çekeceğiniz kaçınılmaz gibi duruyor olmalı. Lafı uzatmayayım. Gwt ile ilk projenizi yapıyorsunuz ve mysql veri tabanına bağlanıp veri çekmek istiyorsunuz. Daha önce java - eclipse kullanarak bunu gerçekleştirdiniz, peki gwt ile yaparken nasıl olacak. Kod kısmı aynı. yani driver' yükle bağlan şeklinde. Peki sadece kod kısmının aynı olması sorun çıkmayacağı anlamına gelir mi? Ne yazık ki hayır.

Gwt ile veri tabanına bağlanırken gözetilmesi gereken ilk unsur projenizi yaratırken(eclipse kullandığınızı var sayıyorum) google app engine kısmını uncheck yapınız. Çünkü, eğer bu sdk'yı da projenize eklerseniz, google app engine sizin yerele ulaşmanızı engelleyecektir(neden bilmiyorum).

Bunu yaptıktan sonra tabiki projenize connector/j eklemeniz gerekiyor. Projeye sağ tıkladık, properties dedik,, build path dedik, add external jar dedik, bu connector jar'ını projemize ekledik. Herşey tamam değil mi? Gene koca bir hayır. Projenizi deploy ettiğinizde (yani çalıştırdığınızda da denebilir), bu jar'ın projenin war/WEB-INF/lib klasöründe olması gerekiyor(olmazsa olmaz mı denemedim ama öyle deniyor) bunun içinde jarı tutun klasörün içine sürükleyin, çıkan pencereye copy deyin. Bundan sonra bir problem çıkacağını zannetmiyorum, kolaylıklar

31 Mart 2012 Cumartesi

Android emülatör'de uygulama geliştirme sorunları

Android tabii ki mobil sektördeki en önemli işletim sistemlerinden birisi, ki bana göre geleceğin -program geliştiricileri için, oyun değil- en parlak işletim sistemi. Android geliştirmeye başladığınızda "herhangi bir cihaza ihtiyaç duymak zorunda değilim" gibi bir düşünceye sahipseniz, yanılma ihtimaliniz var. Bunun en önemli sebeplerinden birisi de kamere kullanmak istediğinizde ortaya çıkıyor.Emülatörde bilgisayarınıza bağlı bir kamera kullanmak istediğinizde, Google size herhangi bir olanak sunmuyor, ve büyük sorunlar başlıyor. Piyasada şurda bahsedilen yayına ulaşıyorsunuz. Fakat bunu kullanmak o kadar da kolay olmuyor, ki ben beceremedim. Google emülatörün bilgisayarın kamerasını kullanabileceğimiz herhangi bir teknoloji geliştirmiyor oluşu ve bunun sonucunda kişilerin kendi çabalarıyla birkaç satır kod yazılıp sorun çözülmeye çalışılıyor ki bu genellikle çok da başarılı olmuyor(dünyadaki açık kaynaklı projelerin, bunları geliştiren kişilere oranının 1 olduğunu da hesaba katmak gerekiyor).
Emülatör'le alakalı bir başka sorunda QR kod okumak istediğinizde karşınıza çıkıyor. Zaten kamerayı bile çalıştıramazken, google'ın geliştirdiği(yanlış hatırlamıyorsam) Zxing, kamerayı kullanmayı zorunlu kılıyor. Fakat bu sorunu da 'ben yereldeki bir resme ulaşırım, Zxing'i burdan beslerim' diye hoş bir çözüm düşündüğünüzde ise, Zxing'in de altından kalkmak zorunda kalıyorsunuz(enerjiniz varsa :))
Android'i ne kadar övsem de hali hazırda ,tak çalıştır olmasa bile, kolay uygulanabilirlik açısından klasik Java projelerinden bir farkı yok. Tabi bilgisayar mühendisi oluyorsanız yada öyle iseniz bunu biliyor olmalısınız: bu bizim kaderimiz :) Bu zorlukları görüp 'ben sürükle bırak yapıcam yeaa' diye de mızmızlanıp .Net'e ve türevlerine geçiş yapmayın. Ben Android'in, İOS'de geliştirme kullanılabilirliğine kısa zamanda ivmelenerek yetişeceğine inanıyorum.
Sonuç olarak imkanınız varsa, Android işletim sistemine sahip bir cihaz edininiz.

14 Mart 2012 Çarşamba

Antlr

Antlr( another tool for language recognition ) 1989'dan beri geliştirilen yeni bir programlama dili yaratmanız için gerekli bir çok aracı sağlayan bir çatıdır. antlr geleneksel tüm dilleri destekler. Eğer implement'e edeceğiniz dile hakim olduğunuzu düşünüyorsanız, yeni bir dil tasarlamak için değişik tool'lara bakmanıza gerek bırakmaz.
Bir dil tasarlamak için gerekli, sözcüksel (lexical), cümle-sözdizim(syntax) ve anlamsal(sematic) katmanlarını kolaylıkla uygulamanızı sağlar.
Bir java geliştiricisi olarak kolaylıkla kullandım. Fakat yeni bir programlama dili geliştirmek için gerekli olan çalışma yapısını daha önce tecrübe etmediğimden, dili yaratmak başlarda kolay olmadı.
Antlr'ı Java içinde kullanacaksanız Eclipse IDE'sini kullanmanızı tavsiye ederim. hali hazırda buradaki videolar size hem Eclipse'e nasıl kuracağınızı gösterecektir, hem de ilk adım olarak size güzel bir başlangıç yaptıracaktır.
Şuanda 3.4 sürümü mevcuttur ve bir sorunla karşılaştığınızda internette daha önce sizin gibi bir çok geliştiricinin soruları ve bu cevaplara ulaşmanız kolay olacaktır. Benim gözlemim antlr daha önce çok fazla kişi tarafından kullanılmıştır, ki ben daha büyük projelerin frameworklerin içinde bunu kullanıldığına dair bazı gözlemler yaptım.