15 Mayıs 2013 Çarşamba

Bitirme projesi

Üniversitenin son yılında bütün mühendislik fakültelerinde iki dönem süren bir bitirme projesi dersi oluyor. Bu ders iyi kullanılırsa öğrencinin meslek hayatına atılmadan önce kullanabileceği çok iyi fırsata dönüştürülebiliyor. Eğer bir özgür yazılım projesine katılmamışsa yeni mezun bir bilgisayar mühendisinin şunu yaptım diyebileceği bitirme projesinden başka çok az şey oluyor elinde. Bir diğer fırsat alanı da yaz stajları ama o ayrı bir yazının konusu olabilir.

Elbette bir özgür yazılım projesinin parçası olmak cv'ye yazılabilecek en havalı şey. Bunun için ne bir danışmana ihtiyacınız var ne de başka bir şeye. Biraz İngilizce ve çokça çalışmak sizi istediğiniz özgür yazılım projesine dahil edebilir. Bence bir bilgisayar mühendisinin ortak çalışma yürütebildiğini, bir plana bağlı çalışabildiğini gösteren en önemli gösterge okulunun dışındaki birileriyle birlikte bir geliştirme yapmış olmasıdır. Ohloh'daki hesabınız bence sayfalarca cv'den daha etkili olacaktır.

Aşağıdaki önerileri okurken bambaşka doğrular da olabileceğini hesaba katmak, bunları yapmadan da çok başarılı olunabilirken bunları yapıp da başarısız olunabileceğini de unutmamak gerekir.

Danışman seçimi:

  • Bitirme projesinde danışmanınızı siz seçebiliyorsanız (bunun seçime bağlı olmadığı yerler de var) ne yapmak istediğinize bağlı bir seçim yapın. Danışmanınızın sürekli çalışmalarınızla ilgilenmesini, danışmanlık yapmasını istiyorsanız size vakit ayırabilecek birini seçin. Bu konuda hayalci olmayın. Hocanın ders yükünü haftalık mesaisinden çıkartıp kalan zamanı öğrenci sayısına bölmeyin. Gerçekte size ayırılabilecek zaman bu hesapta ortaya çıkanın çok altında olacaktır. Sizin de dersleriniz var ve bunlar hocanın size ayırabileceği vakitlerle nadiren çakışmayacaktır. Bir hocanın haftalık 1-2 saatini size ayırabilmesi durumunu olumlu kabul etmelisiniz. Projenizde daha fazla danışmanlığa ihtiyacınız olacaksa bunu baştan hocayla konuşun.
  • Projenize fazla karışan olmasın istiyorsanız gidin başı en kalabalık hocayı seçin. Hocanın çalışma alanıyla sizin projenin arası ne kadar fazla açılmışsa o kadar serbest kalacaksınızdır muhtemelen. Bunu önermiyorum ama hocanın çalışma alanında birşeyler yapıp gözden ırak olmayı beklememek gerekir diye yazıyorum.
  • Kiminle çalışacağınıza kesinlikle üçüncü sınıfın sonunda karar vermiş olun. Hocanın o yıl mezun olanlara hangi projeleri yaptırdığına bakın. Bazen çok iyi bir danışman sizi pek de ilgilenmediğiniz bir alana yöneltip, sevdirebilir. Danışmanınız olmasını istediğiniz bir kaç hocayla konuşun. Yanına gittiğiniz herkesin "nasıl bir konuda çalışmak istiyorsun" diye soracağını ve sizin "bilmiyorum" cevabınızı beğenmeyeceğini hemen söyleyebilirim.
  • Danışmanınızla ev arkadaşı olmayacağınızdan en çok anlaşabildiğiniz hocayı seçmenize gerek olmasa da en anlaşamadığınız hocayla çalışmak da çok keyifsiz olacaktır.
  • Bitirme projesindeki danışmanınızı en azından haftada bir defa göreceksiniz ve bu onu sınıfta 40-50 kişiyle birlikte görmek gibi olmayacak. Ya tek başınıza ya da ekip arkadaşlarınızla olacaksınız. Muhtemelen arada yaptıklarınızı beğenmeyecek. O hafta niye yeterince çalışmadığınızı soracak. Bazen onun dinlemeye enerjisi olmayacak ama sizin hep anlatacak enerjinizin olması gerekecek. O size kızacak ama siz ona küsemeyeceksiniz, bunu kesaba katın.
  • İlk iş başvurunuzda muhtemelen danışmanınız aranacak referans olarak.
  • Belki danışmanınızın 100. öğrencisi olacaksınız ama o sizin tek danışmanınız olacak. Bu seçimi iyi düşünerek yapın.
  • Sonuçta kiminle çalışırsanız çalışın her şeyi siz yapacaksınız. Çok çalışırsanız başarılı olacaksınız. İşin en net kısmı burası.
Proje seçimi:

  • Proje seçimi aşamasında sizden beklenen hangi alanla ilgilenmek istediğinize karar vermiş olmanız. Bu çerçeveyi belirlediğinizde konuyu hocanın danışmanlığında kararlaştırabilirsiniz. Elbette üzerinde çalışmak istediğiniz konuyu belirleyebilmişseniz bu daha da iyi olacaktır ama danışmanlık denen iş konuya karar verme aşamasında başlıyor çoğu zaman.
  • Kendinizi nasıl bir iş yaşamının içinde düşünüyorsanız bununla ilgili bir proje konusu belirlemeye çalışın. Mesleğe atılmadan önceki son yılınızı bir bakayım bu konuya diyerek geçirmeyin. Meslek hayatınızda tornavida tutmayı planlamıyorsanız bitirme projenizde de tutmayın.
  • Hiç yapılmamış birşeyi yapmaya çalışmayın. Sizden dağların yerini değiştirmeniz beklenmiyor. Bu proje ile kendinize en fazla ne katabilirseniz öyle değerlendirin.
  • Hem ulusal hem de uluslararası bir çok proje yarışması var. Onlardan birine katılmak yararlı bir deneyim olabilir.
  • Meslek hayatınızı da teorik çalışmalarla geçirmeyecekseniz mutlaka sonucunda ortaya birşey çıkan bir proje konusu belirleyin.
  • Okuldan mezun olduğunuzda bitirme projesi de sizin için bitmiş olacak. Bunu düşünerek yıl sonuna kadar tamamlayabileceğiniz bir iş seçin. Kesinlikle mezun olduktan sonra da geliştirmeye devam ederim demeyin. Etmezsiniz.
  • Projenizi belirledikten sonra mümkün olduğunca duyurun. Hakkında blog yazın, kodlarını paylaşın. Fikriniz çalınır diye korkmayın. Zaten işi tamamladığınızda gösterebilmek için yapıyorsunuz. Çalacak olan o zaman çalar. Çok istisnai durumların dışında projeniz hakkında ne kadar çok ses çıkartırsanız o kadar iyi olacaktır sizin için. Konuşabileceğiniz, çalışmalarınızı sunabileceğiniz her fırsatı değerlendirin.
