Referandumun Sonucu ve Yaşamlarımızın Anlamı

Merhaba, uzun süredir blog yazmıyorum, aslında bir kaç adet yazdım ya, paylaşmıyorum. En son referandumdan sonra bir yazı yazmıştım, medium’da yayınladım. Buyrun sizlerle de yazıyı buradan paylaşayım. İyi okumalar.

 

16 Nisan akşamında sonuçları daha çok tartışılacak ve hileli bir seçim yaşadık. Bildiğimiz anlamda cumhuriyetimiz değişti ve önümüzdeki süreçte neler yaşayacağımız da belli değil. Ortalıkta birçok farklı görüş var elbette ve izninizle ben de kendi fikrimi paylaşmak istiyorum.

Öncelikle bazılarının düşündüğü gibi her şeyin bittiği görüşünü gerçekçi bulmuyorum. Daha doğrusu her şeyin özellikle yeni başladığını düşünenlerdenim. İşin enteresan kısmı ise sosyal medyada da benim gibi düşünen birçok insanın olduğunu fark ediyorum. Bu iyimserliğimin nedenini açıklamak isterim.


Her şeyden önce, iktidar devlet aygıtını bir mafya örgütü kabalığında kullanarak ve hileye başvurarak referandumu zar zor kazandı. Kendi kurdukları bu sistem, onların da sonunu hazırlayacak bir kabusa dönüşebilir. Çok açık görülüyor ki, psikolojik üstünlük, haklı olmanın etkisiyle hayır diyenlerde. Haklıyız ve hakkımızı arayacağız, bu bizim mücadelemize böyle bir anlam kattı. Bu bana gelecek için ümit veriyor.

Diğer yandan, bu seçimin sonucunu yorumlamanın, zor koşullar altında bir tavır almak olduğuna inanıyorum. Tamam, hayır oyu veren bizler koşullardan bağımsız değiliz, halkın bir kısmı cahil, başımızda bir mafya örgütü var ve hepsinin başında da bir diktatör heveslisi var. Bu ülkede özgür değiliz bunu da kabul ediyorum. Ama koşullara karşı takınacağımız tavır konusunda özgürüz. Ben tavrımı belirlerken hakkımı aramanın ve ülkem için ne yapabilirimin cevabını arıyorum. Ve şu soruyu soruyorum; hayat ve Türkiye, benden ne bekliyor? Türkiye ve insanlarına nasıl yardımcı olabilirim? (Not: Buradaki Türkiye, hepimizin ideallerindeki özgür ve yaşamak istediğimiz Türkiye. bknz: https://onedio.com/haber/bir-utopya-her-seyin-guzel-oldugu-alternatif-evrendeki-turkiye-den-23-gundem-konusu-761783)

İşin güzel ve ilginç yanı ise, bu soruya verilebilecek tek bir doğru yanıt olmamasında. Hepimizin hayatları farklı ve hayat herkesten başka bir görevi yerine getirmesini isteyebilir ve isteyecektir. Yani birey olarak, bu tavrı aldığınızda, her birinizin davranışı bambaşka olabilir ve olacaktır.

Bu yazıdaki görüşümün temeli Frankl’ın anlam terapisi tekniğinden gelmektedir : )

Örneğin kendime bu soruyu dünden beri soruyorum; açıkçası buna cevap bulmaya çalışmak beni rahatlattı ve hayatımdaki anlamlara çok güçlü bir yenisini kattı. Tabii ki tüm cevapları bulamadım ama tavrım belli; ilk olarak ve en basitinden sosyal medyada doğru, önemli ve cesaretlendirici paylaşımların yayılmasına çalışıyorum. Sonrasında oy ve ötesinin sistemine elimden geldiği kadar tutanağı girmeye çalıştım. Ve şu anda bu yazıyı yazıyorum. Ülkemin yaşadığı bu gerilemeyi, haksızlığı ve barbarlığı kabul etmiyorum ve gücümün yettiğince mücadele etmeye karar verdim.

