'Bilişim Teknolojileri' kategorisi için arşiv

BT Türk V5, Ruslar ve pratiklik üzerine

İlgilendiğim projeler, dersler ve işler arasında dostlarımın da yardımıyla oldukça zorlanarak üretmiş olduğum bir önceki sürüm olan BT Türk V4′ü, 2006 yılının başında, güvenlik ve kararlılık kaygılarımdan dolayı iptal etmiştim. Yazdığım onlarca sayfa kodu da çöpe atmıştım. (O anı “Endüstri Mühendisliğinin neden çok önemli olduğunu anladığım an” olarak tarihe not düşebiliriz…)

Aslına bakarsanız önceki sistem (BT Türk V3), BT Türk’çülerin yazışması ve bilgi alışverişi yapması için gerekli ortamı sağlamaktaydı. Peki bu değişiklik neden?

Öncelikle, çekirdek yazılımımız olan LDU’nun tarihin tozlu sayfaları arasında yerini alması ve çok kritik güvenlik sorunlarına sahip olması ana neden. İkincisi ise, sitenin konseptinden ötürü aldığımız komik mesajlar (ben de sizin ‘tim’e katılmak istiyorum abi! gibi :) ) ve üyelerimizin önemli bir kısmının harp okulu öğrencisi olması :D (Ciddiyim!)

Ehem, evet şu ordu konsepti konusunda sanıyorum biraz yanıldık. Counter Strike tadında bir arabirimle özellikle 13-19 yaş arası kardeşlerimizi siteye çekip oyun oynayacaklarına memlekete yararlı olacakları bilgiler edinsinler diye düşünerek bu konsepti oluşturmuştuk. Düşündüğümüz gibi oldu mu, tartışılır… Fakat gerçek şu ki 2002′den bu yana yayınladığı haberler, makaleler, forumdaki seviyeli soru/cevap ortamı, sahip olduğu samimiyet ve içtenlik ile BT Türk projesi başarıya ulaşmıştır. Bunu söylerken 2006 yılının 12 ayı boyunca 5 milyona yaklaşan ziyaretçi sayısını da hesaba katıyorum.

Şimdi BT Türk kaldığı yerden çok daha güçlü bir şekilde yaşamını sürdürüyor.

Bilişim Teknolojileri ile iş ya da hobi olarak ilgilenen herkesi internetteki ortak çatımız olan BT Türk’e bekliyoruz…

http://www.btturk.net/

* * *

Bu arada, sistemi LDU’dan yeni altyapımıza geçirirken 10′dan fazla php betiği yazdım. Bir kez daha sıfırdan sistem kurmanın var olan sistemi manipule etmekten daha kolay olduğunu gördüm. İşi kısaltayım derken en az 5 günlük ek iş yükü doğdu…

Fırat Hocam’ın bana takmış olduğu ‘Rus Mühedis’ sıfatının nedenine de bu süreç içinde bir kez daha vakıf oldum. :D

Yeri gelmişken bu ‘Rus Mühendis’ kavramını da açıklamak istiyorum, 2004 yılında SAÜ ADAMYO için sevgili dostum Fırat KÜÇÜK‘le birlikte bir yazılım geliştirirken, izlemekte olduğum; ‘en kolay ve kısa yoldan sonuca gitme, standartları ve diğer yol haritalarını zerre sallamama’ anlayışından ötürü Fırat bana bir hikaye anlatıp, Rus Mühendis’ler gibi yazılım geliştirdiğimi söylemişti :)

Sovyetler birliği dağıldıktan sonra bir gün, eski Sovyet Uzay Ajansı çalışanları ile NASA çalışanları bir araya gelirler. Konu soğuk savaşın ortalarında uzayda yazı yazmaktan açılır. Uzayda yerçekimi olmadığından ötürü, tükenmez kalemler çalışmamaktadır. Amerikalı mühendisler hemen başlar; Tükenmez kalem uzayda çalışmadığından dolayı 1 milyon dolarlık bir AR-GE programı başlatıp, mürekkebi uygun şekilde kalem ucuna basan, yerçekimsiz ortamda dahi sorunsuzca yazabilen bir tükenmez kalem geliştirdik. Siz bu sorunu nasıl aştınız? Rus mühendisler cevap verir; kurşun kalem kullandık!

