Dublin’de 1 yılın ardından

Herkese selam,

En son geçen sene Dublin’e taşınırken bir şeyler yazmıştım sanırım. Sonra 2016 başında da bir güncelleme verdim. Bu şehre taşınmanın üzerinden 1 sene geçeli 2-3 hafta oldu, bu sebeple bu konuda bir şeyler yazayım dedim.

İlk olarak günlük yaşamdan bahsedeyim. İstanbul’dan sonra günlük yaşam sanırım dünyanın her yerinde biraz daha kolay gelecektir bizlere. Benim bu senem şanslı geçti, iş yerine uzun yoldan yürünce 13dk, kısa yoldan yürüyünce 8dk’da gidebiliyorum. İstanbul’un büyüklüğünden sonra cennet gibi. Diğer yandan Dublin düz bir şehir olduğundan bisiklete binmek çok kolay ve merkezi yerlerde belediyenin kartlı bisikletlerine kolaylıkla binebiliyorsunuz. Otobüse başlarda otelden işe gidebilmek için biniyordum ama bisiklet kartımı ayarladığımdan beri pek fazla otobüse binmedim. Taksi de şehir küçük olduğundan görece ucuz. Ama en önemli değişiklik taksicinin kendisinde. Bizim memleketteki sığır taksicileri alın ve -1 ile çarpın, işte size Dublin taksicisi. Güzel bir sohbet ve Dublin hakkında yeni şeyler öğrenme imkanı elde ediyorsunuz genellikle. (arada salladıkları da oluyor ama olacak o kadar)

Günlük yaşamdan iş yaşamına geçersek, gene İstanbul’dan daha rahat bir manzara ile karşılaşıyoruz. En önemli fark, bu şehirde zanaatkardan mühendisine herkes bir şekilde kendine yetecek kadar para kazanıyor ve genellikle kimsenin mesai yaptığını göremiyorsunuz. Bu iyi bir şey. Örneğin İstanbul’dan getirdiğim bir haritayı burada 100 euro’ya bir haftada çerçeveletebildim.(kazıklanmış da olabilirim:) ) Ama ben biraz İstanbul’daki iş yaşantısı enerjisini de özlüyorum. Millet biraz fazla rahat, kahve dükkanı pazar kapalı olabiliyor mesela:). Ama sonuç olarak herkese saygı gösterilen ve hakkının Türkiye’ye göre çok daha iyi ödendiğini söyleyebileceğim bir yaşamdan bahsediyoruz. (Bunları yazarken otobüs şöförlerine 8 yıldır zam yapılmadığını ve öğretmenlere 20 yıl önce maaş indirimi yapıldığını da öğrendim, buraya not olarak düşeyim)

Biraz kişisel ve sosyal yaşamdan bahsedeyim. Öncelikle İrlanda’nın olduğu gibi Dublin’in de  ana sosyal merkezi pub. Pub ismi zaten “public house” isminden geliyormuş. Dolayısıyla çocuklar dışında her yaş grubundan insanı bulabileceğiniz mekanlar bunlar. Her akşam 5-9 arası hepsi dolu diyebiliriz. Gerçekten de anlatıldığı üzere sıcak kanlı insanlar bu irlandalılar, özellikle publarda. Ve biraları nefis, bununla ilgili ayrı bir yazı yazılır resmen. Bunların dışında Dublin hızla kozmopolitleşen bir şehir görünümüne ulaşıyor. Sokakta Avrupa’nın tüm dillerini ve çokça Portekizce’yi duyabiliyorsunuz. Ama bu kozmopolit görünüm, insanların sosyal yaşamlarında henüz bu seviyede değil. İnsanların en temel insan ihtiyaçlarından birisi olan kabile üyeliği ihtiyacından ötürü, kendi vatandaşlarıyla gruplaşmak kolay geliyor insana. Kendi milletinizden birisiyle arkadaş olma hızınıza şaşarken, başka milletlerden insanlarla arkadaş olmak için de fazladan çaba sarfetmeniz gerektiğini görüyorsunuz.