Bireysel çalışma mı ekip çalışması mı?

  • Her ikisinin de zorlukları var. Bireysel çalışırsanız takıldığınız yerden çıkarken yardım alabileceğiniz kimse olmayacaktır ama bu aynı zamanda kimseyi bir yerden çıkarmanızın da gerekmeyeceği demek olur.
  • İkiden daha kalabalık ekiplerin yönetimi işi çok zahmetlidir. Hele ekip elemanlarının arkadaşlarınız olacağını düşünürseniz, ancak çalışma konunuz birbirinden bağımsız alanlara ayrılabiliyorsa ve danışmanınız bu kalabalık ekibi idare etmeyi göze alıyorsa böyle bir işe girişin. Yoksa sonu hüsran olur.
  • İki kişilik bir ekip iyidir aslında. Bazen siz ona sırtınızı dayarsınız, bazen o size. Hem koordine olması hem de birbirinin eksiğini kapatması kolay olur ama sakın sevgilinizle birlikte bir ekip oluşturup bitirme projesi yapmaya kalkmayın.
  • Mezun olduğunuzda mutlaka bir ekiple çalışacaksınız diye illa bitirme projesini de bir ekiple yapmanız gerekmez. İş hayatındaki takım arkadaşlarınız profesyonel insanlar olacağından (tamam beklentilerinizi çok yüksek tutmayın ama bu işten para kazanıyor olacaklar en azından) öğrencilikten çok farklı bir çalışma disiplini olacak herkeste. Çalışacağınız konuya, danışmanınıza ve size bağlı olarak bireysel çalışmak bazen daha iyi olabilir.

12 Mayıs 2013 Pazar

Bilgisayar mühendisliği öğrencileri için kriptografi dersi

Önce kısaca bu yazı yazıldığındaki durumumuzu özetleyeyim. Hiç bir bilgisayar mühendiliği bölümünde kriptografi zorunlu ders olarak okutulmuyor (veya ben bilmiyorum). Az sayıdaki üniversitede ise çeşitli isimler altında seçmeli ders olarak müfredatta yer alıyor. Ben üç yıldır Çanakkale'de bilgisayar mühendisliği öğrencilerine kriptografi'yi seçmeli ders olarak anlatıyorum.

Kriptografi günümüzde iyi bir matematik alt yapısı olan ve bilgisayar mühendisliği bakışına sahip bilim insanları için disiplinler arası bir çalışma alanı konumunda. Bu alanda çalışmak için mutlaka matematik çalışmayı sevmek gerekiyor. Bir çok kriptografik algoritmayı anlayabilmek için bile temel matematiğin üzerinde bilgi seviyesi gerekli oluyor. Bu nedenle dersi takip etmek, kriptografik algoritmaların büyüleyici güzelliğini görmek diğer derslere göre biraz daha zahmetli olabiliyor. Bu dersi alan üçüncü sınıf bilgisayar mühendisliği öğrencileri dersin tüm detaylarını takip edecek kadar matematikle ilgili olmuyorlar. Lisans seviyesinde bir seçmeli derste öğrencilere kriptografinin nasıl bir çalışma alanı olduğunu ve içindeki çarpıcı güzelliği göstermenin bile başarı olacağını düşünüyorum.

Derste kriptografinin güvensiz bir medyayı kullanarak nasıl güvenli haberleşme yapmayı sağlayabildiğinin yolları anlatılıyor. Anlatılan matematiksel kavramların başında kendisinin hesaplanması kolay fakat tersinin bulunması çok zor fonksiyonlar (tek yönlü fonksiyonlar) geliyor. Bu tip fonksiyonlar veri bütünlüğünün kontrol edilmesinde ciddi kullanım alanına sahipler. Bir veriyi bu tip bir fonksiyonla şifreleyip alıcıya göndermek ilk bakışta iyi fikir gibi görünse de bu veriden anlam çıkarmasını beklediğimiz tarafın da aynı zorluğu yaşayacağını düşünürsek şifrelemede neden kullanılamayacaklarını hızlıca anlayabiliyoruz. Burada imdadımıza tek yönlü fonksiyonların ilave bir bilgi kullanılarak kolayca geri döndürülebilen bir hali olan arka kapılı tek yönlü fonksiyonlar yetişiyor. Bu tip fonksiyonlar bu ilave bilgiyi (anahtar) bilen taraf için kolayca geri döndürülebilirken, bilmeyen taraflar için geri döndürülemez fonksiyonlar olarak tanımlanıyorlar.

