9 Oca 2009

Bitirme Tezi

Uzun zamandır bitirmezi tezim için araştırma yapıyorum.
Tezimin adı : Java Teknolojileri Kullanılarak Mobil Ödeme Sisteminin Geliştirilmesi
Bu projeyi 2 kişi gerçekleştireceğiz inşallah :) çünkü daha altyapı çalışmaları yapmaktayız ve kendimizi Java üzerinde geliştirmemiz gerekiyor.J2SE kullanarak pek çok ödev yapmıştık ama
J2EE bizi baya uğraştıracağa benziyor.Web kısmı, telefon üzerindeki kısım falan derken pek çok Java teknolojilerini inceliyorum.Şuan özellikle Web-Services kısmı daha çok ilgimi çekiyor.
Katmanlı mimari yapısını kullanarak .NET üzerinde yazılım geliştirmiştim o yüzden katmanlı mimari kısmında pek sorun olmayacağını düşünüyorum.Ayrıca EJB (Enterprise JavaBeans) ve SOAP (Simple Object Access Protocol) gibi yapıları kullanacağız bu teknolojiler üzerinde araştırmalarım devam etmekte. IDE olarak ise hangisini kullanacağıma karar veremedim
hem Eclipse'in hemde NetBeans'in kendine göre artıları ve eksileri var.
Şuan "java-tools-bundle-update6-windows" içinde gelen NetBeans 6.1 ve Sun Application Server üzerinde denemeler yapıyorum.İşin mobil kısmı ayrıca incelenecek çünkü o alanda bilgim hiç yok.Tüm bunlar hakkında pek çok PDF doküman okudum, bunlardan edindiğim bilgileri ve yazdığım örnekleri yakında burada paylaşacağım.

18 Eki 2008

Türkiyede ilk internet altyapısı

Bu sene son sınıf olduğumuz için midir nedir ???
en sonunda network ile ilgili ders alabiliyoruz bölümden.İki dönem boyunce Veri iletişimi ve bilgisayar ağları adında dersler alacağız.Dersimize Levent TOKER hocamız vermektedir.Kendisi ülkemizde ilk internet altyapısı kurulurken sistem yöneticiliği yapmış kişidir.
Hocamız anılarını anlatmayı çok sever.Gerçektende deneyimleri bize yol gösteriyor.
Nasıl sistemi kurdukları,fiber kabloları nasıl çektikleri neden Türkiye de ilk internet denilince Ege Üniversitesinin değilde ODTÜ'nün akla geldiğinden bahsediyor.Bu konulardan bahsederkende adını es geçmeyeceği bir kişi var o da Oğuz MANAS hocamız kendisinden ders alma şerefine nail olamadık ama ününü tüm dünya biliyor geçenlerde doğum günüydü bölümümüzde 75. yaş günü kutlandı.Bununla iligili olarak Yeni Asır gazetesi Oğuz Hoca ile bir röportaj yapmış bu içerik oğlu Alphan MANAS'ın web sayfasında bulunmaktadır.1984 yılında yapılmış bir söyleşide internetin Türkiye'ye gelmesini anlatmıştır.

4 Eki 2008

Bayram Tatili

İki aydır yazamamışız neden birincisi 6 hafta staj yaptık iş hayatının zorluğunu öğrendik insanın kendine vakit ayıramamasının ne demek olduğunu yorgun gelip canının hiç birşey yapmak istemeyişini anladık.Sonra da kayseriye gittim teknolojik araçlar açısınından tam bir felaketti internet yok olan yerlerde ise internet hızı çok düşüktü.1 ayın sonunda izmire geri döndüm bayrama bir hafta vardı geri gitmek ise zoruma gitti.Canım 15 saat yolculuğu çekmek istemedi bayramın ilk günü izmirdeydim ikinci günü denizliye gittim bayramın geri kalanı gayet güzel geçti arkadaşlar sağolsunlar misafirlerini iyi ağırladılar :)))
bayram bitti pazartesi okula başlıyoruz mezun olanlara sorduk bizim düşüncemiz bu senenin geçen seneye göre daha rahat olacağıydı ama bu sene daha zor olacakmış :))
neyse okul başlasın teknoloji yazılarımıza geri döneriz....

1 Ağu 2008

JUnit Denemeleri (devam-2)