Diğer yandan Dublin’in küçük ve mesailerin normal olması sayesinde, resmen dünyanın vakti kişinin kendisine kalıyor. Ben ilk aylarda sosyal çevre edinmek için genellikle boş vakitlerimi türlü publarda harcıyordum:). Tabii alkolün bir sonu yok ve mart sonu gibi 90 kiloya geldiğimde spora ağırlık vermeye karar verdim. Şimdi de resmen haftanın 4 günü zorlanmadan spor yapabiliyorum. Şehrin her yeri koşu parkuru, çok yağmur yağmadığı sürece şahane. İnsanlar sadece fitness ve futbolla değil, yüzme ve tenis gibi daha değişik spor dallarıyla da ilgililer. Resmen hobi bulayım da yapayım dediğiniz bir bolluk. İstanbul’da vakit darlığından şikayet edenlere iyi gelecektir.

En can alıcı konulardan birisi konut piyasası. İrlanda bilindiği üzere 90’ların ortasında Keltik Kaplanı denilen bir ekonomik ivme yakaladı ve hızla büyüdü. Büyümenin ana iticilerinden birisi de emlak sektörüydü(müş). 2008’de dünya ekonomik yavaşlaması ile birlikte İrlanda’daki ekonomik balon da patlamış ve inşaat sektöründe çalışan bazı insanlar ülkeyi bile terketmişler. Uzun lafı kısası bu sebeple şehirde konut inşaatları açısından bir kriz yaşanıyor ve bu da tabii ki piyasanın emlakçılar ve ev sahipleri tarafından domine edilmesi gibi leş bir sonuç çıkartıyor. Ben geçen sene geldiğimde 1+1 evler için kiralar 1000-1200 arası iken, şu anda bu kiralar 1300-1600 arası değişiyor. Ben nereden mi biliyorum hala piyasayı? Bizim ev sahibimiz de uyanık çıktı ve evi satıyorum gerekçesiyle bizi evden çıkarıyor. Ben de geldiğimin birinci senesinde ikinci evime çıkmak zorunda kaldım bu sebeple.

Peki diyeceksiniz ki gurbet ne durumda? İşte belki de en zor kısımlardan birisi bu. Ben bugüne kadar belirli bir dönemden sonra ailemden ayrı yaşadım ama 6 aylık askerlik ve 3 aylık Çin seyahatim dışında bir şekilde hep annemle aynı şehirdeydim. Anladım ki, insanın annesinin yaşamadığı her şehir, gurbetmiş. Ben ki ne yazık ki ailemle olan sıcak bağlarımla tanınan bir kişi olmadım ama, insan haftada bir annesi görmek istiyor, ve göremeyince de özlüyormuş. Diğer yandan sevgilimden de bir seneden fazladır ayrıyım, onunla annemle görüştüğümden çok daha fazla görüşmüş olsak da, bu durum da ayrıca yorucu ve insanın sinirlerini yer yer zayıflatan bir durum. Sonuç olarak anladım ki, insan annesini ve yarini hep yanında istiyor:).

Sanırım her konuya kısa kısa değindiğim için yüzeysel bir deneme oldu ama umarım yakında daha detaylı şeyler yazarım İrlanda,Dublin ve yabancı ülkede iş yaşamı üzerine.

Sevgiler

2015’te neler oldu?

Merhabalar,

En son yıl sonu değerlendirme yazısını 2013 için yazmışım, 2014’ü atlamışız : ). Bir önceki yazımda Dublin’e taşındığımı ve yeni bir işe başladığımı aktarmıştım ama sonraki yazıyı bir türlü yazamadım. Ocak ayına kısmetmiş. Bu sefer madde madde değil parça parça 2015’te benim için gerçekleşen önemli olaylardan bahsetmek istiyorum.

Not: Aşağıdaki olaylar tamamen benim için önemlidir, bu sebeple sürekli “benim için” pekiştirmesini kullanmayacağım.

Dublin! ve Expat yaşamı

Dublin

