Kendisinin izniyle, Akın Hoca’mın  hislere tercüman olan bir yazısını paylaşmak istiyorum.

Bir genç arkadaşımın, “okuldan tanıdığım, sağlam çocuktur, iş arıyor” deyip bana CVsini gönderdiği emaili ülkemizin BT piyasasında hatırı sayılır işler yapan insan kaynakları  şirketine sahip bir tanıdığıma gönderdim. O da bana “deneyimi yok ama olsun sağol :)” diye cevap yazdı. Bu arkadaşımla zaman zaman buluşup konuşuruz, ortak bir şeyler yapalım vs. diye, dolayısıyla kendisini iyi tanıyorum. Bu “deneyimi yok ama” kısmı aslen onun düşüncesi değil, burası, tamamen arkadaşımın iş yaptığı ve daima “tecrübeli” aday arayan insanların yani BT yöneticilerinin zihin yapısını ifade ediyor.

Evet malesef öyle bir ülkede yaşıyoruz ki, kimse yeni öğrenene tahammül edemiyor. Diğer sektörlerde de öyle mi bilmiyorum ama en azından BT ve futbol sektörümüzde durum bu. “Biz tecrübeli programcı arıyoruz!” Zannedersin uzaya füze fırlatan rampa sisteminin yazılımını yazacak! Ya da CMMI-5 seviyesinde bir yazılım şirketinde ya da BT biriminde yönetici, o yüzden bu kaliteye ayak uyduracak yazılımcı arıyor. Sorsan “nedir tecrübeli?” diye sadece yıl cinsinden bir tarif yapabilir: “işte, 5 sene falan Java ile uğraşmış olsun”. Aslında bunu diyen, “5 sene ile Java ile uğraşmış olma”nın daha detayda ne anlama geldiği hakkında emin olun bir cümle daha söylemekte zorlanacaktır, hatta söylediklerinin 5 senelik Java tecrübesiyle alakası olmadığını anlayarsınız. Şunun gibi: “yani CVS’le falan uğraşmış olsun”!

Bütün bunları ben, bu sektörde iş ararken hiç yaşamadım. Çünkü juinor programmer olarak iş ararken ABD’deydim ve orada gerek önüme konan sınavlardan gerek ise benimle yapılan iş görüşmelerinden, benimle ilgilenen kişilerin tam da benim gibi, bilgisi olan ama tecrübesi olmayan kişiler aradıklarını rahatlıkla anlayabiliyordum. Çünkü pozisyon, bekletiler vs. hakkında konuşurken benimle görüşen kişiler, örneğin “2 senedir bizimle olan ve başından bu yana projede bulunan, … tecrübeli bir arkadaş var, onunla çalışacaksın” diye sağlam bir alt yapıya sahip olup da tecrübesi olmayan kişiye uygun bir konumlandırma yapabiliyorlardı. Bu ülkede ise herkesin “Alex” olması bekleniyor. “Ama tecrüben yok!” Eeee, sen iş vermezsen, stajyer olarak gelene de “aman gölge etme dersen”, insanlar nasıl tecrübe sahibi olacaklar ki? Sanırım bu yüzden sadece 22 yaşında olup henüz üniversiteden mezun olmamış bir gencin bana gönderdiği CVsinde “6 yıl tecrübe” yazıyordu! Bir insan MIT ya da Stanford’dan doktora bile alsa, tecrübesi “0”dır. Ama işte böyle yaparak, BT sektörüne girmek isteyenleri de bu şekilde saçma davranışlara sürüklüyoruz. Sonuçta iki yanlış bir doğru etmiyor.

