Previous
Next

C dili ile yazdığım ilk programlardan birisi

by Cem Kefeli 17. Mart 2009 15:18

Üniversite yıllarımın ilk günleriydi, C dersi alıyorduk. Kocaeli Üniversitesi(KOÜ) Elektronik ve Haberleşme Mühendisliği Bölümü(Elo-Hab)'ne C/C++yeni başlamış ve yazılım ile alakası olmayan insanlar için yazılım ile tanışmanın ne kadar acıklı olduğuna şahit olduğum günler. Neyse ki benim programlamaya biraz da olsa bir aşinalığım vardı da kolay denilebilecek bir dönem geçirdim. Programlamaya giriş dersi ile birlikte artık mesleki hayatımıza da adım atmış olduk. İşte tam bu aşamada C ile tanışmamı sağlayan ve bana algoritma yazmaktaki felseyi aşılayan sevgili hocam Yrd. Doç. Dr. Mehmet Yakut'a bana kazandırdıkları için çok teşekkür ediyorum yeri gelmişken. O yıllardan sonra aradan yedi sene kadar geçti, ve ben bu süre içerisinde birçok yazılım projesinde yer aldım, ve onun bana öğrettikleri her zaman aklımın bir köşesinde vardı ve hep de faydalı oldu, işe yaradı. Bu yazıyı neden yazdığıma gelince.. Sebebi yalnızca eski projelerimin arasında dolaşırken bir klasörün dikkatimi çekmesi :)

Unutmuyorum hiç. Üniversitenin ilk haftaları.. Mehmet hoca C dersinde sınıfa bir ödev verdi. Ödevi verirken de dedi ki, eğer bu ödevi yarın akşama kadar yapıp bana mail atan olursa onu vizeye almadan Rakamla rakam100 vereceğim. Mehmet hocanın bir programlama dersinden 100 almak o günün şartlarında büyük olay. Hatırlıyorum da sınavlara bir insan sürüsü olarak girerdik. Alttan dersi alanlar artık o kadar birikmiş ki, derslikler sınav zamanı az gelir olmuş. Hatta arkadaşlarla bir ara, 'bu sınavı yakında ÖSYM yapar artık' diye dalga geçiyoruz :) Ödev şu; Bankaların bankamatiklerinde sık sık karşılaşmışsınızdır. Bir sayı yazar ekranda, ama sayıyı oluşturan rakamlar da yine rakamlar kullanılarak yazılmıştır. Tıpkı sol tarafdaki resimde görüldüğü gibi, zaten programın çıktısı da bu şekilde. Ekranda sayıyı giriniz diye yazacak, siz bir sayı gireceksiniz, program da sol taraftaki gibi o sayısı yazacak, ödev bu. Ben o gün eve gittiğim gibi çalışmaya koyuldum ve aynı günün akşamı gece 1-2 gibi ödevi hocaya mail ile gönderdim. 100'ü kaptım diye, bir mutluluk oluştu tabi ki.. Ama Mehmet Hoca geriye bir cevap ile dönmüştü: "Bu kadar sürede, bu işi yeni öğrenen birisi olarak, bunu yazamaman gerekirdi. Yarın gel, program üzerine konuşalım ve bana anlat". :) Doğal olarak benim kendi başıma yazmayabileceğim ve başkasıyla birlikte yazmış olabileceğim gelmiş hocanın aklına ve benden bir açıklama bekliyordu. Ertesi gün hocanın yanına uğradım ve durumu anlatıp 100 puanı kaptım. Benim için yazılımcılık açısından çok ama çok güzel bir başlangıç olmuştu bu olay. Belki de şu an yazılımla uğraşmamın en büyük nedeni budur. Mehmet Hocam'a bana kazandırdıkları için tekrar teşekkürlerimi gönderiyorum.

Aşağıdaki linkleri kullanarak programın derlenmiş haline ve kodlarına ulaşabilirsiniz. Çok ufak ve kolay ama benim için çok değerli bir kod parçacığı... :)Fazlası...

.NET BlogEngine etiketleri nasıl renklendirilebilir?

by Cem Kefeli 6. Mart 2009 15:12

