BAŞA DÖN

Celal Bayarın tapusu Köşkten çıktı

Cumhurbaşkanlığında dijitalleştirme projesi kapsamında birçok belge hassas işlemlerden geçirilip dijital ortama aktarılıyor.

Projeyle ilgili basında çıkan haberlerden birini sizinle paylaşmak isterim.

 

Haber; Radikal gazetesine ait.

Cumhurbaşkanlığı Genel Sekreteri İsen, tapu belgelerini Bayar ın torununa takdim etti.

ANKARA- Cumhurbaşkanlığı arşivlerinin dijital ortama aktarılması, Köşk’te ‘51 yıldır bekleyen bir tapuyu’ da gerçek sahipleriyle buluşturdu. Arşiv taramasında ortaya çıkarılan ve 3. Cumhurbaşkanı Celal Bayar’a ait olduğu belirlenen tapu belgeleri, Cumhurbaşkanlığı Genel Sekreteri Mustafa İsen tarafından Bayar’ın torunu Emine Gürsoy Naskali’ye takdim edildi. Naskali, tapunun Celal Bayar Köşkü olarak bilinen Ankara Atatürk Bulvarı’ndaki 2 katlı eve ait olduğunu belirterek, “Yeni bir yere ait sürpriz bir tapu değil. 27 Mayıs sonrası malum şartlar altında Köşk’ten ayrıldıkları için alamadıkları tapu” dedi. 
İsen, Cumhurbaşkanlığı arşivinin dijital ortama geçirilmesi çalışmaları sırasında buldukları bir dosyanın içinde Bayar’a ait kişisel tapu belgelerinin yer aldığını söyledi. 
Tapuların hikâyesini Bayar’ın torunu Naskali, Radikal’e anlattı. Kendilerine aktarılan tapuların Ankara Atatürk Bulvarı’nda bulunan ve Celal Bayar Köşkü olarak bilinen 2 katlı eve ait olduğunu belirten Naskali, “Anneannemle dedemin evine ait tapular. Zaten biz o evi devrettik. Bizim için bilinmeyen bir yere ait bir tapu değil. 27 Mayıs’ta malum şartlar altında Köşk’ten ayrıldıkları için orada kalmış” diye konuştu. Naskali, Atatürk Bulvarı’ndaki Celal Bayar Köşkü’nün yapılış hikâyesini de anlattı. Bayar ve eşi Reşide Bayar’ın Ankara’ya ilk geldiklerinde Keçiören’de bir evde kaldıklarını anlatan Naskali, Celal Bayar’ın Keçiören’den Çankaya’ya gidiş-gelişleri sırasında atların dinlenebilmesi için evin bulunduğu arsayı satın aldığını söyledi. Daha sonrasında ise yaşamak için bir ev fikrinin oluştuğunu belirten Naskali, “Anneannem yaşamak için 2 katlı bir ev istiyor ve Etnografya Müzesi’nin mimarı Arif Hikmet Koyunoğlu’na gidiliyor” diye konuştu. 

3 milyon evrak var
Bir süredir devam eden Köşk arşivlerinin dijital ortama aktarılması kapsamında, Cumhurbaşkanlığı’nda hummalı bir çalışma sürdürülüyor. 20 kişilik bir ekip, 3 milyon evrakı teker teker inceleyerek dijital ortama geçiriyor. Çalışmalar sırasında gerekli oldukça dışarıdan uzmanların bilgisi ve görüşüne de başvuruluyor.


Çalışmalarımızda dikkat ettiklerimiz

Blog'da daha önce bir kaç yazı da geçen çeviklik [1],[2] iş üretmemizi ciddi manada etkiliyor. Hızlı kararlar alıp, sıkı takipçisi olabiliyoruz. Ekip içinde nelere dikkat ettiğimize dair kısa bir eposta yazarken alttaki yazı ortaya çıktı. Nelere dikkat ediyoruz, nasıl çalışıyoruz? diye merak edenler için bir kaç ipucu içeriyor.

Projelerimiz kişiye bağımlı olarak gitmiyor, kişiler projelere bağımlı gidiyor. Yani her hangi birimiz herhangi bir projede modifikasyon / geliştirme yapabiliyoruz. Bu bakımdan, yeni bir ek kod yazmadan önce mutlaka ve mutlaka var olan iş parçacığı inceleniyor, mantıksız bile gelse o kodu yazan arkadaşın ne yapmak istediği / yaptığı analiz edildikten sonra geliştirme yapılıyor. Anlaşılmayan noktayı ilgili kişilere soruyoruz.