Zaten size bir şey söyliyeyim mi? Tecrübeden kastedilen ise aslında sadece “hızlı iş çıkarmak”. Kimse, “bizim projemizde performans çok önemli, o yüzden yazılacak kodun kalitesi kritik, ancak tecrübeliler yazabilir bunu” diye düşünmüyor. İşin komik yanı zaten bu: Tecrübe bu ulkede sadece yıl ile ölçülüyor, kişinin gerçekten ne yaptığıyla değil. Mesela ben 2001’de ABD’den dönüp te bu ülkenin en büyük krizini geçirdiği günlerde iş ararken iki kişi hariç hiç kimse benimle CVmin üzerinden geçip, ABD’de ne yaptığımı sorgulamadı. Kimse hangi projelerde, hangi rollerle yer aldın, neler yaptın, sorumlulukların neydi vb. sorulara girmedi. Herkes, ABD’den gelmişliğimle ve yaşımın  30’u geçmişliğiyle ilgilendi. Ben teknik pozisyonlara başvurdum ama insanlar beni kendi yöneticileriyle kıyasladılar. Sadece iki kişi CVmdekiler üzerinen tek tek gitti, detayını öğrendi. İlki, zaten yabancı bir şirketin IT müdürü olan ABDli bir adamdı, diğeri de ABD’de 18 sene kalıp, bu ülkeye dönmüş ve BT işi kurmuş Türk bir patrondu.

Bir diğer konuda aslında her projede her türlü tecrübeye sahip kişilere ihtiyaç olacağı gerçeğidir. Bu durum hem tecrübe, hem de yetenek vb. çok şey için geçerli. Yani tutun 10 tane Alex bulup Fener’e koyun mesela. Fener, Bayern’mi olacak? Her projede diğerlerine yol gösterecek tecrübe, zeka ve özgüvende insanlar kadar, onlardan sayıca daha fazla olan ama daha az tecrübeli ve bilgili çalışanlara da ihtiyaç vardır. Savaşı sadece generallerden kurulu bir orduyla kazanamazsınız ki! Bana her tecrübeli 1 yazılımcının yanına yarı tercübede 2-3 kişi koyacak şekilde bir proje verin, hiç bir tecrübe zaafiyeti yaşamadan, projenin büyüklüğüne göre muhtemelen pek çok yeni mezun ile projeyi yapabilirim. Yeni mezunları seçerken ince eler sık dokurum o ayrı. Sertifikası olana daha olumlu bakarım örneğin. Biz bir binayı yaparken herkesin tecrübeli inşaat mühendisi olmasını bekliyor muyuz? Neden o zaman bir yazılım projesinde herkesin mühendis ve tecrübeli olmasını bekliyoruz ki? Herkesin tecrübeli yazılımcı olduğu yerde aslında pek çok ufak-tefek, basit ve tekdüze iş, çok pahalı çalışanlar tarafından yapılıyor demektir. Aslında yönetimden anlamadığımız için, hasbel kader yöneticilere sahip olduğumuz için, tecrübesizleri çalıştıracak yetkinliğe sahip değiliz. Tecrübeli olan zaten iyi çalışır, tecrübesiz ise iyi çalışmayı öğrenmeye ihtiyacı vardır, dolayısıyla yönetilmeye, yol gösterilmeye, yetiştirilmeye ihtiyacı vardır. Tecrübesizi işe almayarak kendi tembelliğimizi gösteriyoruz aslında.

Zeki, yetenekli ve iyi eğitimli az sayıda insan ile, orta seviye zeka ve yeteneğe sahip insanlarla, karmaşık işler bile ne kadar basit, öngörülebilir hale getirilir görmek isterseniz, ABD’yi bir ziyaret edin ederim. Bakın o “aptal” dediğimiz insanlar, bizim zekilerimizin bu topraklarda yapamadığını ne kadar basit bir şekilde yapıyorlar.

Bir diğer nokta da yeni mezunların ortama bir enerji ve canlılık getirdikleri gerçeğidir. Yeni mezunların, ortamları daha neşeli kıldıkları, daha yaratıcı çözümler bulduklarını çok defa gözlemlemişimdir. Nasıl hep aynı tipten insanların buludukları yerler tekdüze oluyorsa, sadece tecrübelilerin yanına koyacağınız tecrübesizlerle bu tekdüzeliği aşabilir, taze kan ve enerji alabilirsiniz. Örneğin ben, azimli, motivasyonunu kaybetmemiş 2-3 sene tecrübeli kişilerle harmanlanmış, iyi seçilmiş yeni mezunların, düzgün bir yönetim ile uzun vadede, 10 küsur senelik tecrübeli, ama bu kültür içinde motivasyonunu kaybetmiş kişilerden oluşmuş bir takımdan daha çok ve kaliteli iş çıkarabileceğime inanıyorum.

