yazılım ile Etiketlenmiş Yazılar

Yalnız kurt Pentagon’a şapka çıkarttırdı

Bilgisayar mühendisi bir meslektaşımız olan Can Yıldızlı Pentagon’da düzenlenen uzun süreli yarışmada rakiplerine tek başına fark atarak birinci oldu. Gurur duydum. Kendisini tebrik ederim.

ABD Savunma Bakanlığı Pentagon’a bağlı Siber Suç Merkezi’nin düzenlediği uluslararası yarışmaya Türkiye’den katılan Bilgisayar Mühendisi Can Yıldızlı (25), büyük bir başarıya imza atarak birinci oldu.

Pentagon bünyesindeki Siber Suç Merkezi (The Department of Defense Cyber Crime Center’s) tarafından düzenlenen Dijital Adli Tıp Yarışması’na (Digital Forensics Challenge) bu yıl 52 ülkeden bin 147 grup katıldı.

Dünya çapında büyük ilgi gören yarışmada, 3’er ve 4’er kişilik gruplar arasında bilgisayar teknolojileri üreten şirketler ve siber savaş konusunda uzman istihbaratçılar ile askeri ve polisiye birimlerde görev yapan ekiplerin yanı sıra çeşitli üniversitelerde görev yapan bilişim uzmanları yer aldı.

Sanal alemde hackerların izlerini sürme ve delil toplama ile ilgili istihbarat problemlerinin çözüldüğü yarışmada, “LoneWolf-Yalnız Kurt” adıyla “tek başına” yarışan Can Yıldızlı, yarışma süresince hedef olarak gösterilen dijital ortamdaki onlarca şifreyi kırarak resim ve müzik dosyalarının arkasına gizlenen verileri buldu. Geliştirdiği programlarla da profesyonel hackerların izlerini süren Yıldızlı, elde ettiği dijital deliller sayesinde de adını siber aleme altın harflerle yazdırdı.

Haberi okuduğum adres :Yalnız kurt Pentagon’a şapka çıkarttırdı –

, , ,

Yorum yok

yazılımcı adayına tavsiyeler

Bu yazıda, yazılımcı olmak isteyen genç arkadaşlarımıza bazı tavsiyelerim olacak. Tabi belirtmek gerekir ki yine nacizane görüşlerimi paylaşıyorum. Bana katılan veya katılmayan olabilir.

Yazının başında olmazsa olmaz bir madde söylemek istiyorum : İngilizce Öğrenin!

Ayrıca diğerlerini de madde madde verecek olursam ;

Kendine prensipler belirlemeli..

Temiz ve istikrarlı işler çıkarmanın sırrı, kendi prensiplerinizi oluşturarak bunların peşinden gitmektir. Bu noktada bazı fikirlerim olacak.

1 – Kendisine Fihrist oluşturmalı

İnsan her zaman her aradığını şak diye bulamıyor. Bu nedenle, arayıp da zor bulduğunuz şeyleri, veyda denk geldiğiniz şeyleri, Bir klasör içinde toplayın. Şahsen 3 yıldır, linux komutları, apache olası hatalar, mysql bilmemne joinli queryler, vb diye 20 farklı txt var elimde. Bunları böyle yapa yapa öğrendim. Bir hata durumunda ilk baktığım yer burası oldu. (bazen 2. baktığım yer de oldu tabi :) )

2 – Bookmarkları olmalı ve düzgün olmalı.

Özellikle firefox ta kullanılabilecek bir eklenti var. Xmarks. Bunu kullanın, evde sağda solda kullandığınız bilgisayarlarda boobkmarklarınızı ebediyen saklayın. Yeni bilgisayar alınca, format atınca bookmarklarınız gitmesin.

Kendinize dizin dizin bookmarklar oluşturun. Araştırdığınız konuları Veritabanı, PHP, PYTHON, php-mysql, apache, HTML5, vb.. gibi birbirinden ayrıştırarak tutun. Her daim araştırılacaklar diye bir dizininiz olsun.

3 – Sosyal Medyada doğru kişileri takip etmeli.

