covering fire

January 18th, 2010

filmlerde mutlaka görmüssünüzdür; aksiyonun tam ortasındaki adamımız bir yerden başka bir yere hareket ederken silah arkadaşları duvarların arkasından silahlarini uzatıp boşluga ateş ederler ve düşman mermilerden saklanır. bu taktiğin adı covering firedır.

şimdi bu konuyu bir kenara bırakırsak, sormak istediğim bir soru var. Özel hayatınızda yazılım ile ilgili bir hobiniz varmı ? Maaşınıza ek olan arada bir yaptığınız, iş yerinde yarım kalmış konularla ilgili yada kardeşinizin ödevleri gibi konulardan bahsetmiyorum. sadece merak ve size keyif verdiği için uğraştığınız bir şey varmı ?

bu konuyu da bir kenera bırakırsak, yazılım dünyasında aslında son 10 yılda iş yapma tekniklerimiz neredeyse tamamen değişti. artık reusability yani yeniden kullanabilirlik oranı çok yüksek ve her ne iş yapmak istiyorsak yapmamız gereken legonun parçalarını bir araya getirmek. örneğin bundan 6 yıl önce bir websitesi açmak için 3-4 ay uğraşırken şimdi daha fazla fonksiyonları olan bir websitesini sadece 1-2 gecede çalışır hale getirebiliyorum. hayır yeteneklerim değişmedi, sadece kullandığım tool'lar farklı ve herşey neredeyse hazır.

belki bu mesleğe yeni başlamış kişiler hissetmiyor olabilir ama bazı şeylerin nasıl çalıştığına dair detayları bilmediğimi farketmeye başladım. mesela; ne yapıyorlarda bu Javascript nasıl bu kadar hızlı çalışıyor ? torrent dosyasının içinde ne var ? yada assembly'de windows uygulaması yazılabilir mi, yazarsam başıma ne gelir ?

gittikçe karmaşıklaşan ve uzmanlık alanlarının genişlediği bir meslek dalında bu tür tüm detayları bilmemek gayet doğal ama bu en azından bazı alanlarda ne olup bittiğine dair fikriniz olmalı. en azından firewall ayarlarındaki port'ların gerçekten ne işe yaradığını bilmeseniz bile DNS'in ne işe yaradığını biliyor olmalısınız.

anlattığım tüm bu sizi bazı detaylardan soyutlamayı, bazen çalıştığınız şirket bazende kullandığınız araçları yazan şirket bilerek yada bilmeyerek yapar. Bell Labs gibi bir yerde çalışmıyorsanız, romantik olmaya gerek yok. bulunduğunuz ortam ticari ve sizde orda ticari amaçlarla bulunuyorsunuz.

Tüm bu covering fire'dan kurtulmak için size önerim kendinize bir hobi edinin. akşamları yemekteyiz gibi abuk TV programları yada 2000 yıl önce gladyatör savaşlarını seyreden romalılar gibi anlamsız futbol maçlarını seyretmek yerine size yeni bir şeyler öğretip ufkunuzu genişletecek, kimsenin sizi kovalamadığı, bir bitiş tarihi olmayan bir arka bahçe yaratın kendinize.

amacının ne olduğuna siz karar verin, yeni bir blog motoru, yeni bir notepad, bir firewall yada uzun süredir arayıpda bulamadığınız herhangi bir araç olabilir. zaten bildiğiniz, iş yerinde yaptığınız işlerle uğraşmak sizi sıkacaktır, bu yüzden ne kadar yabancı sular olursa o kadar daha iyi. hergün sizi sıkıp bunaltmayacak 1-2 saatinizi ayırın, çok sıkılırsanız aylarca hiç bakmayın ama bir gün bitirmeyi hedef koyun kendinize.

aksi halde sonraki 10 yıl içerisinde şu anda ismini bile umursamadığınız, bir an önce siparişinizi size teslim etmesini beklediğiniz pizza kuryelerinden bir farkınız kalmayacak.