Bu yılın en önemli olayı kuşkusuz yurt dışına taşınmam oldu. 3.5 senedir Monitise(eski Pozitron:p)’da çalışıyordum ve uzun zamandır aklımda olan yurt dışı deneyimini gerçekleştirmek için harekete geçmeye karar verdim. İş arayışım tam 1 sene sürdü, bu arada kız arkadaşımı da yurt dışında yaşamaya ikna ettim, iş yerinde terfi aldım, Türkiye diktatörlüğe döndü vesaire. Genel olarak yazılım teknolojilerinde çalışan insanlar olarak çok şanslıyız çünkü bu meslek ve endüstri, dünyadaki en geçerli alanlardan birisi şu an için. Bu sayede Cape Town’dan Amsterdam’a ve Berlin’e kadar değişik şehirleri “On-site Interview” ayağına görme fırsatı edindim. Neyse sonunda kapağı Dublin’e attım, şu an için gerçekten çok mutluyum, insan Beşiktaş Maslak minibüsüne binmediği her gün için ayrı bir şükrediyor ve kendisini insan gibi hissediyor. Diğer yandan hiç hali hazırda arkadaşınızın yada akrabanızın olmadığı bir şehre taşınmak da oldukça zorlu bir süreç(muhteşem bir yalnızlık be – Berlin’e gidenler bilmez:p ). Sanırım hem expat yaşamı hem de  Dublin ile ilgili daha uzun bir yazı yazmam gerekecek ileride.

TripAdvisor

TripAdvisor

E tabii Dublin’de ne iş yapıyorum değil mi? Daha önce DevOps olarak çalışacağımdan bahsetmiştim. Bu mesleği yaptığım yer de TripAdvisor şu anda. Hani, Booking.com’dan bir otele karar verirsin, gerçekten iyi mi kötü mü karar vermek için yeşil renkli başka bir siteye girersin ya, işte orada çalışıyorum. : ) Ayıptır söylemesi, son gezimizde hakkında hiç bilmediğimiz 5 şehir gezdik ve TripAdvisor’daki içerik sayesinde nerelere gideceğimizi vs her şeyi kolaylıkla öğrendik. Neyse, şu anda Dublin’de bir katlık geniş bir ofisimiz var ve hala boş masaların hepsini dolduramadık : ).

Londra

E tabii tüm bu değişikliklerin bir de “kız arkadaş” tarafı var. 3 senedir her şeyden çok sevdiğim birisiyle beraberim. Yurt dışında yaşama fikrine de aslen beraber karar verdik ve en çok yaşamak istediğimiz şehir de Londra’ydı. Sonuç olarak kız arkadaşım artık Londra’da yüksek öğrenim görüyor ve ben de ayda bir bu dünyanın en klas şehrini 2-3 günlüğüne de olsa istediğim gibi aylak aylak gezebiliyorum. He, evet, ben Londra’da iş bulamadım gençler, kısmet! (çalışma vizesi kasıyor ufak şirketleri, Google ve Facebook interviewları da çalışmama rağmen çok zordu:) )

Türkiye

E tabii ki, her gidişin bir sebebi olmalı. Bu sene Türkiye için resmen felaketti. Aklıma gelen her konu daha kötüye gitti. Ne yazık ki bu ülkede ve özellikle İstanbul’da yaşamak insanın ruh sağlığına ciddi anlamda zarar veriyor artık. Yurt dışına taşındığım tarih Güneydoğu’daki olayların başlangıç tarihlerine yakın olunca ne yazık ki bazı arkadaşlarım “tam zamanında ayrılıyorsun ülkeden” manasında yorumlarda bulundular. Oysa ki haziranda bir ümitlenme yaşamıştık ama, o adam izin vermediği ve biz de geri zekalı olduğumuz için, şu anda Türkiye’de bir sonraki ay ne olacağını tahmin bile edemediğimiz bir süreç içinde insanlar yaşamaya çalışıyor ve düzenli olarak da canlarını veriyorlar.

Girişim

SporApp

2 sene önceki yazımda kısaca Sporapp.com’dan bahsetmiştim. 4 arkadaş beraber başladığımız ve teknik olarak belirli şeyleri başardığımız bir proje oldu. Açıkçası beklediğimden de fazla talep gördüğünü söyleyebilirim. Ne yazık ki 2014-2015 sırasında hem Türkiye’ye hem de girişimciliğe olan inancımı büyük ölçüde yitirdim(diktatörlükte şirket kurmak cesaret isteyen bir çalışmadır). Askerden döndüğüm 2011 yazından beri girişim yoldaşım Fatihle internet girişimleri üzerine uğraşıyorduk. 2014’te Sporapp.com için şirketimizi bile kurduk bu yukarıda bahsettiğim 4 arkadaş olarak. Webrazzi’de şöyle bir incelemesi çıkmış zamanında: buyrun (kurucular arasında adım yer almıyor evet:( ). Lakin hem gündelik işimdeki artan sorumluluğum hem de bir girişim kurmanın kendi zorlukları birleşince maddi manevi devam etme isteğim kalmadı ve bu girişimden ayrılmak zorunda kaldım. Gerçekten hem çok eğlendiğim hem de inanılmaz şeyler öğrendiğim bir dönemdi ama bir süreliğine başka şeylere öncelik vermeye karar verdim.

Evet, şimdi yazıyı okuyunca ben kaçıp kendimi kurtarmış gibi hissettim gençler:). Herkese iyi seneler!

