Previous
Next

Recaptcha database nasıl oluşturuluyor?

by Cem Kefeli 28. Aralık 2010 05:30

Recaptcha

Recaptcha hepimizi kullanmış Surprised
Bugün enteresan bir şey dikkatimi çekti: Meğer ki Recaptcha'nın veritabanını biz oluşturuyormuşuz da haberimiz yok! Recaptcha nedir ne değildi bilmeyenler için özet geçiyorum hemen.. Recaptcha form verilerinin post edilmesi aşamasında robot yönlendirmeleri engellemek için oluşturulmuş ve kullanıcının insan olduğunu kanıtlamasını sağlayan bir web öğesi. Böylece spam comment lerin, postaların ve diğer spam içerikli formların daha oluşturulmadan öldürülmesi sağlanmış oluyor.

Peki Recaptcha bizi nasıl kullanıyor?
İşte aslında asıl soru bu. Sizin karşınıza iki metin görüntüsü çıkarıyor Recaptcha ve bunları doğrulamak için kutucuğa girmenizi istiyor. Fakat aslında girdiğiniz kelimelerden birisini kendisi de bilmiyor ne olduğunu. Bilmediği kelimenin sağdaki mi soldaki mi olduğunu ise siz bilmiyorsunuz ama o biliyor. Dolayısı ile kelimelerin ikisini de doğru girmeye çalışıyorsunuz formu post edebilmek için. Eğer Recaptcha'nın anlamını bildiği kelimeyi siz doğru girerseniz diğerine bakmıyor zaten. Çünkü anlamını kendisi de bilmiyor. Fakat anlamını bilmediği kelime için de sizden bir yanıt almış oluyor. Bunu onbinlerce hatta yüz binlerce kişi için yaptığını düşünürseniz ise ortaya çok zekice bir proje çıkmış oluyor. Bizden topladığı cevaplar üzerinden bir istatistik çıkararak metnin olması gereken cevabını ise belirlemiş oluyor. Sallıyorum eğer 100.000 adamdan 85.000'i yukarıdaki image de sağda görünün metin için inquiry diyor ise bu doğrudur olarak kabul ediyor. Recaptcha bu durumu şöyle anlatmış:Fazlası...

BlogEngine kullanıcılarına güzel bir haber: BlogEngine 2.0 kullanıma hazır!

by Cem Kefeli 1. Aralık 2010 05:59

Blog EngineBlogEngine kullanıcılarına güzel bir haber!
23 Kasım'da Blog Engine'nin en son ve güncel sürümü olan 2.0'ın kullanıma hazır olduğu duyuruldu. Yeni versiyon .NET Framework 3.5 üzerinde inşa edikmiş. Bildiğiniz gibi daha önceki stabil versiyon .NET 2.0 ile yazılmıştı. Yeni sürüm birçok özelliği entegre olarak sunuyor. Aslında çok fazla değişiklik var bu versiyonda. Admin paneli hem gorsel olarak hem de içerik olarak tamamen yeniden yaratılmış durumda. Daha önceki versiyonlar ile birlikte varsayılan olarak gelmeyen birçok kullanışlı extension bu versiyon ile birlikte içeri alınmış ve default olarak geliyor. Veritabanı olarak artık SQL Ce 4 de destekleniyor. Veritabanında da ciddi değişiklikler yapılmış durumda. Bunun için önceki sürümlerinizi bu sürüme yükseltebilmek için bir update scripti koşturmanız gerekiyor. Buradaki adresi kullanarak son versiyonu indirebilirsiniz.

JAVA - Inheritance(Kalıtım) nedir?

by Cem Kefeli 28. Kasım 2010 03:44

JavaDaha önce nesneye yönelik bir dilin olmazsa olmazlarından birisi olan kalıtım(Inheritance) konusundan "Polymorphism nedir?" başlıklı yazım içerisinde bahsetmiştim. Çünkü çok biçimlilik(Polymorphism) kalıtım ile oldukça iç içe geçmiş ve kalıtımın yok açtığı doğal sonuçların bir uygulaması olarak göze çarpmaktadır. Dolayısı ile kalıtımın olmadığı bir ortamda çok biçimlilikten söz etmek olanaksızdır.