Arka kapılı tek yönlü fonksiyonlar kriptografide çok önemli bir yere sahipler. Şifrelemede kullanılan anahtar sadece yetkili taraflarda bulunduğu sürece hangi şifreleme yönteminin kullanıldığının bilinmesi bile bir tehlike oluşturmuyor çünkü fonksiyonlar ancak bu anahtar sayesinde geri döndürülebiliyorlar. Şifreleme ve deşifreleme işlemlerinde aynı anahtarın kullanıldığı bu simetrik kriptosistemlerin önemli algoritmaları derste en basitlerinden daha karmaşık olanlarına doğru anlatılarak kriptografideki gelişimin gözlemlenmesi sağlanmaya çalışılıyor. Elbette konu ikinci dünya savaşında Almanya'nın hesaplarını bozan ve hepimizin kaderinin değişmesinde rolü olan Alan Turing'e, onun çalışmalarına ve hazin sonuna geliyor. Bu aşamada öğrenciler tek kullanımlık şerit haricindeki tüm şifreleme yöntemlerinin kırılabilir olduğu gerçeğiyle yüzleşmiş oluyorlar.

Simetrik şifreleme çok başarılı çalışmasına rağmen çok ciddi bir sorunu da beraberinde getiriyor: anahtarın karşı tarafa ulaştırılması. İletişimde bulunulan kanal güvensiz olunca anahtarı deşifrelemeyi yapmasını istediğimiz tarafa ulaştırmak önemli bir problem haline geliyor. 1970'lerin sonuna dek bu sorunun üstesinden gelmenin anahtarı bir başka güvenli iletişim kanalı kullanarak göndermekten başka yöntemi bulunmuyordu. Kriptografide önemli bir kilometre taşı ve radikal bir fikir olan şifrelemede başka, deşifrelemede başka anahtar kullanılması fikriyle bu sorunun üstesinden gelmek hedefleniyor. Açık anahtarlı şifreleme olarak adlandırılan bu yöntem ile önerilen birbiriyle ilişkili bir anahtar çifti üretilmesi ve şifrelemede kullanılacak anahtarın herkesin ulaşabileceği şekilde bulundurulması oluyor. Bu harika fikir sayesinde açık anahtarını bildiğiniz birine elinizdeki düz metni şifreleyip gönderip sadece onun bu metni deşifreleyebileceğine inanmanız mümkün oluyor.

Şifreleme yapan tarafın deşifreleme yapamaması elbette çok iyi bir fikir ama bu nasıl gerçekleşecek sorusu da önemli. Sonuçta yapmak istediğimiz şey birbiriyle ilişkili iki anahtar üretmek ve bunların sadece birini bilen bir tarafın diğerini hesaplayamamasını sağlamak. Burada hesaplayamaması derken elbette anlamlı bir zamanda bu hesabın sonuçlanmasını kastediyoruz. Günlük hayatta kullandığımız büyüklükteki sayılarla bu sorunun üstesinden gelmek mümkün değilken ölçek büyüyünce kolay diye düşündüğümüz bir çok işlemin geri döndürülmesinin çok zor olduğunu görüyoruz.

Bu yöntemlerin en çok bilinenlerinden biri olan RSA, 1977 yılında üç büyük bilim insanı tarafından büyük sayıların asal çarpanlarına ayrılmasının verimli bir zamanda yapılamayacağı varsayımından yola çıkılarak oluşturuluyor. Bu yazıda matematiksel alt yapısına değinmenin imkanı yok ama p ve q gibi iki büyük asal sayıyı çarpmak fevkalade kolayken onların çarpımından oluşan (=pxq) sayısını asal çarpanlarına ayırmak geri döndürülmesi çok fazla işlemci zamanı alacak bir işlem olarak karşımıza çıkıyor. Asal sayılar matematikçilerin yüzyıllardır çalıştığı alanlardan biri olmasına rağmen bir asal sayı formülü bulunabilmiş değil. Hatta bu konuda bir ümit de yok benim bildiğim. Büyük sayıların asal çarpanlara ayrılması problemini kullanan Rabin Kriptosistemi gibi başka kriptosistemler de mevcut. Derste bu noktaya gelindiğinde öğrencilerin çarpma gibi basit bir işlemin sayılar yeterince büyük olduğunda geri döndürülemez bir işlem olduğunu görüp büyülenmeleri hedefleniyor ama bu nadiren olan bir şey genellikle.

Açık anahtarlı kriptografide kullanılan çözülmesi zor tek problem elbette asal çarpanlara ayırma değil. Örneğin Merkle-Hellman kriptosistemi alt küme toplamı problemine dayanıyor ve alt küme toplamı problemi de ancak kümenin eleman sayısı çok fazla olduğunda bir problem olarak karşımıza çıkıyor.

Eliptik eğriler de kriptografik olarak önemi olan konular arasında olduğundan onlardan bahsetmeden geçmek mümkün değil. Öğrenciler eliptik eğriler hakkında neredeyse hiç bir şey bilmiyor olmalarına rağmen eliptik eğri kriptografisinin kavramlarını kolayca anlamaları mümkün oluyor.

Açık anahtarlı kriptografi sadece simetrik şifrelemede kullanılan anahtarın taraflar arasında değişimini sağlamakla kalmıyor elbette. Simetrik şifreleme kullanılırken mevcut olmayan elektronik imza kavramı da açık anahtarlı şifreleme ile hayatımıza giriyor. Elektronik imza ile ıslak imzada bulunan inkar edilemezlik, taklit edilemezlik, veri bütünlüğünün kontrolü [2] gibi kavramlar elektronik belgeler için de kullanılabilir hale geliyor. Dersin bu aşamasına gelindiğinde bütün öğrencilerden eposta adresleri için oluşturdukları elektronik imzaları sunuculara yerleştirmeleri ve bu imzaların parmak izlerini sınıftaki arkadaşları ile paylaşmaları isteniyor. Bu anahtar imzalama partisi sayesinde elektronik imzalar güvenli bir şekilde paylaşılmış oluyor.