Yaptığımız çalışmaları önce kendimiz test ediyoruz. Bir link dahi koysak bu link çalışıyor mu çalışmıyormu kontrol ediyoruz. Kendi arkamızı başkasına toplatmamak için elimizden gelen gayreti gösteriyoruz. Bu konuda bazen kaçaklar olsa da günden güne daha iyiye gidiyoruz.

Çalışmalarımıza özen gösteriyoruz. Yaptığımız ufak bir iş dahi olsa, küçük bir pencereden değil, daha geniş bir perspektiften bakmaya çalışıyoruz. İstenilen işi yapmaya başlamadan önce daha sonradan oluşabilecek ihtiyaçları göz önünde bulunduruyoruz.

Hiç değer atanmadığını bildiğimiz bir değişken dahi silerken düşünüyor, emin oluyoruz. Yapacağımız işle bir ilgisi yoksa hiç bir yeri ellemiyor, mıncıklamıyoruz. En iyi kod çalışan koddur felsefesini uyguluyoruz. Fakat bu görülen hataları not etmediğimiz ve ilgilisine bir iş (case) veya bir kod inceleme kalemi (code review) olarak dönmeyeceği anlamına gelmiyor.

Ayarların saklandığı dosyalara yeni değer (value) eklenmedikçe ne commit ediyor ne de push ediyoruz. Herkesin kendine göre db, url vb. gibi ayarları bulunuyor. Eski konfig değerlerine getirmek can sıktığı gibi ekstra uğraşmamız iş kaybına sebep oluyor.

İş takip sistemine ve kod versiyonlama & koruma sistemine (revision control) sonuna kadar bağlı kalıyoruz. İşlerimizi sistemden alıyor, sistem dışı gelenleri sisteme giriyor (takip.erkyazilim.com.tr) ve çalışmalarımızı oradan takip ediyoruz. Kodlarımızı düzenli olarak gönderiyor (push), gönderirken de ilgili iş kalemini (Case ID) veya açıklamasını eklemeyi ihmal etmiyoruz.  Aynı projede farklı kalemlerde uğraştığımızda herkes kendi kalemini gönderiyor (commit & push) ve bir çakışma varsa diğer parçalar ile birleştirmeye (pull & update & merge & push) erinmiyoruz.

Yaptığımız bir işte mutlaka ve mutlaka başka arkadaşın görüşünü alıyoruz. Tek başımıza karar vermeyip, bir birimizin tecrübelerinden faydalanıyoruz. XP denen şeye inanıyor, yeri geldiğinde diğer bir gözün ne kadar başarılı bir şekilde sorunları görüp kolayca çözdüğünü unutmuyoruz.

İşlerin her aşamasında anlamadığımız, takıldığımız konularda bir birimize soru sormaktan çekinmiyoruz. Hiç birimiz soru sorduğumuz için diğerine kızmıyor. Sadece zamanlaması kötü olduğunda üf püf ediyoruz ama mutlaka cevaplıyoruz. :)


Çevik Yazılım Metotlarının Satışa Etkisi ve Müşteri Memnuniyeti

Erkyazılım’ın çevik (agile) yazılım metotlarını benimsemiş olmasının en çok sevindiğim yanı, çevik yazılım yaklaşımının müşteri memnuniyeti sağladığı kadar satış sürecinin de hızlı olmasına olanak sağlaması. Gerkçekleştirdiğimiz projeler çerçeve olarak sektör bazında benzerlik gösterse de (örneğin: Enerji sektörü/online ödeme sistemi gibi) müşterilere göre özelleştirmeleri herbir projeyi oldukça değiştiriyor, kendine özgü hale getiriyor. Çevik metodlar ile proje içindeki her bir yazılım özelleştirme isteğini küçük parçalara bölüyoruz. Bunları müşteriye ayrı ayrı onaylatabiliyor olmak, ya da müşteri istediğinden vazgeçtiğinde geri dönme kolaylığının olması fiyatlandırma konusunda da ölçeklenebilirlik kazandırıyor.

