<?xml version="1.0" encoding="UTF-8"?><!-- generator="wordpress.com" -->
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	>

<channel>
	<title>projeler &amp;laquo; WordPress.com Tag Feed</title>
	<link>http://wordpress.com/tag/projeler/</link>
	<description>Feed of posts on WordPress.com tagged "projeler"</description>
	<pubDate>Sun, 20 Jul 2008 11:05:11 +0000</pubDate>

	<generator>http://wordpress.com/tags/</generator>
	<language>en</language>

<item>
<title><![CDATA[Bilgisayar ve Mikrokontrolör Temelli Kapalı Çevrim Robot Pozisyon Kontrol Sistemi]]></title>
<link>http://tarikzengin.wordpress.com/2007/05/19/bilgisayar-ve-mikrokontrolor-temelli-kapali-cevrim-robot-pozisyon-kpntrol-sistemi/</link>
<pubDate>Sat, 19 May 2007 17:55:35 +0000</pubDate>
<dc:creator>Aydın Tarık Zengin</dc:creator>
<guid>http://tarikzengin.wordpress.com/2007/05/19/bilgisayar-ve-mikrokontrolor-temelli-kapali-cevrim-robot-pozisyon-kpntrol-sistemi/</guid>
<description><![CDATA[Geçtiğimiz hafta itibariyle arkadaşım Umut YÜKSEKBAŞ ile beraber tamamladığımız lisans bit]]></description>
<content:encoded><![CDATA[<p align="justify">Geçtiğimiz hafta itibariyle arkadaşım Umut YÜKSEKBAŞ ile beraber tamamladığımız lisans bitirme projemizin kısa bir özetini yazmak istedim. Projemizi 16.05.2007 tarihinde sunup, 18.05.2007 tarihinde demosunu gerçekleştirmemizle birlikte, aylardır laboratuvarda yaşamamıza neden olan ömür törpümüz, sevimli mi sevimli manipülatörümüzle vedalaşma vaktimiz geldi artık. Proje raporu kitapçığını da yazdıktan sonra kendisine veda edeceğiz. Hüzünlü bir ayrılık olacak.</p>
<p><span style='text-align:center; display: block;'><object width='425' height='350'><param name='movie' value='http://www.youtube.com/v/WR5tswIPvck'></param><param name='wmode' value='transparent'></param><embed src='http://www.youtube.com/v/WR5tswIPvck&rel=0' type='application/x-shockwave-flash' wmode='transparent' width='425' height='350'></embed></object></span></p>
<p align="justify"><strong>ÖZET</strong><br />
Endüstri sahalarında robot sistemlere; problemlere hızlı ve hassas çözümler getirmeleri, insan sağlığı ve güvenliğine zararlı olan pek çok faktörden etkilenmemeleri gibi sebeplerle ihtiyaç duyulmaktadır. Otomobil imal-montaj, ilaç, nükleer santraller, biyomedikal gibi alanlarda robotlar çok hassas işlerin yapımında kullanılmaktadır. Tıbbi alanda kritik ve hassasiyet gerektiren ameliyatlarda kullanılabilirler. Protez kol olarak kullanımları da yaygındır.<!--more--></p>
<p align="justify">&#160;</p>
<p align="justify">Projemizin çalışma konuları otomatik kontrol sistemi ve bilgisayardan gönderilen koordinatlarla robot manipülatörün konum kontrolüdür. Projemizde mekatronik bir sistemin kapalı çevrim kontrolü amaçlanmaktadır. Manipülatör sistemi, çok girişli çok çıkışlı bir sistemdir ve her eklem pozisyon denetimi için ayrı giriş sinyallerine ihtiyaç duymaktadır. Manipülatör sisteminin çeşitli yöntemlerle elde edilen dinamik modeli doğrusal değildir ve eklemlerin birbiri ile etkileşimini ifade eden bağlantılı terimler içerir. Sistemde altı serbestlik dereceli bir mekanik kol ve otomatik kontrol sistemi tasarlanmıştır. Robot manipülatörün hareketi, eklem yerlerinde bulunan DC motorlar ile sağlanır. Bu DC motorları sürmek için içinde H-Bridge (köprü) bulunan L298 entegresi ve kontrolör olarak da PIC 16F877 kullanılmıştır. Kontrolör ile PC arasındaki haberleşme Max232 seri arabirimi ile sağlanmıştır. MPLAB'ta PIC C derleyicisi kullanılarak geliştirilen algoritma ile robot manipülatörün pozisyon kontrolü sağlanmıştır. Robot manipülatörün eklemlerinden alınan analog geri besleme bilgisi PIC içerisinde bulunan ADC modülleriyle okunup, tasarlanan P.I. kontrol sistemi sayesinde istenilen konuma en az hatayla gitmesi sağlanmıştır.</p>
<p align="justify">&#160;</p>
<p align="justify"><strong>SİSTEMİN BİLEŞENLERİ<br />
Donanım Bileşeni</strong><br />
Projede kullanılmış olan PIC 16F877-20Mhz kontrolör içerisinde 8 adet ADC kanalı, iki adet PWM modülü bulunmaktadır. Motor sürücü entegresi olarak içerisinde iki H-Bridge (Köprü) bulunan L298 kullanılmıştır. Bu sürücüler 46 Volt kaynak gerilimine ve 4 Amper akıma kadar dayanabilmektedir. Kullanılan güç kaynağından sağladığımız gerilim değeri 15 volt olup, çekilen akım 0.5 amperi geçmemektedir. PC 'den pozisyon bilgilerini PIC 'e göndermek için seri arabirim olarak Max232 seri arabirimi kullanılmıştır.</p>
<p align="justify">&#160;</p>
<p style="text-align:center;"><img src="http://tarikzengin.files.wordpress.com/2007/05/robot1.png" alt="robot1.png" height="246" width="381" /></p>
<p align="justify">&#160;</p>
<p align="justify">PC 'den gönderilen pozisyon bilgileri Max232 seri arabirim aracılığıyla PIC 'in seri modülüne ulaşır. Robot Manipülatör eklemlerinden alınan geri besleme bilgisi PIC içerisindeki ADC modülü ile okunup, istenen analog değere yani istenen konuma gelmesi için PIC 'in çıkışına bağlı olan L298 'in girişlerine sinyaller gönderilir. Geliştirilen algoritma, hatanın sıfırlanabilmesi için manipülatörün hangi yöne hareket etmesi gerektiğine karar verir ve sürücülere gerekli sinyalleri gönderir. Robot manipülatör istenilen konuma geldiğinde ise motor frenlenerek konumunu koruması sağlanır. Mikrokontrolcü ile tüm eklemlerin konumları devamlı kontrol edilir ve herhangi bir konum değişikliği algılandığında istenilen konuma tekrar gelmesi sağlanır. Algoritma aynı zamanda hatayla orantılı bir şekilde motor uçlarındaki gerilimi de değiştirerek hassas konum kontrolü sağlamaktadır.</p>
<p align="justify"> <a href="http://tarikzengin.files.wordpress.com/2007/05/robot2.png" title="robot2.png"></a></p>
<p style="text-align:center;"><a href="http://tarikzengin.files.wordpress.com/2007/05/robot2.png" title="robot2.png"><img src="http://tarikzengin.files.wordpress.com/2007/05/robot2.png" alt="robot2.png" height="466" width="514" /></a></p>
<p align="justify">&#160;</p>
<p align="justify">&#160;</p>
<p align="justify"><strong>Yazılım Bileşeni</strong></p>
<p align="justify"> Mikrokontrolör için geliştirilen yazılım, MPLAB 'ta HI-TECH PICC derleyicisi ile derlenmiştir. Kontrolör tarafında gerçekleştirilen P.I. kontrol sistemi; her 6 eklem için devamlı olarak, ADC modülünden okunan geri besleme değeri ile istenen değer arasındaki farkı hesaplayarak hata değerlerini bulur. Bu hata değeri oransal Kp değeri ile çarpılır. Daha sonra hata değerlerinin integrali alınarak toplam hata bulunur ve toplam hata ile integral parametresi Ki çarpılır. Oransal ve integral kontrol sinyallerinin toplanmasıyla elde edilen kontrol sinyali belirli sınırlar içerisinde tutularak P.I. kontrol sistemi tasarlanmış olur.</p>
<p align="justify">&#160;</p>
<p align="justify">Her eklem için bu hesaplama devamlı olarak yapılıp sürekli konum kontrolü gerçekleştirilir.</p>
<p align="justify">&#160;</p>
<p style="text-align:center;"><a href="http://tarikzengin.files.wordpress.com/2007/05/robot4.png" title="robot4.png"><img src="/files/2007/05/robot4.thumbnail.png" alt="robot4.png" height="213" width="142" /></a></p>
<p align="justify">&#160;</p>
<p align="justify">Sistemin matematiksel modeli çıkarılamadığından tasarlanan P.I. kontrol sistemi için Ziegler-Nichols metoduna başvurulmuştur.</p>
<p align="justify">&#160;</p>
<p style="text-align:center;"><a href="http://tarikzengin.files.wordpress.com/2007/05/robot5.png" title="robot5.png"><img src="/files/2007/05/robot5.thumbnail.png" alt="robot5.png" height="124" width="240" /></a></p>
<p align="justify">&#160;</p>
<p align="justify">PID kontrolörün I,D katsayıları 0 yapılarak, P sistem osilasyona gidene kadar yavaş yavaş arttırılır. Sistemin osilasyona gittiği andaki P değerine Kc, osilasyon frekansına Tc denilmiştir.</p>
<p align="justify">&#160;</p>
<p style="text-align:center;"><img src="http://tarikzengin.files.wordpress.com/2007/05/robot6.png" alt="robot6.png" height="144" width="295" /></p>
<p align="justify">&#160;</p>
<p style="text-align:center;"><a href="http://tarikzengin.files.wordpress.com/2007/05/robot7.png" title="robot7.png"><img src="/files/2007/05/robot7.thumbnail.png" alt="robot7.png" height="140" width="242" /></a></p>
<p align="justify">&#160;</p>
<p align="justify">Ziegler-Nichols parametrelerinden yararlanılarak optimum P.I. kontrol parametreleri tespit edilmiştir ve sistemin vermiş olduğu yanıt ise aşağıda gösterilmiştir.</p>
<p align="center"><a href="http://tarikzengin.files.wordpress.com/2007/05/robot8.png" title="robot8.png"><img src="/files/2007/05/robot8.thumbnail.png" alt="robot8.png" height="155" width="234" /></a></p>
<p align="justify">&#160;</p>
<p align="justify"><strong>Grafiksel Kullanıcı Arabirimi Tasarımı</strong><br />
Kullanıcı arayüzü tasarımı QT designer ve Kdevelop entegre geliştirme ortamları kullanılarak C++ dilinde geliştirilmiştir. Arayüzün görünümü aşağıdaki gibidir. QT kütüphaneleri platformdan bağımsız kod üretmeyi mümkün kılmaktadır. Bu şekilde geliştirdiğimiz arayüz Unix, Linux, FreeBSD, MacOS, Windows gibi platformlarda çalışabilmektedir.</p>
<p align="justify"><a href="http://tarikzengin.files.wordpress.com/2007/05/robot9.png" title="robot9.png"></a></p>
<p style="text-align:center;"><a href="http://tarikzengin.files.wordpress.com/2007/05/robot9.png" title="robot9.png"><img src="/files/2007/05/robot9.thumbnail.png" alt="robot9.png" height="127" width="170" /></a></p>
<p align="justify">&#160;</p>
<p align="justify">Robotun koordinatlarını belirlemek için Denavit-Hartenberg metodu kullanılmıştır. Bu metoda göre uzuvların alacağı açılar transformasyon matrisleriyle hesaplanarak açı değerleri elde edilmiştir. Bilgisayar arayüzünde hesaplanan koordinat değerleri USB veri yolu üzerinden 57600 baudrate ile mikrokontrolöre gönderilmiştir.</p>
<p align="justify">&#160;</p>
<p align="justify"><strong>Forward (İleri ) Kinematics Problem</strong><br />
Robotik çalışmada karşılaşılan problem türlerinden biri, bilinen link dönme açı bilgileri ve robot parametreleri için robot uç nokta koordinatlarının hesaplanmasıdır. Robot hem dönme hem öteleme<br />
hareketi yapacağından Translation (Öteleme) matris ve Rotation (dönme) matrislerinin hesaplanması gerekmektedir.</p>
<p align="justify">&#160;</p>
<p style="text-align:center;"><img src="http://tarikzengin.files.wordpress.com/2007/05/robot10.png" alt="robot10.png" height="170" width="372" /></p>
<p align="justify">&#160;</p>
<p align="justify">Bu şekilde elde edilen Transformasyon Matrisleri arayüz ile seri arabirim üzerinden kontrolcüye gönderilerek kontolün sağlanması amaçlanmaktadır. Kontrol sistemi değişkenleri istenildiği takdirde arayüzden ayarlanabilir ve sistem bu ayarlarla çalışmaya devam edebilmektedir. GUI 'nin ayarlar kısmından seriport aygıtımızın çeşidini, hangi baudrate değeri ile haberleşileceği, kontrol sistem parametrelerini ve motor uçlarına hangi oranda gerilim uygulanacağı seçilebilir.</p>
<p align="justify">&#160;</p>
<p style="text-align:center;"><a href="http://tarikzengin.files.wordpress.com/2007/05/robot11.png" title="robot11.png"><img src="/files/2007/05/robot11.thumbnail.png" alt="robot11.png" height="143" width="184" /></a></p>
<p align="justify">&#160;</p>
<p align="justify"><strong>Sonuç ve Değerlendirme</strong><br />
Geliştirdiğimiz sistem PC ile grafik arayüzden girilen kartezyen koordinatlara göre konum kontrolü yapabilmektedir. Operatör tarafından yeni bir koordinat verilmediği sürece pozisyonunu sürekli korumakta, istenilen herhangi bir zamanda koordinat değişikliği gerçekleştirilebilmektedir. Proje<br />
sonucunda fabrikaların tüm alanlarında kontrol ve üretim açısından, biyomedikal alanlarda yardım açısından, savunma sanayisinde güvenlik açısından, insan sağlığına zararlı durumlardan koruma açısından ve akademik uygulamalarda eğitim amaçlı kullanılması açısından çok büyük yararlar elde<br />
edilebilecek bir tasarım ortaya çıkarılmıştır. Projenin geliştirilebilecek yönü ise tıpkı insan beyninin kollarına hükmedebildiği gibi, iki robot manipülatörünün koordineli çalışabilmesi için kontrol sistemi geliştirilebilir.</p>
]]></content:encoded>
</item>
<item>
<title><![CDATA[23 Nisan Etkinliğimiz]]></title>
<link>http://croplatform.wordpress.com/?p=265</link>
<pubDate>Fri, 09 May 2008 12:15:41 +0000</pubDate>
<dc:creator>croplatform</dc:creator>
<guid>http://croplatform.wordpress.com/?p=265</guid>
<description><![CDATA[  23 Nisan açık hava çizgi roman kütüphanemiz çok ilgi gördü. 
Ayrıntılar için: http://c]]></description>
<content:encoded><![CDATA[<p><img src="http://img183.imageshack.us/img183/3981/minilogoht3.jpg" alt="" width="180" height="210" />  <strong>23 Nisan açık hava çizgi roman kütüphanemiz çok ilgi gördü. </strong></p>
<p>Ayrıntılar için: <a href="http://cizgiromanokurlariplatformu.blogspot.com">http://cizgiromanokurlariplatformu.blogspot.com</a></p>
<p style="text-align:center;"><img src="http://img384.imageshack.us/img384/6939/floknf3.jpg" alt="" width="446" height="269" /></p>
]]></content:encoded>
</item>
<item>
<title><![CDATA[23 Nisan Fetival Programımız]]></title>
<link>http://croplatform.wordpress.com/?p=263</link>
<pubDate>Fri, 11 Apr 2008 08:07:04 +0000</pubDate>
<dc:creator>croplatform</dc:creator>
<guid>http://croplatform.wordpress.com/?p=263</guid>
<description><![CDATA[                 
 
]]></description>
<content:encoded><![CDATA[<p style="text-align:center;">   <img src="http://bp0.blogger.com/_rmxpkCAK6I4/R_0VSs6rPuI/AAAAAAAABH8/dTJgMyfVSCY/s320/prog-arka.jpg" alt="" width="220" height="320" />              <img src="http://bp0.blogger.com/_rmxpkCAK6I4/R_0Vgs6rPvI/AAAAAAAABIE/QxpIUU0BSXo/s320/prog-on.jpg" alt="" width="220" height="320" /></p>
<p style="text-align:center;"> </p>
]]></content:encoded>
</item>
<item>
<title><![CDATA[ÇOCUKLARA ÇR ve BAĞIŞ KAMPANYASI ]]></title>
<link>http://croplatform.wordpress.com/?p=262</link>
<pubDate>Fri, 11 Apr 2008 07:50:31 +0000</pubDate>
<dc:creator>croplatform</dc:creator>
<guid>http://croplatform.wordpress.com/?p=262</guid>
<description><![CDATA[
 


ÇİZGİ ROMAN OKURLARI PLATFORMU (ÇROP)
23 Nisan Şenliğinde Çizgi Romanlarla Çocukları ]]></description>
<content:encoded><![CDATA[<div class="post-body entry-content">
<p> </p>
<p><strong><span style="color:#ff0000;"><img class="alignleft" style="float:left;" src="http://www.resimliroman.net/image/crop.jpg" alt="Fotoğrafım" width="149" height="154" /></p>
<p><strong><font color="#ff0000"></p>
<p align="center">ÇİZGİ ROMAN OKURLARI PLATFORMU (ÇROP)<br />
23 Nisan Şenliğinde Çizgi Romanlarla Çocukları Buluşturuyor</p>
<p></font></strong></span></p>
<p align="center"> </p>
<p align="center"><strong>ÇİZGİ ROMAN OKURLARI PLATFORMU (ÇROP)</strong>, 21, 22, 23 Nisan 2008 tarihlerinde gerçekleşecek olan ve<strong> Şişli Belediyesi</strong>nin düzenleyeceği <strong>“KARNAVAL ÇOCUK” 23 NİSAN ŞENLİĞİ</strong>’nde tam üç gün boyunca stand açarak çocuklara bedava çizgi roman okuma fırsatı sunarak projesinin ilk aşamasını gerçekleştirecektir.</p>
<p align="center"><strong><span style="color:#ff0000;">İLK AŞAMA</span></strong></p>
<p><strong></strong></p>
<p align="center"> Maçka Parkı’nda gerçekleşecek şenlikte yetişkin ve çocuk toplamda 30 000 kişi bekleniyor. <strong>ÇROP</strong>, işte bu ziyaretçileri çizgi romanla buluşturarak iki aşamalı projenin ilk ayağını gerçekleştirecektir.<br />
Bu projenin gerçekleşmesi için okurlardan ve yayınevlerinden çizgi romanlar toplanmaya başlamıştır. Toplanan çizgi romanlar ilk aşamada okurlarla buluşturulurken ikinci aşamada bağışlanacaktır.</p>
<p align="center"><strong><span style="color:#ff0000;">İKİNCİ AŞAMA</span></strong></p>
<p><strong></strong></p>
<p align="center">Almanya’nın Münih kentinde bulunan <strong>Uluslararası Gençlik Kütüphanesi</strong>’ni (<a href="http://www.ktunnel.com/index.php/1010110A/c60e05c2435249c9611cd9075c595ad815711"><span style="color:#66b5ff;">http://www.ijb.de/</span></a>) örnek alarak Türkiye’de bir Çocuk ve Gençlik yazını-sanatları belleği olmayı hedefleyen <strong>Çocuk Araştırmaları Merkezi (ÇAM)</strong> roman, şiir, öykü, çizgi filmlerden sonra çizgi romana da kapılarını açmış bulunuyor. <strong>Doç. Dr. Nejdet Neydim</strong> yönetiminde <strong>ÇAM </strong>araştırmacılara çocuk ve gençlere yönelik sanatlarla dolu bir araştırma merkezi sunmayı hedeflemektedir.<br />
<strong>ÇROP</strong>, işte bu etkinlikte toplanan tüm dergi ve çizgi roman kitaplarını ÇAM’a bağışlayarak çizgi romana ayrılan rafları dolduracaktır.</p>
<p align="center"><strong><span style="color:#ff0000;">OKURLARA DÜŞEN GÖREV</span></strong></p>
<p align="center"><strong></strong><br />
<strong>ÇROP</strong> olarak çizgi roman okurlarını, yayınevlerini, sanatseverleri çizgi roman bağışına, standı ziyaret ederek çalışmamızı desteklemeye, hatta üç gün boyunca stand’da çocuklara yol göstermeye bekliyoruz.<br />
Üç günlük çocuk şenliğinde piknik yapmak, çocukların çoşkusunu paylaşmak, çizgi roman dolu üç gün yaşamak isteyen herkese standımız açıktır.<br />
Çizgi roman adına sadece çizgi roman sevgisiyle projeler üretmeyi sürdüren <strong>ÇROP</strong> tüm okurların kendi adlarına harekete geçmelerini karşılıksız olarak bekliyor!</p>
<p><strong>Şenlik açılış etkinliği; 21 Nisan/ Pazartesi günü Saat: 14.00’de yapılacaktır.<br />
</strong></p>
<p align="center"><strong><span style="color:#ff0000;">Notlar</span></strong></p>
<p align="center"><strong><span style="color:#ff0000;"><br />
</span></strong>1. Stand’ın tam adresi son toplantıdan sonra belli olacaktır. İkinci duyuruyla o bilgiler de Nisan ayı içinde bildirilecektir.<br />
2. Destek veren kurum ve kişilerin isimleri bir sonraki duyuruda paylaşılacaktır.<br />
3. Lütfen bu etkinliği paylaşmamızda yardımcı olun. Karşılık beklemeden maddi-manevi harcamalar gerçekleştiren <strong>ÇROP</strong> üyelerine ve çizgi romana en büyük desteklerinizden biri bu olur.</p>
<p align="center"><strong><span style="font-size:130%;"><span style="font-size:medium;">İletişim:<br />
</span></span></strong><a href="mailto:croplatform@gmail.com"><span style="color:#66b5ff;">croplatform@gmail.com</span></a><br />
<a href="mailto:nneydim@gmail.com"><span style="color:#66b5ff;">nneydim@gmail.com</span></a></p>
<p align="center"><strong>"çizgi roman" sanatına sahip çık!</strong></p>
<div style="clear:both;text-align:center;">
<p> </p>
</div>
<p> </p>
<p></strong></div>
]]></content:encoded>
</item>
<item>
<title><![CDATA[[Matlab] Pan Tompkins Algoritması Kullanılarak EKG'de QRS Complex Tespiti ve Ritm Analizi]]></title>
<link>http://tarikzengin.wordpress.com/2007/12/16/matlab-ekg-analizi/</link>
<pubDate>Sun, 16 Dec 2007 16:39:13 +0000</pubDate>
<dc:creator>Aydın Tarık Zengin</dc:creator>
<guid>http://tarikzengin.wordpress.com/2007/12/16/matlab-ekg-analizi/</guid>
<description><![CDATA[Biomedical Signal Analysis dersinde Timur Düzenli ve Salih Aslan ile beraber yaptığımız bir pro]]></description>
<content:encoded><![CDATA[<p>Biomedical Signal Analysis dersinde Timur Düzenli ve Salih Aslan ile beraber yaptığımız bir proje bu. EKG verileri üzerinden QRS Complex kısımlarının tespitinden bahsedeceğim. Öncelikle nedir ve neden önemlidir buna değinelim.</p>
<p>Çoğumuzun bildiği üzere EKG (ECG - Electrocardiogram) kalp aktivitelerinin elektriksel olarak kaydıdır. Electrocardiograph ile ölçülerek kaydedilir.</p>
<p>EKG analiz edilerek kalp hakkında oldukça detaylı bilgiler elde edilebilir. Tıp okumadığım için çok detaylı bilemem tabii ki. Fakat EKG sinyalinin birazdan bahsedeceğim kısımlarının zamanlaması hastalıklar hakkında oldukça yararlı bilgiler sağlamaktadır.<!--more--></p>
<p>Tipik bir EKG sinyali aşağıdaki şekilde gösterilebilir.</p>
<p><img src="http://tarikzengin.wordpress.com/files/2007/12/ekg.png" alt="EKG" /></p>
<p>Burada görüleceği gibi EKG sinyali belirli tipik kısımlar içerir. Bunlar P,Q,R,S ve T kısımlarıdır. Hepsi kalp hakkında önemli bilgiler taşır. Bu yazıda, sinyalde QRS Comlex'in yerinin bulunmasından bahsedeceğim. Bu bilgi önemlidir çünkü QRS Complex'in kaç milisaniye sürdüğü çıplak gözle anlaşılamaz.</p>
<p>Konuya girmeden önce şundan da bahsetmek isterim. Doktorların, ellerine gelen EKG kaydına bakarak karar vermesinde bahsedeceğim konu oldukça önem taşır. EKG sinyalleri elektriksel olarak zayıf sinyaller olduğu için kaydedilmesi ve çevre gürültülerden arındırılması işi oldukça zahmetlidir. Demek istediğim, ham bir EKG kaydından hiç bir doktor hiç bir teşhis koyamaz. O şeritteki net ve anlaşılır EKG'nin nasıl o hale geldiğini ele alacağız. Fakat tüm aşamaları koca bir kitap yapan bu analizin sadece küçük bir kısmı bu yazıca mevcut.</p>
<p>Analiz için kullanacağım önceden kaydedilmiş EKG verileri elimde mevcut.  4000 örnekten oluşan veriyi <a href="http://paste.linux-sevenler.org/index.php?id=1376" title="EKG Verisi" target="_blank">şuradan</a> alabilirsiniz.</p>
<p>Analize başlayalım,</p>
<blockquote>
<pre>close all
clear all
clc

%% Degisken ve Sabitlerin Tanimlanmasi
fs=200; % sample rate

%% Sinyalin Matlab Ortamina Alinmasi
hamsinyal=load('ECG3');
plot(hamsinyal);
title('Ham Sinyal');
figure</pre>
</blockquote>
<blockquote></blockquote>
<pre></pre>
<blockquote>
<pre></pre>
</blockquote>
<p><img src="http://tarikzengin.wordpress.com/files/2007/12/1.png" alt="Hamsinyal" /><br />
Görüldüğü gibi sinyal oldukça fazla gürültü içeriyor. Hem yüksek frekanslı hem de şebekeden kaynaklanan ek bileşenler sinyale karışmış durumda. Öncelikle sinyali DC sıfır seviyesine çekelim</p>
<blockquote>
<pre>%% DC Bilesenlerin Atilmasi
dcsizsinyal=(hamsinyal-mean(hamsinyal));
plot(dcsizsinyal);
title('DC Bilesenleri Atilan Sinyal');
<title></title>figure</pre>
</blockquote>
<p><img src="http://tarikzengin.wordpress.com/files/2007/12/2.png" alt="DCsiz Sinyal" /><br />
Şimdi de sinyalden yüksek frekanslı gürültüleri temizleyelim. Bunun için bir alçak geçiren (low pass) filtre tasarlayıp sinyali bu filtreden geçirmemiz gerekli. Filtre tipi olarak 10 point avarage filtre kullanalım.</p>
<blockquote>
<pre>%% Filtre
% 10 point avarage filter
B=(1/10)*ones(1,10);
A=1;
freqz(B,A);
title('10 Point Moving Avarage Filtre');
figure
avaragefiltrelisinyal=filter(B,A,dcsizsinyal);
plot(avaragefiltrelisinyal)
title('Moving Avarage (Low Pass) Filtreden Gecmis Sinyal');
figure</pre>
</blockquote>
<p><img src="http://tarikzengin.wordpress.com/files/2007/12/3.png" alt="LowPassFiltre" /><br />
<img src="http://tarikzengin.wordpress.com/files/2007/12/4.png" alt="LowPassCikisi" /><br />
Yüksek frekanslı gürültülerin azaldığını görebiliriz. Fakat hala kusursuz değil. Şimdi de düşük frekanslı gürültüleri yok etmek için bir yüksek geçiren (high pass) filtre tasarlayıp sinyali bu filtreden geçirelim. Bunun için de Derivative Based filtre oluşturacağız.</p>
<blockquote>
<pre>%% Derivative Based Filter
B=(1/1.0025)*[1 -1];% 1.0025 normalizasyon degeri
A=[1 -0.995];
freqz(B,A);
title('Derivative Based Filter');
figure
derivativefiltrelisinyal=filter(B,A,avaragefiltrelisinyal);
plot(derivativefiltrelisinyal)
title('Derivative Based (High Pass) Filtreden Gecmis Sinyal');
figure</pre>
</blockquote>
<p><img src="http://tarikzengin.wordpress.com/files/2007/12/5.png" alt="DerivativeFiltre" /></p>
<p><img src="http://tarikzengin.wordpress.com/files/2007/12/6.png" alt="DerivativeCikisi" /><br />
Sinyalden atmamız gereken bir de 60Hz'lik şebeke gürültüsü var. Kayıt esnasında cihazın şehir şebekesinden kaptığı gütültü de sinyalle beraber kaydedilmiş durumda. Zaten bakıldığında çıplak gözle de görülebiliyor. Bu arada kullandığımız örnek yabancı bir kaynaktan olduğu için şebeke gürültüsü 60Hz. Bizim şebekemiz 50Hz. Onu da hatırlatayım.</p>
<p>60Hz'lik gürültüyü atmak için bir filtre tasarlanacak ve önceki filtreden çıkan sinyal bu filtreden geçirilecek. Önemli bir sorun da, şebekeden kapılan gürültünün yalnızca 60Hz değil aynı zamanda bunun harmonikleri olarak ortaya çıkması. Bu yüzden yalnızca 60Hz'i bastıran bir filtre işimiz görmeyecek. Bunun için 60Hz ve tüm harmoniklerini bastırmamızı sağlayacak bir Comb filtre tasarlamamız gerekir. Aşağıda yazdığım filtre katsayılarının nasıl bulunduğuna değinmeyeceğim, zira çok uzun mesele :) Zaten ben de hazır kullandım. Bulmaya çalışmak apayrı bir mesele.</p>
<blockquote>
<pre>%% Comb Filter
% 60Hz sebeke gurultusunu ve harmoniklerini bastiran filtre
B=conv([1 1],[0.6310 -0.2149 0.1512 -0.1288 0.1227 -0.1288 0.1512 -0.2149 0.6310]);
A=1;
freqz(B,A);
title('Comb Filter');
figure
comb=filter(B,A,derivativefiltrelisinyal);
plot(comb)
title('Comb (60Hz ve Harmoniklerini Bastiran) Filtreden Gecmis Sinyal');</pre>
</blockquote>
<p><img src="http://tarikzengin.wordpress.com/files/2007/12/7.png" alt="Comb Filtre" /></p>
<p><img src="http://tarikzengin.wordpress.com/files/2007/12/8.png" alt="CombCikisi" /><br />
Çok kusursuz olmasa da sinyal işlenebilecek hale geldi. Şimdi ise fark alarak sinyaldeki en keskin tepeleri bulalım. Bunlar bize R noktalarını verecek. Ardından da bu R noktasının sağında ve solunda en düşük seviyedeki noktaları bulalım. Bunlar da Q ve S noktalarını verecek.</p>
<blockquote>
<pre>%% Differentiator
differentiatorcikisi=diff(comb);

%% Squaring Operation
kare=differentiatorcikisi.*differentiatorcikisi;

%% Moving Window Integrator
window=ones(1,30); % N=30 moving window
integral= medfilt1(filter(window,1,kare),10);
delay = ceil(length(window)/2);
integral = integral(delay:length(integral));

%% QRS Arama
max_h = max(integral);
thresh = 0.2;
poss_reg = integral&#62;(thresh*max_h);

sol = find(diff([0 poss_reg'])==1);
sag = find(diff([poss_reg' 0])==-1);

 for i=1:length(sol)
    [maxdeger(i) maxloc(i)] = max( comb(sol(i):sag(i)) );
    maxloc(i) = maxloc(i)-1+sol(i); % offset ekle
    [mindeger(i) minloc(i)] = min( comb(sol(i):sag(i)) );
    %mindeger Q noktasini verir
    minloc(i) = minloc(i)-1+sol(i); % offset ekle
    % Q noktasi icin offset
 end

% minpozisyon=ones(1,4000)*-max(comb);
% minpozisyon(1,minloc)=max(comb);
maxpozisyon=ones(1,4000)*(-max(comb));
maxpozisyon(1,maxloc)=max(comb);
% maxpozisyon(1,sol)=max(comb);
% maxpozisyon(1,sag)=max(comb);
% maxpozisyon(1,minloc)=max(comb);

figure
% plot(comb(1:(length(comb)/4)),'b-')
plot(comb)
title('R noktalari belirlenmis sinyal');
hold on
% plot(minloc,mindeger,'r--')
plot(maxloc,maxdeger,'g-')

figure
plot(comb)
title('R noktalari isaretlenmi� sinyal');
hold on
%plot(minpozisyon,'r') % Q baslangici
plot(maxpozisyon,'r')
legend('Comb Filtreden Gecen Sinyal','R');</pre>
</blockquote>
<p><img src="http://tarikzengin.wordpress.com/files/2007/12/9.png" alt="Rleribirlesik" /></p>
<p><img src="http://tarikzengin.wordpress.com/files/2007/12/10.png" alt="Rlerisaretli" /><br />
Görüldüğü gibi QRS Complex'in yeri artık tam olarak bilinebiliyor. İstenen ölçümler buradan çıkarılabilir.</p>
<p>Bu arada sondan üçüncü Complex'de bir hata var. Algoritma burada hatalı sonuç veriyor. Gürültülerin kusursuz bir şekilde atılamamasından kaynaklanan bir hata söz konusu. P noktası olması gerekenden daha büyük olduğu için R olarak algılanmış ve bir hataya sebebiyet vermiş. Fakat sinyalin geri kalanı istediğimiz veriyi elde etmemiz için yeterli veriyi sağlıyor.</p>
<p>Şimdi elde ettiğimiz verilerden bazı sonuçlara ulaşmaya çalışalım. Girilen veride kaç adet beat (vuruş) bulunduğunu tespit edelim. R noktalarını tespit ettiğimize göre ve R noktası kadar vuruş bulunduğunu bildiğime göre kolaylıkla sonuca ulaşabiliriz.</p>
<blockquote>
<pre>%% Beat Sayisi
beat=length(maxloc)
heartrate=beat/(length(hamsinyal)/fs)</pre>
</blockquote>
<p>Cevap olarak şu sonuçları elde ediyoruz.</p>
<p>beat =</p>
<p>25<br />
heartrate =</p>
<p>1.2500</p>
<p>Analiz sırasında P noktalarından birisi de R olarak algılanmıştı. Aslında beat sayısı 24 olmalıydı.</p>
<p>Şimdi de RR aralığının ortalamasını bulalım.</p>
<blockquote>
<pre>%% RR Araligi Ortalamasi
ortalama=0;
for i=1:beat-1
    ortalama=ortalama+(maxloc(i+1)-maxloc(i)-1)/fs;
    u(i)=(maxloc(i+1)-maxloc(i)-1)/fs;
end
ortalama=1000*ortalama/beat
% ms cinsinden bulmak icin 1000 ile carpildi.</pre>
</blockquote>
<p>Sonuç olarak elde edilen çıktı,</p>
<p>ortalama =</p>
<p>745.8000</p>
<blockquote>
<pre>%% Standart Sapma
variance=var(u)*1000 %ms cinsinden</pre>
</blockquote>
<p>variance =   22.4692</p>
<p>QRS genişliklerinin tespiti için ise zaten bulmuş olduğumuz noktaların farkları alınabilir.</p>
<blockquote>
<pre>% QRS Genisligi
for i=1:beat
    qrs(i)=sag(i)-minloc(i)
end</pre>
</blockquote>
<p>Çıktısında da QRS genişliklerinin birbirine yakın değerde olduğu gözlenebilir.</p>
<p>Görüldüğü gibi hastalık teşhisi için canla başla çalışanlar yalnızca doktorlar değil :) Bizleri de unutmayın.</p>
]]></content:encoded>
</item>
<item>
<title><![CDATA[Başlarken...]]></title>
<link>http://efendice.wordpress.com/2007/11/27/baslarken/</link>
<pubDate>Tue, 27 Nov 2007 21:40:54 +0000</pubDate>
<dc:creator>efendice</dc:creator>
<guid>http://efendice.wordpress.com/2007/11/27/baslarken/</guid>
<description><![CDATA[İlk mesajdır, dikkate alınız  
Bu gezegeni kurarken birkaç yerde takıldım, doğru dürüst bi]]></description>
<content:encoded><![CDATA[<p>İlk mesajdır, dikkate <strong>alınız</strong> :)</p>
<p>Bu gezegeni kurarken birkaç yerde takıldım, doğru dürüst bir Türkçe kaynakta bulamadım. O yüzden hem ilk mesajın kıymetini artırmak hem de planet kurulumunun Türkçe olarak kayıtlara geçmesini sağlamak niyetiyle bu girdiyi obss-planet kurulumunu anlatarak doldurayım.</p>
<p>Hayırlı olsun efenim...</p>
<p><!--more--></p>
<p>planetplanet.org sitesinden indirilen planet-2.0 kurulumu;</p>
<ol>
<li>İlk önce zip dosyasını açın.
<ul>
<li>unzip planet-2.0.zip</li>
</ul>
</li>
<li>İki tür site yapısı var; Basic ve Fancy.
<ul>
<li>Basic: İsminden de anlaşılacağı üzere gezegenin en basit hali.</li>
<li>Fancy: Basic yapının biraz daha cicili bicili hali.</li>
</ul>
</li>
<li>Seçtiğiniz yapının dizininde bulunan config.ini dosyasını bir editör ile açın.
<ul>
<li>vi examples/fancy/config.ini - Yapı olarak Fancy seçtiyseniz</li>
<li>vi examples/basic/config.ini - Yapı olarak Basic seçtiyseniz</li>
</ul>
</li>
</ol>
<p>cron.sh dosyası</p>
<p><code></code><code><font size="2">#!/bin/sh<br />
</font><font size="2">cd /home/dizin_html/planet;<br />
python planet.py examples/fancy/config.ini</font></code></p>
]]></content:encoded>
</item>
<item>
<title><![CDATA[Üretime Geçiş]]></title>
<link>http://silentsheadspace.wordpress.com/2007/10/23/uretime-gecis/</link>
<pubDate>Tue, 23 Oct 2007 20:34:52 +0000</pubDate>
<dc:creator>Silent|Storm</dc:creator>
<guid>http://silentsheadspace.wordpress.com/2007/10/23/uretime-gecis/</guid>
<description><![CDATA[Son zamanlarda tatile gittiğim ve gelince bir sürü işle uğraştığım için, buraya pek zaman ]]></description>
<content:encoded><![CDATA[<p>Son zamanlarda tatile gittiğim ve gelince bir sürü işle uğraştığım için, buraya pek zaman ayıramadım doğrusu. Peki son zamanlarda ne oldu? Merak edenleriniz varsa okumaya devam etsin.</p>
<p><!--more-->Bilgisayar mühendisliğinden mezun olmak bana yetmediği için yüksek-lisans programına başladım. Şu anda mezun olduğum üniversitede yüksek-lisansa devam ediyorum. Öğrenmek istediğim ama lisansta vaktim olmadığı için öğrenemediğim şeyleri öğrenmek hoşuma gidiyor açıkçası. Süreç biraz yavaş işlemiş olsa da (mezun olduktan sonra içine girdiğim uyuşukluktan dolayı), bitirme projemi bir makaleye dönüştürmeyi başardım. Bir kaç gün önce makalemi bir kaç dergiye de gönderdik. Umarım kabul edilir.</p>
<p>Aylardır burada gevelediğim "program yazmak lazım" düşüncesini sonunda hayata geçirmeyi başardım. Son bir aydır, ikinci stajımda yazmış olduğum, yazarken de çok eğlenip bir çok şey öğrendiğim bir programı, yine aynı kişi için, bu sefer daha profesyonelce ve daha fazla işe yarayacak şekilde yeniden yazdım. Yazdığım şey, basit bir SMS gateway. Bilgisayara seri port ya da USB üzerinden bağlanan gerçek bir telefona bağlanıp mesaj atıp alabilen, multi-threaded,  C/C++ ile yazılmış bir Linux programı. Çok büyük bir kod değil. 1000 satırdan biraz daha fazla olması lazım. Kodu dün gece bitirip yolladığım için ürünün ne şekilde lisanslanacağı henüz belli değil. Eğer özgür yazılım olursa (ki olmasını ben de çok isterim), mutlaka bir şekilde edinmenizi sağlayacağım.</p>
<p>Bir kaç gün evvel, hiç beklemediğim bir anda (openArena oynuyordum), okulumdan seminer teklifi aldım. Seminerin konusu daha çok benim ne iş yaptığım ile alakalı olsa da, durum bundan çok daha önemli. Eğitimi iyi (ve ağır) olan ama; adı duyulmamış bir üniversitede genelde öğrenciler (benim dönem arkadaşlarımın bir kısmı da dahil) okulu sevmekten ve mezun olduklarında işe yarayacaklarına inanmaktan uzak oluyorlar. Bu öğrencilere gerçek hikayeleri anlatmanın bu insanları motive edeceğini düşünüyorum. Bu yüzden bu seminer benim için en az iş yerinde verdiğim sunumlar ve eğitimler kadar önemli. Açıkçası, şimdiden heyecanlanıyorum. Onun nasıl geçtiğini de buraya yazarım. Eğer Atılım Üniversitesinden birileri burayı okuyorsa vereceğim seminer 7 Kasım 2007 - Saat 13:30 da konferans salonunda. Bekleriz.</p>
<p>Şimdilik benim yaptıklarım bu kadar ama; daha yapacağım çok şey var. O şeylerin arasında burayı daha sık güncellemek de var.</p>
]]></content:encoded>
</item>
<item>
<title><![CDATA[Sesli v2]]></title>
<link>http://tarikzengin.wordpress.com/2007/08/15/sesli-v2/</link>
<pubDate>Wed, 15 Aug 2007 14:22:25 +0000</pubDate>
<dc:creator>Aydın Tarık Zengin</dc:creator>
<guid>http://tarikzengin.wordpress.com/2007/08/15/sesli-v2/</guid>
<description><![CDATA[1 sene önce öylesine aklıma gelip giriştiğim bir proje &#8220;Sesli&#8221;. 2 gecede ortaya ç]]></description>
<content:encoded><![CDATA[<p>1 sene önce öylesine aklıma gelip giriştiğim bir proje "Sesli". 2 gecede ortaya çıktı ve sonradan da birkaç eklemeyle son halini aldı.</p>
<p>Üstünden 1 yıl geçti, hiç ilgilenemedim. Bu süre zarfında seslisozluk tasarımı değiştiği için proje çalışmaz duruma gelmişti. Geçenlerde tekrar aklıma takılınca ayağa kaldırasım geldi :)</p>
<p>Fakat bu kez yeni bir şeyler öğrenmek adına, daha önce Perl ve Bash Script kullandığım projeyi Python'a taşıma kararı aldım. Planım öncelikle çatıyı oluşturup ardından pyQT, pyGTK ya da wxPython kullanarak projeye kişilik kazandırmak.</p>
<p>Geçen yıl Erkan Kaplan'ın sağladığı, Lapis Forum'la beraber aynı sunucuda bulundurduğu  <a href="http://sesli.linux-sevenler.org/" title="Sesli">şu sayfa</a>da yayınlamıştım. Şu an sayfadaki versiyonlar işlevsiz olsa da incelemek isteyenlere açık.</p>
<p>Python konusunda henüz hiç bilgim olmaması nedeniyle ilginç bir tecrübe olacak. İlk izleninim olarak okunaklı bir syntax'a sahip olduğunu söyleyebilirim. Bu izlenimimden dolayı pişman olmayacağımı umuyorum. Python bilen arkadaşlara da selam ederim. Başınızı ağrıtacağım.</p>
<p>Şu an için Zemberek ile kelime kökü bulma işlemlerini dahil etmeyeceğim. Bu konuyu <a href="http://serkank.wordpress.com/" title="Serkan Kaba">Serkan</a> ile konuşup program içine gömüp gömemeyeceğimi sormam gerek.</p>
<p>Çok fazla boş vaktim olmadığını ve hiç Python bilmediğimi de göz önünde bulundurursam  bu kez 2 gecede bitmeyecek :)  Zaten ne zaman vaktim olmasa, sıkışık olsam bu tür şeyler yapasım gelir. Huy işte, çıkmıyor.<br />
Beta tester'ım hazır olsun. O kendini biliyor :D</p>
]]></content:encoded>
</item>
<item>
<title><![CDATA[ÇROP Projeleri - Yenilerine geçmeden önce hatırlatma ]]></title>
<link>http://croplatform.wordpress.com/2007/08/08/crop-projeleri-yenilerine-gecmeden-once-hatirlatma/</link>
<pubDate>Wed, 08 Aug 2007 08:34:41 +0000</pubDate>
<dc:creator>croplatform</dc:creator>
<guid>http://croplatform.wordpress.com/2007/08/08/crop-projeleri-yenilerine-gecmeden-once-hatirlatma/</guid>
<description><![CDATA[Yeni ÇROP Proje hazırlıklarını tamamlarken eskileri hatırlayalım istedik:
 
]]></description>
<content:encoded><![CDATA[<p>Yeni <strong>ÇROP Proje</strong> hazırlıklarını tamamlarken eskileri hatırlayalım istedik:</p>
<p> <span style='text-align:center; display: block;'><object width='425' height='350'><param name='movie' value='http://www.youtube.com/v/_YbJ3Fq7lfA'></param><param name='wmode' value='transparent'></param><embed src='http://www.youtube.com/v/_YbJ3Fq7lfA&rel=0' type='application/x-shockwave-flash' wmode='transparent' width='425' height='350'></embed></object></span></p>
]]></content:encoded>
</item>
<item>
<title><![CDATA[İNSANIN KENDİNİ TANIMASI   ]]></title>
<link>http://bcplatform.wordpress.com/2007/07/26/insanin-kendini-tanimasi/</link>
<pubDate>Thu, 26 Jul 2007 18:34:21 +0000</pubDate>
<dc:creator>Bünyamin ÇELİK</dc:creator>
<guid>http://bcplatform.wordpress.com/2007/07/26/insanin-kendini-tanimasi/</guid>
<description><![CDATA[    İlk başta rahme düşer insanoğlu. Anne karnında cebelleşir durur , daha hiç bir şeyin]]></description>
<content:encoded><![CDATA[<p><span style="font-size:14pt;font-family:Haettenschweiler;"><span>    </span>İlk başta rahme düşer insanoğlu. Anne karnında cebelleşir durur , daha hiç bir şeyin farkında değildir. Bir süre geçer ve dünyaya gözlerini açar insanoğlu. İlk tepkisi ağlamak olur sanki nereye geldiğini bilircesine işte o andan itibaren ölüme kadar dönüşü olamaz mecburi tek yöndür hayat…</span><span style="font-size:14pt;font-family:Haettenschweiler;"><span>           </span>Artık yolculuk başlamıştır sonsuzluğa doğru. Herkesin temennisi bu yolculuğu olabildiğince az zararla bitirmek</span><span style="font-size:24pt;font-family:Haettenschweiler;"> </span><span style="font-size:14pt;font-family:Haettenschweiler;">ve bu yolda karlı çıkmak . doğruları olduğu kadar yanlışları da vardır hayatın herkes görmek istediği açıdan bakar bu kavramlara.<span>  </span>Birde hani şu malum iyilerle kör olası kötüler vardır, bu kavramda görecelidir yeterki insanı memnun edebilesin. Misal olarak kendime bakıyorum ve diyorum ki: </span><span style="font-size:12pt;font-family:Haettenschweiler;">e</span><span style="font-size:14pt;font-family:Haettenschweiler;">ğer beni tanıyan beş yüz kişi varsa bunun üç yüz’ü beni kötü bilir, elli yüz’ü kararsızdır. Yüz elli yüzünde iyilik timsaliyimdir.</span><span style="font-size:24pt;font-family:Haettenschweiler;"><span>  </span></span><span style="font-size:14pt;font-family:Haettenschweiler;">Aslında anlatmak istediğim bunlar değil her şeyden önce insanın<span>  </span>kendini tanımasıdır. Çoğu insan tanımaz kendisini. Ya hep başkalarını taklit eder yada kendi idolünü yaparak başkalarına timsal eder. Acaba kaç insan aynaya bakarak ’Ben kimim?’ sorusunu yöneltir kendine. Asıl olan temayulde değil tevazudadır. Gerçeği söylemek gerekirse ben de daha düne kadar kendimi tanımıyordum hep başkalarını taklit ediyordum. <span> </span>Ve kendimi iğrenç yaratıklara benzetirdim. <span> </span>Sonra o soruyu sordum kendime ve bakın ne buldum cevabını..</span></p>
]]></content:encoded>
</item>
<item>
<title><![CDATA[Flickr'da ispinoz grubu]]></title>
<link>http://arjinin.wordpress.com/2007/07/02/flickrda-ispinoz-grubu/</link>
<pubDate>Mon, 02 Jul 2007 09:50:16 +0000</pubDate>
<dc:creator>arjinin</dc:creator>
<guid>http://arjinin.wordpress.com/2007/07/02/flickrda-ispinoz-grubu/</guid>
<description><![CDATA[
İspinoz fotoğrafları çeken flickrcıları yaklaşık 1 hafta önce açtığım ispinoz grubuna ]]></description>
<content:encoded><![CDATA[<p><a href="http://www.flickr.com/groups/ispinoz/" target="_blank"><img src="http://arjinin.wordpress.com/files/2007/07/ispinoz-grup.png" alt="burada" border="0" /></a></p>
<p><b>İspinoz</b> fotoğrafları çeken <b><a href="http://www.flickr.com" target="_blank">flickr</a>cıları</b> yaklaşık 1 hafta önce açtığım <b><a href="http://www.flickr.com/groups/ispinoz/" target="_blank">ispinoz</a> grubuna</b> beklerim. An itibariyle 80 üyesi bulunan grupta <b>dünyanın her yerinden</b> değişik ispinoz fotoğraflarını bulabilirsiniz. Üye ve fotoğraf sayısı aktiftir, her an yenileri eklenmektedir.  :))</p>
]]></content:encoded>
</item>
<item>
<title><![CDATA[Gouldian' ları koruyun]]></title>
<link>http://arjinin.wordpress.com/2007/06/09/gouldian-lari-koruyun/</link>
<pubDate>Sat, 09 Jun 2007 09:08:17 +0000</pubDate>
<dc:creator>arjinin</dc:creator>
<guid>http://arjinin.wordpress.com/2007/06/09/gouldian-lari-koruyun/</guid>
<description><![CDATA[
Çevresel kötü yönetimin ve ihmalin yıllar boyunca savunmasız duruma getirdiği doğa, kürese]]></description>
<content:encoded><![CDATA[<p><img src="http://arjinin.wordpress.com/files/2007/06/goldi-koru.png" alt="goldi-koru.png" align="left" /><br />
Çevresel kötü yönetimin ve ihmalin yıllar boyunca savunmasız duruma getirdiği doğa, küresel ısınma ve kaynakların yokolması sebebiyle kendini toparlayamaz bir duruma doğru ilerliyor. Vahşi yaşamdaki hayvan sayısının da giderek azalması karşısında yapılan bazı girişimlerle bu oranlar azaltılmaya çalışılıyor. Bu alanda çalışan fonlardan biri olan Gouldian Koruma Fonu, vahşi doğada<b> sayısı 2500' den az kalan</b> <b><a href="http://arjinin.wordpress.com/2007/02/12/gouldian-ispinozu/" target="_blank">Gouldian ispinozlarının</a></b> geleceğini kurtarmaya çalışıyor.</p>
<p style="text-align:left;">&#160;</p>
<p><b><a href="http://www.savethegouldian.org/" target="_blank">Bu websitesinin</a> </b>hedefi, Gouldian' ları koruma programı ile ilgili olarak yapılan çalışmaları internet üzerinden duyurmakmış. Vahşi Gouldian ispinozlarının doğadaki sayılarının giderek azalması üzerine bu alanda çalışmaya başlayan bu fon, araştırmacıların finansman kaynakları ile de ilgileniyor.</p>
<p style="text-align:left;">&#160;</p>
<p style="text-align:left;">&#160;</p>
<p><b>Çalışmanın amaçları:</b></p>
<p style="text-align:left;">&#160;</p>
<p>• Avustralyalı <b>ornitolojik bir ikonun</b> kurtuluşuna katkıda bulunması için bir fırsatın olduğu avikültürist ve genel halka kaynak sağlamak</p>
<p style="text-align:left;">&#160;</p>
<p>• Kuş himayesinin medyada negatif bir imaj şeklinde hitap etmek ve avikültürü pozitif bir şekilde sunmak. (Yani insanların kafeslerde kuş beslemesi yerine, bu kuşların doğal ortamlarında kendi hayatlarını yaşamalarını sağlamak  - <b>site sahibinin notu</b>)</p>
<p style="text-align:left;">&#160;</p>
<p>•  Yeni bilimsel veriyi yorumlamak ve avikültürün pratiğini daha fazla arttırmak için bunu kullanmak.</p>
<p style="text-align:left;">&#160;</p>
<p>•  Dünyayı bir haber mektubunun ilanı ile Gouldian hikayesi hakkında bilgilendirmek.</p>
<p style="text-align:left;">&#160;</p>
<p><b>2005 Eylül'de</b> AWC' nin Mornington vahşi hayat mabetinde <b>Gouldian ispinozunun</b> vahşi nüfusunda gerilemeye destek araştırması avikültürist ve Gouldian aşığı <b>Mike Fidler</b> tarafından oluşturulmuş ve Tazmanyalı avikültürist <b>Marcus</b> ve eşi <b>Elisabeth</b> de ona katılmışlar. <b>Mike ve Elisabeth, </b>son 25 yıllarını  kuzey-batı Avustralya'da vahşi <b>Gouldian'ları kaydederek</b> ve bu konuda çalışmalar yaparak geçirmişler. Bu problem üzerinde çalışırken, finansmanı sağlamak için <b>kar amacı gütmeyen</b> bu organizasyonu oluşturmuşlar ve bu proje için bağış desteklerini kabul etmeye başlamışlar.</p>
<p style="text-align:left;">&#160;</p>
<p>Araştırmaları ile <b>Gouldian ispinozu</b> hakkında davranışsal ve beslenme açısından oldukça fazla bilgi toplamışlar. Eğer bu araştırmalar başarılı olursa, avikültürle ilgili bilgi kaynakları artacakmış. Bu projenin sahiplerine göre, insanların hayatında eğlenceli bir yeri olan <b>Gouldianları </b>kurtarmak için<b> bu son şansımız olabilir.</b> İsteyenler bu projeye <b><a href="http://www.savethegouldian.org/form.htm" target="_blank">şuradan</a></b> destek verebilirler.</p>
<p style="text-align:left;">&#160;</p>
]]></content:encoded>
</item>
<item>
<title><![CDATA[[Matlab] Pitch Frequency Estimation]]></title>
<link>http://tarikzengin.wordpress.com/2007/06/02/pitch-frequency-estimation/</link>
<pubDate>Sat, 02 Jun 2007 09:30:12 +0000</pubDate>
<dc:creator>Aydın Tarık Zengin</dc:creator>
<guid>http://tarikzengin.wordpress.com/2007/06/02/pitch-frequency-estimation/</guid>
<description><![CDATA[Hazırlayanlar:Timur Düzenli /Aydın Tarık Zengin
Bu projede Matlab ortamında, önceden kaydedilm]]></description>
<content:encoded><![CDATA[<p><strong>Hazırlayanlar:Timur Düzenli /Aydın Tarık Zengin</strong></p>
<p>Bu projede Matlab ortamında, önceden kaydedilmiş olan bir bayan sesinin "Pitch Frequency" analizi yapılarak segmentasyon işlemi gerçekleştirilmiş ve sesli/sessiz segmentler ayırt edilerek sinyalin sesli segmentlerinin ortalaması çıkarılmıştır. Proje, ses tanıma algoritmalarına giriş niteliğinde bir ön bilgi olarak sayılabilir.</p>
<h2><font color="#cc0000"><u>İçerik</u></font></h2>
<ul>
<li>Değişkenlerin 	Tanımlanması</li>
<li>İşlenecek Sinyalin 	Matlab Ortamına Alınması</li>
<li>Sinyalden DC 	Bileşenlerin Atılması</li>
<li>Segmentasyonda 	Kullanılacak Değişkenlerin Belirlenmesi</li>
<li>Silence Analizi İçin 	Gerekli Değişkenlerin Bulunması</li>
<li>Silence Olan Segmentlerin Atılması</li>
<li>Clipping Level 	Parametrelerinin Elde Edilmesi</li>
<li>Segmentlerin 	Enerjilerinin ve Otokorelasyonlarının Bulunması</li>
<li>Sonuç</li>
</ul>
<p><!--more--></p>
<h1></h1>
<h2><font color="#cc0000"><u>Değişkenlerin Tanımlanması</u></font></h2>
<p>Programda kullanılacak değişkenler hız kazanmak için önceden tanımlanıyor.</p>
<address><font color="#0000ff">xseg_son=[];<br />
mm_son=[];<br />
cc=[];<br />
energy=[];<br />
pitch=[];<br />
voiced=[];<br />
unvoiced=[];</font></address>
<h2><font color="#cc0000"><u>İşlenecek Sinyalin Matlab Ortamına Alınması</u></font></h2>
<p>normal_female.wav dosyası x değişkenine atiliyor. Okunan sinyalin sample frekansı fs değişkeninde tutuluyor. x değişkenine atanmış olan sinyal plot ediliyor.</p>
<address><font color="#0000ff">[x,fs]=wavread('normal_female');<br />
close all<br />
plot(x);<br />
title('Okunan Sinyal');</font></address>
<address> </address>
<address> </address>
<address> </address>
<address> </address>
<address> </address>
<p style="text-align:center;"><img src="http://tarikzengin.files.wordpress.com/2007/06/odevv_01.png" alt="pitch1" /></p>
<address> </address>
<address> </address>
<h2><font color="#cc0000"><u>Sinyalden DC Bileşenlerin Atılması</u></font></h2>
<p>Sinyalin mean değeri kendinden çıkarılarak DC bileşenler atiliyor. Sonuç X değişkenine atılarak çizdiriliyor.</p>
<address><font color="#0000ff">X=x-mean(x);<br />
plot(X);<br />
title('DC Bileseni Atilmis Sinyal Sinyal');</font></address>
<address> </address>
<address> </address>
<address> </address>
<address> </address>
<address> </address>
<address> </address>
<p style="text-align:center;"><img src="http://tarikzengin.files.wordpress.com/2007/06/odevv_02.png" alt="pitch2" /></p>
<address> </address>
<address> </address>
<h2><font color="#cc0000"><u>Segmentasyonda Kullanılacak Değişkenlerin Belirlenmesi</u></font></h2>
<p>Bu kısımda segmentasyon işleminde kullanılacak parametreler belirlenip ardından buffer komutu ile belirlenen block değerlerinde segmentlere bölme işlemi gerçekleştiriliyor. Window'lar overlap miktarı kadar çakışık olarak bölünmektedir. Ardından elde edilen window'lar hamming window ile çarpılarak segmentler elde ediliyor.</p>
<address><font color="#0000ff"><br />
block=30*fs/1000;</font><font color="#0000ff"><font color="#c0c0c0">% Segmentlerin block uzunluğunun okunan sinyalin sample frekansından bulunması</font></font><font color="#0000ff"><br />
overlap=10*fs/1000;</font><font color="#0000ff"><font color="#c0c0c0">% Overlap miktarının bulunması.</font></font><font color="#0000ff"><br />
xson=buffer(X,block,overlap);</font><font color="#0000ff"><font color="#c0c0c0">% Segmentasyon yapılıyor.</font></font><font color="#0000ff"><br />
xson=xson.*repmat((hamming(block)),1,length(xson(1,:)));</font><font color="#0000ff"><font color="#c0c0c0">% Hamming Code İle Çarpım.</font></font></address>
<address> </address>
<h2><font color="#cc0000"><u> Silence Analizi İçin Gerekli Değişkenlerin Bulunması</u></font></h2>
<p>Sinyalin sesli/sessiz kısımlarının analizi için gerekli bazı değişkenlerin tanımlamaları yapılıyor.</p>
<address><font color="#0000ff"><br />
Maximum=max(X);<font color="#c0c0c0"> </font></font><font color="#0000ff"><font color="#999999">% DC bileşenleri atılmış sinyalin maximum değeri bulunuyor.</font></font><font color="#0000ff"><font color="#c0c0c0"><font color="#999999">(Global Maximum)</font></font></font><font color="#0000ff"><br />
maxy=(Maximum*0.05);</font><font color="#0000ff"><font color="#999999">% Silence için threshold değeri tanımlanıyor</font></font><font color="#0000ff"><br />
sinyal_uz=length(xson(1,:)); </font><font color="#0000ff"><font color="#999999">% xson sinyalinin boyutları [1500,300].</font></font><font color="#0000ff"><font color="#999999">  Burada sinyal_uz 300 değerini alıyor.</font></font><font color="#0000ff"><br />
</font></address>
<address> </address>
<h2><font color="#cc0000"><u>Silence Olan Segmentlerin Atılması<br />
</u></font></h2>
<p>Aşağıdaki döngüde silence olmayan segmentler hesaplanıyor. Her segmentin maximum değeri xseg_max değişkenine atanıyor. Bu değişken de threshold değerimiz olan maxy ile karşılaştırılıyor. Silence olmayan bir değer bulunduğunda ise z değeri 1 arttırılıyor.</p>
<address><font color="#0000ff"> z=1;</font><font color="#0000ff"><font color="#999999">% Silence olmayan segmentlerin sayısını z verecek</font></font><br />
</address>
<address><font color="#0000ff">for c=1:(sinyal_uz),             <font color="#999999">% sinyal_uz=300.</font><br />
<font color="#999999"> % Her segmentin maximumu xseg_max a atanıyor.<br />
% Bir sonraki adımda global max. ile karşılaştırılacak.</font><br />
xseg_max=max(xson(:,c));<br />
if xseg_max &#62;maxy</font><font color="#0000ff"><font color="#999999"> % Segmentin maximumu global maximum ile karşılaştırılıyor.</font></font><font color="#0000ff"><br />
xseg_son(:,z)=xson(:,c);</font><font color="#0000ff"><font color="#999999"> % Silencelardan arındırılmış yeni bir "xseg_son" sinyali oluşturuluyor.</font></font><font color="#0000ff"><br />
z=z+1;</font><font color="#0000ff"><font color="#999999"> % Silence olmayan her segment için z 1 arttırılıyor.</font></font><br />
<font color="#0000ff"> else<br />
end <font color="#999999">% if</font><br />
end <font color="#999999">% for</font><br />
</font></address>
<address><font color="#0000ff">xx=xseg_son(:,1:(z-1));   <font color="#999999">% xseg_son xx e atandı.</font><br />
plot(xx(:));<br />
title('Silence Atilmis Sinyal');</font></address>
<address> </address>
<address> </address>
<address></address>
<p style="text-align:center;"><img src="http://tarikzengin.files.wordpress.com/2007/06/odevv_03.png" alt="pitch3" /></p>
<address> </address>
<address> </address>
<address> </address>
<h2><font color="#cc0000"><u>Clipping Level Parametrelerinin Elde Edilmesi</u></font></h2>
<p>Aşağıdaki döngüde her segmentin ilk ve son üçte birlik kısmının maximumu bulunup karşılaştırılıyor. Bu karşılaştırılan iki değerden de küçük olanı mm değişkenine atanıyor. Clipping Level ı tanımlamak amacıyla elde edilen değer de 0,68 ile çarpılıyor. Segmentin bu değerden büyük olan elemanlarından bu threshold değeri çıkarılıyor. Küçük olan değerler ise doğrudan 0'a yuvarlanıyor.</p>
<address><font color="#0000ff">for i=1:length(xx(1,:)),          <font color="#999999">%i=1:300</font></font></address>
<address><font color="#0000ff">    </font></address>
<address><font color="#0000ff">    m1=max(abs(xx(1:500,i)));     <font color="#999999">% xx sinyalinin ilk 1/3 kısmının maximum elemanı bulundu</font></font></address>
<address><font color="#0000ff">    m2=max(abs(xx(1001:1500,i))); <font color="#999999">% xx sinyalinin son 1/3 kısmının maximum elemanı bulundu</font></font></address>
<address><font color="#0000ff">    mm=min(m1,m2);                <font color="#999999">% Bu iki maximumdan hangisinin daha küçük olduğu belirlendi</font></font></address>
<address><font color="#0000ff">    mm_son(i)=mm*0.68;            <font color="#999999">% Yukarıdaki satırda elde edilen değer 0.68 ile çarpılarak "clipping level"</font> <font color="#999999">elde edildi</font></font></address>
<address><font color="#0000ff">    for j=1:length(xx(:,1)),                                     <font color="#999999">% length(xx(:,1))=1500</font></font></address>
<address><font color="#0000ff">        if abs(xx(j,i))&#62;mm_son(i)                                <font color="#999999">% Clipping level ile karşılaştırma yapılıyor</font></font></address>
<address><font color="#0000ff">            cc(j,i)=sign(xx(j,i))*((abs(xx(j,i)))-(mm_son(i)));  <font color="#999999">% Clipping leveldan büyük olan bileşenlerden clipping level çıkarıldı</font></font></address>
<address><font color="#0000ff">        else</font></address>
<address><font color="#0000ff">            cc(j,i)=0;                                           <font color="#999999">% Küçük olan bileşenler ise 0 a çekildi</font></font></address>
<address><font color="#0000ff">        end                                                      <font color="#999999">% if koşulu sona erdiriliyor</font></font></address>
<address><font color="#0000ff">    end                                                          <font color="#999999">% 2."for" döngüsü sonu </font></font></address>
<address><font color="#0000ff">end                                                              <font color="#999999">% 1."for" döngüsü sonu </font></font></address>
<p><font color="#0000ff"><br />
</font></p>
<address> </address>
<address> </address>
<h2><font color="#cc0000"><u> Segmentlerin Enerjilerinin Bulunması</u></font></h2>
<p>Yukarıdaki döngü sonunda elde edilen cc matrisinin boyutları [1500,300]. Aşağıdaki döngüde ise her bir segment için energy hesaplanıyor. Bunun için sinyalin normunun karesi her bir kolonu için hesaplanıyor. xcorr komutu ile tüm sinyalin autocorrelation'i bulunuyor. Buradan 50Hz ile 400Hz arasindaki autocorrelation bileşenleri bulunuyor ve bunlara karşılık gelen pitch frekansları hesaplanıyor.</p>
<address><font color="#999999"><font color="#0000ff">w=1;</font>    % Voiced segmentler için başlangıç ataması<br />
<font color="#0000ff">v=1;  </font>  % Unvoiced sinyaller için başlangıç ataması<br />
<font color="#0000ff">u=1;</font>    % Voiced olarak düşündüğümüz bileşenlerin sayısını bu parametre gösterecek<br />
<font color="#0000ff">a=[]; </font>  % Autocorrelation matrisi için başlangıç ataması</font> </address>
<address><font color="#0000ff">for h=1:length(cc(1,:)),                        <font color="#999999">% cc nin kolon sayısı=300</font></font></address>
<address><font color="#0000ff">energy(h)=norm(cc(:,h),2)^2;               <font color="#999999">% Her segment için enerji hesaplanıyor</font><br />
a(:,h)=xcorr(cc(:,h));                     <font color="#999999">% İlk başta bütün cc sinyalinin autocorrelation u bulunuyor</font><br />
</font></address>
<address> </address>
<address><font color="#0000ff"><font color="#999999">     % 50 Hz-400Hz arasındaki autocorrelation fonksiyonu değerlerini </font></font><font color="#0000ff"><font color="#999999">bulabilmek için 50 Hz ve 400 Hz frekanslarına karşılık gelen pitch  frequency değerlerinin indekslerini alıyoruz.</font></font><br />
<font color="#0000ff">     alt_sinir=floor(fs/400);                  <font color="#999999"> </font></font><font color="#0000ff"><br />
ust_sinir=floor(fs/50);<br />
Rxx=abs(a((block+alt_sinir:block+ust_sinir),h));<br />
[k l]=max(Rxx);                           <font color="#999999">% Aldığımız aralıktaki en büyük sayının yerini belirliyoruz</font><br />
l=l+alt_sinir;<br />
pitch(h)=fs/l;                             <font color="#999999">% Pitch Frequnecy hesaplanıyor </font></font><br />
</address>
<address> </address>
<address><font color="#0000ff">   <font color="#999999"> % Segmentin sesli/sessiz oldugunu bulabilmek için autocorrelation'in 0.4*energy'den<br />
% büyük olup olmadigi karsilastiriliyor. Eger büyükse segment seslidir ve voiced<br />
% matrisine atiliyor, eger küçükse unvoiced matrisine atiliyor. Voiced ve unvoiced<br />
% segment sayisi w ve v degiskenlerinde tutuluyor.</font></font></address>
<address> </address>
<address></address>
<address><font color="#999999"><font color="#0000ff">    if k &#62; 0.4*energy(h)</font>              % En büyük değer 0.4*energy ile karşılaştırılıyor</font></address>
<address><font color="#999999">       <font color="#0000ff"> voiced(:,w)=cc(:,h);    </font>  </font><font color="#0000ff"><font color="#999999">% Şart sağlanırsa voiced sinyaline atılıyor</font></font></address>
<address><font color="#999999"><font color="#0000ff">        w=w+1;                           </font></font><font color="#0000ff"><font color="#999999">% Koşul sağlanırsa voiced segment sayısı arttırılır.</font></font></address>
<address><font color="#999999"><font color="#0000ff">    else</font></font></address>
<address><font color="#999999"><font color="#0000ff">        unvoiced(:,v)=cc(:,h);  </font>  % Şart sağlanmazsa unvoiced sinyali oluşturuluyor</font></address>
<address><font color="#999999"><font color="#0000ff">        v=v+1; </font>                   % Unvoiced sinyal segmentleri 1 arttılır.</font></address>
<address><font color="#999999"><font color="#0000ff">    end</font></font></address>
<address><font color="#999999"><font color="#0000ff">end</font></font><font color="#0000ff">                                <font color="#999999">% 1. "for" döngüsü sonu</font></font></address>
<address> </address>
<h2><font color="#cc0000"><u> Sonuç</u></font></h2>
<p>En son kısımda ise sesli sinyalinin ortalaması alınıyor</p>
<address><font color="#0000ff">sesli_ort=mean(pitch);<font color="#999999">% Voiced segmentlerin ortalaması</font></font><font color="#0000ff"><br />
sesli_ort </font></address>
<address> </address>
<address> </address>
<address><font color="#ff0000">sesli_ort= </font></address>
<address><font color="#ff0000"> </font></address>
<address><font color="#ff0000">        </font><font color="#ff0000">232.8431</font></address>
<address> </address>
<address> </address>
<address> </address>
]]></content:encoded>
</item>
<item>
<title><![CDATA[feedburner.com çeviri]]></title>
<link>http://efecan.wordpress.com/2007/05/29/feedburnercom-ceviri/</link>
<pubDate>Tue, 29 May 2007 18:32:48 +0000</pubDate>
<dc:creator>efecan</dc:creator>
<guid>http://efecan.wordpress.com/2007/05/29/feedburnercom-ceviri/</guid>
<description><![CDATA[Bugünlerde (ve daha da süreceğe benziyor) google&#8217;ın almayı planladığı feedburner.com]]></description>
<content:encoded><![CDATA[<p>Bugünlerde (ve daha da süreceğe benziyor) google'ın almayı planladığı feedburner.com'un Türkçe çevirisi ile uğraşmaktayım. 1400 satır kelime ve çoğuda günlük dilde offf!, Neyse işin içinde google olunca biraz gayret ediyorum :)</p>
<p><img src="http://www.feedburner.com/fb/i/flamocon_190h.gif" height="190" width="179" />  <img src="http://www.google.com.tr/intl/tr/images/about_logo.gif" height="65" width="175" /></p>
]]></content:encoded>
</item>
<item>
<title><![CDATA[Sunucu kurma çabası]]></title>
<link>http://efecan.wordpress.com/2007/05/22/sunucu-kurma-cabasi/</link>
<pubDate>Tue, 22 May 2007 14:47:42 +0000</pubDate>
<dc:creator>efecan</dc:creator>
<guid>http://efecan.wordpress.com/2007/05/22/sunucu-kurma-cabasi/</guid>
<description><![CDATA[Bu aralar web programcılık ve sitelerle çok ilgilendiğim için bilgisayarım neredeyse günde 12]]></description>
<content:encoded><![CDATA[<p>Bu aralar web programcılık ve sitelerle çok ilgilendiğim için bilgisayarım neredeyse günde 12 saat falan açık. Sonradan aklıma geldi bu kadar açık duruyor bari işe yarasın bir sunucu kurayım dedim. Bugünlerde onu araştıyorum. Sistem çok yetersiz sunucu olmak için, ama niyede deneyim olsun diye deniyeyim dedim. Easyphp' yi kurdum bu paket zaten direk apache ve php'yi kuruyor. Sonra ayarlarıyla oynadım biraz. Ama bir engel çıktı önüme; dinamik ip. Başka bilgisayarlardan ulaşılabilmek için ip'min sürekli aynı yani statik olması gerekliymiş. Ve TTnet baba bunun için ayda ek olarak 3 ytl fazladan fatura alıyor. Neyse 3 ytl sorun değil ama çağrı merkezini arayıp sorduğumda dilekçe falan gerekiyor dediler, tabi banada zor geldi bıraktım peşini.  Şimdilik local olarak yazdığım kodları deniyorum ama şimdilik!</p>
]]></content:encoded>
</item>
<item>
<title><![CDATA[Yeni Proje (T|Storm)]]></title>
<link>http://silentsheadspace.wordpress.com/2006/05/21/yeni-proje-tstorm/</link>
<pubDate>Sun, 21 May 2006 18:42:00 +0000</pubDate>
<dc:creator>Silent|Storm</dc:creator>
<guid>http://silentsheadspace.wordpress.com/2006/05/21/yeni-proje-tstorm/</guid>
<description><![CDATA[Evet. Yeni bir projeye başlıyorum. Esasında olan bir projeyi geliştiriyorum&#8230; Bitirme proje]]></description>
<content:encoded><![CDATA[<p><span style="font-family:trebuchet ms;"><span style="font-family:lucida grande;">Evet. Yeni bir projeye başlıyorum. Esasında olan bir projeyi geliştiriyorum... Bitirme projesi için Java'da yazdığımız sistemi C++ a port edip geliştireceğim ve GPL lisansı ile açacağım.</span></span></p>
<p><span style="font-family:lucida grande;">Ne projesi mi? Olgunlaşana kadar saklamaya karar verdiğim bitirme projemiz, bir sıkıştırma algoritması. Sadece yazı sıkıştırmak için. Özellikle Türkçe için tasarlandı, geliştirildi. İlk versiyonunu açmamamın nedeni tüm kodunun bana ait olmaması ve şu anki performansından pek memnun olmamam (Ayrıca ilk uygulamasını da biz yapıyoruz Türkçe için. Tasarımı da bize ait, evet). Daha düzenli, hızlı ve makina koduna çevrilebilir bir sürümünü çıkartınca koyacağım buraya.</span></p>
<p><span style="font-family:lucida grande;">Bu arada maalesef, sistem GNU/Linux için geliştirildi. Java mı? Hayır win32API yüzünden en önemli modulü olması gerektiği gibi çalışmıyor. Belki C++ versiyonu çalışır ya da port ederim. </span></p>
<p><span style="font-family:lucida grande;">Görüşmek üzere, iyi geceler.</span></p>
]]></content:encoded>
</item>

</channel>
</rss>