Açık anahtarlı şifreleme denilince Diffie-Hellman anahtar değişim protokolünün şaşırtıcı algoritması ile herkesin erişebildiği bir medya üzerinden sadece gönderenin ve alanın bildiği bir sırrın oluşturulmasını da anlatmadan geçmek mümkün değil [1]. Renklerle bile kolayca anlatılabilen bu algoritmanın akıl dolu bambaşka bir güzelliği mevcut olsa da bundan etkilenen çok fazla olmuyor.

Simetrik ve açık anahtarlı kriptografinin çeşitli algoritmalarını görmüş olan öğrenciler artık kendilerini şaşırtacak bir şey kalmadığını düşünürken kriptografide sorunlar ve çözümler tükenmiyor. Dönem başından itibaren iletişim kanalının güvensiz olduğu ve bu kanalı dinleyen üçüncü taraflar olabileceği anlatılırken bu iletişimi dinleyen pasif bir dinleyici olup olmadığı nasıl anlaşılır sorusu gündeme geliyor artık. Veri iletişimini pasif olarak dinleyen, müdahalede bulunmayan birinin fark edilmesi klasik kriptografik yöntemlerle mümkün değilken kuantum kriptografi bu soruna da bir çözüm getiriyor. Lise ve üniversite eğitim hayatında kuantum mekaniği ile ilgili hiç bir şey görmemiş bilgisayar mühendisliği öğrencilerine Heisenberg'in belirsizlik teoremini anlatacak kadar teorik bilgi verdikten sonra BB84 anahtar değişimi algoritmasının gerçek üstü gibi görünen etkileyici algoritması anlatılıyor.

Yaklaşık 30 yıllık bir geçmişi olan BB84 gözlem yapanın gözlediğine müdahale ettiği gerçeğine dayanıyor. Sadece kriptografi için değil sosyal olarak da çok geniş etkileri olan Heisenberg'i bile hayatında hiç duymamış olan öğrencilerin BB84'ü anlayıp etkilenmeleri elbette hiç kolay olmuyor.

Artık görülecek her garipliği gördük diyen öğrencilere son olarak deterministik olmayan kriptosistemlerin de varlığını göstererek kriptografinin büyük resmini görmelerine yardımcı olmayı hedefliyoruz. Deterministik kriptosistemler aynı anahtarı kullandıkları sürece bir düz metni her seferinde aynı şifrelenmiş metne dönüştürürken probabilistik kriptosistemler aynı anahtarı kullanmalarına rağmen her seferinde farklı şifrelenmiş metinler üretmeleriyle bambaşka bir güzelliğe sahipler. Anahtar üretimi sırasında bütün kriptosistemler rasgelelik içerseler de probabilistik açık anahtarlı kriptosistemlerin şifreleme işlemi sırasında da rasgelelik içermesine rağmen geri döndürülebilir olmaları ilk bakışta şaşırtıcı geliyor ama Blum-Goldwasser, Goldwasser-Micali ve Okamoto-Uchiyama gibi algoritmaların detaylarıyla konunun anlaşılması hedefleniyor.

Kriptografinin bu geniş yelpazesi ve gerektirdiği yoğun matematik göz önüne alındığında bir dönemlik bir ders ile öğrencilere kazandırılabilecek şeylerin oldukça sınırlı olduğunu söyleyebilirim. Ben bu dersi düzenli takip eden bir öğrencinin veri şifreleme, deşifreleme, imzalama gibi kavramlar hakkında bilgi sahibi olmasını ve ileride bu konular hakkında araştırma yapmak istediğinde hedefine kolayca ulaşabilmesini hedefliyorum. Hiç kriptografi ile ilgili çalışmayacak bir bilgisayar mühendisinin bile veri iletişimi, saklanması gibi konularda nelerin yapılabilir, nelerin yapılamaz olduğu konusunda bir vizyonunun olması gerektiğini düşünüyorum. Neredeyse bütün web trafiğinin https üzerinden aktığı düşünülürse bu protokolün nasıl çalıştığını [3] bilmeyen bir bilgisayar mühendisi olmaması gerektiğini düşünüyorum.

Giderek daha yaygın kullanım alanları ortaya çıkan blokzincir kavramı ve uygulamaları da anlatılarak ders dönemi sonlandırılmış oluyor.

Son olarak; yazıda İngilizce wikipedia'ya bir çok bağlantı var. Bu maddelerin büyük bölümünün Türkçe wiki'de ya hiç karşılığı yok ya da çok kısa maddeler olarak bulunuyorlar. Her dönem kriptografi dersini alan öğrencileri bu ve benzeri maddeleri yazmaları/genişletmeleri konusunda teşvik ediyorum. Umudum odur ki bir kaç yıl sonra kriptografinin temel kavramlarının tamamı Türkçe wikipedia'da da mümkün olduğunca detaylı bir şekilde okunabilecek hale gelecektir.

[1] https://www.nyucel.com/2019/07/guvensiz-kanaldan-anahtar-degisimi.html
[2] https://www.nyucel.com/2017/02/sha1in-krlmas-ne-anlama-geliyor.html   

[3] https://www.nyucel.com/2017/05/https-nasl-calsyor.html

4 Mayıs 2013 Cumartesi

Muğla Özgür Yazılım seminerinin ardından

26 Nisanda Enis Karaarslan'ın davetlisi olarak Muğla Üniversitesine Linux ve Özgür Yazılımlar hakkında konuşmak için gittik. Bir ay sonra meslektaş olacağımız öğrencilerim Serhat Rıfat Demircan ve Ahmet Can Kepenek, üçüncü sınıfta ilk konuşmasını yapan Ebru Akagündüz ve ikinci sınıf öğrencilerimden Esra Altıntaş ile birlikte güzel iki gün geçirdik.


2007'de Ulaknet Çalıştayına ve 2010'da Akademik Bilişim Konferansına katıldığımda gittiğim Muğla'yı ilk defa Enis sayesinde etraflıca gezme fırsatım oldu. Doğal güzellikleriyle gerçekten görülmeye değer bir şehir Muğla. Üniversitenin fiziksel şartları da bir arada değerlendirildiğinde Muğla'nın bana yaşanabilir bir şehir olarak göründüğünü söylemeliyim.