Pratik olmak kötü bir şey değil ama bazen prosesi kısaltacağına uzattığı durumlar oluyor. İşte V5 ile ilgilenirken bu oldu. Proses, kısaltmaya çalıştığım işlerden dolayı uzadı. Bazen işi milimine değin hesaplayıp sonuca giden bir insan olup olmama konusunda kararsız kalıyorum o zaman da şu hikaye son kararı vermem için düşünmeme bile gerek bırakmıyor;

1000 metre uzunluğunda iki çizgi çizilir. Çizgilerden birinin başında bir mühendis, diğerinin başında ise bir bilim adamı durmaktadır. Ellerine birer sopa verilen mühendis ve bilim adamının amacı her seferinde bir önceki gittikleri yolun yarısı kadar ilerleyerek çizgilerin sonunda yer alan adamlara ulaşmak ve onları dövmektir. (yani ilk seferde 500, sonra 250, sonra 125 m… şeklinde)

Bir süre geçtikten sonra bilim adamı yerinde hareketsiz dururken, mühendisin çizginin sonundaki adamı dövmeye başladığı görülür. Bilim adamına gidip sorarlar, “neden vurmuyorsun adama?”, der ki “her seferinde bir öncekinin yarısı kadar yol alarak bu noktaya ulaşmam mümkün değil! bu sonsuza dek sürer”. Bilim adamını haklı bulurlar. Çünkü dediği doğrudur. Sonuçta ne kadar yaklaşılırsa yaklaşılsın, ulaşılmak istenen nokta ile şahıs arasında çok az da olsa bir mesafe kalacağı kesindir. Eee bu mühendis ne yapıyor o zaman? sorusu gelir akıllarına ve sorarlar “neden dövüyorsun adamı?” mühendis yanıtlar; “Ben vuracak kadar yaklaştım kardeşim!”

Yazıyı okuyan ve pratik olup işi kısaltacağım diye, yapacağı işi 5 gün uzatan tüm Rus Mühendislere; içinde bulunduğumuz bu güzel bayram gününün önemine binaen Тимур Муцураев’den şu süper parçayı armağan ediyorum! ;)

PHP’de XSS’e karşı sağlam bir işlev

XSS (Cross Site Scripting) son yılların moda saldırı tekniği… Mutlaka her web programcısı zamanının bir kısmını XSS saldırılarını önlemek için bir işlev yazmakla geçirmiştir sanıyorum. Geçen gün yabancı bir forumda bahsi geçtikten sonra Kallahar’ın sitesinde yayınladığı bir işleve rastladım; RemoveXSS

Yukarıdaki bağlantıda deneme yapmak için bir arabirim de var. Kendi yaptığım denemelerde işlevi geçmeyi başaramadım. Kallahar, işlev hakkında pek iddialı olmadığını, henüz geliştirmeye açık olduğunu söyledi, ama bence kod çok sıkı…

ODP’de sitenizin listelenmesini mi istiyorsunuz?

Mozilla TRDMOZ (ODP - Open Directory Project), Google dahil olmak üzere binlerce arama motorunun kaynak olarak başvurduğu, insanlar tarafından hazırlanan bir dizin oluşturma projesi.

Ben de 3 yıldır bu projede editör olarak görev yapmaktayım.

http://www.dmoz.org/help/geninfo.html

Bir çok arama motoruna kaynak olduğu için burada yayınlanan sitelerin geniş kitlelerce tanınması mümkün olmakta. Bu yüzden internete içerik sağlayanlar bu listelerde yer almak istiyorlar. Fakat bu ODP kuralları doğrultusunda her zaman mümkün olmuyor.