Test yazmanız debug işinizi hafifletiyor.Ama programda asıl işi yapacağınız testleri yazmanıza yardımı olmuyor.Çünkü onların içini doldurmak size kalıyor burada da işin içine algortima bilgisi giriyor.Program yazmanın en can alıcı noktalasıdır Algoritma oluşturmak.
Şimdi asıl işin yapıldığı yere gelecek olursak
-----sınıf başlangıcı-----
package org.calculator.models;

import java.util.StringTokenizer;
import java.util.Vector;

public class HesapMakinesi {

private int sayi = 0;

public void topla(int eklenen) {
sayi = sayi + (eklenen);
}

public void cikar(int cikarilan) {
sayi = sayi - (cikarilan);

}

public int getHafiza() {
return sayi;
}

public void stringToSonuc(String gelen) {
String islenen = gelen;
String aramaKarakteri = "+-";
Vector sayilar = new Vector();//sayilar parçalanmış halde stringler halinde verktörde tutluyor
StringTokenizer tokenizer = new StringTokenizer(islenen, aramaKarakteri);
while (tokenizer.hasMoreTokens()) {
String token = tokenizer.nextToken();
sayilar.add(token);
}
char isaret = ' ';//isaretine göre işlem yapıyor +(topla) veya -(cikar)
int degisken = 0;//hangi siradaki sayının işlem göreceğini belirtiyor
sayi = Integer.valueOf(sayilar.get(0));//ilk sayının ataması yapılıyor
for (int i = 0; i < islenen.length(); ++i) {

isaret = islenen.substring(i, i + 1).charAt(0);//işaretler char olarak değiştiriliyor.

if (isaret == '+') {
degisken++;
topla(Integer.valueOf(sayilar.get(degisken)));
}
if (isaret == '-') {
degisken++;
cikar(Integer.valueOf(sayilar.get(degisken)));
}
}

}

}
----sınıf bitişi----------

topla() metodu verilen sayıyı sayi değişkenine eklemize yarıyor.
cikar() metodu verilen sayıyı sayi değişkeninden çıkarmamıza yarıyor.
ama bunlar için algoritma yazmamıza bile gerek yok sayıyı değişene sadece sayıyı ekliyor ya da çıkarıyor.İşin zor tarafı bu kadar kolay halledilemeyecek ve sizin yazacağınız metodlar.
stringToSonuc(String gelen) metodu gelen string i StringTokenizer ile parçalar ayırıyor ve
elimizdeki sayıları bir vektöre atmamızı sağlıyor.
sonra for döngüsü ile her bir karakter kontrol edilerek işaretine göre topla() ya da cikar() metotlarına değişken gönderiliyor.işaret lerin char a çevrilmesi sadece if() in içinde Stringleri karşılaştırmamış olmam.Belki bir yol vardır ama string olarak gönderdiğim değişkenlerde hatalar ortaya çıktı if() blogunun içine girmedi o yüzden char a çevirip kontrol ettim.
Bir kaç söz daha ekleyecek olursam.
Algoritma yazmadan önce o işi yapabilecek bir yol mevcut olabilir bu da işiniz kolaylaştırır.
StringTokenizer işimi bayağı kolaylaştırdı.

JUnit Denemeleri (devam)

Örneğe geçmeden önce bir adres verelim.Eclipse ortamına JUnit kütüphanesi eklenmesini bir örnek üzerinde açıklamış.
http://open.ncsu.edu/se/tutorials/junit/

Şimdi benim yaptığım örneğe gelecek olursak.
JUnit Test mantığını kullanarak programda gerekli olacak metotların yazımı işlemi.
Unit testin mantığı basit ve işlevsel program parçaları geliştirmektir.
Örnekte verilecek bir string parçalanarak işaretten sonraki sayının toplanması yada çıkarılması işlemini yapmaktadır.(Basit hesapmakinesi çok çok basit oldu.)
Sadece toplama ve çıkarma yapıyor hata kontrolü bile yapmıyor.
Önce Test Sınıfımız:CalculatorTests.java
------sınıf başlangıcı---------
package org.calculator.tests;

import org.calculator.models.HesapMakinesi;

import junit.framework.TestCase;