Yaklaşık dört saat süren konuşmamız sırasında 80 kişilik salon neredeyse tamamen doluydu. Ben ilk olarak Linux ve özgür yazılımlar hakkındaki büyük resmi çizmeye çalıştım. Daha önce defalarca aynı konuda konuştuğum için dinleyiciler için sıkıcı bir konuşma olmadığını tahmin ediyorum. Benden sonra konuşan Serhat ve Ahmet daha önce iki Akademik Bilişim Konferansında dörder günlük python eğitimi verdiklerinden oldukça tecrübeli konuşmacılar olarak özgür yazılım projelerine katkıda bulunmanın yollarından bahsettiler. Daha sonra ilk konuşmasını yapacağı için çook heyecanlı olan Ebru ve Serhat örnekler üzerinden Gnome bugzillasından birer hatayı nasıl kapattıklarını, sürecin nasıl işlediğini anlattılar. Her ikisi de yaptıkları işleri çok samimi bir anlatımla kendi akranları olan dinleyicilere aktardılar. Son dakikaya kadar heyecandan eli ayağı titreyen Ebru kendi beklentisinin de üzerinde bir canlılıkla konuştu. İkinci sınıf olan Esra bu sefer konuşmadı ama bundan sonraki etkinliklerde o da konuşmacılar arasında olacak.

Bizi dostça misafir eden Enis hocaya bütün ekip adına teşekkür ediyorum. Ahmet, Esra ve Serhat'a da kendileriyle gurur duyduğumu buradan da yazmış olayım.

23 Nisan 2013 Salı

VSRE: "very short reply expected" (çok kısa cevap bekleniyor)

Sıklıkla tek kelimelik cevaplar verebileceğimiz epostalar alıyoruz. Aslında sadece "Evet", "Hayır", "Geleceğim" yazmak istediğimiz halde bunun kabalık olarak algılanacağını düşündüğümüzden bu basit cevapları yazamıyoruz.

Basitçe "katılamayacağım" demek yerine "Selamlar Erdinç, Düzenlediğiniz ... konferansını takip ediyorum. Çok katılmak istememe rağmen ... ve ... ve ... nedeniyle üzülerek katılamayacağım. Nazik davetin için teşekkür eder, başarılı bir etkinlik olmasını dilerim." gibi uzunca yazmak gerekiyor. Bazen olumlu cevap vermek de aynı karmaşıklığı gerektirebiliyor. Ancak çok yakın tanıdıklarımıza "geliyorum, biraz detay ver" diye yazabiliyoruz.

Uzun cevap yazmak çoğunlukla daha geç cevap yazmak demek oluyor. Aslında cevabı alan kişi de bizim yazmak istediğimiz o kısa cevabı bekliyor oluyor çoğu zaman.

Davetiyelerde çokça rastladığımız RSVP (lütfen cevap verin) gibi bir anlaşma ile bu sorunun üzerinden gelinebileceğini düşünen Panayotis Vryonis'in önerisi kısa cevap beklediğimizde VSRE kullanmak. Bir kaç şekilde kullanmak mümkün VSRE'yi:
  • Eposta konu satırında "VSRE: Uluslararası Özgür Yazılım Konferansı daveti" ifadesini görünce rahatça "gelemeyeceğim", "bunu kaçırmam" gibi cevaplar verebiliriz.
  • Epostanın sonunda "Cevabınızı bekliyorum (VSRE)" veya "VSRE, Necdet" ifadelerini gördüğümüzde de yine kısa cevaplar verebiliriz gönül rahatlığıyla.
Bir epostada VSRE ifadesini kullandığınızda tek (en fazla beş) kelimelik cevaplara razı olduğunuzu unutmamanız gerekir. Hem postada VSRE kullanıp hem de aldığınız "peki" cevabına alınmak uygun olmayacaktır.

Hepimizi rahatlatacak bir anlaşma olacağını düşündüğüm VSRE henüz iki günlük bir öneri. Hakkındaki tartışmalara buradan gözatmak veya katılmak isteyebilirsiniz.

16 Nisan 2013 Salı

Kilis 7 Aralık Üniversitesi Linux seminerinin ardından

12 Nisan'da Türkiye'de İnternetin 20. yılında 'Türkiye'de Linux'un Gelişimi' başlıklı bir konuşma yapmak için Kilis 7 Aralık Üniversitesindeydim. Hem daire başkanı Mikail hoca hem de üniversitede çalışan arkadaşlar çok sıcak karşıladılar ve misafir ettiler beni. Çok ilgisiz bir topluluğa konuşmuş olsam da sadece üniversitede çalışan arkadaşlarla görüşmek bile gittiğim onca yola değdi.

Kilis'e 2010 yılında Ağ Teknolojileri Durum Tespit Komisyonu üyesi olarak gitmiştim. Aradan geçen üç yılda artan öğrenci sayısının ve Suriye'den göç edenlerin etkisiyle şehir oldukça değişmiş. Üç yıl önce öğrencinin oturup gevezelik edebileceği neredeyse hiç yer yokken buradan para kazanılacağını görenler sayesinde alternatif mekanlar açılmış. Suriyeden gelenlerin sayısının çok fazla olması nedeniyle Arapça neredeyse ikinci dil olarak konuşulur olmuş. Bu büyük göç sayesinde ev kiralarının çılgınca artması ve şehrin inşaat alanına dönüşmesi herkesin tahmin edebileceği ama üzücü sonuçlar olarak hemen görülebiliyor.

Her ne kadar değişmiş olsa da hala bir sineması bile olmayan bir il merkezi Kilis. Üniversitenin fiziki şartları iyileşmiş olmasına rağmen, çalışanlar ne kadar iyi niyetli olsalar bile Kilis'te öğrenci olmak da çalışmak da çok zordur eminim.

9 Nisan 2013 Salı

