Çok uzun süredir bir şeyler yazmadığımın farkındayım. Bir süre ara verdikten sonra, bir şeyler yazmak daha da zorlaşıyor doğrusu.
Blog'dan uzak kaldığım sürede pek çok şey oldu aslında. Yaklaşık bir sene eğitim için Londra'daydım. Daha sonra askerlik, Huawei R&D'de işe başladım, son olarak da Haziran ayında evlendim :)
İtiraf etmek gerekirse; bu sırada herhangi bir özgür yazılım projesi veya kişisel bir proje ile ilgili bir çalışma yapmadım. Şirkette yazılım mühendisi olarak çalıştığımdan dolayı; elbette çeşitli JAVA teknolojileri, ORACLE, veritabanı vs. ile ilgili işler yapıyorum ama bunlar standart işler olduğu için; teknik olarak bahsedebileceğim özel bir şey olduğunu düşünmedim. Hele ki yanında seni teşvik edecek bir Necdet Hoca'n olmayınca, bu işi hepten boşlayabiliyorsun gerçekten :)
Bu kadar miskinlik yeter bence. Henüz ne ile ilgili bir şeyler yapacağıma karar vermedim ama ne olursa olsun, önemli, paylaşmaya değer gördüğüm tecrübelerimi buraya yazacağım.
10 Ekim 2013 Perşembe
Yaşıyorum!
26 Temmuz 2010 Pazartesi
Openlaszlo'da debug ya da non-debug modda çalışmanın sınıf metot erişimine etkileri
Geçen günlerde yaşadığım bir problem sayesinde Openlaszlo derleyicisinin bir davranışı hakkında bildi sahibi oldum. Sorun şu şekilde idi:
Uygulama geliştirme ortamında debug modda çalışmalar yapıyordum. Bu şekilde uygulamanın çalışma anındaki gidişatını takip edebiliyordum. Uzunca bir süre bu şekilde çalıştığım için varolan bir problemi de farketmem mümkün olmadı. Uygulamayı non-debug(debug kapalı) modda çalıştırdığım zaman paylaşılan nesne ve rtmp bağlantı sınıfları üzerindeki metotların flash sunucusu tarafından tetiklenmediğini farkettim. Sorunu Openlaszlo kullanıcı listesine sorduğum zaman ise; geliştiricilerden şu şekilde bir yanıt aldım: "debug modda çalışırken OL sınıfları public, non-debug modda ise public değildir. Bu sorunu giderebilmek için ise; metotlarına başvurulacak sınıfları, bir script içerisinde public tanımlayıcısı şeklinde belirtmek gereklidir."
Sınıfların public tanımlayıcısı ile gerçekleştirimlerinde ise, temsil edilecek olan sınıfın metotlarının çağırımı, yeni oluşturulan ara sınıf metodu içerisinde yapılıyor.
public class SharedObjectChatMediator {
var client;
public function SharedObjectChatMediator (client) {
this.client = client;
}
public function writeMessage(username, msg) {
this.client.writeMessage(username, msg);
}
}
Yukarıda shared object sınıfının (parametre olan client) public olarak gerçekleştirimi bulunmaktadır. Örneğin writeMessage metodu çağrıldığında aslında parametre olarak gelen shared object'in (client) writeMessage metodu çağrılıyor.
2 Temmuz 2010 Cuma
Javadoc exception: "java.util.MissingResourceException: Can’t find resource for..."
Javadoc oluştururken, başlıkta da belirttiğim gibi şu şekilde bir hata alıyor isek:
java.util.MissingResourceException: Can’t find resource for bundle com.sun.tools.doclets. internal.toolkit.resources.doclets, key doclet.interface
yapmamız gereken:
javadoc paramatresi olarak "-locale en_US" eklememiz gerekli. Dil ayarı tr_TR olduğu durumda bu şekilde bir hata ile karşılaşabilirsiniz.
21 Mayıs 2010 Cuma
WebM - Open Web Media Project
Mozilla, Opera, Google gibi firmaların öncülüğünde, kırktan fazla üretici tarafından desteklenen açık web medya formatı projesi WebM 19 Mayıs 2010'da duyuruldu.
İlgilenenler için :
Proje anasayfası : http://www.webmproject.org/
11 Mayıs 2010 Salı
Flash 9 için crossdomain.xml yapılandırması
client.org.tr gibi alan adı üzerinde bulunan bir flash uygulaması, başka bir alan adı üzerinde bulunan bir konum ile haberleşmek istediğinde (örneğin flash sunucusu olsun : server.org.tr ), flash 9 bunu güvenlik politikası nedeniyle kısıtlıyor. Bunun için, başvurulan alan adı (server.com.tr) üzerindeki kök dizin içerisinde crossdomain.xml isminde bir dosya oluşturulmalı ve istemci uygulamamızın bulunduğu alan adı bu dosya içerisinde belirtilmelidir.
Örneğin :
Bu işlemi yaptığımız zaman flash uygulamamız, istekte bulunulan sunucuda crossdomain.xml'i arayacak ve izin verildi ise bu sunucu ile veri haberleşmesi yapabilecektir.
Başka bir konumda bulunan crossdomain.xml dosyasını belirtmek istiyor isek, actionscript koduna şöyle bir satır eklememiz gereklidir :
Security.loadPolicyFile("http://baskadomain.org.tr/crossdomain.xml");
Not : Eğer istemci uygulamasından bir red5 sunucusuna bağlanmak isteniyorsa; $red5-home/webapps/root/ yolunda hâlihazırda bir crossdomain.xml dosyası bulunuyor. Sadece bu dosyaya yukarıdaki gibi belirtilen satır eklemek yeterlidir.
bkz : http://www.adobe.com/devnet/articles/crossdomain_policy_file_spec.html
30 Nisan 2010 Cuma
Java ve Ipv6
http://java.sun.com/j2se/1.4.2/docs/guide/net/ipv6_guide/index.html sayfasındaki önemli bulduğum kısımları, elimden geldiğince çevirmeye çalıştım ve tabi ki de paylaşayım dedim ;)
JAVA ve IPv6
================
J2SDK/JRE 1.4 sürümü ile birlikte, Java Ağ uygulamalarına IPv6 desteği eklenmiştir.
Ipv6'nın diğer özellikleri olan tünelleme, adres otokonfigurasyonu, gezici IP vs. gibi seçenekler, JAVA API seviyesinde desteklenmemektedir. Bu özellikler, otomatik olarak işletim sistemi altında ele alınmaktadır.
Linux'ta 2.1.12 çekirdeğinden sonra ıpv6 desteği eklenmiştir
Java Uygulama Etkisi
1) IPv6 için, Java uygulama kodlarında bir değişiklik yapılmasına gerek yoktur
2) Tüm adres ya da soket tip bilgileri Java ağ API'sinde kapsüllenmiştir.
3) Sistem özelliklerini değiştirme yolu ile, adres ve/ya soket tiplerinde ayarlamalar yapılabilir.
4) Ipv6'ya özel yeni uygulamalar için , yeni sınıf ve API'ler kullanılabilir.
İletişim Senaryoları: 
Soldaki ve yukarıdaki sütunlar, birbirleriyle iletişim kurmaya çalışan düğüm yapılarını temsil ediyor. X karakteri ise, bu iki düğümün birbiri ile haberleşebileceğini gösterir.
IPv6 Ağ Özellikleri
====================
java.net.preferIPv4Stack (default: false)
Eğer IPv6 desteği işletim sisteminde mevcut ise, altta bulunan temel soket bir IPv6 soketi olacaktır. Bununla birlikte, Java(tm) uygulamaları hem Ipv4 hem de IPv6 konaklarından gelen bağlantıları kabul edecektir.
Eğer bir uygulamanın, sadece Ipv4 soketlerini kullanacağı ayarlanacak ise, bu özellik true yapılır. Bununla birlikte ise, uygulama IPv6 konakları ile iletişim kuramayacaktır.
java.net.preferIPv6Addresses (default: false)
Eğer IPv6 desteği işletim sisteminde mevcut ise, öntanımlı ayar IPv6 üzerinden Ipv4 adresini kabul etmek olacaktır. Bu durum geriye doğru uyum amacı ile yapılmaktadır. Örneğin; sadece Ipv4 servisine erişimine bağımlı olan uygulamalar ya da %d.%d .%d.%d ile temsil edilen bir IP adresine bağımlı olan uygulamalar için. Bu özellik, IPv6 servislerine bağlanması beklenilen uygulamanın test edilmesi ve yayımlanmasına imkan sunar.
29 Nisan 2010 Perşembe
SVN istatistikleri için Statsvn
Erişim hakkınızın olduğu bir svn deposunun durumu hakkında istatistiksel bilgiler almak istiyorsanız, Statsvn bence tam aradığınız şey. Kullanımı da oldukça kolay.
Buradan indirip kullanabilirsiniz.