Evet baktığımız zaman acı çekiyoruz. Türkiye’ye neler yapıldığını görüyor ve üzülüyoruz. Bir kısmımız aslında acıdan kaçmanın ve hazzı yakalamanın en önemli erdem olduğunu düşünüyor ve bu yüzden acı çekiyor oluşumuzu saçma bulabiliriz. Benzer şekilde bazıları da gene bu ülkenin düzelmeyeceğini ve kendini(!) kurtarmanın en mantıklı çözüm olacağını düşünebilir. Ama bu acıdan kaçma hali bir tavır değildir ve acıdan kaçmayı amaçladığınız için aslında ona ulaşamaz ve daha çok acı çekersiniz. İnanın ülkenizin size verdiği acı, dünyanın neresinde ve nasıl yaşıyorsanız yaşayın aynı kalacaktır(hatta belki de artacaktır). Ama bu acıyı, Türkiye için bir şeyler yapabilmenin ön sebebi olarak ele alabilirseniz, acı ortadan kalkmasa da eskisi kadar sizi yaralayamayacaktır. Nietzsche’nin şu sözü kulağınıza küpe olsun: “Yaşamak için bir nedeni olan kişi hemen her nasıl’a katlanabilir.”

Ben ne yapabilirim? Nasıl mücadeleye katkı sağlayabilirim? Ülkem benden ne bekliyor? İnanın bu sorulara kafa yormak, haksızlığı ve yenilgiyi kabul etmemek sizin de özgür bir tavır takınmanıza ve bu bunaltıcı gündemde dimdik ayakta durmanıza yardımcı olacaktır.

Durumu olmadığı için okuyamayanlar için özetle: Zor olacak, acı çekeceğiz ama sonu güzel olacak!

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.

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.

Bitcoin Üzerine Birkaç Not

Herkese selamlar,

Son günlerde oldukça konuşulan bir konu oldu Bitcoin. Silkroad olayında adını oldukça duyduğumuz bir konu, bir olgu oldu Bitcoin. Çok seven early adopterlar da var, bütün gücüyle karşı çıkan statükocular(heeey! sonunda ben de entel bir kelime kullandım) da. Ben de sizlere bir kaç izlenimimi aktarmak isterim. Merkez bankası olmayan bir para birimini ilerleyen günlerde de sıkça konuşacağımızı düşünüyorum.

Evet, Bitcoin’in ilk göze çarpan özelliği merkezi bir para birimi olmaması. Ne demek bu? Bu, Bitcoin’in hiç bir kuruluş,maden vs ile desteklenmediği demek. Yani kimse Bitcoin’ın stabil kalacağını garanti etmiyor veya arkasına belirli bir miktar altın veya başka az bulunan bir maden eklemiyor. Bu Bitcoin’in hem en çok övülen özelliği hem de en çok saldırı altında kaldığı noktalarından birisi. Yalnız şu unutulmasın ki, bankacılık sistemi hayata geçtikten çok sonra merkez bankaları kurulmuştur. Ve de bilenler bilir, ne hileler ve ne kumpaslar kullanılarak! Amaç, bir ülkenin kendi halinde olan para birimini, kontrol edecek bir yapı oluşturmak! E zaten merkez bankası olmadan varolabilmişse ekonomiler, neden tekrar varolamasınlar?

Bitcoin’i eleştirenlerin unuttuğu noktalardan biri de serbest piyasa mekanikleri. Bitcoin’in fiyatı değişkenlik gösterebiliyormuş! Bu yüzden güvenilir değilmiş! Bu parayı kim kontrol ediyormuş? Unutulan en temel noktalardan biri paranın da satın alınabilen bir meta olduğudur. E durum böyleyken, her şey için serbest piyasayı savunan kalantorlar, neden paranın kendisinin serbest fiyatını savunmazlar? Borsadaki hisselerin değerlerinin bir gün içinde ne kadar değişebildiğini farkedersek, Bitcoin’in fiyatının değişmesine de fazla şaşırmamak gerek. Sonuçta güven verdiği sürece fiyatı artar, güvensizlik yarattığında da düşer, bu kadar basit. He siz serbest piyasaya karşısınızdır, orası ayrı.

Hükümetlerin en çok sinirlendiği noktalardan biri de Bitcoin’in takip edilmesi zor bir para birimi olduğu. Bu yüzden teröristlerin, suç organizasyonlarının yaptığı işlemleri kontrol edemeyeceklerini iddia ediyorlar. Teröristlerin hareketlerini sadece para transferleri üzerinden kontrol edebiliyorlarsa zaten vay hallerine. Diğer yandan şaka gibi bir olay, Forbes’a göre FBI piyasadaki Bitcoin’lerin %1.5’unu kontrol ediyor. Buna rağmen Bitcoin’in anonimliği ise tamamen sizin özgürlüğünüz anlamına geliyor. Tabii ki her işlemde tek bir adres kullanırsanız. Arada işlemi doğrulayan bir Bitcoin madencisi dışında kimse olmaması kimsenin sizi izleyemediği anlamına gelmekte. Peki nedir bu Bitcoin madencisi?

