Serkan Kaba

Karalama Defteri

Linux’ta Linphone ile Wirofon’a baglanma

Posted by Serkan Kaba 8 Haziran 2011

Turk Telekom’un VOIP servisi olan Wirofon‘un QT tabanli eski bir surumunun kaynak kodlari da yayinlanan ozel bir SIP istemcisi var. Ancak ne yeni surumlerinin kaynak kodlari yayinlandi ne Linux binary versiyonlari dagitildi. Ancak SIP protokolunu kullandigi icin temelde herhangi bir SIP istemcisi ile calisabilecek durumda. Basarisiz bir Ekiga denemesinin ardindan (ki belki Ekiga’dan erken pes etmemden de kaynaklanmis olabilir) Linphone ile Wirofon kullanmayi basardim. Linphone kurduktan sonra Settings > Manage SIP Accounts bolumunde hesap ekleyip su bilgileri girdim.

SIP Identity: sip:kullanici@wirofon.turktelekom.com.tr
SIP Proxy Address: sip:wirofon.turktelekom.com.tr

Ilk baglantida sifrenizi de girdikten sonra Wirofon kullanilabilir durumda.

Posted in linux, sip, voip, wirofon | 8 Comments »

Askerden yorumsuz

Posted by Serkan Kaba 18 Ekim 2009

Aslında bu yazıyı çok önceden yazmayı planlamıştım ama şimdiye denk geldi. Tüm askerlere Yaşar Kurt’tan Anne gelsin.

korkuyorum anne al beni içine
alışamadım anne al beni yine
büyüdüm anne evler büyüdü
büyüdü pabuçlar yollar büyüdü
orduya istiyorlar savaş çıkar diyorlar
silah veriyorlar anne bana öldür diyorlar
yat diyorlar anne kalk diyorlar
beynimi yiyorlar anne beynimi yiyorlar
kapat televizyonu anne seni de kandırıyorlar
kapat televizyonu anne seni de kandırıyorlar
oyunu verme anne
oyunu verme anne
oyuna gelme anne

Posted in gezegen, hayat, Türkiye | 8 Comments »

Muğla/Kavaklıdere – Batının Ücra Bir Köşesi

Posted by Serkan Kaba 22 Eylül 2009

10 gündür yeni yerimde askerliğe alışmaya çalışıyorum. Evet burası maalesef Muğla’da deniz olmayan nadir yerlerden ve 3000 nüfuslu ufak bir ilçe. Benim gibi büyük şehre alışmış birine ilk anda itici geliyor. Eh artık kafa sıfırlama yeri diye avutmaya çalışıyoruz kendimizi. Bunun dışında karakolun imkanları (yemek, banyo …) gayet iyi. Ve tabi diğer yerlere göre daha olaysız.

Günlerim nasıl geçiyor dersek kolluk nöbeti, yatış ve karakol nöbeti üçlüsü ile üçer üçer devirmeye çalışıyoruz şafağı. Bir yandan uzun dönemleri idare etmeye çalışırken bir yandan da üstlerin işlerini görmeye çalışıyoruz. Bu bazen gerçekten sıkıcı ve sinir bozucu olabiliyor.

Tekrar yazmak dileğiyle. Herkese iyi bayramlar.

Şafak 116 ya da 117 (Tam rakam veremiyorum zira kesin saymaya daha başlamadım)

Posted in gezegen, hayat, Türkiye | 7 Comments »

Askerden merhaba

Posted by Serkan Kaba 11 Eylül 2009

Muğla İl Jandarma Komutanlığı beklediğimden de konforluydu. Herhalde yemekte Magnum dondurma çıkan her gün duş yapılabilecek başka bir birlik bulamam. Tabi hasretlik evden ayrı kalma gibi duyguları da yaşamadım değil ama bundan kaçış yok.

28 Ağustos’taki yemin törenine kadar asfalt eriten bir sıcakta hababam bi yürüyüş gerçekten zordu ama bir şekilde o günler de geçti. Ardından silah eğitimi ve atışlar (g3 ve mp5 ile) derken acemi birliği bitiverdi ve bugün usta birliğine teslim olacağım. Muğla’nın Kavaklıdere ilçesinde ilçe jandarma komutanlığında görevime devam edeceğim.

Tekrar yazabilmek dileğiyle görüşmek üzere…

Posted in gezegen, hayat, Türkiye | 3 Comments »

Kısa bir ara

Posted by Serkan Kaba 10 Ağustos 2009

Bir iki gün içinde sivil hayatıma 6 aylık kısa bir ara veriyor olacağım. Sivil kelimesini de kullanınca belli oldu tabi bu ayrılığın sebebi. Muğla İl Jandarma Komutanlığı’na kısa dönem jandarma er olarak teslim olacağım. Çıkan yer konusunda şanslı olduğumu düşünüyorum umarım bu fikrim değişmez.

