Posted: November 17th, 2009 | Author: Ahmet Kakıcı | Filed under: Programlama | 3 Comments »
Bugün Jeff Atwood’un blogunda genelde yazılım geliştirme üzerine yazılan “En iyi 10 ipucu” listelerinin listesini gördüm ve yazının hoşuma giden bölümlerini paylaşmak istedim. Maddeler genelde teorik olsa da ders çıkarılabilindiği takdirde pratik ipuçlarından çok daha faydalı olacağına eminim.
Orjinali ingilizce olduğundan dolayı mecburen Türkçeye çevirerek yazıyorum. Çeviri yapmak anlam kaybına yol açacağından dolayı orjinalini de okumanızı tavsiye ederim.
Jerry Weinberg: The 10 Commandments of Egoless Programming
Egolarınıza yenilmeden çalışabilmek için
- Hata yapabileceğinizi kabullenin.
- Siz ve yazdığınız kod bir değilsiniz.
- Ne kadar çok karete bildiğiniz önemli değildir, her zaman sizden iyisi vardır.
- Kimseye danışmadan/haber vermeden kodunuzu değiştirip yeniden yazmayın.
- Sizden daha az bilgili olan insanlara saygı ve sabır gösterin.
- Değişmeyen tek şey değişimin kendisidir.
- Gerçek yetki bilgiden gelir, mevkiden değil.
- İnandığınız şeyler için savaşın ancak yenilgiyi de kabullenebilin.
- Odadaki çocuk * olmayın.
- İnsanları değil kodu eleştrin. Koda karşı değil insanlara karşı nazik olun.
Read the rest of this entry »
Posted: August 3rd, 2009 | Author: Ahmet Kakıcı | Filed under: Programlama | Tags: dilation, erosion, gaussian, görüntü işleme, image processing, mean, median, otsu, prewitt, robert, sobel | 2 Comments »
Daha önce görüntü işleme ile ilgili yazdığım kodları paylamıştım ( 1 – 2 – 3 ). Bu yazılardan birine gelen yorumdan sonra kodlarını paylaştığım filtreler sonucunda oluşan görüntüleri de paylaşmaya karar verdim.
Windows’un örnek resimlerinden rasgele seçtiğim bir görüntü ile aşağıdaki sonuçları elde ettim. Mouse ile görüntülerin üzerine gelerek hangi işlemlerin yapıldığını görebilirsiniz.
Read the rest of this entry »
Posted: June 4th, 2009 | Author: Ahmet Kakıcı | Filed under: Programlama | Tags: görüntü işleme, image processing, kod | 8 Comments »
İlk iki yazının ardından ( 1 – 2 ) sonunda üçüncü yazıyı da yazabildim. Bu yazıya sadece morfolojik filtreler kaldı. Diğer yazılara gelen yorumlardan sonra açıklamadan çok koda ihtiyaç olduğu anladım, onun için aşağıda genleşme (dilation) ve aşınma (erosion) işlemini yapan fonksiyonları bulacaksınız. Benim kullandığım genleşme ve aşınma maskeleri en basit olanları. Siz kendi maskelerinizi if koşulu içine yazarak dilediğiniz gibi kullanabilirsiniz.
Eğer genleşme ve aşınma hakkında daha fazla bilgi istiyorsanız Dilation – Erosion bağlantılarını takip edebilirsiniz.
Read the rest of this entry »
Posted: June 3rd, 2009 | Author: Ahmet Kakıcı | Filed under: Programlama | Tags: java, Programlama, socket | 3 Comments »
Daha önceden detaylı açıklamasını yaptığım programın kaynak kodlarını vermiştim ancak o kodlarda ide tarafından oluşturulan bölümler mevcut değildi. Bugün netbeans kurduktan sonra eski projeleri de su yüzüne çıkardım ve paylaşıma sunuyorum.
İndireceğiniz arşivin içinde serverGUI – odev – odevx klasörleri mevcut. odevx istemci tarafının kodlarının olduğu klasör, odev ise istemci tarafına ait proje klasörü. serverGUI ise adından da anlaşılabileceği gibi sunucuya ait proje klasörü. serverGUI klasörü altıntaki dist klasöründe ise projeye ait jar dosyası mevcut, dilerseniz sunucuyu direk olarak bu dosyadan başlatabilirsiniz.
Aşağıda kendi kendime yaptığım konuşmaya ait iki istemci ve sunucuya ait pencere görüntüsü mevcuttur. Arayüz konusunda çok da yetenekli olmadığım için olabildiğince basit bir şekilde bıraktım.
İndirmek için tıklayın, umarım işinize yarar.
Posted: April 3rd, 2009 | Author: Ahmet Kakıcı | Filed under: Programlama | Tags: browser, javascript | 3 Comments »
Tarayıcı pazarında firmalar ve sürümler arttıkça tasarımcıların işi de günden güne zorlaşıyor. X tarayıcısında sorunsuz görünen bir tasarım Y tarayıcısı tarafından yorumlanınca istenmedik sonuçlar verebiliyor bunun içinde tarayıcıya özel tasarımlar yazmak veya kullanıcıyı uyarmak gerekiyor. Genelde sunucu taraflı kod yazdığım için beni pek ilgilendirmeyen bu sorunu son zamanlarda javascript ve az da olsa css ile uğraştığım için ben de yaşadım ve internette tarayıcı belirlemek için yazılan hazır bir kod bulmak için hemen google’a doğru yol aldım. Derdimi google’a anlatamamdan olsa gerek tam olarak aradığımı bulamadım ve aşağıdaki kod ortaya çıktı. Benim gibi google’a başvurup aradığını bulamayanlar için de paylaşayım dedim. Aşağıdaki kod kullanılan tarayıcının adını ve sürümünü bulmakta. Bana sürüm numarasının ilk hanesi gerektiği için sadece ilk haneyi aldım, düzenli ifadeyi kendinize göre ayarlayıp istediğiniz userAgent bilgisini alabilirsiniz.
Read the rest of this entry »
Posted: March 25th, 2009 | Author: Ahmet Kakıcı | Filed under: Programlama | Tags: Programlama | 9 Comments »
İnternette programlama üzerine yazılan çizilen forumların ve sitelerin en gözde muhabbetlerinden biridir bu; hangi dili öğrenmeliyim? Bu sitelerdeki yazıları takip ediyorum da bazen o kadar ilginç şeyler yazılıyor ki soran kişi de sorduğunu pişman olabiliyor. Dil seçimi yanında bazen de dilleri mukayese edip duruyorlar; asp – php, java – .net , vs gibi diller onlarca kez kez karşılaştırılmış ve karşılaştırılmaya da devam edecektir.
Aslında hangi dili öğreneceğini veya hangi dilin iyi olduğunu bulması çok kolay. Bunun cevabı tam olarak dili öğrenmek isteyen kişilerde saklı ama malesef bu soruyu kendilerine sormak yerine başkalarına soruyorlar.
Read the rest of this entry »
Posted: March 17th, 2009 | Author: Ahmet Kakıcı | Filed under: Programlama | Tags: java, Programlama, socket, tcp, udp | 17 Comments »
Sonunda uzun zamandır ertelediğim bu yazıyı da yayınladım ve kafamdan sildim. Aşağıda göreceğiniz kodlar basit bir sohbet programının kodlarıdır. Ayırca java’da soket programlama için de bir örnek teşkil etmektedir. Programı NetBeans ile yazdım ve NetBeans tarafından otomatik olarak eklenen kodlar aşağıda yer almamaktadır.
Kodları ve programın işleyişini daha iyi anlayabilmeniz için bir takım terimleri ve yapıları bilmeniz gerektiğini düşünerekten öncelikle bu bilgileri verelim.
Protokol Nedir?
Herhangi bir ağ içerisinde bulunan cihazların birbirleriyle haberleşmeleri için bellirli protokoller tanımlanmıştır. Bu protokoller sayesinde kullanıcılar alt yapıdaki detaylarla uğraşmadan veri alışverişini gerçekletirebilir. Read the rest of this entry »
Posted: February 15th, 2009 | Author: Ahmet Kakıcı | Filed under: Programlama, Yapay Sinir Aglari, Yazılım | Tags: Programlama, Yapay Sinir Aglari | 6 Comments »
Bitirme ödevim için uğraşmaya başladığım ve tezimde de genişçe yer ayırdığım yapay sinir ağları hakkında tezimden ufak tefek alıntılar yaparak burada paylaşmaya başlıyorum. Tezin tamamını yayınlamak yerine can alıcı noktalarını bir yazı dizisi halinde burada yayınlayacağım.
Öncelikle yapay sinir ağlarının ne olduğu ve özellikleri hakkındaki bölüm ile başlamak iyi olur diyerekten yazıma geçiyorum;
Read the rest of this entry »
Posted: January 2nd, 2009 | Author: Ahmet Kakıcı | Filed under: Programlama | Tags: c, görüntü işleme, image processing, kod, Programlama | 24 Comments »
Daha önce görüntü okuma, gösterme ve kaydetme gibi başlıca fonksiyonları vermiştim. Aşağıda ise asıl görüntüyü işeyecek fonksiyonlar bulunmaktadır. Tabii buradaki fonksiyonları kullanbilmek için daha önceden verdiğim şekilde görüntünün dizilere aktarılmış olması gerekiyor.
Önceki yazıda gri seviyeye çevirilmiş görüntümüz vardı eğer bu görüntüyü siyah beyaza çevirmek istiyorsanız bunun için bir eşik değeri seçerek 0-255 arasındaki gri seviye görüntüyü bu seviyeye göre siyah veya beyaz olarak ayırmak gerekiyor. Eşik değerini sabit bir değer olarak belirleyebileceğiniz gibi her görüntüye göre dinamik olarak bir eşik değeri belirleyebilen bir yöntem de mevcuttur: otsu. Otsu algoritması sayesinde üzerinde çalıştığınız görüntüye özel bir eşik değerini otomatik olarak belirleyebilirsiniz. Bunun için görüntünün histogram dizisine ihtiyacınız olacak. İlk yazıda verdiğim kodda histogram çıkartma özelliği yoktu. Bunun için aşağıdaki kodu kullanabilirsiniz:
Read the rest of this entry »
Posted: December 24th, 2008 | Author: Ahmet Kakıcı | Filed under: Programlama | Tags: kod, Programlama, prolog | 2 Comments »
Determinant; bir kare matrisi, reel bir sayıyla eşleştiren özel bir fonksiyondur. Sadece kare matrislere uygulanabilir. Determinant hesabının temel yolu minör ve kofaktörlerinin hesaplanması yöntemidir. Buna ek olarak kolay hesaplama için Sarrus Yöntemi adında başka bir yöntem daha geliştirilmiştir.
Read the rest of this entry »