unutmayın alternatifin çok olduğu yerde sadakat azdır.

Internet sansürünü protesto için taksim yürüyüşü

January 16th, 2010

internetteki sansür ve yasakları protesto etmek için bobiler.örg taksimde yürüyüş düzenliyor. katılmak için tıklayın.

Bing

December 30th, 2009

Bugün bir toplantı sırasında Microsoft'un yeni arama motoru ile ilgili bir konu açılınca pazar payının %10'larda olduğunu duydum. Biraz şaşırdım açıkcası çünkü böyle bir kullanım oranı bana biraz fazlaymış gibi geldi.

Arama teknolojilerinde aslen herkes benzer işlemleri yapıyor ancak fark yaratan nokta sonuçları nasıl sıraladığınız. Bu fark öyle önemli ki sadece bir web sitesi üzerindeki textbox size milyon dolarlar kazandırabilir.

Örnek vermek gerekirse örneğin bing'de yapılan bir aramayla

Google'da yapılan bir arama

örneği kullanım olarak herşeyi açıklıyor zaten.

Bing sevenlerin itirazı olabilir, evet "hp T610" aradığınızda bing size resmini, fiyatları vs çıkarıyor olabilir ama çoğunluk kullanıcı üstteki örnekteki gibi bir arama yapıyor.

%10'luk kullanım oranı ile ilgili ise biraz araştırma ile, Bing kullanıma açıldıktan sonra yayınlanan bir güncelleme ile Internet Explorer (%80 kullanım oranıyla) üzerindeki default arama motoru Live yerine Bing olarak değiştirilmiş. Live'ın zaten %7-8 civarındaki oranıda eklenirse %80'lik kullanım oranı olan browser'da %10'luk bir kullanım oranı ancak anlamlı gelmeye başladı.

Bing ile ilgili en başarılı kısım resim arama. Benim ve etrafımdaki insanların tecrübesiyle sabit olan google'a göre daha iyi sonuç verdiği.

Tüm bunların içerisinde sadece anlamadığım Microsoft gibi dev bir yazılım şirketinin neden kendi alt sitelarında düzgün bir arama yapamadığı. Örneğin support.microsoft.com (ve çok kısa bir süre öncesine kadar msdn.microsoft.com) içerisinde arama kutusu ile işinize yarayacak bir şey bulmanız neredeyse imkansız.

Arama motorları ile ilgili kendi fikrim eğer çok çok iyi bir fikriniz yok ise Google gibi bir rakiple uğraşmak anlamlı değil. Bunun yerine Wolfram yada koders.com yada cimri.com gibi farklı olabileceğiniz teknolojiler daha başarılı olabilir.

Özet olarak Microsoft'un genel olarak arama motorlarında (MSN, Live, Bing, ..) pek şanslı olmadı, belki bu kararsız web stratejilerinden belki de web teknolojilerinden pek hoşlanmadıklarından.

Elektronik imza üzerine

November 29th, 2009

Uzun süredir yazmadım ama bu seferki yazı konuya şimdiye kadar dahil olan veya olmayanlar için umarım aydınlatıcı olur.

Yaklaşık 2-3 yıldır giderek popüler hale gelen elektronik imza bir çok kişi tarafından çok fazla bilinmiyor. Aslında böyle olması bilgi teknolojileri gibi bir yandan çok hızlı ilerleyen ama bir yandan da yıllardır aynı teknojinin etrafında oluşan yeni fikirlerle (unix, internet, cpu ...) ilerleyen bir yerde normal sayılabilir.

Konuyu dağıtmadan elektronik imza internette heryerde bulabileceğiniz bilgilere göre 70'lerin sonunda keşfedilmiş basit matematiksel işlemlere dayalı bir "ispat" mekanizması.