Her şey gibi insan da her yaşında ögretilmeye, eğitilmeye ve yol gösterilmeye muhtaçtır. Herkes, bilmediğinin, yaşamadığının tecrübesizidir. İyi yöneticiler de, işlerinin gerektirdiği yetkinlikleri ve seviyelerini iyi bilen ve takımlarını buna göre bir uyum içerisinde kurabilen ve onları motive eden kişilerdir. Bizim sektörümüzde “yıl”a indirgenmiş tecrübe ve yetkinlikten dolayı çok enerji ve insan kaybediyoruz.Kaynak: http://www.javaturk.org/?p=4505

ADF platformunda lisans ücretine takılmadan web uygulaması geliştirebilmek için Essentials paketi mevcut. Bu paketi kullanarak Eclipse yada Jdeveloper IDE si ile proje geliştirilebilmektedir. ADF ten en önemli farkı bu pakette Oracle ADF ‘in native security feature i yok. Geliştirdiğiniz uygulamayı Tomcat web server yada Glassfish application server gibi bedava sunucularda host edebilirsiniz. Ben de bu imkanları kullanarak örnek temel bir adf projesi geliştirdim.Uygulamanın veritabanı bağımsız olabilmesi için, Hibernate ORM ile birlikte EJB teknolojilerini kullandım.Geliştirme kaynağı JDev 11.1.2.4 versiyonu ve JDK 1.6.0_39 ile oluşturulmuştur. Hosting için belli bir (gear olarak ifade ediliyor) kaynak gereksinimine kadar 1yıl bedava kullanıma imkan veren bulut teknolojisi üzerine konumlandırılmış AWS(Amazon Web Services) platformunu kullandım. MYSQL veritabanı kullanarak Glassfish üzerine deployment gerçekleştirdim. ADF Business model yerine code first e imkan sağlayan Java EE teknolojileri kullandığım için Java Developer ların hızlıca uyum sağlayabileceği bir proje ortamı oluşmuştur. Projede ADF mimarisi view tarafında (ADFFaces ve taskflow lar) kullanılmıştır.Proje, Restoran Otomasyonu düşünülerek basic bir hale getirilmiştir. Ayrıca mobilde çalışması beklenen end-user sayfalarının ADF Mobile Browser ile geliştirilebilir yapıdadır.

Projede öne çıkanlar:

Çok katmanlı mimari kullanılmıştır. Persistence katmanında DAO Layer ları kullanan stateles sessionbean ler üzerine MBean class lar üzerinde business logic bulunmaktadır.Java Reflection kullanılarak Filter class ların kullanımı standart hale getirilerek veritabanı sorgularının bulunduğu geliştirmelerin rahat okunabilmesi sağlanmıştır.Ön yüz geliştirmesinde Template sayfa kullanımı sağlanmıştır.Exception Handling mekanizması, Exception class ların yakalanıp uygun mesajlar ile patlatılması için bir çatı kurulmuştur.Supplier yapısı ile çok kullanılan combobox lar ın selectItem listeleri için cache mekanizmasi kullanilmistir.ADFUtils ve JSFUtils gibi birçok utility class hazır hale getirilmiştir.AOP ye uygun olarak implemente edilmiş PerformanceMonitor ve ProfileInterceptor class ları yazılmıştır.Restoran otomasyonu business requirementlar baz alınarak entity model yapısı basic olarak hazır hale getirilmiştir.Java EE annotation lar kullanıldığı ve method isimlendirmelerinde kısaltma kullanılmayarak özen gösterildiği için kod okunabilirliği yüksektir.Çoklu dil desteği ResourceBundle class lari ile sağlanabilmektedir.

Geliştirilmesi gereken yönleri

