29 Aralık 2010 Çarşamba

Karinca ile Aslan ...

Karinca ile Aslan ...

Kucuk bir Karinca her sabah erkenden isine gelir ve nese icinde calismaya
baslardi…..
Çok calisir… Çok uretir... Ve bunlari keyif icinde yapardi.

Patronu Aslan, Karinca’nin basinda yoneticisi olmadan kendiliginden bu
kadar hevesle calismasina cok sasirirdi. Bir gun kari ve verimliligi
arttirmak icin aklina parlak bir fikir geldi. Eger Karinca, basinda bir
yonetici bile olmadan bu kadar uretken olabiliyorsa, bir de basarili bir
yoneticisi olsa neler yapardi.

Bunun uzerine, muthis bir yoneticilik kariyeri olan ve yazdigi raporlarla
unlu Hamambocegi’ni ise aldi. Hamambocegi ise oncelikle bir saat alarak
basladi. Boylece Karinca’nin calistigi saatleri tam olarak olcebilecekti.
İs saatlerinde gevseklige musaade etmeyecekti. Elbette raporlarini
duzenleyecek bir sekretere de ihtiyaci olacakti. Bu nedenle hem telefon
trafigini yonetmek ve hem de arsiv isleri icin Örumcek’i ise aldi.


Aslan, gelismelerden cok memnundu. Hamambocegi’nin hazirladigi raporlar
gercekten harikaydi. Hatta ondan uretim hizini olcen ve karliligi analiz
eden renkli grafikler de hazirlamasini istedi. Boylece bu raporlari
ortaklarina sunum yaparken kullanabilecekti.

Hamambocegi, bu raporlari uretebilmek icin yeni bir bilgisayara ve donanima
ihtiyac duydu. Artik artan ekipmanlar icin de artik bir bilgi islem
departmani olusturmanin zamani gelmisti. Bu isleri idare etmek icin Sinek’i
ise aldi.

Bir zamanlar mutlu, uretken ve rahat olan Karinca bu yeni toplanti
duzeninden ve evrak islerinden yilmisti. Zamanin buyuk bir kismini sorulan
sorulari cevaplamak ve evrak isleri yapmakla geciyordu.


Aslan, Karinca’nin bolumunun giderek buyumesinden memnundu. Bolumu daha da
buyutmek uzere bir ustyoneticiye ihtiyac oldugunu dusundu. Ve bolum baskani
olarak basarilari ile unlu Agustosbocegi’ni ise aldi.
  

Kendi rahatina ve keyfine duskun Agustosbocegi’nin ilk icraati ofisi rahat
edebilecegi yeni mobilyalarla dosemek oldu. Tabi ki kendisinin yeni bir
bilgisayara, butce kontrol ve stratejik verimlilik plani hazirlanmasi icin
kisisel bir yardimciya ihtiyaci vardi. Bunun uzerine eski isyerindeki
yardimcisini ise aldi.

Karinca’nin calistigi yer giderek kimsenin gulmedigi, nesesiz ve mutsuz bir
mekana donusmustu. Agustosbocegi, patronu Aslan’i ortamin ruh halini
degistirecek bir calisma yapilmasi gerektigine ikna etti.
  
Bunu uzerine, Karinca’nin bolumunde olup bitenleri gozden geciren Aslan,
uretimin ve karliligin dramatik bir sekilde dustugunu farketti. Hemen, son
derece itibarli ve iyi taninmis bir Danisman olan Baykus’u sorunu cozmesi
icin ise aldi.

Baykus, Karinca’nin departmaninda 3 ay gecirdi. Bu hummali calismanin
ardindan ciltlerce suren muhtesem bir rapor yazdi.
  
Raporun sonucu suydu: “Departmanda asiri istihdam vardi”.

Aslan, raporu inceledikten sonra dramatik bir karar verdi. Ve, elbette, ilk
olarak negatif tavirlariyla dikkat ceken, mutsuz ve calisma istegini
kaybetmis olan Karinca’yi isten cikardi.


Alıntı: KARINCA

23 Aralık 2010 Perşembe

AS400'de SQLException[7008] hatası...

Her ne kadar AS400 denilen veritabanını bilmesemde SQL7008 tipinde bir hata ile karşılaştım. Bu hata bir taploda bir alanı "update" yani güncelleme işlemi yapmak isterken karşıma çıkageldi.

Sonrasında bunun AS400'de journaling diye tabir edilen bir hata olduğunu öğrendim. Tam anlamasamda bu journaling işlemi bir tür replication diye tabir edilen yansı alma işlemi gibi ya da onunla alakalı bir durum olduğunu düşünmeye başladım.