Kullanımının pratik olmaması nedeniyle şimdiye size hissettirmeden, e-ticaret, kredi kartları yada bankaya giriş yaparken kullandığınız şifreniz vs gibi pratik olabilecek hemen her alanlarda kullanıldı ama bildiğimiz anlamdaki imza olarak kullanılması (en azından Türkiye'de) 2004 yılına kadar bekledi. Halen bir sürü ülkede yasal kabul edilmediğini düşünürsek bu konuda diğer ülkelere göre ilerdeyiz.

Elektronik imza ile ilgili çıkan kanun doğal olarak herhangi bir teknojiyi referans almadan genel prensipleri söylüyor. Bu konu ile ilgili teknik düzenlemeleride eski adıyla Telekomikasyon Kurumu yeni adıyla Bilgi Teknojileri ve İletişim Kurumu'na delege etmiş durumda.

Buraya kadar olan herşey gayet can sıkıcı bilgiler ve olması gerektiği gibi.

Bu konuya devletteki bazı kurumlar ve özel sektör el attığında bize özgü problemlerimizi de yaşamaya başladık. Konunun sadece "para" olduğu durumda özel sektör'e hizmet verenler sadece satmak, devlet'e hizmet verenlerde eşi dostu sevindirmek için olabildiğinde bu konunun canını çıkardılar. Tabiki bu problemler şu anda hissedilmiyor ancak elektronik imzanın içerisindeki kriterlerden biri olan "zaman" ilerlediğinde çok ciddi problemler çıkmaya başlayacağını tahmin ediyorum.

En azından merak edip, öğrenmek isteyenler için bazı temel bilgileri vereyim dedim. İçerisinde teknik tanımlar geçebilir ancak yerine koyabileceğimiz başka bir bilgi henüz yok.

Sertifika

* Elektronik imza kullanabilmek için bir sertifika edinmeniz gereklidir.
* Kullanacağınız sertifikaları Devlet'in sertifika dağıtmaya izin verdiği belirli ESHS adı verilen kuruluşlardan alabilirsiniz. Bunların dışındaki yerlerden aldığınız (Verisign gibi) sertifikalar yasal olarak anlamlı değildir.
* Kullanacağınız sertifika kimlik belgeniz karşılığında sadece sizin şahsınıza Dongle, Token, Okuyucu Cihaz gibi envai isimler verilen bir cihaz içerisinde verilir. Bu cihaz sadece şifrenizi girdiğiniz zaman imzalama işlemi yapar ve içerisindeki bilgiler dışarı çıkarılamaması için mühürlenmiştir. Bunların dışındaki bir ortamdaki (dosya olarak, internetten indirdiğiniz vs.) sertifikalar niteliksiz kabul edildiğinden geçersizdir.
* ESHS'lerden aldığınız sertifikaların hepsinin belirli bir ömrü (1-3 yıl arası) bulunur. Bu süre bittiğinde sertifikanızı yenilemek zorundasınızdır. Aksi halde attığınız imzalar geçersiz kabul edilir.
* Size verilen sertifikalara benzer olarak ESHS'lerinde kendilerine ait sertifikaları bulunur. Bu sertifikalar sizinkine göre daha uzun süreli (10 yıl gibi) ve yeni sertifikalar üretebilecek niteliktedir.
* Kök sertifikaların ömrü dolduğunda yada iptal edildiğinde üretilen tüm sertifikalarda geçersiz hale gelir.

İmzalama ve Doğrulama araçları

Şu anda yerli ve yabancı kaynaklı kullanabileceğiniz bir çok imzalama ve doğrulama araçları piyasada bulunuyor. İnternet üzerinde basit aramalarla bu araçlara ulaşabilirsiniz. Bu araçlar çoğunlukla belirli standartlarda imza bilgisi üretir ve doğrularlar. Bu aşamada önemli olan bilgi aracın mutlaka standartlara bağlı kalması ve hangi standartları (formatlar kısmında detayı) desteklediğidir. Böylece farklı araçlar arasında karşılıklı alışveriş yapabilirsiniz.

İmzalama ve doğrulama işlemlerinde uygulanacak prosedürler içinde CWA-1470 ve CWA-1471 adı verilen belirli standartlar oluşturulmuştur. Bu standartları uygulamayan araçları kolaylıkla listenizden çıkarabilirsiniz.

Bu araçlar içerisinde ilgili standartları denetleyen bir tetkik mekanizması varmı bilmiyorum. Varsa da şimdilik ciddi bir tetkik yapılmadığını biliyorum.

Zaman Damgası

Zaman damgası genellikle ESHS'ler tarafından verilen güvenilir ve ispat edilebilir içerisinde zaman'ı içeren basit anlamda yine bir elektronik imzadır. Basitçe zaman damgasına elinizdeki bir "özet" bilgi ile gidersiniz ve o size "özet"+zaman bilgisi içeren bir elektronik imza üreterek cevap verir.

* Zaman damgası ile içerisindeki zamana ait o "özet" bilgisinin var olduğunu ispat edersiniz. Böylece size ait bilgi çalındığında o tarihte sizde ve böyle bir bilginin varlığını ispat edebilir hale gelirsiniz.
* Zaman damgası kesinlikle ve kesinlikle imza atılan bilgisayarın tarihi değildir. Tarih bilgisinin güvenilir bir kaynak olması şarttır.

Zaman damgası için herhangi bir sertifikaya ihtiyaç duymadan benimde geliştirme ekibinde olduğum Tasdix uygulamasını kullanabilirsiniz.

İmza Formatları

BES

* BES adı verilen en temel imza formatıdır, içerisinde sadece zorunlu olarak imza bilgisi bulunur. Bu formatta imzanın size ait olduğu ve imza attığınız zamandan itibaren değişmediğini size ispat eder.
* BES formatındaki elektronik imzalar sertifikanın ömrü kadar süre içerisinde geçerlidir. İçerisinde herhangi bir zaman bilgisi içermediğinden sertifika geçersiz hale geldiğinde kullanılan tüm imzalarda geçersiz hale gelir.
* İmzaladığınız sertifikanın herhangi bir nedenle eğer iptal (Revoke deniyor) edilmiş ise doğrulama işlemi yapılamaz.

Şu anda bir çok elektronik imza destekli uygulama BES formatında imzalama yapar. Buna MS Office (Word, Excel, Outlook ..), Acrobat (PDF) dahildir. Bu uygulamalar kendi elektronik imza formatlarını kullandıklarından en azından uzun bir süre içinde bu formatın ilerisini kullanmayacaklardır. Özet olarak kritik işlerinizde bu araçları kullanmayın.

Cades-BES

A

Çok eski bir format olan BES'e eklenti olarak gelmiş bir formattır. Meraklısı için bu linkten teknik detaylara ulaşılabilir.

* Cades-BES olarak atılan imza formatları BES formatına göre daha fazla bir şey vadetmez. Ancak daha sonra uzun süreli geçerli olabilecek imza formatlarına dönüşüm için gerekli altyapıyı sağlar. Hayır BES formatındaki bir imzayı Cades-BES'e dönüştüremezsiniz.
* Cades çok az ve yeni araç tarafından desteklenir ve filtrelemek için iyi bir kriterdir.
* Doğrulama işlemleri sırasında kullanılan sertifikanın halen geçerli olup olmadığını ilgili ESHS'lere ağ üzerinden bağlanarak kontrol eder.
* BES'le aynı şekilde kullandığınız serifikanız iptal edildiğinde tüm imzaladığınız bilgilerde geçersiz olur.

Cades-T

Cades-BES üzerinde zaman damgası bilgisinin eklenmiş halidir. Cades formatları içerisinde bu format pek fazla kullanılabilir değil ancak sonraki formatlara geçiş yapabilmenizi sağlar.

* Cades-BES üzerinde zaman damgası eklenerek oluşturulur. İmzalama işleminden hemen sonra eklenmesi gereklidir.
* Cades-BES'e ek olarak o tarihde imzalanan bilginin varlığını ispat eder. Ancak sertifika ile ilgili herhangi bir bilgi vermez.
* İmzalama sırasında kullanacağınız Zaman Damgası sunucusuna bağlanmak için ESHS'ye ağ bağlantısı gerektirir.
* Doğrulama sırasında kullanılan sertifikanın zaman damgası içerisindeki belirtilen tarihte geçerli olup olmadığını yine ilgili ESHS'lere ağ üzerinden bağlanarak kontrol eder.
* BES'den farklı olarak sertifikanın iptal edilmeden önce imzaladığınız bilgilerin doğru kabul edilmesini sağlar. Böylece sertifikanın ömrü dolsa bile imzanın geçerli olmasını sağlar.

Cades-X

Aslında X ile T formatı arasında bir C ismi verilen bir format daha var detay olduğunu düşündüğüm için atlıyorum. Meraklısı verdiğim rfc link'i üzerinden detay bilgi edinebilir.

* İmzalayan ve zaman damgasına ait kök sertifikalar da dahil olmak üzere tüm doğrulama bilgisini içerir.
* Doğrulama sırasında herhangi bir ağ bağlantısı gerektirmez.
* İmzalama zamanını ve o anda o sertifikanın geçerli olduğunu ispat eder.
* Cades-T'ye ek olarak ESHS'lere ait kök sertifikalar eskidiğinde yada iptal edildiğinde dahi imzanın doğrulanabilir olmasını sağlar.

Cadex-A

Son ve nihai olarak A'dan anlaşılacağı üzere arşivleme amaçlı olarak kullanılır.

* Cades-X'deki bilgilere ek belirli sürelerde zaman damgaları eklenerek oluşturulur.
* Kullanılan özet yada imza algoritmalarının ilerleyen teknoloji ile "kırılabilir" olması durumunda ispat sağlar.

Özet

Şimdi tüm bu bilgileri okuyan herhangi birisi "ya ne gerek var bu karmaşaya ? atıyoruz işte kalemle güzel" diyebilir. Çoğu alan için hak verebilirim ancak elektronik imza kullanımı bir çok alanda pratik faydalar sağlayabilir.

Örneğin benim en sevmediğim, basit bir dilekçeyi teslim etmek için Devlet Daire'lerindeki bitmek bilmeyen sıralarda boşuna beklemek zorunda değilsiniz. Yada en kötü senaryo ile imza attığınız herhangi bir evrak üzerindeki tarih bilgisi hiç bir kritere bağlı değil ve bunu kötü amaçla değiştirip kullanmayanlarda yok değil. Bu yüzden prosedürlerin çok ve adaletin yavaş işlediği memleketimizde elektronik imza bir çok yerde bize fayda sağlayabilir.

Tüm bu formatlar içerisinden rahatlıkla Cades-X sizin için en uygun sayılabilecek ve herhangi bir imzayı 25-30 yıl için geçerli kılan bir imza formatıdır. Teknoloji'deki eksik bilgi çoğunlukla "fazla" zararlı olmaz ancak elektronik imzayı kullanırken çok dikkatli bir şekilde uygulamak zorundasınız.

Biraz uzun ve sıkıcı bir yazı oldu affola.

Sharepoint

July 6th, 2009

Genelde Microsoft teknolojileri ile uğraşıyor olsamda gittikçe yaygınlaşan Sharepoint ile ilgili fikirlerimi paylaşmak istedim.

Adil olmak adına pozitif ve negatif yönleri üzerinden devam etmek istiyorum.

Neden sharepoint kullanmalısınız ?

Zaten bir çok yerde bu soruya cevaplar verildiği için listeyi kısa tutayım dedim. Bana göre iyi olan özellikleri;

  • Eğer bir portal ihtiyacınız varsa muhtemelen bulabileceğiniz en kapsamlı uygulama
  • Web sayfaları, Doküman Yönetimi, İş Akışı, (basit seviyede) uygulama geliştirme gibi ihtiyaçların büyük bir çoğunluğunu karşılıyor.
  • Active Directory ile kardeş
  • İstediğiniz kadar özelleştirilebiliyor.
  • Çok gelişmiş özelliklere ihtiyaç duymuyorsanız; Bedava.

Neden sharepoint kötü ?

  • Çok karışık. Yönetebilmek için Active Directory, Sql Server, ASP.Net, WebDav, Index Server, IIS, Live Communicator, Windows 2003, Url Rewriting, Xml, Xslt, Javascript vs gibi her biri uzmanlık gerektiren tüm bu teknolojileri biliyor olmanız gerekli.
  • Çok fazla buggy (hatalı). 2 ay da bir community update denilen hotfix paketleri çıkarılıyor, bir çok fonksiyon stabil halde değil. Eğer bir sorununuz varsa çözümleri için saatlerce forumlarda gezmek, belki şansınız varsa hotfix'inin çıkarılmış olma ihtimali var.
  • Doküman yönetimi ilk kullanımda romantik bir gezi gibi ama kullanmak istediğinizde bazı şeyler eksik kalıyor. Sharepoint içerisindeki herşey son kullanıcıların kendi kendilerine işlerini yürütebilecekleri şekilde tasarlanmış ama bir süre sonra içerik içerisindeki disiplin kayboluyor. Küçük firmalar için ideal olabilir ancak kurumsal yerlerde disiplin herşeydir.
  • İş akışı için içerisinde 3 adet şablon var ancak doküman onaylamak üzere tasarlanmış. Özel iş akışları tanımlanabiliyor ama hem .net üzerinde kodlama gerekiyor hemde çok basit temel fonksiyonlar var. Örneğin en temel fonksiyonlardan delegasyon yok. Standart'ların dışına çıktığınızda tüm operasyonu (mail atmak gibi) kendiniz yapmanız gerekiyor. Nasıl diyeyim.. "pain-in-the-*ss"
  • Windows authentication ile çok güzel çalışıyor ama internet üzerinden kullanmak istiyorum, yakışıklı da bir form çıksın yada tüm kullanıcı tanımlarım AD üzerinde değil dediğiniz anda tüm o Ofis entegrasyonlarını bir anda kaybediyorsunuz. Evet çözümler var ancak onlarda farklı kullanıcı profilleri gibi sorunlara neden oluyor.
  • Alt yapıda (SQL Server, AD gibi) "Express" çözümleri düşünmediğinizde ürün bedava olsa da ilk maliyet çok yüksek.
  • Firefox gibi browserlar minumum denebilecek seviyede destekleniyor. Internet üzerinden kullanmak istiyorsanız görüntülemede pek problem olmasa da içerik girişinde ciddi sorunlara neden olabiliyor.
  • Internet üzerinden kullanmak istediğinizde farklı bir lisanslama modeli var.

Özet

Eğer;

  • Halen bir portal kullanıyor ve mutlu değilseniz
  • Microsoft teknolojilerine kurulu bir altyapınız var ise ve devam etmek istiyorsanız
  • Halen doküman yönetimi, iş akışı kullanmıyorsanız
  • Binlerce kullanıcınız var ise
  • Yukarda bahsettiğim teknolojilerde uzman sayabileceğiniz personeliniz var ise
  • .Net üzerinde kodlama yapabilen bir developer ekibiniz var ise
  • Ciddi rakamlarda içerik (doküman, form vs) kaydetmek istemiyor iseniz
  • AD üzerinde lisansını ödediğiniz kadar kullanıcı hesabınız var ise

sorularından çoğunluğuna evet diyorsanız Sharepoint sizi muhtemelen mutlu edecektir. Eğer aklınıza yatmadı ise yerine deneyebileceğiniz oldukça fazla open source alternatifler var ancak bulmacanın parçalarını bir araya sizin getirmeniz gerekiyor. Özellikle belirli konularda farklı alternatifleri kullanmak sizin faydanıza olacaktır.