Personal Update

Hi everyone,

You may have noticed that I returned back to writing in English. You may have also noticed that I returned back to writing itself :). The thing is there are some major changes that I need to write off and I’m glad to be back to writing again. (I will most certainly continue writing in Turkish as well by the way)

So If I did not count wrong, there are three big changes on the way for me. Let’s start with respect to the importance of each change.

I quitted my job at Monitise MEA where I was currently a Software Development Manager. I’d worked 3.5 years at Monitise and loved the most part of it. Being a Team Leader and later a Manager was fun, but I had decided that I should continue for a while on the dev path and started looking for something more technical. As a result, I did quit last week and the first week as unemployed was fun (I’m not sure it would continue this way but I don’t plan to stay unemployed for long).

devops-pic-1

Another one of the changes is that I will be switching lanes in my career. Above I mentioned I’d like something more technical and I did get it. But due to some luck (I’m not sure at this point if it is good luck or bad luck) I will work as DevOps engineer starting September. It will be a really fun job I’m sure and I’ll learn so much on the way but nevertheless I’m kind of switching to a more ops position with this move.

ireland

The last and the biggest of the changes is that I’m moving to Dublin, Ireland! I have been thinking about a move to a European capital for one year and I think I am very content that the capital would be Dublin by now. I’ve seen Cape Town, Utrecht and Amsterdam and Berlin on the way and they were really nice cities, but Dublin is my destiny, It seems for now. Leaving Turkey behind, leaving my family and my friends and most importantly getting physically separated from my beloved girlfriend will be the toughest change that I will be facing this year. Fortunately Istanbul and London are only a short flight distance to Dublin.

I will write more about each change and especially about where I will work, but first I need to reach Dublin and start working actually.

Thanks for reading this far : )

Java’da private metodlari test etmek

Arada sırada Java ünite testlerinde private metodları da test etmek gerekir. Hatta fonksiyonel bir bakış açısıyla, bir sınıftaki tüm private metodları teste dahil etmek de gerekir diyebiliriz. Gerçi bu fikre karşı çıkmak isteyenler, bir sınıfın API’ının o sınıftaki public metodlar olduğunu ve sadece onların test edilmesinin yeterli olacağını söyleyebilirler ama ben elimden geldiği kadar tüm metodlarımı kontrol etmek istiyorum.

Reflection API

Bu durumda JUnit gibi bir kütüphane ile çalışırken kullanılabilecek basit bir yöntem var. Tek yapmanız gereken, ilgili metodunuzu Reflection API yordamıyla bulmak, onun erişilebilirliği ile ilgili kısıtı kaldırmak ve sonra gene Reflection kullanarak çalıştırmanızdır. Sonrasında Assert nesnesi ile istediğiniz şekilde sonuç kontrolü yapabilirsiniz.

Basit bir örnek vermek gerekirse:

Örnek sınıf:

public class BaseballElimination {

 private final int numberOfTeams;

 private int[] wins;
 private int[] losses;
 private int[] remaining;
 private int[][] gamesAgaints;
 private String[] teams;

 private int findIndexOfTeam(String team) {
     for (int i = 0; i < numberOfTeams; i++) {
         if (teams[i].equals(team)) {
             return i;
         }
     }

     throw new IllegalArgumentException("team not valid");
 }
}

Örnek test:


@Test
public void testIndex() throws Exception {

    Method indexMethod = BaseballElimination.class.getDeclaredMethod("findIndexOfTeam", String.class);
    indexMethod.setAccessible(true);
    int index = (Integer) indexMethod.invoke(division, "Atlanta");

    Assert.assertEquals(0, index);
}

Gördüğünüz gibi, 3 satır kod yazmak yeterli, herkesi başarılı ünite testleri!

Ekleme, eger statik metodlari test etmek istiyorsaniz, tek yapmaniz gereken indexMethod.invoke() metoduna null gondermek.