Geyikten en uzak ortamı özellikle twitter’da sağlayabilirsiniz. ÇÜnkü orada kimi takip etmek istediğiniz onunla arkadaş olup tüm saçmasapan şeylerini dinleme üzerine kurulu bir sistem değil. İlginizi çeken konuları paylaşan kişileri takip edip, tavsiye ettiği yazıları çok fazla anlamasanız da ilk etapta, okuyun.

4 – Mouse’dan çok klavye kullanmalı

Mouse ‘ u ne kadar çok kullanıyorsa bir kişi, bence klavyesi o kadar kötüdür. ALT+TAB yapmayı bilmeyen bir nesil bizi beklerken, klavyenizi neredeyse düşündüklerinizi anında aktarmak için o derece hızlı kullanabilirsiniz. Kodlama yaparken buna ihtiyacınız olacak. Chatleşmeyi bir kenara bırakıp, klavyenizi geliştirmek için çeşitli oyunlar bile oynayın. Ekrana bakmadan yazı yazın, en doğru yazana baklava alın! :)

5 – Erken kalkan yol alır!

Yazılım çok geniş bir sektör. (Her sektör için derler herhalde bunu.. ) Nitekim yazılımcı olmak isteyip de tam olarak ne yapmak istediğini bilmeyen bir çok arkadaşımız vardır. Bu konuda o işlerle ne kadar haşır neşir olursa hangisini seveceğine o kadar çabuk karar vermiş olur.

6 – Bir dili iyi bilin!

Bir yazılım dilini çok iyi bilmeniz, 5 yazılım dilini orta derecede bilmenizden iyidir. Zaten çok iyi bildiğiniz bir dilden sonra, diğer bir dili öğrenmek çok fazla zamanınızı almayacaktır. Ve mantığını da kolay kuracaksınız. (Tabi çok alakasız diller biraz daha zor olabilir.)

Kendinize bir blog oluşturun

İnsan ilgilendiği ve yaptığı şeyleri bir blogdan daha iyi bir şekilde nerede gösterebilir ki? Kendinize bir blog tutun ve ilgilendiğiniz konuları, arayıp da bulmakta zorlandığınız şeyleri insanlarla paylaşın. Özellikle türkçe kaynak konusunda sıkıntı yaşayan kişilere büyük faydanız olacaktır.

, ,

Yorum yok

Sinirli ve Can Sıkıcı Anlarda Fiziksel Ortam Değişikliği

İnsanoğlu gün içinde bir çok hadise ile muhatap olmak durumunda kalabilmektedir. Bu durumlar bazen sinirlendirici bazen de can sıkıcı olabiliyor. Bu durumlarda yapılabilecek doğru bir hareket tarzı var.

Genellikle belirtilen durumlarda insan mantıksal açıdan doğru karar veremeyebiliyor. Bir problem ile uğraşırken yanlış bir çözüm, herhangi sinir bozucu bir şeyden ötürü de ileride kötü sonuç doğruabilecek kararlar alabiliyor. Bir çoğunda da insan bir süre sonra yanlış karar verdiğini görüyor. Uzmanlar bu gibi durumlarda içinde bulunduğunuz fiziksel koşulları kısa bir süreliğine terk etmeniz durumunda daha mantıklı davranabileceğimizi söylüyorlar. Bence de gayet mantıklı.

Örneğin bir telefon görüşmesi sonrasında sinirlenen bünyemiz, görüşmeyi yaptığımız o odadan çıkıp başka bir ortama girdiğimiz takdirde çok daha hızlı toparlayabiliyor. Ayrıca belirtilen duruma takılı kalmamızı engellemiş olup, o durumdan çıkmamız için beyin kendine yeni bir ortam açmış oluyor. Tıpkı çeşitli IDE programlarında yeni bir workbench açmak gibi bir şey bu. Beynimize yeni bir workbench açıp içerisinde kullandığımız dosyaları yeni baştan yapılandırmak gibi.