Hata biçemi : java.sql.SQLException: [SQL7008] tablo_adı  in  veritabanı_adı not valid for operation.

11 Ekim 2010 Pazartesi

SCJP çalışmaları

Sonunda SCJP için çalışmaya başladım. Biraz daha sıkı çalışsam iyi olacak. Sınava da az bir zaman kaldı. İşin güzel tarafı hakikaten yıllarca yazdığınız kodlara bu sefer biraz daha dataylı baktığınızı söyleyebilirim.

Public, private, protected ve default erişiim düzenleyici ( access modifier ) anahtar kelimelerde dahi bazı püf noktaları bilmediğinizi görünce insan biraz heyecanlanıyor.

Detayları bilmek güzel. Yeni bakış açısı ve elinizdeki alet ile neler yapabileceğinizi daha iyi görebiliyorsunuz.

:)

29 Mart 2010 Pazartesi

JSF neden form bilgilerini tutmaz...

 Bir olay ile karşılaştım. Yerel bilgisayarımda yaptığım JSF form, formu gönder düğmesine tıkladığımda doğruluk kontrollerini yapıyordu. Bunu başka ülkedeki sunucuma attım. Ve bi de ne olsun doğrulama çalışıyordu çalışmasına ama formda doldurulan alanlar sanki yeni form çağrılmış gibi boş geliyordu.

Sebebine gelince Web.xml de context param olarak tanımlanan "facelets.REFRESH_PERIOD" normalde "2" değeriyle gelir. Ben bunu "-1" yaptım. Ve her şey güzel güzel çalıştı.


Bilginize...

1 Mart 2010 Pazartesi

JSF + Facelet ile yaptım bi google Chrome beğenmedi!

Tüm sayfalar düzgün gelirken IE, FF de google chrome gıcıklık yaptı. Sayfa görüntülenemiyor diyor ya sayfa gelmiyor ya da metin olarak ekrana basıyordu.

Diğerlerinde geldiğinden ve chrome da gelmediğinden, bir hata da basmadığından ne olabilirdi acaba...

Neyse xhtml  *.jspx sayfalarının body tagına  jsfc="f:view" contentType="text/html" ekledim ve her şey yoluna girdi. Burada facelet kullandığımdan bu şekilde ekledim.

27 Ocak 2010 Çarşamba

UrlReWrite ile UTF-8 problemi yaşamak...

Java'da arama motoru dostu URL yapmak istiyorsanız mutlaka bir uğramışsınızdır Url Rewrite Filter  adresine.


Problem: Tomcat suncusunda server.xml dosyasında CONNECTOR, HOST etiketlerine URIEncoding="UTF-8" eklendiği halde URLlerde UTF-8 problemi yaşadım.

Eğer bir formdan bilgi göndereceksiniz ve mesela TR karekterler içeriyorsa JSP dosyasının içine bozuk geliyorlardı.

Url Rewriter filtresini kaldırınca sorun ortadan kayboluyor, filre aktif olunca bu sorun geri geliyordu.

Çözüm: Tuckey.org adresinden kaynak kodlarını indirdim. Derleyip hata ayıklama biçiminde çalıştırdım. Url Rewrite filtesinin içine doFilter fonksiyonun ilk satırlarına request ve response setEncoding("UTF-8") ekledim. Ve sorun kayboldu.

Fakat bunun başka bir yolu daha olduğunu gördüm. Bu sebeple bir filtre yazdım ve adına UTF8Filtresi dedim. Web.xml dosyasında - contexte ait web.xml - ilk sıraya ekledim. Bu filtre sadece ve sadece doFilter fonksiyonunda request ve response nesnelerinin setEncoding("UTF-8") ataması yaparak zincire devam et dedim.

Ve problemim yine çözülmüş oldu.

Tomcat için bir yönetim aracı arayışı...

Tomcat'in kendi yönetim aracı pek kullanışlı değil. Bunun yerine daha detaylı bilgi veren ve kullanışlı bir yönetim aracı arayışı içine girdim.

Örneğin ne kadar hafıza tükettiği, bir web projesinde kaçtane oturum açıldığı ve bunların içeriklerinin detayı, gerektiğinde jsp sayfalarını tekrar derletebilme gibi bir çok seçenek sunan bir alet buldum adı ise : probe .

Probe aynı zamanda suya sabuna dokunmadan bir projeyi kapatıp açmayı sağlaması ise ayrı güzellikti. Doğal olarak o web projesini - context - yeniden çağırabiliyordunuz. Detaylarına kadar size bilgileri veriyordu.

Daha fazla ayrıntılarına giremedim vaktim olmadığından.