.NET BlogEngine random colored tagsUzun bir süredir .NET BlogEngine kullanmaktayım ve çok da memnunum aslında bu blogdan. Tabiki herşeyin olduğu gibi BlogEngine'nin de bazı eksiklikleri var. Ama yaygınlaştıkça daha da geliştirileceği ve bu eksiklerin en aza ineceği de bir gerçek. Ben de BlogEngine'i alıp olduğu gibi kullanmadım. İlk önce kendime özgü bir tema oluşturdum ve işin içine biraz da kendi dizaynımı kattım. Daha sonra işin içerisine biraz görsellik katabilmek için burada açıkladığım OnePhoto widget'ini yazdım .NET BlogEngine için. Sonra biraz daha renklilik katayım işin içine diye düşünürken, etiketleri renkli bir şekilde kullanmak geldi aklıma. Öyle ki aynı sayfayı tekrar yenileseniz dahi bir sonraki seferde renklerin değişmedini istiyorum, her seferinde farklı bir etiket farklı bir renkte... Etiketlerin font boyutu zaten stil şablondan çekilerek değiştiriliyor. Fakat ben aynı font boyutunda olanların dahi farklı renklerde görünebilmesini istiyorum. Bunun için dosyası içerisinde aşağıda verdiğim değişiklikleri yaptım. Ufak bir kod bloğu ekleyerek bu işi halletmiş oldum aslında. Siz de görmek istediğiniz renkleri ArrayList'e ekleyip/çıkararak kendi renk tonlamanızı oluşturabilirsiniz.

//////////////////////
////Changed this code block…
/*
foreach (string key in WeightedList.Keys)
{
    HtmlGenericControl li = new HtmlGenericControl("li");
    li.InnerHtml = string.Format(LINK, Utils.RelativeWebRoot + "?tag=/" +       HttpUtility.UrlEncode(key), WeightedList[key], "Tag: " + key, key);
    ulTags.Controls.Add(li);
}
*/
//
System.Collections.ArrayList MyArrayList = new System.Collections.ArrayList();

MyArrayList.Add("010101");
MyArrayList.Add("282626");
MyArrayList.Add("484545");
MyArrayList.Add("676363");
MyArrayList.Add("6f6060");
MyArrayList.Add("157115");
MyArrayList.Add("2f792f");
MyArrayList.Add("135f13");
MyArrayList.Add("0a0a55");
MyArrayList.Add("0d0d73");
MyArrayList.Add("06f906");
Random MyRandom = new Random();
foreach (string key in WeightedList.Keys)
{
    int MyRandomNum = MyRandom.Next(1, MyArrayList.Count - 1);
    HtmlGenericControl li = new HtmlGenericControl("li");
    li.InnerHtml = string.Format(LINK, Utils.RelativeWebRoot + "?tag=/" + HttpUtility.UrlEncode(key), WeightedList[key], "Tag: " + key + "\" style=\"color: #" + MyArrayList[MyRandomNum].ToString() + ";", key);
    ulTags.Controls.Add(li);
}

AudioFinder ses tarama ve tanıma yazılımı

by Cem Kefeli 4. Mart 2009 10:45

Yazılım hakkında detaylı bilgi edinmek için lütfen burayı (AudioFinder Manual.pdf - 2,76 mb) tıklayınız.

AudioFinder ses arama ve bulma yazılımıAudioFinder nedir?
AudioFinder, Halim Cem Kefeli tarafından geliştirilmiş, medya analizi ve reklam raporlaması yapan medya takip firmaları tarafından kullanılan bir ses tarama-bulma yazılımıdır.

Özellikleri Nelerdir?
- Görsel bir masaüstü yazılımı olan AudioFinder ses dosyalarını giriş olarak kabul etmektedir ve eklenen ses dosyaları içerinde aranması istenilen sesleri arayarak bulmaktadır. Giriş sesleri için günümüzde kullanılan MP3, WAV, AIFF, OGG Vorbis, MP4, AAC, M4A, AC3, ASF... ses formatları gibi birçok ses formatı desteklenmektedir.
- AudioFinder ses arama teknolojisini medya yayınları içerisinde reklam bölgelerinin algılanabilmesini sağlamak amacı ile kullanabilmektedir.
- AudioFinder görsel bir masaüstü uygulamasının sunmuş olduğu tüm avantajlardan faydalanmaktadır. Audio Finder - Audio search screenSürükle-Bırak yöntemleri ve klavye kısa yollarının etkin bir şekilde kullanılması sonucunda son kullanıcılar sistemi daha rahat bir şekilde kullanabilmektedir.
- Program kullanıcı hesapları ile istenilen şekilde yönetilmektedir. İstenmeyen kişilerin kullanımından korumak amacı ile değiştirilebilir program şifresi kullanılmaktadır.
- AudioFinder arama işlemleri için altı(6) farklı arama opsiyonuna sahiptir. Böylece, kullanıcı yazılımın performansını dilediği gibi değiştirebilmektedir.
- AudioFinder yayınlanan reklamların yüzde kaçının yayınlandığını sizin için hesaplayabilmektedir.
- AudioFinder sisteme tanıtılan jenerikler sayesinde reklam alanları içerisinde raporlanan ve raporlanamayan ses bölgelerini tespit edebilmektedir. Raporlanamayan reklam bölgeleri için farklı kaydetme işlemleri yapılabilmekte ve böylece sistem tarafından algılanabilmesi sağlanabilmektedir.
AudioFinder - Settings window- AudioFinder onaylama sistemi sayesinde bulunan reklamların bulunduğu yeri tek tuşla dinlemenize olanak sağlar ve bu sistem sayesinde daha esnek ve daha doğru raporlar oluşturmanızı sağlar. Onaylama hem text tabanlı bir dosyalara hem de SQL sunucuya yapılabilmektedir. İstendiğinde onaylama sistemi devre dışı bırakılarak otomatik onaylamaya olanak sağlanmaktadır.
- AudioFinder daha sonradan incelemeye olanak sağlamak amacı ile tüm işlemleri ve ses dosyalarının hatalarını text tabanlı bir log dosyası ile saklamaktadır.
- AudioFinder arama işlemleri bittikten sonra kendi kendisini ve bilgisayarı kapatabilmekte, verimli bir güç yönetimi sağlayabilmektedir.
- AudioFinder aranılan ses dosyaları için zamansal konum bilgilerini dosya isimlerinden otomatik olarak çekebilmektedir.
- Bulunan raporlar için güvenlik seviyesi değiştirilebilmekte ve böylece sonuçların kesinliği kontrol altına alınabilmektedir.