E-posta adresime sitelerinin neden ODP’de yayınlanmadığının yanıtını isteyen webmaster’lardan mesajlar geliyor. Ben de bu sitelerin neden yayınlanmadığını yetkim çerçevesinde inceliyor, kurallara göre durumu açıklamaya çalışıyorum. Buradan birkaç tespitimi sizlerle paylaşmak istiyorum;

  • Eğer içeriğiniz parola korumalı bir sayfanın ardındaysa muhtemelen kabul görmeyecektir.
  • Eğer içeriğiniz sade ve çabuk anlaşılabilir bir arabirimden sunulmuyorsa kabul görmeyebilir.
  • Eğer içeriğiniz herhangi bir duruma, olaya, nesneye odaklı değilde herşeyden bir parça içeriyorsa kabul görmeyebilir.
  • Farklı içeriklere sahip bir siteniz varsa bu siteyi direkt olarak herhangi bir kategoriye eklemeyin. Örneğin sitenizde hem C++ hem de Domates ekmenin inceliklerini anlatıyorsanız ve sitenizin adresi benimsüpersitem.com ise bunu ODP’ye C++ hakkında faydalı bilgiler; benimsüpersitem.com şeklinde değil, C++ hakkında faydalı bilgiler; benimsüpersitem.com/cpp/index.htm şeklinde, yani direkt içeriği adresleyerek gönderin.

Havada “Panic”

Havada 'Panic'

Tamam tamam heyecanlanmayın, sadece bir servis başlamamış o kadar :)

Bu arada gördüğünüz gibi Airbus A330, A380 gibi devlerin navigasyon arabirimleri artık linux üzerinde çalışıyor ;)

Microsoft’tan süper bir hata mesajı daha

Recursive dedikleri bu olsa gerek;

Microsoft2

Baş üstüne! :)

Emredersin

Türk Hava Kuvvetleri Komutanlığı’nın Web Sitesi

Hava Kuvvetleri Komutanlığı2004 yılında 3 aylık bir çalışma sonucu Hava Kuvvetleri Komutanlığının düzenlemiş olduğu Web Tasarım yarışmasında birinci olmuştum.

Bazı kimseler yarışma ile ilgili Internet’te yazılanlardan yola çıkarak yayındaki siteyi benim tasarladığımı zannediyor ve tasarım hakkındaki görüşlerini bana iletiyorlar, buradan bu yanlış anlaşılmaya bir son vermek istiyorum.

Yayındaki site benim tasarımım değildir. Benim Hava Kuvvetleri Komutanlığı ile resmi bir bağlantım yoktur. Yayındaki site Hava Kuvvetleri Komutanlığı Internet Kurulu tarafından tasarlanmıştır. Mevcut tasarım hakkındaki fikirlerinizi sitede yer alan e-posta adreslerine yollayabilirsiniz.

Benim tasarladığım sitenin bir ekran görüntüsü bu iletideki resimde yer almaktadır.

Kamuoyuna sevgi ve saygılarımla, :)

Linux, her şeyi öğrenen çocuk.

Fırat’ın sitesinde IBM’in Linux reklamını görünce şaşırdım diyemem, ama bu reklamın Flash gömülü olarak sitede durması beni şaşırttı. Ama işin teknolojisinden dolayı değil, Fırat‘ın ’standartlara’ olan düşkünlüğünü bildiğimden dolayı şaşırdım. :P

Fırat‘ın Türkiye’de Linux konusundaki modayı belirlediğine olan inancımdan dolayı, modaya uyarak onunkinden daha hoş :P bir IBM-Linux reklamını embed ediyorum; buyrun;

PHP programcılarına SQL Injection’a karşı 3 not

SQL Injection, web formlarında kullanılan metin kutularından ya da URL ile gönderilen değişkenler üzerinden SQL sorgu cümleciğine direkt olarak müdahale edilmesi ile gerçekleştirilen bir ‘deface’ yöntemidir. Bu yöntem lamer olarak adlandırılan kötü niyetli insanlar tarafından kullanılır.

Gerçek hayatta olduğu gibi, Internet ortamında da dünyaya karınağrısı yaratmak için gelmiş olan, ego tatmini ve adrenalinle beslenen bünyeler mevcuttur. Bu ezik insanlardan sitelerinizi korumanın yolu aslında çok basittir.

Önce bu sorunun nasıl oluştuğunu örnek üzerinde inceleyelim;