OOP(Object Oriented Programming) diyorsak nesnelerden bahsediyoruz demektir. Herşey nesne olarak düşünülebilir. Nesneler ise birbirlerinden türeyebilmektedir. Örneğin bir ana sınıf düşünün aklınızda, bir de bu ana sınıfın yavrucuklarını düşünün. Yavrucukları diyorum ama, bunu yavru sınıflar daha küçüktür, daha az öğe içerir gibi düşünmeyin sakın. Tam tersine bu yavrucuklar daha gelişkin olabilirler. Annelerinin tüm özelliklerine sahip olurlar da, hatta bir de annelerinden farklı başka özellikler de içerebilirler. Bu yavrucukların da yavrucukları olabilir. Bu böyle devam eder gider. Hemen aşağıda kalıtımın olduğu bir ortamdan ve bunun uygulamalarından bahsetmeye çalışacağım.

Sağ tarftaki UML diagramında bir kalıtım yapısı bulunmakta. TASIT ana sınıfı(Base class) BenNeyim isminde bir fonksiyon ve integer türünde Deger1, Deger2, Deger3 isimli üç farklı değişken bulundurmaktadır. TASIT sınıfına ait BenNeyim isimli fonksiyon kendisinin bir taşıt olduğunu belirten log yazdırmaktadır. MOTORLUTASIT ve MOTORSUZTASIT sınıfları ise TASIT ana sınıfından türemekte ve Deger4 isimli integer türünden bir değişken bulundurmaktadır. Java dilinde türetme işlemleri extends anahtar sözcüğü ile yapılmaktadır. Deger4 ise ana sınıfta bulunmayan ve türeyen sınıflar(Derived class) ile birlikte gelen bir değişkendir. Peki ya ana sınıftaki Deger1, Deger2, Deger3 isimli değişkenlere ne oldu? Acaba yeni türeyen MOTORLUTASIT ve MOTORSUZTASIT sınıfları içerisinden bu değişkenlere erişip kontrol edebilir miyim ki? Bu sorularımıza ve merakımıza biraz daha gem vuruyor ve şimdilik aklımızın bir köşesine yazarak az sonra öğrenmek için bir kenera bırakıyoruz. Dikkat edilirse yeni türettiğimiz Inheritance UML sınıflar ile birlikte güzel bir ayrıntı gözümüze çarpar oldu. Artık " Türeyen her sınıf, ana sınıfı içerir" diyebiliriz kolay bir şekilde. Yani bir bakıma her MOTORLUTASIT ve MOTORSUZTASIT aslında birer TASIT'tır demek oluyor bu. İşte aralarında bu şekilde ilişki kurulabilen her ortamda kalıtımdan söz etmek mümkündür. Bu bahsettiğimiz 'IS A' ilişkisi olarak bilinmektedir. ("MOTORLUTASIT IS A TASIT" == MOTORLUTASIT bir TASIT'tır.) Yine bu türemiş sınıflara ait BenNeyim fonksiyonu da sınıfın ne olduğunu yazdırmaktadır. TAKSI ve OTOBUS, MOTORLUTASIT sınıfından türeyen sınıflardır. Fakat bu sınıfların kendisine özgü başka değişkenleri oluşturulmamıştır. Oluşturulma zorunluluğu da yoktur zaten. Ana sınıf içerisinde soyut(Abstract) olarak belirtilmedikçe override edilmesine gerek yoktur. Fakat ana sınıf içerisinde soyut olarak tanımlanmış bir öğenin alt sınıf içerisinde mutlaka override edilme zorunluluğu bulunmaktadır. Yazının ilerleyen bölümlerinde bu konuları daha detaylı inceleyeceğiz. Yalnızca MOTORLUTASIT sınıfına da kalıtım yolu ile geçen BenNeyim fonksiyonu iptal edilmiş(Override) ve kendisine özgü bir içerik oluşturulmuştur. Aynı şeyleri OTOBUS sınıfı için de söylemek mümkündür. BISIKLET sınıfı ise MOTORSUZTASIT sınıfından türemektedir ve tıpkı TAKSI ve OTOBUS gibi kendisine özgü yeni değişkenleri bulunmamaktadır. TAKSI, OTOBUS ve BISIKLET sınıflarının üçüde kalıtım ile kendilerine geçen BenNeyim fonksiyonu içerisine kendisinin ne olduğunu yazdıran yeni kod blokları eklemişlerdir. Yukarıda sorduğumuz sorunun bi benzeri de burda söz konusudur. MOTORLUTASIT ve MOTORSUZTASIT türemiş sınıfları içerisinde yeni oluşturulan Deger4 isimli değişkeni acaba TAKSI, OTOBUS ve BISIKLET sınıfları içerisinde kullanabilir miyim? En alt sınıf olan TASIT sınıfı içerisinde bu değişkenin olamamasına rağmen. İşte şimdi yavaş yavaş bu UML diagramına göre hazırlanmış ve bazı eklentiler yapılmış aşağıdaki kod bloğuna bakma ve sorularımızın cevabını alma vakti geldi. Fazlası...