Cape Town

Herkese merhabalar,

Uzunca bir süredir yazı yazamıyorum. Gereksiz bir yoğunluk yaşadığım için aslında çok sevdiğim blog yazma işini biraz aksattığımın farkındayım. Genellikle bilgi içeren ve teknik yazılar yazmayı sevdiğimden, yazının hakettiği vakti ayıramıyorum.

 

Neyse ki bir nedenle Cape Town’a gelip bu güzel şehirde 5 gün geçirdiğim için sonunda dönüş yolunda vakit bulup bu yazıyı yazmaya karar verdim. Tamamen kişisel görüşlerimi içerecektir yazı, bilginiz olsun. Hadi bakalım başlayalım.

 

Öncelikle Cape Town, Güney Afrika’nın ikinci büyük şehri ve Western Cape denilen bölgede yer alıyor. Çok güzel bir yarım ada şeklinde ve bittiği noktada Cape Noktası ve Ümit Burnu adı verilen iki önemli coğrafi nokta yer alıyor. Cape Noktası, iki okyanusun birleştiği nokta olarak kabul ediliyor. Ümit Burnu da, Hindistan’a giden denizcilerin dönüş yaptığı burnun adı. Aslında bu bölge aşırı dalgalı olduğundan eskiden denizcilerin korktuğu bir noktaymış ve insanlar bu korkudan kurtulsunlar diye bölgenin adı değiştirilmiş.

 

Cape Town ile ilgili aslında ilk bahsedilmesi gereken nokta, Table Mountain denilen dağ. Şehirden bakıldığında dümdüz bir masayı andıran dağ, 1070 metre yüksekliğinde. Hava güzel olduğunda tepesine çıkış bir teleferik sistemi ile sağlanıyor. Gelirseniz kesinlikle görmeniz gereken bir yer. Ayrıca hiking sevenler için de tepeye kadar uzanan patikalar mevcut.

Waterfront

Table Mountain

Table Mountain tepesinde yeteri kadar gezebilirseniz, Cape Town’ın bütün güzelliklerini görebilirsiniz, şehir merkezi, zenginlerin yaşadığı sahil kesimleri, banliyöler ve fakirlerin yaşamak zorunda kaldığı township denilen varoşlar, hepsi bu noktadan görünüyor. Tabii ki uçsuz bucaksız okyanusu unutmamak gerekiyor.

 

Bu arada okyanus ile ilgili bir bilgi vereyim, deniz suyu sıcaklığı Cape Town’da kışları daha yüksek seyrediyor. Bunun nedeni yazın güney kutbunda eriyen karların denize karışması ve soğuk su getirmesiymiş. Yazın suyun sıcaklığı 9 derece santigrata kadar düşebiliyor. Yaz tatili için gelmek isteyenlerin düşünmesi gerekiyor bunu :).

 

Konudan konuya atlayarak şehrin tarihine de kısaca değineyim. Şehir 1653 yılında buradan geçen Hollandalı denizciler tarafından kuruluyor. Esas yerleşimi East India Dutch Trading Company denen emperyal şirket yapıyor. Buradan geçen gemiler için bir ikmal, tamirat ve denizciler için dinlenme noktası olarak düşünülüyor. Öyle ki, uzun süre vitaminsiz kalan denizciler düşünülerek, şirket tarafından bügün hala devasa kabul edilebilecek (en azından gezi parkına kıyasla) bir bahçe yapılıyor. Bu bahçedeki meyveler denizcilerin beslenmesinde kullanılıyor.

Ayrıca gene bir bilgi aktarayım, bir fıçının içinde bekleyen su bir müddet sonra içilemez hale gelirmiş. Buna karşılık şarabın fıçılarda saklanması çok daha kolay ve uzun ömürlü olduğundan, sular bozulduğunda denizciler su ihtiyaclarını şaraptan saglarlarmış. Şimdi anladınız mı neden denizcilerin sarhoş olarak tasvir edildiğini?