Yazılım hakkında detaylı bilgi edinmek için lütfen burayı (AudioFinder Manual.pdf - 2,76 mb) tıklayınız.   

Serial-to-Ethernet converter application

by Cem Kefeli 30. Ocak 2009 06:37

Tecnologic System(TS) firması tarafından üretilen ve uygulama geliştiricilerin hizmetine sunulan  TS-7200 platformu, üzerinde 200 MHz çalışma frekansında  ARM9 serisi işlemci bulunduran bir uygulama geliştirme platformudur. Bu platform üzerinde seri arayüzler,  USB arayüzü,  Ethernet arayüzü, sayısal giriş çıkış birimleri ve veri saklamak için kullanılan compact flash arayüzü bulunmaktadır. Sistem üzerinde bulunan ARM işlemci compact flash ya da kart üzerindeki flash bellek üzerindeki işletim sistemlerini koşturmaktadır. Tercihe göre bu iki bellek üzerindeki herhangi bir  Linux versiyonu seçilmekte ve bu Linux versiyonu sistemin boot sistemi olarak kullanılmaktadır. Compact flash üzerinde bulunan  Debian Linux versiyonu kullanıcılara daha ileri seviyede olanaklar sunmasına rağmen gerçek zamanlı çalışmalar için dahili flash bellek üzerindeki  TSLinux tercih edilebilmektedir.  TSLinux bu donanım sistemi için TS tarafından hazırlanan ve kernel seviyesine daha yakın bir  Linux versiyonudur. Bu  Linux versiyonunda klasik masaüstü  Linux sistemlerine göre bazı özellikler kernelden çıkarılmış veya disable edilmiştir. Böylece işletim sisteminin donanım ile olan haberleşme özelliklerine önem verilmiş ve gerçek zamanlı uygulamalar için daha verimli bir ortam sağlanmıştır.

Sistemin farklı gereksinimleri göz önünde bulundurularak eklenti özellikler yapılabilmesi için  PC/104 adı verilen ve PC’lerdeki  PCI slotu andıran bir genişleme yuvası bulunmaktadır. Bu genişleme yuvası sayesinde sisteme yeni bellekler, sayısal giriş çıkışlar,  GPS(Global Positioning System) ve  GPRS modülleri dahi eklenebilmektedir. Soldaki şekilde TS-7200 platformuna eklenmiş bir gerçek zamanlı saat entegresi gösterilmektedir. Bu slot yardımı ile yapılan eklemelerin sayısı besleme kaynağının çekebildiği güç ve slotu adresleyen saklayıcı ile sınırlı olup üst üste birkaç kat oluşturulması dahi mümkündür.

Sistem için yazılım geliştirilebilmek amacıyla gömülü sistem üzerindeki  GCC derleyicisi kullanılabilmekte ve direkt olarak platform üzerinde derleme yapılabilmektedir. Fakat bu çalışma süresinde PC ortamının sunmuş olduğu  IDE avantajlarından faydalanabilmek için PC tarafındaki  RedHat Linux üzerinde gömülü platform için hazırlanan cross-toolchain’ler kullanılacaktır. Cross-toolchain’ler kullanılarak elde edilen çalıştırılabilir dosyalar daha sonra gömülü siteme  FTP ile bağlanılarak gönderilecek ve platform üzerinde çalıştırılmıştır. Aşağıdaki linkleri kullanarak proje dosyasına ve projenin sunum dosyasına erişebilirsiniz.

Serial2Ethernet Converter.pdf (4,54 mb)
Serial2Ethernet Converter.pps (1,08 mb)

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