5-6 ay içinde tekrar görüşmek üzere. Hakkınızı helal edin, sağlıcakla kalın.

Posted in gezegen, hayat, Türkiye | 11 Comments »

JAX-WS ile WsGen kullanmadan web servisi oluşturma

Posted by Serkan Kaba 10 Haziran 2009

Yakın zamanda farkettiğim bu özellik basit web servislerinin oluşturulmasını ve test edilmesini oldukça kolaylaştırıyor. Araştırdığımda çok daha eskiden beri JAX-WS sürümlerinde var olduğunu öğrendiğim bu özelliği şans eseri 1.6u14 sürümüne girdikten sonra fark ettim. Bu şekilde artık @WebService ile işaretlediğimiz sınıfları Endpoint.publish() ile direk sunabilmekteyiz. Örnek olarak aşağıdaki kodu direkt çalıştırdığımda ws erişilebilir ve kullanılabilir hale gelmekte. Ayrıca çalıştırılırken gerekli sınıfların çalışma anında oluşturulduğuna dair log mesajları oluşturmakta.

package service;

import javax.jws.WebMethod;
import javax.jws.WebService;
import javax.xml.ws.Endpoint;

@WebService
public class Hello {

	@WebMethod
	public String hello() { return "Hello"; }

	public static void main(String[] args) {
		Endpoint.publish("http://localhost:8080/hello", new Hello());
	}

}

Referanslar

Posted in gezegen, java, yazılım | 3 Comments »

İzmir’de bir çınar daha devrilmiş

Posted by Serkan Kaba 26 Mayıs 2009

Gidip de dönmemek dönüp de görememek var. Bu kalıp genelde ayrılıklarda helalleşmek için kullanılır. Ama bazen insan dönüp farklı şeyleri de yerinde bulamaığında da bir garip hüzünle kaplanıyormuş. Evet nerdeyse saat kulesi gibi “Ben bildim bileli orada” bir mekandı “Fil Pizza”. Hayatımda ne pizzasından yedim ne kapısından girdim. Ama o ben bildim bileli (hatta ablam, annem bildi bileli) oradaydı. 13 Mayıs’ta kupa finaline gittiğimde farkettim ki o da kapanmış. Nedeni kriz, ekonomik sebebpler midir bilmiyorum. Ama yıllardır aynı yerde olduğunu bildiğim şeyi görememek bir garip. Neyse umarım diğer semboller bunu yaşamaz (Mesela Sevinç ve Lozan pastaneleri)

Posted in hayat, İzmir | 1 Comment »

TTNet ve adi(l) kullanım

Posted by Serkan Kaba 25 Mayıs 2009

8 Mbps’e kadar ADSL paketlerinde, hattın desteklediği hız ile bağlantılı olarak 8 Mbps’e kadar hız sağlanmaktadır. Tüm “8 Mbps’e kadar ADSL paketleri” için aylık 15 GB adil kullanım uygulanacaktır. Aylık download miktarı 15 GB’ı aşması durumunda, ay sonuna kadar download hızı 512 Kbps olarak uygulanacaktır.

Yukarıdaki metin TTNet in sunacağı 8Mbit pkaetleri ile ilgili uyarıdır. Ben de bu paketi duyduğumda aylık az bir ödeme farkıyla bu hizmeti sunacaklar diye sevinmiş hatta geçmeyi de düşünmüştüm. Ancak her zamanki gibi bunun altından tüketiciye bir kazık çıktı. Neymiş evendim “Adil kullanım” mış. Evet ADİ hizmetlerine çok da güzel kılıf uydurmuşlar. Ne diyelim dünyanın en pahalı ve yavaş internet hizmetini almaya devam edeceğiz.

Posted in dumur, gezegen, internet | 15 Comments »

@Override annotation ve Java5 ile Java6 arasındaki farkı

Posted by Serkan Kaba 7 Mayıs 2009

Java5 ile gelen annatationlardan biri olan @Override bir metodun eskisini geçersiz kıldığını (override) ifade eder. Ancak Gentoo’da bir hata nedeniyle farkettiğim üzereanlamı Java5 ile Java6 arasında farklılık göstermektedir. Java6’dageçersiz kılınan ve gerçekleştirilen metodlar için @Override kullanılabilirken Java5’te sadece ilk kullanımı geçerlidir. Bu bir hata olarak Sun hata kayıt sistemine defalarca raporlanmıştır. (Benzer ve çift hata kayıtlarından anlaşıldığı üzere) Benim hataların yorumlarından anladığım amacın Java5 için de her iki durumu desteklemek olduğu ancak derleyicideki hata sebebiyle Java5 spesifikasyonunun revize edilerek sadece ilk kullanımın desteklendiği ve Java6’da her iki kullanımım geçerli sayıldığı yönünde. Bunun sebebi ise hatalı da olsa Java5 için uyumluluğu korumak.