Neden Linux?

by Cem Kefeli 24. Temmuz 2010 11:49

Bu soru çok popüler bir soru, hem de çok çok uzun zamandır. Windows kullanan birisine sorsanız deseniz ki "Neden Linux kullanmıyorsun?" %70-80'inin vereceği cevabı tahmin edebiliyorum; O da ne diyecektir büyük ihtimal. LinuxAma bir Linux kullanıcısına sorsanız "Neden Windows Kullanmıyorsun?" diye. İşte o zaman işler değişir. "Ahhh, ah... " diye başlar heralde cümleye. Söyleyecek, kafasında, zihninde biriktirdiği o kadar çok şey vardır ki, Windows'tan dertlendiği o kadar çok şey vardır ki büyük ihtimal hemencecik sıralayıverir bunları...

Peki Windows bu kadar kötü de Linux bu kadar iyi, sütten çıkmış ak kaşık mı? Ya da Windows çok mu kötü bir sistem. Bence hiç alakası yok... Aslında Bu işletim sistemlerinin hedef kitlesinden kaynaklanıyor büyük ölçüde. Ben şimdiye kadar bilgisayar ve teknolojiyle çok haşır neşir olmayan birisinden "Geçen bir RedHat kurdum, performansı acayip bişey..." diye birşey duymadım. Teyzeme sorsam "Bilgisayar alayım nesi olsun diye?" msn'i olsun, word'ü olsun, tablo çizecem excel'i olsun, sunum yapacam powerpoint'i olsun bi de film izlicem media player'ı olsun der. Bunları çoğu kişi der çünkü çok kalıplaşmış ve çok kullanılan şeyler. Ama işlemciyi boş zamanlarında daha iyi dinlendirsin, hemen açılsın hemen kapansın, çok fazla RAM yemesin, Virüs tehtidi daha az olsun, sistem gün geçtikçe yavaşlamasın demek aklına gelmez. Çünkü farkında değildir ki bunların.

Şimdi en başa geri dönecek olursak, "Neden Linux?" sorusunun cevabı aşağıda;

  • Virüs tehtidi azdır.
  • Daha kararlı bir sitemdir.
  • Sistemi kurduktan sonra geçen her bir gün yavaşlamaz. (Kısmen)
  • Her yaptığınız önemli değişiklik sonrasında sistemi yeniden başlatmak durumunda kalmazsınız.
  • Birçok ücretsiz yazılım desteği.

Hakkımda...

Cem KEFELİ

Electronics and
Telecommunication Eng.
devamı...


Son yapılan yorumlar...

Comment RSS

Yasal bir uyarı...

Disclaimer"Bu web sitesinde görmüş olduğunuz bilgilerin, dokümanların ve diğer materyallerin kullanılmasından doğabilecek hiç bir sorumluluktan site sahibi sorumlu tutulamaz. Web sitesi içerisinde yer alan yazılar, yorumlar, resimler ve diğer tüm içerikler yalnızca sahibinin görüşünü yansıtmakta olup içeriğin sahibi kişilerin çalıştığı kurumları bağlayıcı hiç bir nitelik taşımamaktadır. Yapılan tüm alıntılar mutlaka kaynak gösterilerek verilmeye çalışılmaktadır. Web sitesi içerisinde bulunan ilgili materyaller, ilgili yasal kurumlar tarafından uygun görülmemesi durumda kaldırılacaktır."
General