Özgür Yazılım ve Linux Günleri 2013'ün ardından

Özgür Yazılım ve Linux Günleri bu yıl da çok eğlenceli geçti benim için. İşin doğrusu etkinliğin ana teması NoSQL olunca çok fazla konuşma benim ilgi alanımın dışında kaldı. Eminim veritabanı insanı olmadığı için etkinliğe gelmemiş çokça insan vardır.

Etkinlik Musta ve Chris hocaların kısa konuşmalarıyla başladı. Her ikisini de dinlemenin ayrı keyifli tarafları var. İkinci konuşmalar arasından Ahmet Kaplan'ın Pardus'la ilgili sunumu bence dikkat çekiciydi. Ahmet hoca yaptıkları çalışmaları anlattı. Mevcut durum neredeyse kimseyi tatmin etmediği gibi sunumdaki açıklamalar da bence yetersizdi. Keşke teknik ekipten de biri olsaydı ve o cevaplasaydı soruları. Ahmet hoca çok geniş pencereden geleceğe yönelik planlarını anlattı ama anlattıklarını destekleyecek şeyleri gösteremiyor oluşu ikna ediciliğini çok azalttı doğrusu. Pardus eski geliştiricisi Ozan Çağlayan söz alarak durumdan memnun olmadığını ve durumu takip edeceğini söyledi. Konuşmanın ardından etkinlik alanında da kalabalık bir grup birlikte konuştular ama ben dinleyici olarak katılmadım sohbete. Bu vesileyle kısa süreliğine memlekette bulunan Gökçen'i de görmüş oldum.

Üçüncü oturum olarak Çağrı Ersen'in nagios sunumunu dinledim. Yazılarından tanıdığım ve takdir ettiğim biri olduğundan yüz yüze görüşüp tanışmış olmaktan çok mutlu oldum. Sunum her açıdan çok başarılıydı. Keşke iki lafın belini kırmaya fırsat olsaydı. Umarım başka bir etkinlikte bu fırsatı yakalayabilirim.

Öğleden sonra önce JMeter anlatan Gökhan Akgün'ü dinledim. Gökhan çok akıllı ve çalışkan biri olduğundan ileride eminim çok daha iyi bir hatip olacaktır. Bu sunum da güzeldi bence.

İlk günü Doruk'un salondan taşan katılımcıların olduğu Sürdürülebilir Linux Sistem Yönetimi semineri ile bitirdik. Doruk zaten yılların tecrübeli konuşmacısı olduğundan herkesi konunun içine çekerek çok başarılı bir konuşma yaptı. Eminim herkes beklediğinden fazlasını bularak ayrılmıştır ilk günün sonunda.

Pazartesi başlayan sınavları olmasına rağmen iki geceyi yolda geçirmeyi göze alıp benimle birlikte gelen öğrencilerim Aybüke, Ebru ve Esra ilk günün sonunda geri döndüler. Konu sınavlar olunca ısrar etmek imkanı olmadı ama hem akşam sohbetlere hem de ikinci güne katılmış olmalarını çok isterdim doğrusu. Bu kadarının bile onlar için iyi bir tecrübe olduğuna eminim.


İkinci gün Couchbase anlatan Kaan ve İşbaran'ı dinleyerek başladı etkinlik benim için. Her ikisi de konuya çok hakim olduklarından benim dinlediğim en başarılı sunumlardan birini yaptılar. Olumlu ve olumsuz yanlarıyla tecrübelerini çok iyi aktardılar. Bu iki kocaman adamla öğrenciliklerinde birlikte bulunmuş olmaktan bir kez daha gurur duydum.

Etkinliğin son oturumunda geçen yıldan bu yana konuştuğumuz Yakından Eğitim hakkında bir sunumumuz oldu. Katılanların çok büyük bölümünü tanıyordum, benim tahminimin çok altında katılımcı vardı salonda. Yakından Eğitim'i neredeyse hiç duyuramadığımızı etkinlik alanındakilerin neredeyse hiçbirinin haberinin olmamasından anlamak mümkündü. Umarım bu dönem yapılacak güzel işlerle bir sonraki döneme başlarken daha çok adını duyurabiliriz.

Bilgi Üniversitesi ekibi her yıl olduğu gibi yine çok iyi hazırlanmıştı, aksayan birşey yoktu, özverili çalıştılar, sağolsunlar.

Etkinliğin geri kalan büyük bölümü, cuma ve cumartesi akşamları da dahil olmak üzere hep arkadaşlarla muhabbet etmekle geçti. Sadece biriyle konuşmak için bile bu yolu tepebileceğim yirmiden fazla arkadaşla birlikte olmak çok güzeldi. Bu kadar güzel ve akıllı genç kadınla, fişek gibi delikanlılarla (elbette daha az genç ve göbekli olanlarla da ;)) dopdolu geçen iki günün ardından etkinlik de bitti.

2 Nisan 2013 Salı

Pardus 2013 izlenimlerim