Şimdi bu durumu bir örnek üzerinden inceleyelim.

interface Interface {
	public abstract void b();
}

abstract class Base {
	public abstract void a();
}

public class Sub extends Base implements Interface {

	@Override
	public void a() {
	}

	@Override
	public void b() {
	}

}

Bu kod Java6 ile gelen derleyici ile derlenmekte ancak Java5’teikinci @Override için şu hatayı vermektedir.

Sub.java:15: method does not override a method from its superclass
	@Override

İşin ilginç yanı Java6 derleyicisi ile -source 1.5 -target 1.5 parametreleri verildiğinde de hata vermemekte 1.5 ile olan uyumsuzluğu ancak ecj (Eclipse Java derleyicisi) yakalayabilmektedir. Bu sebepten ötürü arayüz metodları gerçekleştirilirken @Override kullanılmaması başka amaçla illa Java6 gerekmiyorsa kodun uyumluluğunu arttıracaktır.

Posted in gentoo, gezegen, java | Leave a Comment »

Generics ve Reflection ile genelleştirilmiş dizi yaratma

Posted by Serkan Kaba 29 Nisan 2009

Daha önceden buna benzer bir kodu Java 1.4 ile generics kullanmadan yazmıştım. Ancak Generics’in sağladığı özelliklerle tip dönüşümü kodunu metod içine alarak dışarıya tip güvenli bir metod sunabildim. Şimdi örnek kullanım ile metodumuzu görelim.

import java.lang.reflect.Array;

public class GenericArrayDemo {

	public static void main(String[] args) {
		System.out.println(getArray(String.class,10).getClass().getSimpleName());
		String theArray[] = getArray(String.class, 10);
	}

	@SuppressWarnings("unchecked")
	public static <T> T[] getArray(Class<T> clazz,int size) {
		T theArray[] = (T[])Array.newInstance(clazz, size);
		for(int i=0;i<size;i++)
			try {
				theArray[i]=clazz.newInstance();
			} catch (InstantiationException e) {
				e.printStackTrace();
			} catch (IllegalAccessException e) {
				e.printStackTrace();
			}
		return theArray;
	}
}

Burada çıktı olarak String[] üretilmekte ve oluşan dizi direk ve yalnız String dizisine atanabilmektedir. Şimdi örneğimizi genişletelim ve metodun sadece Number sınıfının alt sınıflarını üretebilmesini sağlayalım.

import java.lang.reflect.Array;
import java.lang.reflect.Constructor;
import java.lang.reflect.InvocationTargetException;

public class GenericArrayDemo {

	public static void main(String[] args) {
		/* Bu satırlar artık Number altsınıfı beklediğimizden hata alacaktır.
		System.out.println(getArray(String.class,10).getClass().getSimpleName());
		String theArray[] = getArray(String.class, 10);
		*/
		System.out.println(getArray(Double.class,10).getClass().getSimpleName());
		Long theArray[] = getArray(Long.class, 10);
		for (Long long1 : theArray) {
			System.out.println(long1);
		}
	}

	@SuppressWarnings("unchecked")
	public static <T extends Number> T[] getArray(Class<T> clazz,int size) {
		T theArray[] = (T[])Array.newInstance(clazz, size);
		for(int i=0;i<size;i++)
			try {
				/* 
				 * Number alt sınıfları parametresiz constructor
				 * içermediği için 0 ile ilklendiriyoruz
				 */
				Constructor<T> constructor=clazz.getConstructor(String.class);
				theArray[i]=constructor.newInstance("0");
			} catch (InstantiationException e) {
				e.printStackTrace();
			} catch (IllegalAccessException e) {
				e.printStackTrace();
			} catch (SecurityException e) {
				e.printStackTrace();
			} catch (NoSuchMethodException e) {
				e.printStackTrace();
			} catch (IllegalArgumentException e) {
				e.printStackTrace();
			} catch (InvocationTargetException e) {
				e.printStackTrace();
			}
		return theArray;
	}
}

Bu metod ise Double[] ve ardından 10 adet sıfır yazdırmaktadır. Artık Number alt sınıfı beklediğinden bir önceki örnekteki satırlar çalışmamaktadır. Burada sınıfa ait String parametresi alan Constructor üretilmekte ve o şekilde ilklenmektedir.

Bunu benim kullanım amacım veritabanında çağırılan stored procedure sonuçlarını uyumlu bir sınıf dizisine eşleyebilen genel bir metod yazmak idi. Belki daha farklı kullanım amaçları da olabilir.

Posted in gezegen, java | Leave a Comment »

 
Takip Et

Her yeni yazı için posta kutunuza gönderim alın.