JAAS kullanılarak authentication ve authorization tarafı handle edilmeli. Örnek çözüm imlementasyonu için tıklayınız. En önemli konu ön yüz geliştirmesinin performanslı çalışması ve kullanılan kütüphanelerinin konsolidaysonu ile ear paketinin boyutunun küçültülmesi diyebilirim.

Developer Help için lütfen tıklayınız.

Oracle, Java ve ADF geliştiricileri için bi süredir 11.1.2.x sürümlerinde ADF Mobile Application platformu için plugin i bulunuyordu. Son günlerde yeni bir release çıkarttılar ve adına Oracle MAF (Mobile Application Framework) demişler. Bu platform cross platformlar gibi HTML5 ve JS ten gücünü alıyor. Cordova kütüphanesini kullanıyor. Mevcut cordova yı upgrade etmek zor da olsa teorik olarak mümkün. ADF know how ı olanlar ve java geliştiricileri için hızlı bir şekilde mobil geliştirici olma fırsatı verse de public ticari mobil uygulama geliştirebilmek lisans sebebiyle pek rağbet görebilecek gibi durmuyor. Bu amaç düşünülürse, yerine Intel’in XDK platformu daha mantıklı göründüğünü söyleyebilirim. Ancak enterprise bir kurumun mobil ihtiyaçları için çok uygun bir platform olabilir.JDev 11.1.2.4 sürümünde geliştirdiğim ve Android ve IOS marketlerde bulunan İngilizce-Türkçe Türkçe-İngilizce oyun şeklinde MyQuiz projemi buradan indirebilirsiniz.Ayrıca yine aynı JDev sürümüyle açabileceğiniz, arkadaşım Ramazan KEKİL’in projesi olan 2048 oyununun kaynak kodlarına buradan erişebilirsiniz.
Bir karar vermenin kararsızlıktan iyi olduğunu düşünenlerdenim. Evet, düşünmek için zaman kazanabilme manevraları yapabilme şansı varsa yapılmalıdır. Arkadaşım Gizem Şahan’ın da söylediği gibi konfor alanından çıkmayanlar ne olacağını bilemezler. Aslında düşünüyorum da hayatta karar verip de uygulamaya korktuğum konuların çoğunda aslında tüm riskleri hesap edip almışım. “Bu beklenti aslında zaten satın alındı, dolayısıyla artık bir etki beklenmiyor” diye bir ifade vardır ya para piyasalarında önemli bir kararın henüz çıkmamasına rağmen çıkmış gibi pozisyon alınası üzerine sarfedilir. İşte bunun gibi biraz…Bu konuyu bence ilham verici bir biçimde ifade eden yazıyı paylaşmak istiyorum.KURTAR BENİ! LÜTFEN!

Hep birilerini bekliyoruz, bir süper kahraman, bir kısmet, bir mucize… Hayatımızda değişmesini istediğimiz herşeyi kendimizden başka herşeye bağlıyoruz ve bekliyoruz…bekliyoruz….bekliyoruz….Kendi hayatımızın kahramanı olduğumuzun farkına varamıyoruz çoğu zaman. Peki ya ben size o beklediğiniz kahramanın kendi içinizde saklı olduğunu söylesem? Gülüp geçer misiniz, yoksa okumaya devam mı edersiniz? Çoğumuzun gerçek hayatta karşılaştığı zorlukları super kahramanın karşılaştığı ejderhalardan ya da sorunlardan daha az önemli olduğunu kim söylüyor? Ben değil:)

İşte bizi super kahraman olmaktan alıkoyan 7 davranış paterni:

1. Etrafımızdaki çağrıları görmezden geliyoruz.

“Heroes may not be braver than anyone else. They’re just braver 5 minutes longer. ― Ronald Reagan

Ünlü mitolojist Joseph Campbell (bkz: wikipedia) eski hikayeleri ve mitleri değerlendirerek bir çalışma yaptı ve bu çalışmada tüm kahramanların ilk aksiyonunun harekete geçmek olduğunu gördü. Yani çağrıya yanıt vermek. Eğer siz yapılan bir imdat çağrısına yanıt vermiyorsanız ve bu konuda bir adım atmazsanız, çok üzgünüm ama hayatımızda kahramanca bir şeyler de olamıyor. Buna konfor alanımızdan çıkmak da diyebiliriz:)

 