/* Gelen POST verilerine göre veritabanından belirtilen
kullanıcı adı ve parolaya sahip olan kullanıcı isteniyor */
$sorgu = “SELECT * FROM kullanicilar WHERE kullanici=’{$_POST[’kullanici’]}’ AND parola=’{$_POST[’parola’]}’”;
mysql_query($sorgu);
/* Yukarida $_POST[’parola’]'yı kontrol etmeyi ‘unuttuk’.
Bunu kodu inceleyerek ya da deneme yoluyla öğrenen bir lamer
Aşağıdakine benzer bir giriş yapacaktır. */
$_POST[’kullanici’] = ‘EAN’;
$_POST[’parola’] = “‘ OR ”=’”;

Burada yürüyecek sorgu şu olacaktır;

SELECT * FROM kullanicilar WHERE kullanici=’EAN’ AND parola=” OR ” = ”

Bunu önlemenin çeşitli yolları var, buna karşı sunucuda alınabilecek önlem; php.ini’yi düzenlerken magic-quotes değerini “on” yapmaktır.

İkinci önlem sunucudaki magic-quotes değerini dikkate almadan PHP’nin sihirli işlevlerinden mysql_real_escape_string() işlevini kullanmaktır.

Şöyle;

$sorgu = sprintf(”SELECT * FROM kullanicilar WHERE kullanici=%s AND parola=%s”,
mysql_real_escape_string($_POST[’kullanici’]),
mysql_real_escape_string($_POST[’parola’]));

Üçüncü ve kesin önlem, temizleyici bir işlev yazmak ve tüm uygulamalarda işlev kütüphanemizden bu işlevi çağırarak çalışmaktır.

Şimdi bunu görelim;

function duzelt($deger)
{
// /’ yerine ‘ bırakıyoruz.
if (get_magic_quotes_gpc()) {
$deger = stripslashes($deger);
}
// sayısal değer değilse mysql_real_escape_string() işlevini uyguluyoruz
if (!is_numeric($deger)) {
$deger = “‘” . mysql_real_escape_string($deger) . “‘”;
}
return $deger;
}
$sorgu = sprintf(”SELECT * FROM kullanicilar WHERE kullanici=%s AND parola=%s”,
duzelt($_POST[’kullanici’]),
duzelt($_POST[’parola’]));
mysql_query($sorgu); // temiz bir sorgu

Evet hepsi bu!

Google Earth’e bu kez de Uçan Araba takılmış

Haber şurada;

http://www.theregister.co.uk/2006/01/23/flying_car/

Bölgenin fotoğrafları da burada;

http://www.theregister.co.uk/2006/01/25/flying_car_launch_site/

Adobe Lightroom

Adobe Lightroom

Adobe’nin profesyonel fotoğrafçılar için geliştirdiği yüksek boyutlu fotoğrafların düzenlenmesi ve bu fotoğraflara müdahale edilmesini kolaylaştıran sayısal görüntü işleme yazılımı. Bu yeni yazılımla, diğer yazılımlara göre çok daha kısa sürede fotoğraflar işlenebilmekte;

Rastladığım en detaylı anlatım Michael Reichmann tarafından aşağıdaki bağlantıda yapılmış;

http://www.luminous-landscape.com/reviews/software/lightroom1.shtml

Vizeler bitti, yazılım geliştirme modundayım

Bu aralar SAÜ Mezun Bilgi Sistemi üzerinde yoğun olarak çalışıyorum. Öyle ki geçen gün yoğun kod yazımından dolayı klavyemin hararet yaptığını fark ettim ve gecenin bir yarısı dışarıda yağmur yağarken pencereyi açtım. :)

Evet, yeni MBS bitti bitecek gibi. Bu sefer yazdığım kodlar da görsel tasarımda içime sindi diyebilirim.

Ama yayından önce bir dizi ciddi güvenlik testinden geçirilmesi gerekiyor. Bunun için Fırat Hocamla bağlantıya geçmeye niyetlenip site adresini tıklayınca tasarımın değişmiş olduğunu gördüm; site yenilenmiş ve adresi değişmiş; (mikropyuvasi.org), bununla birlikte open source fikre ama closed mind akla sahip b2evo geliştiricilerinden desteğini çekmiş sitede yazdıklarına göre.. :)