Tecrübe: Probe ile bir context yeniden çağrıldığında eğer, o web projesinde Quartz API kullanılmış ise bu quartz programcıklarnın - threads - ölmemesi, fakat yeniden çağrılması olayına denk geldim. Böylece aynı iş için iki adet quartz servisi çalışıyor olacaktı. Hele bi de bu servisler para çekiyorsa değmeyin keyfinize .... :)

UYARI: Aynı sorun tomcat sunucusunun server.xml ayar dosyasında CONTEXT etiketinin reloadable="true" özelliği ile de yaşandı. Mesela web.xml üzerine yazarsanız yenisini context kendini yeniden çağıracak, eski quartz servisleri kapatılamadan yenileri ayağa kalkacak ve aynı iş için birden fazla servisinin çalışacaktır.

Güvenlik için onay resimleri ve MS Core Fonts

Bir çok projede hava oluşturulan resim ile bu resim içerindeki metnin onayını isteyerek bir tür güvenlik sistemi kurdum.

Bu resim servleti png biçeminde - fotmatında - rastgele oluşturulan metni resim olarak ekrana basacak şekilde ayarlandı. Tabii metnin bir kopyası ise oturum nesnesinde - session - tutuldu.

Window sunucuda hiç bir problem yaşamadım. Projeleri CentOs yani linux sunucuya taşıdığımızda ise bazı hatalar ortaya çıktı.

Mesela png basılıyor, hata vermiyor ancak metin otalarda yoktu.

Sonradan çözdüm olayı. Png'de metni basarken sans-serif ttf fontunu kullanmışım. Windows'ta zaten vardı. Ancak linux'ta ayrıca yüklenmeliydi. Yüklendi ve sorun ortadan kalktı.


Konu: An easy way to install Microsoft's TrueType core fonts on linux

Bakılması için örnek bir site : http://corefonts.sourceforge.net

Tomcat URL'de UTF-8 sorunu

Tomcatte ayar dosyaları arasında en meşhuru server.xml ayar dosyasında bir iki ekleme ile URLde UTF-8 problemini çözebilirsiniz.

JSP dosyalarının başında içeriğin utf-8 tipinde bilgi içerdiğini @page direktifi ile yapabilirsiniz. Ama içeriğiniz yine de düzgün görünmüyorsa bir filtre yazarsınız. Ve filtre her çeğrılan JSP dosyası için response ve request nesnelerinin karekter kodlamasının utf-8 olduğunu söylersiniz. Böyle bu sorununuz çözülür.

Diğer yollardan biri ise server.xml'de host tanımına URIencoding="UTF-8" ek tanımını eklemek. Böyle o host ile tanımlanan uygulamalarda otomatik karekter kodlaması UTF-8 olduğunu tomcat anlayacaktır. Bu tanımla ile form post ve get metodlarıyla veya URLden direk gelen bilgilerin UTF-8 olarak JSP içerisine düşeceğinin garantisini vermez.

Bunun için server.xml'de connector etiketine de host etiketine eklediğiniz şeyi uygulamanız gerekecektir. Bu sornu çözecektir. Artık utf-8 probleminiz umuyorum kalmayacaktır.

Filtrenizi silmeyin ne olur ne olmaz.... :)

Tecrübe:  CentOS makinada bir dizi proje yapıldı ve bu projeler faaliyete geçirildi. Karekter kodlamasında sıkıntılar gözlendi. Utf-8 filtresi bulunmasına rağmen içerikleri JSP'lerde gösterirken değil ama URLde mesela formdan gelen bilgilerde utf-8 kodlaması sorunlu idi.

JSP'ler içerisine bakıldı. @page direktifi ile sayfa karakter kodlamasının utf-8 olduğu gözlendi. Utf-8 filtresine bakıldı. Çalışmasının normal olduğu ve yapması gerektiği gibi response, request nesnelerinin karekter kodlamalarının setEncodin("UTF-8") konutuyla utf-8'e çevrildiği gözlendi.

Lakin URLlerde hala sorun devam etmekte idi. Tomcat conf dizini altında server.xml dosyasında HOST etiketine URIEncoding="UTF-8" eklendi. Ancak sorun çözülmedi.

Tam hatırlamamakla beraber windows makinada bu kadarıyla sorunlarımız çözülmüştü. Şimdi ise linux kullanıyorduk.

Bu sefer HOST etiketine uyguladığım şeyleri CONNECTOR etiketine de uyguladım.

Ve sonuç olumlu idi. Artık sorun yok id.

:) Ne olur ne olmaz diye Utf-8 filtresini kaldırmadım. Bu filte en azından şöyle bir şeye yardımcı oluyor eğer servletinizde direk birşeyler bastırırsanız karekter kodlaması bilin bakalım ne oluyor filtreniz aktif iken...