public class CalculatorTests extends TestCase {
private HesapMakinesi hmak;

protected void setUp() {
hmak = new HesapMakinesi();
}

public void testTopla() throws Exception {
hmak.topla(new Integer(10));
hmak.topla(new Integer(5));
assertEquals(15, hmak.getHafiza());

}

public void testCikar() throws Exception {
hmak.topla(new Integer(10));
hmak.cikar(new Integer(3));
assertEquals(7, hmak.getHafiza());

}

public void testHesapYap() throws Exception {
hmak.stringToSonuc("3+5-7");
assertEquals(1, hmak.getHafiza());

}

}
-------sınıf bitişi-------
setUp() metodunda programda gerekecek ORTAK nesneler ve değişkenler yaratılıyor.
yazılan testlerin hepsinde kullanan kod parçacıkları varsa refactoring yapılarak setUp() metodunu içine yazılır.
testTopla() verilen sayıların toplanılıp sonuncunu doğru olup olmadığını kontrol ediyor.Doğru ise test başarıyla geçiyor.
testCikar() verilen iki sayılardan birinciden ikincinin çıkarılmasının doğru yapılıp yapılmadığını kontrol ediyor.Sonuç beklenen ile aynı çıktı ise test başarıyla tamamlanıyor.
testHesapYap() girilen string in parçalandığı zaman işaretlerine göre toplanması ve çıkarılması işlemine tabi tutulan değişkenlerin sonucunun doğru olup olmadığını kontrol ediyor.

Bu kodlara bakıp test yazmanın kolay olduğunu düşünebilirsiniz fakat işler ayrıntıda gizli.
Test yazarken assertEquals() metodunun değişkenlerine özenle dikkat etmelisiniz çünkü yazdığınız değişkenlerin hepsini kabul etmiyor aynı zamanda editor sıralamasına göre işlem yapılar assertEquals(boolean expected, boolean actual)şeklindekini seçip assertEquals(byte expected, byte actual) şekline döndüğünüz zaman assertEquals()'i yeniden yazmanız gerekecek cünkü editör değişiklikleri kabul etmiyor.
http://repository.ops4j.org/classic/junit/junit/3.8.1/api/junit/framework/Assert.html


sizinde göreceğiniz gibi 21 adet assertEquals metodu mevcut ve birbirinin yerine kullanılamıyor.

blogspotun bize verdiği yer yetmedi ikinci yazıda devam edeceğim.

28 Tem 2008

ISTANBUL

Gelelim şimdi çalışma hayatına en son tatil demiştik üzerinden 40 gün geçmiş bu 40 günde
Izmir-Didim-Izmir-Kayseri-Istanbul yaptım.Şuan halkbankasında teknolojik mimari bölümünde staj yapmaktayım gayet yararlı bir staj olduğu kanısındayım.Open Source Teknolojiler ve Open Source for Mobile adlı iki tane araştırma raporu hazırladım.Daha 5 haftalık staj sürem var (toplamda 9 hafta olacak) geri kalan 5 haftada tmydb adlı intranette çalışan sitenin eksik olan yerlerini tamamlayacağım (.net 2.0 ile yazılmış)
Ayrıca şu sıralar Eclipse üzerinde Java geliştirmeleri yapmaktayım.
Birim testler (JUnit) ve Java'nın web tarafı ile ilgileniyorum.Ufak tefek bir kaç uygulama geliştirdim fakat çalışmaları derlemek için zamanım olmadı.

Istanbula staj yapmaya geldik diyede hep çalışacak değiliz ya :D:D
haftasonlarında da istanbulun güzelliklerini görüyoruz tarihi geziler yapıyoruz.
Çektiğim fotograflar aşağıdaki linklerde mevcut

link1
link2

INETA SUMMER HIT

2 Ağustos
09.30-12.00 Silverlight 2.0
13.00-15.00 Yazılım Dünyası Nereye?
15.30-18.00 Team Foundation Server

3 Ağustos
09.30-11.00 IE 8.0 Yenilikleri
11.00-12.00 Web 3.0
13.00-14.30 Web Client Software Factory
15.00-17.30 LINQ

Konuşmacılar:
Ali Rıza Babaoğlan
Ali Servet Eyüpoğlu
Coşkun Sunalı
Daron Yöndem
Eralp Erat
Kadir Çamoğlu
Uğur Umutluoğlu

Yer:Yıldız Teknik Üniversitesi, Auditorium


kayıt için tıklayınız

INETA'nın yaz seminerleri ve yeniliklerin tanıtımı.