Mevcut durumda Pardus bir özgür yazılım projesi gibi sürdürülmüyor. Pardus 2013 diye önümüze konan şey de bildiğimiz Debian. Hal böyle olunca teknik bir değerlendirme yazma imkanı da yok. Yeni Pardus hakkındaki değerlendirmelerim kısaca şöyle:
  • Bir projeden 'inşa altyapısı dosyaları erişime açıldı' mesajını okumak için o projenin öncesinde kapalı kaynak kodlu olması gerekir. Özgür bir dağıtım olan Debian kaynak kodları kapatılarak zaten dağıtılamaz, aksi durum Genel Kamu Lisansının ihlali demek olacaktır. Zaten açık olması gereken birşeyi açmak demek ancak 'bir hatadan döndük' anlamını taşır.
  • Pardus'un nasıl bir modelle geliştirildiğini bilmediğimiz gibi bundan sonra nasıl devam edeceğini de bilmiyoruz. Dışarıdan mı hizmet alınıyor, TÜBİTAK çalışanları mı geliştiriyor bilmiyoruz.
  • Pardus geliştiricisi olmak için nasıl bir yol izlenmesi gerektiği belli değil. Mevcut geliştiricilerin kimler olduklarını bilmediğimizden nasıl bir yeterlilik aradıklarını da bilmiyoruz.
  • Pardus kurumsal ne demek bilmiyoruz. Herhalde kurumların kullanacağı bir sürüm demek değildir ama indir sayfasında 'sevgili ev kullanıcılarımız' ifadesi var. Eğer kurumsal sürüm uzun dönem destek demek ise bu süre nedir belirsiz. Hele ki hiç bir pakette ikili değişiklik olmadığını söyleyen bir dağıtımın bu desteği sürdürmesi bence mümkün değil. Debian paketlerini olduğu gibi alan bir dağıtım ancak onun verdiği kararlara uyabilir.
  • Pardus Kurumsal'ın tanımı belli olmayınca Pardus Bireysel olacak mı, olacaksa ne farkı olacak anlamak da mümkün değil. Bir dönem Pardus'un sayfasında bulunan bir sunum belgesinde Bireysel sürümün pisi paket yönetim sistemi ile topluluk tarafından sürdürüleceği yazıyordu. Bu topluluk nerede, TÜBİTAK'ın Anka ve Pisi'ye yaklaşımı nedir gibi soruların da cevaplanması lazım.
  • Pardus'un yol haritası belli değil. Bundan sonra debian paketleri olduğu gibi alınacaksa bildirdiğimiz hatalar nasıl çözülecek? Geliştiricilerin kimler olduğunu bilmiyoruz ama debian depolarına yazabilen kimse yoktur sanırım. Raporlanan hataları sadece Debian bugzillasına aktararak bir dağıtım sürdürülemeyeceğine göre paketlerde yapılan değişikliklerin debian depolarını kullanılmaz hale getirmesi durumunda ne yapılacak? Çokça lafı geçen 30000 paketin bakımını yapacak geliştirici kaynağı nasıl sağlanacak? Bu senaryo çok yakın bir gelecekte hayata geçecektir.
  • Debian dünyanın en büyük Linux dağıtımlarından biri, çok geniş bir geliştirici ailesi var. Onun 3 dvd ile sağladığı 12GB'tan fazla paketin 40 kadarını değiştirip yeni dağıtım çıkarmanın mantığını da anlamıyorum ben. Bildiğimiz debian'ı kurduktan sonra bu paketleri onun üzerine kursak daha sürdürülebilir olmaz mı mesela?
TÜBİTAK nasıl diğer projelerini dışarıdan katkı almadan gerçekleştiriyorsa Pardus'u da benzer şekilde sürdürebilir. Benim buna da bir itirazım olmaz. Eğer MEB ve MSB gibi büyük ulusal müşterileri varsa sadece onlar için bir Debian seçkisi hazırlamasına kim ne diyebilir? Adına da ister Pardus desin, isterse Pardus-ng farketmez. Ama bu niyetini açıkça belirtmelidir. Bunu söylemek TÜBİTAK'ın işini de kolaylaştırır. Kısaca TÜBİTAK, Pardus geliştiricisi olmak için kurum çalışanı olmak gereklidir diye bir şart koyabilir, dışarıdan katkı almayacağım diyebilir. Hatta lafı hiç uzatmadan aldım Ubuntu'yu kullanıyorum da diyebilir. Bu yaklaşım bence mevcut durumdan çok daha sürdürülebilir bir yaklaşım olacaktır.

Son tahlilde elimi vicdanıma koyunca TÜBİTAK'ın sahipli yazılımlar kullanmak yerine özgür yazılım tarafında olmasını olumlu bulduğumu söylemeden geçemeyeceğim ama tuttuğu yol da sürdürülebilir bir yol değil bence.

Anka ve Pisi dağıtımlarına destek olma konusuna gelince; TÜBİTAK'ın kamu kaynaklarını kullanarak oluşturduğu sunucu parkından ve elindeki bant genişliğinden bu dağıtımlar için ayıracağı kaynak yüzde hesabına bile gelmeyecek kadar azdır. İki tane makineyi bu dağıtımlara tahsis edememiş olmalarına bir anlam veremiyorum gerçekten. Bir senedir bunu yapmamış olmak bence sadece niyetin olmamasıyla açıklanabilir bir durumdur.

Bir önceki dönemde Pardus geliştiricisi olan TÜBİTAK çalışanı arkadaşlarımın yakışıksız bir şekilde işten çıkartılmalarını, ayrılmak zorunda bırakılmalarını kabul edilemez buluyorum. Onlara bu muameleyi yapanlar kimler bilmiyorum ama kimsenin kötü davranışı haketmediğini de biliyorum. Bunların üzerine bir de hepimizin Pardus için yıllardır harcadığı bu kadar emeğin çöpe atılıp yerine amatörce hazırlanmış betiklerle Debian'ı Pardus yaptık deniyor. TÜBİTAK bu yaptıklarını geriye alamaz ama umarım bundan sonrasını ülkemiz için verimli hale getirebilir.

Bu hali olmamış.

1 Nisan 2013 Pazartesi

Yaz stajı meselesi

2005'te Pınar, Oğuz ve Behice stajda birlikte çalıştığım ilk öğrenciler oldular. Onların bir ay gibi kısa sürede nasıl işler yapabildiklerini gördükten sonra her yıl bu işi sürdürdüm. Bir sonraki yıl Figen, Şule ve Mümine ile devam eden staj çalışmalarında her yıl bir kaç öğrenciyle devam ettim. Şimdi unutup, atladıklarım kırılmasın ama bu seri yıllar içinde Mesut, Mete, Meltem, Aydan, Özge, Engin, Damla, Mesutcan ve Ebru ile sürdü.