Bildiğiniz gibi, çevik yazılım manifestosu 4 basit ilkenin benimsenmesidir ve bunlar, müşteri memnuniyetinin temelidir. Aynı zamanda bunun tersi müşteri şikâyetlerinin ve yolun sonundan bile geri dönülen yazılım projelerinin temel kaynağıdır.  Bugün yazılım projeleri anlamında iş yapılabiliyorsa bu beklentiler karşılanıyor demektir.  Demek ki, çevik yazılım ilkeleri artık bu bir manifestodan öte, bir iş yapma şekli haline gelmiş.

Bir projeye başlarken, herkesin aynı araçları kullanması güzel bir şeydir. Peki, farklı araçları kullananlar iş yapamayacak mı? Elbette hayır. Bizim müşterilerimiz farklı farklı ürünler ve metodlar kullandıkları halde, proje sürecinde her alternatifte müşterilerimizle iletişimi gerektiği gibi kurabiliyoruz.

Bir ilke de dokümantasyonla uğraşmak yerine yazılımı çalıştır mantığıdır. Detaylı dokümantasyon süreyi ve maliyeti artırdığı gibi, hiçbir zaman çalışan bir yazılım kadar müşteriyi memnun etmeyecektir.

Diğer manifesto ilkesine gelelim. Her sözleşmede keskin kurallar koyulmaya çalışılır. Fakat hiçbir kesin kural, yazılım şirketini müşteri ile hemfikir olmak kadar kazançlı kılmaz. Çünkü en azından ihtiyaçlar adına söylemek lazım; başlangıçta hayal gücü ile tasvir edilen ihtiyaçlar,  projenin ilerleyen aşamalarında daha net belirir. Yazılım şirketi sözleşmeye uymaya çalışırken, müşterinin ihtiyacını karşılamamış olacak. Sözleşmeye uyuldu belki ama nerede müşteri memnuniyeti?

Sözleşmelerde ve teklif metinlerinde ifade edilen cümlelerin dahi yanlış anlaşılma ihtimalleri söz konusudur. Teknik olarak her şeyin yapılabildiği günümüzde, yazılım projelerindeki en büyük maliyet ve “yapılmayanlar listesinin” uzamasının sebebini “farklı yorumlamalar” oluşturmaktadır.

Küçük parçalar halinde yapılan teslimat ve alınan onaylar, sonrasında emin adımlarla ilerlemeyi sağlıyor. Gidilen yolda, yapılmayan iş kalmamış oluyor. Bu yazılım şirketi olarak bizi de memnun ediyor, bizimle çalışan firmayı da memnun ediyor. Aynı zamanda,  firma adına ürün kabulü yapacak olan yetkili, yaptırdığı işleri aşama aşama çalıştığına şahit olduktan sonra, çalışma süreci de asla gergin geçmiyor.

Bunlar üretim ve sonrasında sağladığı kolaylıklar. Bunun bir de satış kolaylaştıran pazarlık kabiliyeti kazandırdığını düşünecek olursak, projeyi küçük parçalara bölebildiğimiz oranda başarı kazanıyoruz.

Aynı zamanda satış sürecinde de müşterimiz verilen teklifin neye göre verildiğini sorgulayabildiği için, aldığı fiyatı değerlendirirken modül bazında tercih yapabiliyor, aldığı iskontonun haricinde bir de önem/aciliyet değerlendirmesi yaparak fiyatı kendi kriterlerine göre aşağı çekebiliyorlar.

Sadece 4 basit ilke bütün bunları sağlıyorsa bence bu manifesto, mutlu müşteri manifestosudur.


Google maps IP engeline web sunucusu tabanlı reverse proxy çözümü

Ocak 2009'da yayına alınan Google Maps altyapısını kullanan "Cumhurbaşkanımız Nerede?" uygulaması Google servislerine ait bazı IP adreslerine mahkeme kararı ile erişim yasağı koyulmasının ardından hizmet veremez hale gelmişti. Aradan geçen bunca zamana rağmen Google tarafından çözüm üretilmemesi üzerine sorunu kendi yöntemlerimiz ile ortadan kaldırmak üzere durumu incelemeye koyulduk.