Neyse sonra zamanla tabii ki İngilizler de bu şehre dadanmaya başlıyorlar ve Hollandalılar ve İngilizler arasındaki güç savaşı başlıyor. Ülke bağımsızlığını kazanmadan evvel en son olarak İngiliz Kraliçesi’ne bağlı olarak yaşıyor. Bu süreçte inanılmaz bir metropol haline geliyor şehir. Dünyanın bir çok ülkesinden insana hayat sağlıyor Cape Town. Afrika’nın çeşitli yerlerinden gelen siyahlar, Hintliler, Malaylar(çoğunluğu Müslüman), beyazlar ve başkaları. O zamana kadar da hep bir dışlanmaya maruz bırakılan beyaz olmayan tüm insanlar, “Ayrım” anlamına gelen Apartheid kanunları altında ezilmeye başlıyorlar. Oturulan bankların ayrımına kadar giden bu düzen arkasında bir çok kötü anı bırakıyor insanların hafızasında.

Ama 1990 yılında Nelson Mandela hapisten çıktıktan sonra zaten yıkılmakta olan Apartheid rejimi resmen yıkılıyor ve yerine şu andaki demokratik Güney Afrika kuruluyor. O gün bir iç savaş çıkmasından korkan beyazlara karşın, bağışlama ve barış çağrısı yapan Nelson Mandela sayesinde bugün bu ülkede insanlar barış içinde yaşıyorlar.

Nelson Mandela Balkon konuşması

Ülke tam 20 yıldır demokratik olarak yönetiliyor ama ne yazık ki sorunlarını henüz çözmekten uzak. Burada en öncelikli sorun fakirlik, ne yazık ki ülkede inanılmaz bir fakirlik var. Zamanında ırkçı rejim renkli insanları şehir dışına atmış fakat yaşanılan yer ile iş arasında çok uzun mesafe olduğundan insanlar yasadışı “Township” denilen baraka şantiye kasabaları kurmuşlar; fakirlik seviyesi anlatılabilecek gibi değil. Bu durum da cinayet oranında dünya liderliğine kadar bir çok değişik sorunun kök nedeni olarak görünüyor.

Cape Town

Cape Town

Ne olursa olsun, Cape Town, barındırdığı birbirinden çeşitli tecrübeleri ve inanılmaz doğasıyla, kesinlikle gelinmesi görülmesi gezilmesi ve belki de yaşanılması gereken bir yer olarak anılarımda yer ediniyor kendisine.

JBoss – Loglama hakkında

Herkese merhaba,

Ne yazık ki geçen ay yazamadım, bu ay da şimdilik kendime hatırlatma olması amacıyla, basit bir yazı hazırladım.

JBoss’ta loglama Tomcat vs gibi uygulama sunucularından biraz farklı. Hatta 7.1’deki bir sorundan ötürü diğer ortamlarda çalışan log4j düzeninizin çalışmadığını farkedebilirsiniz. Neyse ki JBoss, sizin handle edilmeyen logger çağrılarınızı kendisi handle ediyor fakat siz belirtmediyseniz bir yere yazmıyor. Bunların yazılması için yapmanız gereken bir kaç işlem var:

1 – İlk olarak uygulamanız için loglama yapacak logger’ı tanımlamak. Bunun için standalone.xml ayar dosyasını açmanız gerekiyor. (dosya JBOSS_HOME/standalone/configuration/standalone.xml).

2 – Dosyanın içinde <subsystem xmlns=”urn:jboss:domain:logging:1.1″> noktasını bulun. Bu xml elementinin içine

<logger category=”proje.paketinin.ismi”>
<level name=”TRACE”/>
</logger>

şeklinde logger elemanını tanımlayın.

3 – Daha sonra yine aynı subsystem elemanının içine kendi handler’ınızı tanımlayın, ben örnekte periodic file handler tanımlıyorum.

<periodic-rotating-file-handler name=”APPLICATION”>
<level name=”DEBUG”/>
<formatter>
<pattern-formatter pattern=”%d{HH:mm:ss,SSS} %-5p [%c] (%t) %s%E%n”/>
</formatter>
<file path=”/home/username/log_jboss/app_name.log”/>
<suffix value=”.yyyy-MM-dd”/>
<append value=”true”/>
</periodic-rotating-file-handler>

4 – Son olarak da root logger’ının içinde demin tanımladığınız handlerı ekleyin.

<root-logger>
<level name=”INFO”/>
<handlers>
<handler name=”CONSOLE”/>
<handler name=”FILE”/>
<handler name=”APPLICATION”/>
</handlers>
</root-logger>

 