Başka bir örnek de, bir probleme takılıp kaldık. Bir algoritma var, normalde bunun kurgusunu çok rahatlıkla yapabileceğinizi biliyorsunuz fakat, her nedense, bir türlü yerine oturmuyor. Bu gibi durumlarda kısa bir çay molası, arkdaşlarınızla yapacağınız küçük bir sohbet veya bir kaç espri, içinizde devam etmekte olan (bir nevi sonsuz döngüde devam eden) işlemlerin sonsuz döngülerini kırmaya yarıyor. Böylelikle tekrardan işinizin başına döndüğünüzde kişi, “Evet şimdi şuradan itibaren tek tek adım adım ilerleyeyim” demeyi akıl edebiliyor. Ve ya bunun gibi bazı çözümlemeler yapmayı aklına getirebiliyor. Bu da eldeki hususun aslında çok daha hızlı çözülmesini sağlıyor. Geçen gün ext js framework ile bir dropdownın içini remote gelen veriyle doldurmak için 2 saat uğraştım sanırım. Ertesi gün bunu yapmam 10 dakika sürdü  örneğin…
Özetle beyin, o sorun ile ilgilenirken etrafta görmüş olduğu şeyleri o problemin takılı kaldığınız noktalarıyla bağdaştırdığı için, bir şekilde takılı kalma işlemi (sonsuz döngü diye tabir ettiğim şey) devam ediyor. Ortam değiştirerek ise kafamızda üstü kirli bir masadan, temiz bir masaya geçmiş oluyoruz. Bu sırada da beynimiz, kendi masamızı temizlemiş oluyor.

Bunu herkes uygulayabilir. Ben yaptığımda işe yaradığını görüyorum. İlgisini çekenlerin de bu yazıyı okuduklarında elbet mantıklı bulacaklarını düşünüyorum.

, ,

Yorum yok

Versiyon Kontrol Sistemleri ve Yazılımdaki Önemi

Bir çok zaman yazılımlar 1′den fazla kişi tarafından yapılır. Bir yazılımın yapılması kimi zaman kolay ise de, genellikle çok büyük zahmetlerle doludur. Bu yüzden yazılan çizilen, 3 gün önce yaptığınız, “ya bu bir ara çalışıyordu böyle değildi” diyebileceğiniz şeylerin aslında bir çözümü var. Versiyon Kontrol sistemleri.

Bu sistem kısaca şöyle çalışıyor. Bir dosya merkeziniz var. Burada dosyalar, değiştikçe, versiyon kontrol sistemi o dosyanın bir önceki halini saklıyor. Bu da gerektiğinde 1000 kere değişiklik yapılmış bir dosyada 300. halini görebilme imkanı dahi sağlıyor. Bunları yaparken ise gerekli yorumları yazdığınız takdirde, önceden ihtiyacınız olp da yaptığınız her şeyi görebiliyorsunuz. Dosya merkezini internete açık bir bilgisayara kurarsanız da, oraya erişebilen tüm kullanıcılar projeye dahil olabilmiş olur. Yaptıkları değişiklikleri buraya gönderirler (commit) ve yazılımın ana haline dahil etmiş olurlar.

Bazen 2 veya daha fazla kişi aynı dosya üzerinde değişiklikler yapıyor olabilirler. Bu gibi durumlarda ise “sen ne yaptın, ben şurayı düzelttim, al sana MSN den yolladım, oraya yapıştır, ama şurayı da düzeltmen gerekiyor, off puff…” gibi duyumları öncelerden sıkça duyuyoruz. Bu gibi durumlarda versiyon kontrol sistemlerinde gerek dosya kilitleme, (o dosyada kimsenin çalışmasına izin vermeme), gerekse de kim önce değişikliği gönderdiyse, sonradan gödnerenin yaptıklarının kaybolmadan – en azından tamamen silinmeden işlerini devam ettirme ve tamamlama şansı olabiliyor.

TortoiseSVN benim sıkça kullandığım programdır. http://tortoisesvn.tigris.org/ adresinden ulaşabilirsiniz.

Bir de bu hizmeti ve bunla birlikte dahili olarak yazılım geliştirmek için hizmet veren çeşitli internet tabanlı , siteler de mevcut. http://www.repositoryhosting.com da bunlardan biri. Bu konuya da başka bir yazımda değinmeyi düşünüyorum.

Büyük veya küçük çaplı tüm projelerde versiyon kontrol sistemleri mutlaka kullanılmalıdır diye düşünüyorum.

Bir proje başlattığınızda ilk versiyonu ne zaman çıkaracaksanız da, bunun için kendinize bir sayaç oluşturup, buna bağlı kalmanızı tavsiye ederim. :) http://www.coonter.net

, , , , ,

1 Yorum