Google yoğun ziyaretçi trafiğini sunucular arasında dengelemek için çeşitli yöntemlere başvuruyor. Ülkemizden gelen bağlantılarda Google DNS sunucuları engellenmiş olan IP adresini içeren bir çözümleme yapıyor ve sorunda burada başlıyor. Kullanıcıların kendi bilgisayarlarında yapacakları bazı ayarlar ile bu problemi gidermek mümkün. Ziyaretçilere "Cumhurbaşkanımız Nerede?" uygulamasını kullanabilmek için bu ayarları yapmaları gerektiğini söylemek hiç mantıklı olmayacağı gibi birçok kullanıcının üstesinden gelemeyeceği teknik detayları içeren bir konu olmasıda işin cabası. Öyleyse bu işi kullanıcıların yerine uygulama sunucusunun kendisi yapmalıydı "Reverse Proxy" fikri bu gerekçe ile ortaya çıktı.

http://khm.google.com, http://khm1.google.com, http://mt0.google.com, http://mt1.google.com sunucularının IP adreslerindeki engelden dolayı haritaların yüklenemediğini tespit ettik. Öncelikle uygulama sunucusunda DNS çözümleme ayarlarında bazı değişiklikler yaparak bu servislere erişimi engel bulunmayan IP'ler üzerinden yapmasını sağladık böylece sunucu üzerinde Google Maps servisi çalışır hale geldi. Uygulamada kullandığımız "Google Map Javascript API" yi hazırladığımız Reverse Proxy üzerinden çağırdık.

<script type="text/javascript" src="webproxy.ashx?Url=http://maps.google.com/maps/api/js"></script>