Burası açıkçası benim de en az bildiğim kısımlardan. Henüz inceleme şansım olmasa da Bitcoin yazılımı en azından açık kaynak. Fakat çalıştırmanız için özel bir donanıma ihtiyacınız var. En azından sağlam bir GPU’nuz olmalı. Bitcoinler 50’şerlik paketler halinde dolaşıma açıldığından basit bir bilgisayarla bu Bitcoinlerin sizden çıkması ihtimali düşük oluyor. Burada yapılan şey esasında basit algoritma çözümleri, fakat hepsini tek bir işlemciyle yapmaya kalktığınızda sorun yaşayabilirsiniz. Diğer yandan bu sorunu çözmek adına Bitcoin maden havuzları oluşturulmuş. Bu gibi oluşumlarla insanlar işlemci güçlerini birleştirerek kazanılan Bitcoin’den kendilerine düşen küçük payları alabiliyorlar. Bu ve bunun gibi teknikler aslında sistemin güvenilirliğini de artırıyor, çünkü madenciler aynı zamanda işlemleri kriptografik olarak da onaylıyorlar. Bunun karşılığında da para kazanıyorlar. Bir nevi İsmet İnönü’nün namusluların cesurluğu ilkesine benziyor. (Burada da bir cehape zihniyeti söz konusu yani : p)

Neyse uzun lafın kısası, oldukça enteresan bir dijital para birimimiz olmuşa benziyor. Bu konuda daha çok bilgi edindikçe gerek bu yazının güncellemeleri gerek de yeni yazılarla sizleri bilgilendiriyor olacağım.

Görüşmek üzere.

Mercurialda repoları web üzerinden paylaşıma açmak

Merhabalar,

Bu yazımda Linux üzerindeki bir Apache sunucusu üzerinden mercurial repolarının paylaşımını açıklamaya çalışacağım. Basit bir sırası var, aşağıdaki maddeleri takip edin lütfen.

  • İlk olarak gerekli klasörleri oluşturun, bunlar sırayla : /var/hg/repositories ve /var/hg.
  • Daha sonra /var/hg altında hgweb.config isimli bir dosya oluşturun. Dosyanın içine şunları yazın:

[web]
style = gitweb

[collections]
/var/hg/repositories = /var/hg/repositories

  • Ayar dosyasını oluşturduktan sonra Apache sunucusunun hgweb i çalıştırabilmesi için hgwebdir.cgi dosyasını oluşturun. Bu dosyanın içeriğine aşağıdakileri yazdırın.

#!/usr/bin/env python
from mercurial import demandimport; demandimport.enable()

import cgitb
cgitb.enable()

import os
os.environ["HGENCODING"] = "UTF-8"

from mercurial.hgweb.hgwebdir_mod import hgwebdir
import mercurial.hgweb.wsgicgi as wsgicgi

application = hgwebdir('hgweb.config')
wsgicgi.launch(application)

  • CGI betiğini hazırladıktan sonra apachenin kendi klasörüne dönüyoruz. Ubuntu da bu klasör /etc/apache2 şeklinde oluyor. Burada bir mercurial klasörü oluşturuyoruz. mkdir mercurial
  • Bu klasörün içine girip, mercurial.conf dosyasını oluşturuyoruz. Bu dosyanın içine şunları yazıyoruz:

ScriptAliasMatch ^/mercurial(.*) /var/hg/hgwebdir.cgi$1
<Directory "/var/hg/">
Options Indexes FollowSymlinks MultiViews ExecCGI
AllowOverride All
Order allow,deny
Allow from all
AuthType Basic
AuthName "Mercurial Repositories"
AuthUserFile /var/hg/hgusers
Require valid-user
</Directory>