2. Hepimiz mutlu son bekliyoruz.

“And will I tell you that these three lived happily ever after? I will not, for no one ever does. But there was happiness. And they did live.” ― Stephen King

Eğer hayatımızda hedef, amaç ya da plan yoksa bu da çocukken okuduğumuz masallar gibi sonu hep iyi biten bir pembe toz bulutu olarak kalır. Masalların tarihçesini inceleyecek olursanız, aslında çocukları gerçek hayatla yüzleştirmek üzerinedir. Ben yeğenlerime okurken bazen hayretten ağzım açık kalıyor ve duraksıyorum, bu kadar acımasız mı hayat diye…İnanın masallar gerçeklerden daha acımasız çoğu zaman, sonunun iyi bitmesi onları daha az korkutucu yapmıyor maalesef. Siz yine de kışa gore hazırlanın, varsın bahar gelsin:)

 

3. Kurtarıcı olmaktan ziyade kurban olmayı seçiyoruz.

“We are all ordinary. We are all boring. We are all spectacular. We are all shy. We are all bold. We are all heroes. We are all helpless. It just depends on the day. ― Brad Meltzer

Siz istemedikçe kimse sizi kurtaramaz biliyor musunuz? Çok sert bir cümle oldu ama siz istemedikten sonra kimse sizi gerçekten de kurtarmayacak, öyle bir dünya yok maalesef. Istemeniz gerek, bedel ödemeniz gerek ki gerçekten değişmek ve bir şeyleri başarmak istediğimizi kendimize ispatlayalım.

 

4. Güçten etkileniyoruz fakat güçlü olduğumuza inanmıyoruz.

“You don’t need superpowers to be someones hero ― Ricky Maye

Hepimizin çocukken onlar gibi olmak istediğimiz kahramanları vardı. Benimkisi Red Kit’ti mesela:) En derinde belki hepimiz gizli bir gücümüz olsun isteriz, bizi diğer insanlardan daha özel ve daha güçlü yapan. Kendi hayatımızı ve başkalarının hayatını değiştirebilen, dünyayı değiştirebilen. Asıl gücün ne olduğunu bilmiyoruz çoğu zaman. O yüzden beyaz atlı prensi ya da uyuyan güzeli beklemekten ziyade kendi hikayemizin kahramanı, kendi filmimizin hem yönetmeni hem de baş oyuncusu olmamız gerekiyor. Neden mi? Çünkü bunu yapabilirsiniz ve hak ediyorsunuz:)Yazının Tamamı İçin

Gizem Şahan arkadaşımın beğendiğim yazısını paylaşmak istedim.BEYAZ KUTUP AYISI DÜŞÜNME!Düşündün mü? Peki, sonrasını okuma o zaman. Ama okuyacaksın değil mi? Çünkü birilerinin sana yapma demesinden artık çok sıkıldın öyle değil mi? Düşünme, okuma, yapma, gitme, konuşma… Sorun değil, gerçekten… Eğer yapma denilen şeyleri yapsaydık emin ol ne ben bu yazıyı yazıyor olacaktım, ne de sen okuyor olacaktın. Peki ne oluyor da o beyaz kutup ayısını düşünüyoruz? Hadi gel en iyisi biz birlikte keşfedelim….O güzel beynimiz bize türlü kandırmacalar yapıyor hayatımızın her anında ve onun nasıl çalıştığını anlamaya ihtiyacımız var. Beynimiz, bu evrende bizim bildiğimiz en komplike şeylerden birisi, tabii ki evrenin kendisinden sonraJ Bu konu ile ilgili uzun bir yazımı önümüzdeki günlerde sizlerle paylaşacağım, çalışmalarım devam ediyor:) Şimdilik konumuza odaklanalım: Ne oluyor da biz hayatımızda yanlış olduğunu düşündüğümüz kararlar veriyoruz? Ne oluyor da bize söylenenin aksine o beyaz kutup ayısını düşünüyoruz?Devamı için…