webproxy.ashx dosyası "Url" parametresi ile kendisine gönderilen adrese ziyaretçinin gönderdiği bazı temel üstbilgileri ekleyerek sunucu tarafında bir istekte bulunur (http://msdn.microsoft.com/en-us/library/debx8sh9.aspx). Google sunucusundan alınan yanıt "text/javascript" tipinde ise kullanıcıya bu dosya transfer edilmeden (http://msdn.microsoft.com/en-us/library/system.net.webresponse.aspx) önce IP adreslerine erişim engeli bulunan sunucu adreslerine müdahale edilir. Yerleşik String.Replace metodu kullanılarak örneğin "http://khm.google.com/" adresi "webproxy.ashx?Url=http://khm.google.com/" şeklinde değiştirilir. Böylece kullanıcının internet tarayıcısına ulaşan "Google Map Javascript API" dosyasında erişim engeli bulunan diğer sunuculara yapılacak isteklerin "Reverse Proxy" üzerinden geçmesi gerektiği belirtilmiş olur. Ayrıca Google tarafından kullanıcı oturumunu takip etmek için gönderilen çerez bilgileri kullanıcıya özel bir "Session" değişkeninde saklanır (http://msdn.microsoft.com/tr-tr/library/system.net.httpwebrequest.cookiecontainer.aspx) aksi taktirde daha sonra yapılacak bir dizi isteği Google Map sunucusu ilişkilendiremeyerek yanıt vermeyi kesecektir.

O anda ekranda görülen bölgenin harita fotoğrafları "Google Map Javascript API" dosyasında dinamik olarak yaptığımız değişiklik sayesinde "webproxy.ashx?Url=...." adresi üzerinden talep edilir. Yeni hedefi "Url" parametresinden alan "webproxy.ashx" dosyası kullanıcıya özel olarak saklanan çerez bilgilerini ve kullanıcının tarayıcısından gönderilen bazı temel üstbilgileri ekleyerek sunucu tarafında yeni bir istekte bulunur. Google Maps sunucusu tarafından gönderilen içerik tipinin (MIME) "image/png" olduğu teyit edildiği taktirde istemciye aktarılırken sunucu performansı için istemci tarafı önbellekleme komutları eklenir (http://msdn.microsoft.com/en-us/library/system.web.httpresponse.cache(v=VS.90).aspx). Tüm bu işlemler ziyaretçi farketmeden ve kullandığı internet tarayıcısında yada işletim sisteminde hiçbir ayar değiştirmeyi gerekli kılmadan arka planda kendiliğinden gerçekleşmiş olur.

Yeterli teknik ve kodlama bilgisine sahip değilseniz kendi "Reverse Proxy" uygulamanızı baştan yazmak yerine http://www.codeproject.com/KB/IP/reverseproxy.aspx ve http://www.codeproject.com/KB/web-security/HTTPReverseProxy.aspx adresindeki gibi açık kaynak kodlu projelerden yararlanmayı tercih edebilirsiniz. Eğer PHP tabanlı bir sistem kullanıyorsanız http://www.glype.com/ adresindeki açık kaynak kodlu uygulamaya eklenti yazmayı deneyebilirsiniz.


Usta olabilmek

Bir süredir arabam yolda giderken birden bire gazı kesiyor ve "usta tabiri ile" yığılma yapıyordu. Şöyle düşünebilirsiniz; 120 ile giderken birden ayağınızı gazdan çekiyorsunuz ve araç anında 80'e iniyor. Arkadan gelen araçlar ise birden dibinizde bitiveriyorlar. Özellikle otoyol ve ışık sonrası kalkışlarda oldukça sıkıntılı anlar yaşanmasına sebep oluyor. Demedi demeyin.

Yakıt almadaki bu problemi karbüratörlü araçlarda pislik gelmesi gibi birşey diye yorumlayıp geçer belki diye boşuna ümit etmişim. Geçen gün Mustafa ile sanayiye gittik, aklımdaki ilk şey LPG sistemi ile alakalı olduğu idi, 2 yere sorunca 3. yerde bizim marka LPG ustasını bulduk. Bilgisayarda kontrol etti, beraber tur attık, "abi" dedi, "bunun sorunu elektrik ile alakalı, LPG sistemi iyi çalışyıor. Endüksiyon bobininden olabilir, sen bunu şuradaki Toyota'cı Adil ustaya göster"

Kalktık, Adil ustaya gittik, beraber bir tur attık, "bunun sorunu bobinden" dedi. Elektrik sisteminde kesinti olduğu için araba yığılıyor ama bunu gidip serviste yaptırırsan bobini garantili takarlar daha iyi olur dedi. Tahmini rakam ise yalan olmasın 300 civarı olurmuş.

İyi dedik, ayrıldık. Mustafa "abi servisten önce başka bir ustaya da göstermekde fayda var, benim ustalara bir gidelim mi?" diye teklif edince, kabul ettim. Tek başıma olsam sormam ama söz dinleyesim geldi.

Ustaya uğradık, beraber tur attık, "bu Endüksiyon bobinden olabilir" dedi :)  Bir ihtimal buji kablolarından da olabilirmiş. Toyota parçacısına uğradık, parçacı "ben hiç görmedim bu modellerde bobin arızası" diyerek ortaya yeni bir tez koyuverdi. Onu biraz kınasa da denemek için bir set kablo aldık. Usta araçla biz yayan dükkana döndüğümüzde, ileri geri manevra yapıyorlardı. "Bu" dedi, "geri giderken kesilme yapmıyor, sadece ileri giderken yapıyor, kesin LPG takılırken bir kablo açık kalmıştır, öne gidince kablo sıkışıyor ve şase yapıyor, bak gör!"

Aracı aldılar dükkana, abi kardeş kabloları çekip bırakmaya başladılar, 1-2 dk geçti geçmedi "bak işte!" sesi geldi. Hakikaten bir kablo sıyrılmış, onu bantladılar ve tüm sorun düzeldi.

Diğer ustalar da usta idi ama geri gitmeyi hiç düşünmemiş yahut geri gitseler de farkedememişlerdi. Yaşadıkları bu tür sorunlarda genel problem bobindi ve onu öne çıkarmışlar, gerisini  öngörememişlerdi.  Son usta ise, sorunun genel tespitini yapmış, elektrik kesintisi olduğundan hareketle, ihtimalleri değerlendirmiş, sonrasında tecrübesini konuşturarak hedefi 12'den vurmuştu.  Aklıma "çekici nereye vuracağını bilen usta hikayesi" geldi. Neyseki bizim çekiç bedeli 20 TL imiş.

Profesyonel olmak kolay, lakin bizler işimize ne kadar hakimiz? Ve ne kadar ustayız? Zor olan ise bu sorulardaki olması gereken cevabı verip, çekici yerine vuran usta olabilmek.

Not : Bu yazı, aynı zamanda kişisel bloğum olan http://www.kendimenotlar.com'da da yayınlanmıştır.