Bu sayede demin oluşturduğumuz klasörün apache üzerinden servis edilmesini sağlıyoruz.

  • Mercurial’ın dışarı açılması için gerekli bir adım daha: apachenin içindeki sites-available klasöründe, az önce oluşturduğumuz ayar dosyasının sunulmasını sağlamak. Bunun için sites-available klasörüne girip, örneğin default dosyasına şu satır eklenmelidir: Include /etc/apache2/mercurial/mercurial.conf
  • Herşeyin normal olduğunu kontrol etmek için su komutu çalıştırın: sudo apache2ctl configtest
  • Daha sonra apacheyi tekrar başlatalım; eğer bir sorun olmazsa siteniz/mercurial adresine girdiğinizde güzei bir görüntü olmalı 🙂 :
$ sudo apache2ctl stop
$ sudo apache2ctl start

Scala’da case classes, pattern eşleştirme ve exception handling

Evet arkadaşlar selamlar,

Bu blogda arada sırada Scala yazmaya çalışıyorum. Bu ay da Scala’nın bazı özelliklerinden kısaca bahsedeyim istedim. Bu yazıda case classes, kısaca pattern matching ve exception mantığından bahsedeceğim sizlere.

Case classes, normal class mantığından bir kaç sentaktik şeker vererek ayrılan bir olgu. Case class kullandığınız zaman constructorda verdiğiniz parametreler için otomatik olarak içerde private alanlar oluşturuluyor ve bu alanlara yine constructorda verdiğiniz parametre isimlerinden erişebiliyorsunuz. Bu sayede basit POJO lar oluşturmak oldukça kolay hale geliyor. Basit bir örnek vermek gerekirse:

case class Person(firstName: String, lastName: String)

val me = Person("Erkan", "Ahmet")
val first = me.firstName
val last = me.lastName

if (me == Person(first, last)) {
  println("Found myself!")
  println(me)
}

Gördüğünüz gibi bütün sınıf tek bir satırdan oluşmakta. Gerçi bu kavramın adındaki Case nedir diye düşünenleriniz vardır, az bekleyin.

Gelelim pattern matching’e. Java da bu mantık switch case ler üzerinden yürüyor bildiğiniz gibi. Yalnız bu yapı sadece primitif tipleri kontrol edebiliyor. Bu da sizi eninde sonunda bir integer a yada bir enum değerine kadar indirebiliyor. O kadar karmaşık sınıflar yazıyor ama karşılaştıramıyoruz.

Bu soruna Scala’da amcalar neşter atmışlar. Temelde Java’dan ayrıldığı bir kaç noktayı aktaralım:

  1. Case statementları birbiri içine girmezler, yani gidip de hepsine break yazmak zorunda değilsiniz.
  2. Case statementları bir değer dönerler, bunu olduğu gibi kullanabilirsiniz, bu sayede daha az satır kod yazmış olursunuz.
  3. Case statementlar, patternleri eşleştirebilirler, bunun en güzel örneği ise case class kullanımında görülür.

object Scenario{
def apply(user: String, action: GameElement) = {
action match {
case workout: Workout => new WorkoutScenario( workout, user )
case like: Like => new SocialScenario( like, user )
}
}
 }

 

 
Örnekte gördüğünüz üzere, action nesnesi match blokuna sokuldu. Match blokunda, bu action sınıfından türemiş diğer sınıflarla karşılaştırıldı. Bunlar Workout ve Like. Bunlardan hangisi ile eşleştiyse de, buna uygun bir nesne üretildi ve geri dönüldü. İşte ben buna factory pattern derim. Hatta demem, çünkü ortada pattern denecek kadar bir kod parçası yok. : )

Peki gelelim exception handlinge. Scala bu işe de el atmış durumda. Normalde bir noktadan exception throw ederdiniz. Burada sorun yok. Fakat yakalayacağınız yerde, her bir exception tipi için ayrı ayrı blok açar ve ne yapacağınızı şaşırdınız. Scala ise exception handling’de de pattern matching kullanarak, işimizi bir adım daha kolaylaştırıyor.

Örnek vermek gerekirse

</pre>
<address>try{

workoutItems.foreach(item => {
...
if (repeat <= set.repeat_number.toInt) {</address><address>              ....
throw BadgeWon("pushup badge won!")
}

})
}
})

}
catch {
case e:BadgeWon => println("found the badge: " + e.message)
case e => {
println("general exception" + e.getMessage )
e.printStackTrace()
}
}</address><address>
Gördüğünüz gibi çok daha kısa bir kod parçası ile, exceptionlarınızı da yönetmeyi başardınız. Scala kullandıkça özelliklerini daha da çok seveceksiniz.
Önümüzdeki yazıda function literals konusuna değinmek istiyorum, herkese iyi günler!