SSO Ayarları, JDeveloper IDE screenshotları kullanılarak açıklanmıştır.

1) ApplicationName: acme

2) Context Root ayarı: protected_acme , weblogic.xml de session tab’inde “/” kullanarak context root ismi yazılır.sso_1

3) Ear Adı: acme (optional)

4) Application Deployment ayarlarında iki maddenin tiki kaldırılacak

sso_2

CANLIDA SSO AYARI İÇİN aşağıda seçili olan radio butonu işaretledikten sonra next next ile finish yapılır.

sso_3

TEST ORTAMI İÇİN GÖNDERİLECEK DEPLOYMENT AYARINDA HHTP_BASIC VEYA FORMS BASED SEÇİLİ KALIR.

CLUSTERED ORTAM AYARLARIsso_4

SSL (Secure Sockets Layer): 2 uygulamanın ağ üzerinde birbiriyle ilk iletişim kurarken ve veri alışverişi yaparken birbirlerinin (sadece server yani tek taraflı da olabilir) kimliklerini çeşitli sertifika tipleriyle tanıttıkları ve bir şifreleme algoritması üzerinden haberleştikleri güvenlik katmanıdır.

HTTPServerlara (örneğin Oracle tarafında OHS)uygulanabildiği gibi WL Admin ve managed serverlara da uygulanabilir. http serverlarda genel olarak (eğer browserlara https://hostname şeklinde yazılıp port belirtilmezse 443 olarak varsayılır, http için bu 80 dir) 443 iken WLS da bu port default olarak 7002 dir. Console üzerinden değiştirilebilir

WLS üzerinde SSL konfigürasyonunun etkin (enabled) olduğunu anlayabilmenin ilk yöntemi https://myserver:7002 şeklinde kontrol etmektir. Ancak enabled olmasına rağmen port değişikliği yapılmış olabileceğinden console üzerinden Servers bölümünden ilgili sunucunun General-> Configuration tabına erişilip kontrol edilebilir.

WL_SSL_1

Bu şekilde enabled olduğunu gördükten sonra https üzerinden ilk erişimde tarayıcı sertifikasyon bilgisini client tarafına getirecektir.

Sertifika ayarlamalarında test ortamı için selfsigned sertifikalar yada piyasadaki otoritelerce kabul edilen merkezlerin sunduğu geçici deneme sertifikaları kullanılabilir. (ör: https://www.symantec.com/page.jsp?id=how-ssl-works&tab=secTab5) Ancak production ortamında bu önerilmez ve production ortamı için oluşturulan sertifikanin CN(common name) alanının sunucunun hostname i ile eşleştiğinden emin olunmalıdır. Doğru bir örnek için aşağıdaki resim dikkate alinabilir.

WL_SSL_2

1: Sertifika oluşturma:

a: Sunucu üzerindeki komut satırından setDomainEnv script i çalıştırılır yada keytool u kullanabileceğimiz ortama geçiş yapılır.

b: Bu private – public key pair i oluşturmak birkaç farklı tool ile olabilmekte ancak biz jdk içerisindeki keytool u kullanıyoruz.

keytool -genkey -alias client -keyalg RSA -keysize 2048 -keystore identity.jks -storepass password -keypass password

c:Certificate Signing Request (CSR) dosyasını aşağıdaki gibi oluşturarak CA ‘ya (sertifika almak istedğimiz otorite) gönderip cevap istiyoruz.

keytool -certreq -keyalg RSA -keysize 2048 -alias client -file certreq.csr -keystore identity.jks -storepass password

CA bize RootCA ile birlikte bazen IntermediateCA yı gönderecektir.

d: Elde ettiğimiz sertifikaları keystore dosyasının içine koyacağız.(import process) Bu işlem iki farklı şekilde yapılabilir. Birincisi RootCA, IntermediateCA ve cevap olarak gelen sertifikyı hiyerarşik olarak import etmek. İkincisi de .pem dosyası içinde bir sertifika zinciri oluşturmak.

Biz ikinci yöntemi takip edelim, “CertChain.pem” adıyla bir dosyada toplayalım. Aşağıdaki kodda client key alias tır değiştirilebilir.

keytool -import -file CertChain.pem -alias client -keystore identity.jks -storepass password

e: Keystore oluşturma: RootCA sertifikası olmayan bir keystore kullanılarak oluşturulabilir yada yada mevcut birisinin içine import edilebilir.

keytool -import -file rootCA.cer -alias RootCA -keystore trust.jks -storepass password

Kontrol etmek için aşağıdaki komut kullanılır.

Keytool –list –v –keystore <keystore-name> -storepass <keystore-password>

2: Keystore u WLS ye uygulamak:

a: Admin console a giriş yaparak SSL uygulanacak sunucu seçilip Configuration->Keystores seçilir.

WL_SSL_3

Keystores bölümündeki Change butonuna tıklanarak Custom Identity and Custom Trust seçilip Save edilir.

WL_SSL_4

WL_SSL_5

b: Sunucu Identity konfigurasyonu

Sunucu kimliğini belirleyebilmek için SSL sekmesine geçilip oluşturulan private key in alias ı (bu anlatımda client idi) ve passphrase i girilir.

WL_SSL_6

NOT: Bu anlatımda yapıldığı gibi sunucuda yalnızca SSL aktif edilirse varsayılan olarak OneWaySSL aktif olacaktır.(Genelde kullanılan durum budur, yani sunucunun kendini tanıtması) Eğer 2Way SSL olarak değiştirilmesi isteniyorsa Advanced seçeneğinden değiştirilebilir.

Server loglarında aşağıdaki gibi logların yazılması beklenmektedir.

<Notice> <Security> <BEA-090171> <Loading the identity certificate and private key stored under the alias client from the JKS keystore file C:\Wonders\WebLogic\Security\SSL-Certs\Verisign\identityVerisign.jks.>

<Notice> <Security> <BEA-090169> <Loading trustedcertificates from the JKS keystore file C:\Wonders\WebLogic\Security\SSL-Certs\Verisign\trustVerisign.jks.>

Doğa ve köy yaşamıyla ilgili bir site:

Ebergi, ODTÜ bilgisayar topluluğunun elektronik dergisi.İlgiyle takip ediyorum, bilişim dünyasında olanların ziyaret etmesinde fayda var diye düşünüyorum.

Java ile public bir web projesi geliştirme kararı alındığında teknolojileri doğru seçmek önemlidir. Aksi halde geliştirmesi gayet yavaş ilerleyen ve çalışması hantal bir ürün ortaya çıkabilmektedir.Özellikle front end geliştirmesinde JSF2.0 üzerine konumlandırılan bir çok faces (Primefaces, ADF Faces) teknolojisi ile oldukça gelişti. Ancak küçük public web uygulamalarında bu teknolojiler ile performans ve geliştirme sıkıntıları ortaya çıkmaktadır. Geliştirme sıkıntısı JSF ve implementasyonlarının hayli kapsamlı ve component based olmasından kaynaklanmaktadır. Component based geliştirilmiş bir facelet/jsp/jsf/jspx e tasarım giydirmek yada mevcut yeteneklerinin dışında bir özellik eklemeye çalışmak oldukça vakit alan bir sürece denk gelmekte. Üzerinde kullanılan JS ile zenginleştirilmiş faces implementasyonlarını da çözmek ve nasıl davranacağını kestirebilmek de ayrı bir dezavantaj haline gelebilmektedir. Böylece asla tasarım ve back end geliştirme birbirinden ayrılamaz parçalar haline gelmekte, designer ne kadar HTML bilgiye sahip olsa da projenize tasarımını giydirememektedir.JSF2.0 ile AJAX destekleniyor. Bir JavaEE standardı olması da sebebiyle kullanımı ve doküman erişimi çok geniş.  Avrupa’da hayli yaygınlaşan ZK Framework ile kıyaslarsak, ZK’nın öğrenmesi ve uygulaması oldukça kolay ve performance testlerinde JSF’i geçiyor.  Responsive design ile tasarlanmış bileşenleri sayesinde geliştirmeniz için ekstra çaba sarfetmeden mobilde de kullanıma olanak sağlıyor. Bütün bir framework olmasına rağmen sadece view katmanında kullanılarak SpringMVC ile çalışabilme imkanı bulunmaktadır. Olumsuz olarak ise, JSF e göre daha az kullanım sebebiyle yaygınlaşmış ve biraz daha fazla memory kullanımı sağlıyor. Ancak business logic’i sunucuda tutarak ajax enterprise based bir frameworkte şüpheyle yaklaşılan güvenlik konusunu çözmeyi başarmış olduğunu söylemeliyim. JSF ile ZK nın benchmark raporları=> http://www.zkoss.org/resource/file/report/ZK_JSF_Performance_Report_2012.pdfYine performans olarak JSF i geçen ancak günümüzde artık kullanımının yaygınlaşamayacağından neredeyse emin olunan Apache Wicket var. Bunun bence en önemli özelliği clean html yazılabilmesi. XHTML dosyalarıyla wicket ta çalışırsınız. Yani okunabilir bir html kodu olduğundan tasarım yapabilmek de olduça kolay. Yine ajax desteği var. Normal html markuplar ile sayfanızı tasarlıyorsunuz, special markup lar  oldukça az ve anlaşılır şekilde kullanılıyor.  Java tarafında model binding işlerinizi programatik olarak hallediyorsunuz.  Bu işi JSF te declarative yapıyorsunuz. Ancak Wicket’ın component leri zayıf ve kullanım sebebiyle  dokümantasyonu hayli az.İşte bu durumda;Yani backend java iken view tarafında ise java kutusunun dışına çıkmayı tercih etmiş bazı büyük şirketler olduğunu da biliyoruz.  Java ile birlikte, Web UI da PHP kullanılmış azımsanmayacak sayıda web uygulaması mevcutmuş.Spring, Java dünyasında kendini kanıtlamış ve yıllardır büyüyen community siyle üzerine inşa edilen bir çok alandaki teknolojiyle büyük bir ekosistem halini almıştır.  Yaygın kullanımı hakkıyla kazanmış ve mainstream framework olarak kabul görmüştür.IoC ve EE container olmadan JavaEE nin yeteneklerini servlet container barındıran lightweight bir web serverda bile çalışarak gözleri üzerine çekmiştir. İşte bu noktada; REST serviceler in hem SOA mimarisi göz önüne alınarak mimarlarca önem verilmesi hem de REST service security ve knowhow ‘a web geliştiricileri ve back end geliştiricilerince sahip olunmasıyla gözler Javascripte çevrildi.  MVC JS Frameworklerin gelişerek kendini kanıtlamasıyla performansı göz dolduran REST serviceler ile JSON üzerinden komünikasyona başlandı.  Controller gibi REST serviceler istenen dil ile(framework ün önemi olmadığı gibi RESTful teknolojisini destekleyen herhangi bir dilde yazılabilir) backend developer larca yazılır, front-end developer larda JS libraryleri ve HTML ile bu serviceleri çağırarak temiz kodlarla işi bitirebilirler. Böylece roller birbirine karışmamış olduğu gibi bağlılık azalmış ve entegrasyon noktaları kendiliğinden çıkmış oldu. JS framework olması ile elbette bir güvenlik zaafiyeti doğmuş oluyor view tamamen client side a yıkıldığı için ancak bunların best practice i mevcut görünüyor. Böyle bir implementasyon nasıl yapılıyor, aşağıdaki tutorial serisinde çok iyi anlatılmış. Not: Bunu seyretmeden önce eğer JS, jquery, bootstrap, bower, ORM teknolojileri hakkinda hicbir şey bilmiyorsanız öncelikle bunları hızlıca araştırıp bilgi edinmek yararlı olacaktır.