Her yıl aynı yoğunlukla ilgilenemesem de bilgi işlemde birer ay çalıştığım bu yavrucaklara bazen taş taşıttım, bazen pikniğe götürdüm. Çoğunlukla bitmek bilmeyen mesai saatleri boyunca çalıştılar. Hep daha önce bilmedikleri işleri yapsınlar istedim. Çoğu işte olduğu gibi staja birini alırken de tek bir kriterim olmadı. Bazısı her karşılaşmamızda 'staja geliyorum değil mi' diye sorarak geldi staja, bazısı 'bu yıl stajı burada yapmaya karar verdim' diyerek. Benim yazın birlikte çalışalım dediğim diye çağırdığım da oldu, ofiste birlikte çalıştığım öğrencilerime (adını bilmediğim için) tarif ederken kapıyı çalıp staja geleyim mi diyen de oldu.

Bir ay boyunca yanında ders, ödev gibi şeyler olmadan çalışmayı hiç tecrübe etmemiş çocuklar benim bitmek bilmeyen 'onu da yap' isteklerim karşısında dönem dönem zorlandılar. Böyle çalışmaya değmez diyerek bırakıp gidenlerin sayısı hiç de azımsanmayacak kadar fazla oldu. Beklentileri karşılayamadım diyerek merdivenlerde oturup ağlayanlar, birkaç gün stajı bırakıp daha sonra tekrar gelenler, rahatsızlandığı için hastaneye götürdüklerim bir araya gelseler bayağı bir yekün tutarlar herhalde.

Şimdi dönüp baktığımda aynı şeyleri, hatta daha fazlasını çok daha az kırıp dökerek de yaptırabileceğimi görebiliyorum (hadi Heisenberg aşkına tahmin ediyorum diyeyim). Benim için fiziksel şartların da değişmesiyle bundan sonra staj döneminde kimseyle birlikte çalışmamaya karar verdim. Bunu buraya yazıyorum ki yarın 'necdet yücel staj' aramasıyla bu sayfaya gelenlere benim ayrıca birşey anlatmam gerekmesin.

27 Mart 2013 Çarşamba

randomart akılda kolay mı tutuluyor?

Uzaktaki bilgisayarlarımızda oturum açmak için ssh'ı neredeyse tek alternatif olarak kullanıyoruz. Verileri şifreleyip gönderip almak hepimiz için çok önemli olduğundan ilk bağlantının ardından bağlanacağımız tarafı güvenilen bilgisayarlar arasına ekleyerek her sefer aynı makineye bağlandığımızdan da emin oluyoruz. Hedef bilgisayarın kimliğinde bir değişiklik olması durumunda istemcimiz bizi uyarıyor.

Peki ilk bağlantıyı nasıl yapıyoruz? Yani hedef makinenin gerçekten ulaşmak istediğimiz makine olduğuna nasıl emin oluyoruz? Bunun için hedef makinenin imzasının parmak izini bilmemiz gerekiyor. Aşağıda bir örneği olan bu imzalar çok uzun olduklarından akılda tutulur şeyler değiller. Bağlantıyı hep aynı bilgisayardan yapsak bir sefer imzanın parmak izini kontrol etmek kafi ama arada bir farklı makinelerden de bağlantı yapacaksak bunların çıktısını alıp yanımızda taşımamız gerekiyor genelikle.

Bu parmak izlerini aklımızda tutmak yerine 10 yıldan daha eski bir yöntem olan randomart da kullanmak mümkün. Randomart ile aynen parmakizinde olduğu gibi açık anahtarın benzersiz bir özeti çıkartıyor. Sonuç bir karakter dizisi değil de bir şekil olduğu için akılda tutması daha kolay. Açık anahtardaki en küçük bir değişiklik hem parmakizinde hem de bir görsel olan randomart'ta büyük bir değişikliğe yol açacağından şekilde bir ='in değiştirilip - olması ve bunu farkedilmemesi gibi bir durum da mümkün değil.

OpenSSH ile varsayılan olarak açık gelmeyen bu özelliği kullanmak için ssh komutunu -o VisualHostKey=yes parametresiyle kullanabilirsiniz.

25 Mart 2013 Pazartesi

Yakından Eğitim birinci dönem çalışmalarına kabul edilenler belli oldu

Yakından Eğitim'in 1 Nisan - 1 haziran tarihleri arasında yapılacak birinci dönem çalışmalarına kabul edilenler aşağıdaki gibi belirlendi:

  • Linux için kimlik kanıtlama aracı: yekk - Hasan Arslan
  • MBFuzzer : Mobil Uygulamalar için MITM Fuzzer - Mehmet Kılıç
  • VirtLabNet - Sanal Lab Ağı - Aydın Yakar
  • Kötü amaçlı yazılım görsellemesi: malwarez - Gürcan Gerçek
  • Picassa Tagger - Talha Muhammet Büyükakkaşlar
  • NAR: New Album Reporter - Ferhat Elmas
  • EN-LinuxClipper - Evernote için Linux Masaüstü Kırpma Uygulaması - Özcan Esen
  • Couchbase Nagios Plugin - Ebru Akagündüz
  • NfQuery Syslog Desteği ve Genel İyileştirmeler - Ahmet Can Kepenek, Serhat Rıfat Demircan
  • Gerçek Zamanlı Yoğun Veri Akışı Harita Görsellemesi - Oğuzhan Coşkun


  • Elbette başvuru sayısı proje sayısından fazla olunca bazı arkadaşları kabul edemedik ama onların da bu durumun farkında olarak keyitlerini kaçırmadan çalışmaya devam etmelerini öneriyoruz.

    Çalışmaları takip etmek isteyen herkesi pazartesi akşamları saat 22'de freenode #yakindanegitim kanalına bekliyoruz.

    zor zamanlarda birlikte yaşamak

    Dün gibi, önceki gün gibi başladı bugün de. Bunaltıcı bir sıcak, sabah ilaçları, sabah kahvesi, mesajların e-postaların kontrolü, sabah müzi...