Tüm bu adımlardan sonra JBoss ve uygulamanızı tekrar başlatın. Ve yazılan logların keyfini çıkarın : )

QCON 2014

Herkese merhaba,

QCON 2014 için çalıştığım şirkete bir blog yazısı hazırladım, burada sizlerle de paylaşmak isterim. İngilizce olduğu için kusura kalmayın. : )

QCON London conference is one the real general purpose developer conferences(and maybe enterprise software conference) of Europe and as Monitise MEA, we attended with two engineers this year to the event.

Londra

QCON 2014 had two days of training + workshops and three days of conference(and since it was in London, five days of drinking). Topics of both training and conference was selected wisely according to today’s needs in software industry. Training topics ranging from Functional/Reactive Programming to Refactoring Large Scala Software Systems were really useful to today’s software engineering profession. Erik Meijer’s training sessions was really special and it opened our eyes to the fullest in Functional and Reactive Programming. But we still can not understand the following: “Contravariance is the Dual of Covariance Implies Iterable is the Dual of Observable”.

The same unfortunately can not be said for the keynotes. Damian Conway did a very fun keynote, showing interesting topics, but it did not make any strong topics about anything(but his CS presentation about Regexes was quite good actually). The only interesting keynote was from Gunter Dueck, he cleary stated the world’s movement to McDonaldization, and warned the software developers about the upcoming dangers. Tim Bray also did an entertaining presentation about the world going mobile and the browser’s future in this.

The sessions of the conference that started on Wednesday had clearly shown us where the software development industry is headed. The functional paradigm of previous years for example, is now a common issue that we all need to use it as much as we can. Fault tolerance is the new hot topic since the purchase of WhatsApp. Inventor of Erlang, Joe Armstrong gave a very clear presentation of what fault tolerance is. We have seen from numerous presentations that in fact fault tolerance is a very clean technique but it is not practised as it should have been.

Java was one the main points of attention in the conference. Every sane developer understands its importance, its vast library of JDK and the new work that’s sitting on top of JVM like Scala, Clojure,Akka, RxJava and numerous frameworks like Spring, Dropwizard, Play, Grails and etc. So instead of just cursing Java, sessions were presented to deal with the issues of Java, to give details of its capabilities and such. If only someone can fix the garbage collection issue and reduce the compile times, the world would definitely be a better place: ).

Scalable architectures was another point of interest in the conference, we had a very clear presentation from Twitter about its non-blocking usage of Scala, and a very good presentation from Sadek Drobi, about blocking threads in Reactive programming. Reactive programming has shown its power, but with great power, we again saw that great responsibility is needed.

Devops, cloud technoloqies, integrated web applications and big data architectures all have proven their worth and all had their own tracks in the conference. QCON was again a reminder of what is going on in the industry, and what people are working on this year. It was a relief that in Monitise MEA, we actually deal with a lot of the issues discussed in QCON. I wish that I could say the same thing for Turkey’s sofware industry as a whole.

JAX-WS Web Servisleri ve WSGEN

Herkese kısa bir yazıyla merhaba,

Yine daha sonra kendime not olması amacıyla yazdığım bir yazıyla karşınızdayım. 3. 4. kez bu hatayla karşılaşınca artık geri dönüp bir yerlere çözümü not etmek gerektiğine karar verdim.

Java’da web servislerinizi JAX-WS yordamıyla açmak diğer yöntemlere göre kısa ve kolay bir yol. Lakin bu şekilde çalışırken, SoapBinding özelliğini DOCUMENT olarak girerseniz yada boş bırakırsanız yapmanız gereken başka işlemler de var.

Bu durumda sadece derlemeyle oluşturduğunuz sınıflar yeterli olmuyor. JAX-WS için gerekli olan diğer sınıfları ve dosyaları(wsdl ve xsd) sizin üretmeniz gerekiyor. Aksi takdirde şu meşhur:

Wrapper class paket_ismi.jaxws.methodName is not found. Have you run APT to generate them?

Hatasını alıyorsunuz.

Bu dosyaları üretmek ise oldukça kolay. Tek yapmanız gereken wsgen aracıyla gerekli dosyaları oluşturmak ve projenizde gerekli paketin içine taşımak. Bundan sonra tek yapmanız gereken tekrar bir paket oluşturmak!

Gerekli wsgen komutu örneği:

wsgen -keep -cp . com.organizasyon.adi.ws.WebServiceEndpoint

PS: Bu arada hep benim düştüğüm hataya düşmeyin, bu işlemi .class dosyalarında çalıştırmanız gerekli, .java dosyalarında çalıştırırsanız ClassNotFound exceptionı alırsınız : ).

Jenkins ve Mercurial’da otomatik derleme şeysi

Merhaba arkadaşlar,

Gene kendime daha sonra bilgi olsun diye yazdığım bir not ile karşınızdayım.

Son günlerde Jenkins’teki iş sayısının çokluğu, polling(yoklama) mekanizması ile çalışmamızı imkansız noktaya getirmişti. 150’den fazla iş aynı anda Mercurial’dan sorgu çekmeye çalışınca sistemi oldukça yoran bir noktaya getiriyordu.

Bunun için Mercurial’dan push komutunu çalıştırdıkça Jenkins üzerinde derleme işlemi başlatmak gerekiyor. Bunun için Mercurial’daki hook mantığını kullanıyoruz. Daha fazla bilgi.

Neyse

Aynı mantıkla, hook üstünde çalıştırdığımız komutun da bir şekilde Jenkins’te iş çalıştırması lazım. Bunun için de Jenkins’in Build Token Root eklentisini kullanıyoruz. Eklentiyi kurduktan sonra tek yapmanız gereken jenkinste projenizi uzaktan tetiklemeye(remote triggering) açmanız ve bir token üretmeniz. Bu sayede kullanıcı adı ve şifre vermeden çalışabiliyoruz.

Örnek bir hook (projenin .hg/hgrc dosyasında tanımlanan):

 

[hooks]
changegroup = curl “http://jenkins.adresi.com/buildByToken/build?job=proje_adi&token=urettiginiz_token”

Bu sayede şakır şakır uzaktan derleme yapabilirsiniz.

2013’te neler oldu?

Herkese merhaba,

Bu ay ne yazık ki bir blog yazamadım, bu sebeple çok kısa şekilde bu senenin ortaya karışık bır özetini/listesini paylaşmak isterim. Oldukça enteresan bir sene oldu, kabul edelim:

  1. Scala öğrenmeye başladım ve bir ticari projede Play framework kullanarak geliştirme yaptık. Bu proje şu anda canlı ortamda kullanıcılara hizmet vermektedir.
  2. Londra’daki QCON konferansına katıldım, gerçekten yazılım açısından etrafta neler oluyor bitiyor görebilmek adına inanılmaz faydalı bir konferans oldu. Buradaki izlenimlerimi elimden geldiğince başkalarıyla da paylaştım.
  3. Dünya’nın en güzel kızı için ardarda İtalya,Çek Cumhuriyeti,Hollanda ve Fransa’ya seri ziyaretler düzenledim. Hayatımın en güzel zamanıydı sanırım şu ana kadar. (Terhis olduğum anı her zaman ayrı tutarım)
  4. www.sporapp.com açıldı ve belirli bir kullanıcı sayısına ulaştı, emeği geçen herkesin eline sağlık : )
  5. Gezi direnişi gerçekleşti ve Türkiye’de siyasi bir dönüşümün başladığına artık herkes hemfikir. Hayal gibi olan bu olayların içinde tarihi yaşamış olmanın değerini şu anda bile tam olarak anlayabildiğimi zannetmiyorum.
  6. Uzun süredir uğraştığımız emek verdiğimiz BKM Express Mobil projesi hayata geçti. İki faz halinde projenin iPhone,Android ve HTML5 istemcileri piyasaya çıktı.
  7. Senenin ortasında ünite testi kullanmaya başladım, ardından da Kent Beck’in Test Driven Programming kitabını okudum. Artık yazılım geliştirmeye daha rahat ve daha sağlam bir açıdan baktığımı düşünüyorum.
  8. Arada Erlang öğrenmeye başlamıştım ama Coursera’dan mükemmel bir Scala dersi almaya başlayınca o yalan oldu, ona devam etmek istiyorum 2014’te.
  9. Sene sonunda Türkiye yine altına üstüne geldi, 2014’te hayırlısı diyoruz bakalım. : )

Kendimce baktığımda 5 üzerinden 4 verdiğim bir sene oldu. Umarım 2014 de güzel geçer diyeyim ve herkese iyi yıllar dileyeyim!!