<?xml version="1.0" encoding="UTF-8"?>
<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/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>Çağdaş&#039;ın Günlüğü &#187; pragramlama</title>
	<atom:link href="http://www.cagdastopcu.com/category/pragramlama/feed" rel="self" type="application/rss+xml" />
	<link>http://www.cagdastopcu.com</link>
	<description>THE GNU HARDWARE DEVELOPER</description>
	<lastBuildDate>Tue, 04 Oct 2011 14:50:51 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.3.1</generator>
		<item>
		<title>MySQL Kullanım Notları</title>
		<link>http://www.cagdastopcu.com/mysql-kullanim-notlari.html</link>
		<comments>http://www.cagdastopcu.com/mysql-kullanim-notlari.html#comments</comments>
		<pubDate>Sun, 05 Dec 2010 11:32:45 +0000</pubDate>
		<dc:creator>cagdas</dc:creator>
				<category><![CDATA[GNU]]></category>
		<category><![CDATA[pragramlama]]></category>
		<category><![CDATA[SQL]]></category>
		<category><![CDATA[database]]></category>
		<category><![CDATA[kod]]></category>
		<category><![CDATA[kullanım notları]]></category>
		<category><![CDATA[mysql]]></category>
		<category><![CDATA[notlar]]></category>
		<category><![CDATA[notları]]></category>
		<category><![CDATA[programlama]]></category>

		<guid isPermaLink="false">http://www.cagdastopcu.com/?p=307</guid>
		<description><![CDATA[C++ ve libmysqlclient kütüphanesi ile database uygulamalarına başladım. Buna başlamadan önce temel bir MySQL bilgisi gerekmektedir. MySQL tutorial&#8217;ını çalışırken kendime çıkardığım notlardır. Çok kapsamlı olmasa da ilk giriş dersi olabilir. mysql&#8217;i başlatma kod $ sudo /etc/init.d/mysql start kod$ mysql&#8217;e bağlanma kod $ mysql -u root -p kod $ Eğer kurulumu düzgün olmuşsa aşağıdaki gibi bir &#8230; </p><p><a class="more-link block-button" href="http://www.cagdastopcu.com/mysql-kullanim-notlari.html">Continue reading &#187;</a>]]></description>
			<content:encoded><![CDATA[<!-- Start Shareaholic LikeButtonSetTop --><!-- End Shareaholic LikeButtonSetTop --><p><img class="alignleft" title="mysql tasarım" src="http://lh5.ggpht.com/_gVfZHGgf5LA/Sn9FwCWpCgI/AAAAAAAAAto/oTCPwV8WCI0/planet_mysql_voting2.jpg" alt="" width="333" height="259" /></p>
<p>C++ ve libmysqlclient kütüphanesi ile database uygulamalarına başladım. Buna başlamadan önce temel bir MySQL bilgisi gerekmektedir.</p>
<p>MySQL tutorial&#8217;ını çalışırken kendime çıkardığım notlardır. Çok kapsamlı olmasa da ilk giriş dersi olabilir.</p>
<div>mysql&#8217;i başlatma</div>
<div>kod $</div>
<div>sudo /etc/init.d/mysql start</div>
<div>kod$</div>
<div>mysql&#8217;e bağlanma</div>
<p>kod $</p>
<p>mysql -u root -p</p>
<p>kod $</p>
<p>Eğer kurulumu düzgün olmuşsa aşağıdaki gibi bir şey göreceğiz.</p>
<p>Enter password: Welcome to the MySQL monitor.  Commands end with ; or \g.Your MySQL connection id is 52Server version: 5.1.41-3ubuntu12.7 (Ubuntu)</p>
<p>Type &#8216;help;&#8217; or &#8216;\h&#8217; for help. Type &#8216;\c&#8217; to clear the current input statement.</p>
<p>mysql&gt;<br />
mysql db oluşturma<br />
kod mysql&gt;</p>
<p>CREATE DATABASE dbadi;</p>
<p>kod mysql&gt;</p>
<p>kullanılacak db&#8217;yi seçmek</p>
<p>kod mysql&gt;</p>
<p>USE dbadi;</p>
<p>kod mysql&gt;</p>
<p>kullanılacak db&#8217;yi mysql açılırken seçmek</p>
<p>kod $</p>
<p>mysql -h host -u user -p dbadi</p>
<p>kod $</p>
<p>örnek localhost ve root kullanıcısı için</p>
<p>kod $</p>
<p>mysql -h localhost -u root -p dbadi</p>
<p>kod $</p>
<p>Table&#8217;ları göstermek</p>
<p>kod mysql&gt;</p>
<p>SHOW TABLES;</p>
<p>kod mysql&gt;</p>
<p>bunun için USE komutu ile bir DB&#8217;yi seçmiş olmamız gerekiyor.eğer table yoksa</p>
<p>cikti mysql&gt;</p>
<p>mysql&gt; SHOW TABLES;Empty set (0.00 sec)</p>
<p>cikti mysql&gt;</p>
<p>sonucunu verir.</p>
<p>Table oluşturmak</p>
<p>kod mysql&gt;</p>
<p>CREATE TABLE tableadi (name VARCHAR(20), owner VARCHAR(20),species VARCHAR(20), sex CHAR(1), birth DATE, death DATE);</p>
<p>kod mysql&gt;</p>
<p>burada tabloda tutulacak bilgiler de belirtilmiştir. VARCHAR uzunluğunubelirleyebildiğimiz karakter alanı açar. DATE ise tarih bilgisini saklamakiçindir.</p>
<p>oluşturduğumuz table&#8217;a bakmak</p>
<p>kod mysql&gt;</p>
<p>DESCRIBE tableadi;</p>
<p>kod mysql&gt;</p>
<p>Bu kod table&#8217;daki değişkenlerin türünü gösterir.</p>
<p>Tabloya veri göndermek</p>
<p>iki türlü yapılabilir:</p>
<p>a- Bir dosyadan veriyi almak</p>
<p>Dosyamıza verilerimizi sırasıyla tab ile boşluklar bırakarak yazıp txt uzantısıyla kaydediyoruz.<br />
örnek olarak</p>
<p>Badem	Cagdas	kopek	m	1996-06-06	/N</p>
<p>Arnould	Cagdas	kaplumbaga	m	1999-08-08	/N</p>
<p>Mavis	Abla	kus	m	1995-06-06	/N</p>
<p>Yesim	Abla	kus	m	1995-07-07	/N</p>
<p>Rocky	Cagdas	horoz	m	1993-04-04	1995-01-01</p>
<p>yazıp kaydettim.</p>
<p>Verileri istediğimiz tabloya şu şekilde göndeririz:</p>
<p>kod mysql&gt;</p>
<p>LOAD DATA LOCAL INFILE &#8216;/home/zanpakutou/dosyaadi.txt&#8217; INTO TABLE pet LINES TERMINATED BY &#8216;\n&#8217;;</p>
<p>kod mysql&gt;</p>
<p>burada dosyanın yerinin gösterimi önemli. Ben kullanıcı klasarümekaydetmiştim o yüzden bu şekilde yazdım.</p>
<p>b- komut satırından tek tek verilerin girilmesi<br />
kod mysql&gt;</p>
<p>INSERT INTO pet VALUES (&#8216;Minik&#8217;,'Cagdas&#8217;,'hamster&#8217;,'f&#8217;,&#8217;1999-03-30&#8242;,NULL);</p>
<p>kod mysql&gt;</p>
<p>Burada girdiğimiz NULL ve /N değerleri veri yok anlamında kullanılır.<br />
Tablodaki bütün verileri çekmek</p>
<p>kod mysql&gt;</p>
<p>SELECT * FROM tableadi;</p>
<p>kod mysql&gt;</p>
<p>+&#8212;&#8212;&#8212;+&#8212;&#8212;&#8211;+&#8212;&#8212;&#8212;&#8212;+&#8212;&#8212;+&#8212;&#8212;&#8212;&#8212;+&#8212;&#8212;&#8212;&#8212;+</p>
<p>| name    | owner  | species    | sex  | birth      | death      |</p>
<p>+&#8212;&#8212;&#8212;+&#8212;&#8212;&#8211;+&#8212;&#8212;&#8212;&#8212;+&#8212;&#8212;+&#8212;&#8212;&#8212;&#8212;+&#8212;&#8212;&#8212;&#8212;+</p>
<p>| Badem   | Cagdas | kopek      | m    | 1996-06-06 | 0000-00-00 |</p>
<p>| Arnould | Cagdas | kaplumbaga | m    | 1999-08-08 | 0000-00-00 |</p>
<p>| Mavis   | Abla   | kus        | m    | 1995-06-06 | 0000-00-00 |</p>
<p>| Yesim   | Abla   | kus        | m    | 1995-07-07 | 0000-00-00 |</p>
<p>| Rocky   | Cagdas | horoz      | m    | 1993-04-04 | 1995-01-01 |</p>
<p>+&#8212;&#8212;&#8212;+&#8212;&#8212;&#8211;+&#8212;&#8212;&#8212;&#8212;+&#8212;&#8212;+&#8212;&#8212;&#8212;&#8212;+&#8212;&#8212;&#8212;&#8212;+</p>
<div>
<div>Tabloyu temizlemek</div>
<div>DELETE FROM pet;</div>
<div>Veriyi değiştirmek</div>
<div>kod mysql&gt;</div>
<div>UPDATE pet SET birth = &#8217;1999-04-21&#8242; WHERE name = &#8216;Arnould&#8217;;</div>
<div>kod mysql&gt;</div>
<div>Burada pet tablosunda name bölgesindeki Arnould isimli dizinin</div>
<div>birth bölgesi değiştirilmiştir. birth verisi tarih olarak tanımlı</div>
<div>olduğundan tarih şeklinde girdik veriyi.</div>
<div>Sıralı veri alma</div>
<div>kod mysql&gt;</div>
<div>SELECT Name,owner FROM pet ORDER BY Name;</div>
<div>kod mysql&gt;</div>
<div>Burada owner bölgesindeki verileri isimlerin sırasına göre beraber çektik.</div>
<div>Çıktısı şu şekilde olacaktır:</div>
<div>+&#8212;&#8212;&#8212;+&#8212;&#8212;&#8211;+</div>
<div>| Name    | owner  |</div>
<div>+&#8212;&#8212;&#8212;+&#8212;&#8212;&#8211;+</div>
<div>| Arnould | Cagdas |</div>
<div>| Badem   | Cagdas |</div>
<div>| Mavis   | Abla   |</div>
<div>| Rocky   | Cagdas |</div>
<div>| Yesim   | Abla   |</div>
<div>+&#8212;&#8212;&#8212;+&#8212;&#8212;&#8211;+</div>
<div>5 rows in set (0.58 sec)</div>
<div>Latex Denemesi:</div>
<img src='http://s.wordpress.com/latex.php?latex=e%5E%7B%5Ci%20%5Cpi%7D%20%2B%201%20%3D%200&#038;bg=ffffff&#038;fg=000000&#038;s=0' alt='e^{\i \pi} + 1 = 0' title='e^{\i \pi} + 1 = 0' class='latex' />
<div><span style="font-family: 'Lucida Grande', Verdana, Arial, 'Bitstream Vera Sans', sans-serif; line-height: 18px; color: #333333;"></p>
<p></span></div>
</div>
<div class="shr-publisher-307"></div><!-- Start Shareaholic LikeButtonSetBottom --><!-- End Shareaholic LikeButtonSetBottom --><div style="float: right; margin-left: 10px;"><a href="http://twitter.com/share?url=http://www.cagdastopcu.com/mysql-kullanim-notlari.html&via=cagdastopcucom&text=MySQL Kullanım Notları&related=cagdastopcu.com:official twitter of cagdastopcu.com&lang=en&count=horizontal" class="twitter-share-button">Tweet</a><script type="text/javascript" src="http://platform.twitter.com/widgets.js"></script></div>]]></content:encoded>
			<wfw:commentRss>http://www.cagdastopcu.com/mysql-kullanim-notlari.html/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>PIC 16f628A ve HI-TECH C ile Servo Motor Kontrolü</title>
		<link>http://www.cagdastopcu.com/pic-16f628a-ve-hi-tech-c-ile-servo-motor-kontrolu.html</link>
		<comments>http://www.cagdastopcu.com/pic-16f628a-ve-hi-tech-c-ile-servo-motor-kontrolu.html#comments</comments>
		<pubDate>Mon, 22 Feb 2010 16:33:04 +0000</pubDate>
		<dc:creator>cagdas</dc:creator>
				<category><![CDATA[Elektrik]]></category>
		<category><![CDATA[elektronik]]></category>
		<category><![CDATA[pragramlama]]></category>
		<category><![CDATA[Robotik]]></category>
		<category><![CDATA[16f628a]]></category>
		<category><![CDATA[hitech]]></category>
		<category><![CDATA[kontrol]]></category>
		<category><![CDATA[motor]]></category>
		<category><![CDATA[mplab]]></category>
		<category><![CDATA[pic]]></category>
		<category><![CDATA[servo]]></category>

		<guid isPermaLink="false">http://www.cagdastopcu.com/?p=262</guid>
		<description><![CDATA[Ara tatilinde yaptığım ve Proteus ISIS ile simule ettiğim kodum. Butonlara basarak R/C servo motoru 60 derecelik sağa ve sola döndürüyor. R/C servo motorlar amatör Radio Controlled sistemlerde kullanıldığı için R/C adını almışlardır. Radyo kontrollü hobi uçağı yapabilirsiniz bununla Asıl motor olmayacaktır elbette kanatların altındaki kanatçıkları oynatarak uçağın yönünü değiştirebilirsiniz. Bu motorlar genellikle belirli bir &#8230; </p><p><a class="more-link block-button" href="http://www.cagdastopcu.com/pic-16f628a-ve-hi-tech-c-ile-servo-motor-kontrolu.html">Continue reading &#187;</a>]]></description>
			<content:encoded><![CDATA[<!-- Start Shareaholic LikeButtonSetTop --><!-- End Shareaholic LikeButtonSetTop --><p>Ara tatilinde yaptığım ve Proteus ISIS ile simule ettiğim kodum. Butonlara basarak R/C servo motoru 60 derecelik sağa ve sola döndürüyor. R/C servo motorlar amatör Radio Controlled sistemlerde kullanıldığı için R/C adını almışlardır. Radyo kontrollü hobi uçağı yapabilirsiniz bununla <img src='http://www.cagdastopcu.com/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' />  Asıl motor olmayacaktır elbette kanatların altındaki kanatçıkları oynatarak uçağın yönünü değiştirebilirsiniz. Bu motorlar genellikle belirli bir periyotta (10 ile 20 milisaniye) bir dikdörtgen (pwm asıl adı) sinyalle kontrol edilirler. Bu periyotluk dilimde eğer 1 ms&#8217;lik 1 verir ve gerisini sıfır yaparsanız motor eksi yöne 60 dereceye, 1.5 ms 1 ve gerisi sıfır olursa sıfır dereceye ve 2 ms&#8217;lik bir sinyal yollarsanız da +60 dereceye oturur. Aslında normal dc motorun biraz kontrol devreli ve dişlili halidir (redüktör). Aşağıda Proteus ISIS simulasyonunun görünüşünü koydum. Analog analiz kısmının çalışması için servo motoru devreden ayırmamız gerekmektedir. Sanırım Proteus&#8217;un bir bug&#8217;ı.</p>
<p style="text-align: center;"><a href="http://www.cagdastopcu.com/wp-content/uploads/2010/02/servokontrol.bmp"><img class="aligncenter size-full wp-image-263" title="servokontrol" src="http://www.cagdastopcu.com/wp-content/uploads/2010/02/servokontrol.bmp" alt="" width="506" height="311" /></a></p>
<p>Hi-Tech C kodları ise aşağıdaki gibidir:</p>
<pre class="brush:c">#include

#include
#include 

__CONFIG(WDTDIS&amp;PWRTEN&amp;LVPDIS&amp;INTIO);

void main(void){
    int hiz=0;
    char i = 100;
    PR2 = 255;
    //char k = 0x3D;
    //CMCON = 0x07;
    TRISA = 0x03;
    TRISB = 0x00;
    CCPR1L = 0x3F;
    PORTA = 0x00;
    PORTB = 0x00;
    CCP1X = 1;
    CCP1Y = 0;

    T2CKPS1 = 1; //Prescale özelligi
    T2CKPS0 = 1;
    TOUTPS3 = 0;
    TOUTPS2 = 0;
    TOUTPS1 = 0;
    TOUTPS0 = 0;

    CCP1M0 = 1; //CCP1 PWM MODUNDA
    CCP1M1 = 1;
    CCP1M2 = 1;
    CCP1M3 = 1;

    TMR2ON = 1; //TMR2 ENABLE
    for(;;){
        if(RA0){
            while(RA0);
            RB0 = 1;
            CCPR1L = 0x0E;
             CCP1X = 1;
             CCP1Y = 0;

             T2CKPS1 = 1; //Prescale özelligi
             T2CKPS0 = 1;
             TOUTPS3 = 0;
             TOUTPS2 = 0;
             TOUTPS1 = 0;
             TOUTPS0 = 0;

             CCP1M0 = 1; //CCP1 PWM MODUNDA
             CCP1M1 = 1;
             CCP1M2 = 1;
             CCP1M3 = 1;
             TMR2ON = 1; //TMR2 ENABLE
             __delay_ms(100);
             RB0=0;

    TMR2ON = 1; //TMR2 ENABLE

        }
        if(RA1){
            while(RA1);
            RB1 = 1;
            CCPR1L = 0x9E;
             CCP1X = 1;
             CCP1Y = 0;

             T2CKPS1 = 1; //Prescale
             T2CKPS0 = 1;
             TOUTPS3 = 0;
             TOUTPS2 = 0;
             TOUTPS1 = 0;
             TOUTPS0 = 0;

             CCP1M0 = 1; //CCP1 PWM
             CCP1M1 = 1;
             CCP1M2 = 1;
             CCP1M3 = 1;
             TMR2ON = 1; //TMR2 ENABLE
             __delay_ms(100);
             RB1=0;
        }

    }
}</pre>
<p>Burada timer2 nin pwm modülünü kullanarak periyotu ve bu peryodun ne kadarının 1 olması gerektiğini belirledik.<br />
CCPR1L her değer değişimde timer2&#8242;nin ve pwm modülünün ayarlarını tekrardan girmemiz gerektiğini 16F628A&#8217;nın<br />
datasheetinden bulmak zorunda kalmıştım. 16F877&#8242;ler için böyle bir sıkıntı yaşanmamaktadır.</p>
<p>MPLAB proje dosyasını, kaynak kodlarını ve Proteus ISIS simulasyonunu wp&#8217;deki bir sorundan dolayı koyamadım. En kısa zamanda ekleyeceğim.</p>
<div class="shr-publisher-262"></div><!-- Start Shareaholic LikeButtonSetBottom --><!-- End Shareaholic LikeButtonSetBottom --><div style="float: right; margin-left: 10px;"><a href="http://twitter.com/share?url=http://www.cagdastopcu.com/pic-16f628a-ve-hi-tech-c-ile-servo-motor-kontrolu.html&via=cagdastopcucom&text=PIC 16f628A ve HI-TECH C ile Servo Motor Kontrolü&related=cagdastopcu.com:official twitter of cagdastopcu.com&lang=en&count=horizontal" class="twitter-share-button">Tweet</a><script type="text/javascript" src="http://platform.twitter.com/widgets.js"></script></div>]]></content:encoded>
			<wfw:commentRss>http://www.cagdastopcu.com/pic-16f628a-ve-hi-tech-c-ile-servo-motor-kontrolu.html/feed</wfw:commentRss>
		<slash:comments>7</slash:comments>
		</item>
		<item>
		<title>Python Kitabı</title>
		<link>http://www.cagdastopcu.com/python-kitabi.html</link>
		<comments>http://www.cagdastopcu.com/python-kitabi.html#comments</comments>
		<pubDate>Mon, 22 Feb 2010 12:56:19 +0000</pubDate>
		<dc:creator>cagdas</dc:creator>
				<category><![CDATA[GNU]]></category>
		<category><![CDATA[pragramlama]]></category>
		<category><![CDATA[çeviri]]></category>
		<category><![CDATA[kitap]]></category>
		<category><![CDATA[programlama]]></category>
		<category><![CDATA[python]]></category>

		<guid isPermaLink="false">http://www.cagdastopcu.com/?p=259</guid>
		<description><![CDATA[How to Think Like a Computer Scientist serisinin python için yazılmış olan kitabının çevirisi yine bir bilgisayar bilimcisi olan Tahir Emre Kalaycı tarafından çevirilmiştir. Tazeciktir, dumanı üstündedir. Yazarın diğer bilgisayar bilimcisi arkadaşlarıyla hazırladıkları blogda yayınlamışlardır. Oldukça önemli olan bu kaynağın çevirisine çok sevindim. Keşke her sabah böyle mutluluk veren haberler alsam http://kodveus.blogspot.com/2010/02/bilgisayar-bilimcisi-gibi-dusunmek.html http://yzgrafik.ege.edu.tr/~tekrei/dersler/bbgd_p/ Tweet]]></description>
			<content:encoded><![CDATA[<!-- Start Shareaholic LikeButtonSetTop --><!-- End Shareaholic LikeButtonSetTop --><p style="text-align: center;"><a href="http://www.cis.upenn.edu/~lhuang3/cse399-python/images/snake-on-tree.png"><img class="aligncenter" title="python kitabı" src="http://www.cis.upenn.edu/~lhuang3/cse399-python/images/snake-on-tree.png" alt="" width="185" height="240" /></a></p>
<p>How to Think Like a Computer Scientist serisinin python için yazılmış olan kitabının çevirisi yine bir bilgisayar bilimcisi olan Tahir Emre Kalaycı tarafından çevirilmiştir. Tazeciktir, dumanı üstündedir. Yazarın diğer bilgisayar bilimcisi arkadaşlarıyla hazırladıkları blogda yayınlamışlardır. Oldukça önemli olan bu kaynağın çevirisine çok sevindim. Keşke her sabah böyle mutluluk veren haberler alsam <img src='http://www.cagdastopcu.com/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>
<p><a href="http://kodveus.blogspot.com/2010/02/bilgisayar-bilimcisi-gibi-dusunmek.html">http://kodveus.blogspot.com/2010/02/bilgisayar-bilimcisi-gibi-dusunmek.html</a></p>
<p><a href="http://yzgrafik.ege.edu.tr/~tekrei/dersler/bbgd_p/">http://yzgrafik.ege.edu.tr/~tekrei/dersler/bbgd_p/</a></p>
<div class="shr-publisher-259"></div><!-- Start Shareaholic LikeButtonSetBottom --><!-- End Shareaholic LikeButtonSetBottom --><div style="float: right; margin-left: 10px;"><a href="http://twitter.com/share?url=http://www.cagdastopcu.com/python-kitabi.html&via=cagdastopcucom&text=Python Kitabı&related=cagdastopcu.com:official twitter of cagdastopcu.com&lang=en&count=horizontal" class="twitter-share-button">Tweet</a><script type="text/javascript" src="http://platform.twitter.com/widgets.js"></script></div>]]></content:encoded>
			<wfw:commentRss>http://www.cagdastopcu.com/python-kitabi.html/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Linux Driver Geliştirme ve Kernel Hack Dökümanları</title>
		<link>http://www.cagdastopcu.com/linux-driver-gelistirm-ve-kernel-hack-dokumanlari.html</link>
		<comments>http://www.cagdastopcu.com/linux-driver-gelistirm-ve-kernel-hack-dokumanlari.html#comments</comments>
		<pubDate>Sun, 10 Jan 2010 06:17:05 +0000</pubDate>
		<dc:creator>cagdas</dc:creator>
				<category><![CDATA[GNU]]></category>
		<category><![CDATA[pragramlama]]></category>
		<category><![CDATA[debug]]></category>
		<category><![CDATA[döküman]]></category>
		<category><![CDATA[driver]]></category>
		<category><![CDATA[geliştirme]]></category>
		<category><![CDATA[hack]]></category>
		<category><![CDATA[kernel]]></category>
		<category><![CDATA[linux]]></category>
		<category><![CDATA[programlama]]></category>
		<category><![CDATA[sürücü]]></category>
		<category><![CDATA[yazılım]]></category>

		<guid isPermaLink="false">http://www.cagdastopcu.com/?p=246</guid>
		<description><![CDATA[Son günlerde sınavlarım ve kurslarım dolayısıyla pek vakit bulamasam da donanım driveri geliştirme üzerine işe yarayabilecek olan dökümanları yazmak istedim. Finallerimden sonra geri bu dökümanlara geri dönüp bazı örnek projeler geliştirmeye çalışacağım. USB cihazların sürücüleri oldukça güzel bir alan ve bununla ilgili Greg Kroah-Hartman&#8217;ın Writing a Simple USB Driver makalesi oldukça açıcı olmuş. USB&#8217; ye &#8230; </p><p><a class="more-link block-button" href="http://www.cagdastopcu.com/linux-driver-gelistirm-ve-kernel-hack-dokumanlari.html">Continue reading &#187;</a>]]></description>
			<content:encoded><![CDATA[<!-- Start Shareaholic LikeButtonSetTop --><!-- End Shareaholic LikeButtonSetTop --><div id="attachment_249" class="wp-caption alignright" style="width: 260px"><a href="http://www.cagdastopcu.com/wp-content/uploads/2010/01/imaginative-lego-clever-advertisement.jpg"><img class="size-full wp-image-249 " title="lego" src="http://www.cagdastopcu.com/wp-content/uploads/2010/01/imaginative-lego-clever-advertisement.jpg" alt="lego" width="250" height="242" /></a><p class="wp-caption-text">lego</p></div>
<p>Son günlerde sınavlarım ve kurslarım dolayısıyla pek vakit bulamasam da donanım driveri geliştirme üzerine işe yarayabilecek olan dökümanları yazmak istedim. Finallerimden sonra geri bu dökümanlara geri dönüp bazı örnek projeler geliştirmeye çalışacağım. USB cihazların sürücüleri oldukça güzel bir alan ve bununla ilgili Greg Kroah-Hartman&#8217;ın <a href="http://www.linuxjournal.com/article/7353">Writing a Simple USB Driver</a> makalesi oldukça açıcı olmuş. USB&#8217; ye bağlanabilen bir RGB ledinin kontrolü için driver örneğini çok güzel anlatmış. Dökümanların ve kod örnekleri için <a href="http://www.kernel.org/pub/linux/kernel/people/mochel/doc/">http://www.kernel.org/pub/linux/kernel/people/mochel/doc/</a> sitesine bakabilirsiniz bunun dışında bütün kernel.org daki kernel geliştiricilerinin listesine şurdan ulaşabilirsiniz :</p>
<p><a href="http://www.kernel.org/pub/linux/kernel/people/">http://www.kernel.org/pub/linux/kernel/people/</a></p>
<p>IBM Developerda daha önceden yayınlanmış yazı dizisi de giriş aşamasında oldukça faydalı olacaktır:</p>
<ol>
<li><a href="http://www.cagdastopcu.com/wp-content/uploads/2010/01/l-kernelhack1-pdf.pdf">Hacking the Linux 2.6 kernel, Part 1: Getting ready</a></li>
<li><a href="http://www.cagdastopcu.com/wp-content/uploads/2010/01/l-kernelhack2-pdf.pdf">Hacking the Linux 2.6 kernel, Part 2: Making your first hack</a></li>
</ol>
<p>Elimde hiç usb cihaz yok diye üzülüyordum. Hani gidip bir rgb led seti alsam hem parama hem zamanıma yazık olurdu ki zaten yapılmış bir projeyi yapmak eğlenceli gelmiyor pek. Evde aranırken usrobotics marka skype telefonunu buldum. Skype üzerinde kontrol yapabiliyordunuz hem de 1.1 mb&#8217;lık bir kurulum dosyasıyla. Linux desteklemiyor olması oldukça kötüydü. Ancak tuş takımının olması ve mikrofon hoparlör setiyle beraber bir de ışığının olması önümüzdeki günlerde projelerimde kullanabileceğim demek <img src='http://www.cagdastopcu.com/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>
<p>Bütün bunların dışında daha inceleme fırsatı bulamadığım Linux Driver Development Kit&#8217;ini en kısa zamanda ubuntumda deneyeceğim <img src='http://www.cagdastopcu.com/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' />  Onunda bağlantısını verelim:</p>
<p><a href="http://kernel.org/pub/linux/kernel/people/gregkh/ddk/">http://kernel.org/pub/linux/kernel/people/gregkh/ddk/</a></p>
<p>Bu yazı kendim için de kaynaklar kısmı olucak ve yeni dökümanlar buldukça buraya ekleyeceğim.</p>
<div class="shr-publisher-246"></div><!-- Start Shareaholic LikeButtonSetBottom --><!-- End Shareaholic LikeButtonSetBottom --><div style="float: right; margin-left: 10px;"><a href="http://twitter.com/share?url=http://www.cagdastopcu.com/linux-driver-gelistirm-ve-kernel-hack-dokumanlari.html&via=cagdastopcucom&text=Linux Driver Geliştirme ve Kernel Hack Dökümanları&related=cagdastopcu.com:official twitter of cagdastopcu.com&lang=en&count=horizontal" class="twitter-share-button">Tweet</a><script type="text/javascript" src="http://platform.twitter.com/widgets.js"></script></div>]]></content:encoded>
			<wfw:commentRss>http://www.cagdastopcu.com/linux-driver-gelistirm-ve-kernel-hack-dokumanlari.html/feed</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Kernel Modül Programlama &#8211; Giriş</title>
		<link>http://www.cagdastopcu.com/kernel-modul-programlama-giris.html</link>
		<comments>http://www.cagdastopcu.com/kernel-modul-programlama-giris.html#comments</comments>
		<pubDate>Mon, 04 Jan 2010 02:22:05 +0000</pubDate>
		<dc:creator>cagdas</dc:creator>
				<category><![CDATA[GNU]]></category>
		<category><![CDATA[pragramlama]]></category>
		<category><![CDATA[compile]]></category>
		<category><![CDATA[derleme]]></category>
		<category><![CDATA[hack]]></category>
		<category><![CDATA[kernel]]></category>
		<category><![CDATA[linux]]></category>
		<category><![CDATA[makefile]]></category>
		<category><![CDATA[modül]]></category>
		<category><![CDATA[module]]></category>
		<category><![CDATA[programlama]]></category>
		<category><![CDATA[source]]></category>
		<category><![CDATA[ubuntu]]></category>

		<guid isPermaLink="false">http://www.cagdastopcu.com/?p=197</guid>
		<description><![CDATA[Kernel modülü programlamak sürekli korktuğum ancak merak ettiğim bir konuydu. Eğer mobile programlama yaparak yaşamımı devam ettireceksem bunu da öğrenmem gerekiyordu Java ME&#8217; nin yanında. Kernel işletim sisteminin çekirdeğidir ve Ubuntu dağıtımının (distro) kerneli Linux&#8217;tur. Kernel bütün programların trafiğini sağlar ve donanımla yazılım arasında bağ kurar. Basit bir kernel modülünü ekleyip çıkarmayı anlatıyorum bu yazımda. &#8230; </p><p><a class="more-link block-button" href="http://www.cagdastopcu.com/kernel-modul-programlama-giris.html">Continue reading &#187;</a>]]></description>
			<content:encoded><![CDATA[<!-- Start Shareaholic LikeButtonSetTop --><!-- End Shareaholic LikeButtonSetTop --><div id="attachment_198" class="wp-caption aligncenter" style="width: 577px"><a href="http://www.cagdastopcu.com/wp-content/uploads/2010/01/kernelhello1.png"><img class="size-full wp-image-198" title="kernel, hack, linux, ubuntu, modül, module, programlama" src="http://www.cagdastopcu.com/wp-content/uploads/2010/01/kernelhello1.png" alt="kernel ilk modülü programlama" width="567" height="348" /></a><p class="wp-caption-text">ilk kernel modülü programlama</p></div>
<p>Kernel modülü programlamak sürekli korktuğum ancak merak ettiğim bir konuydu. Eğer mobile programlama yaparak yaşamımı devam ettireceksem bunu da öğrenmem gerekiyordu Java ME&#8217; nin yanında. Kernel işletim sisteminin çekirdeğidir ve Ubuntu dağıtımının (distro) kerneli Linux&#8217;tur. Kernel bütün programların trafiğini sağlar ve donanımla yazılım arasında bağ kurar. Basit bir kernel modülünü ekleyip çıkarmayı anlatıyorum bu yazımda.</p>
<h3><strong>Kernel Modülü Nedir?</strong></h3>
<p>Kernel (isteyen çekirdek diyebilir ancak uzayın kernelından aklımda hep kernel olarak kalacaktır <img src='http://www.cagdastopcu.com/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' />  ) modülleri kernele ekleyip çıkarabildiğimiz kod parçalarıdır. Kernelin fonksiyonelliğini sistemi reboot etmeden, yani yeniden başlatmamıza gerek kalmadan modüller sayesinde geliştirebiliriz. Örnek olarak bir donanımın driverını gösterebiliriz, bu driverle kernelimiz sistem ve donanımımızın arasındaki bağlantıyı gerçekleştirebilecektir. Modülleri kullanmıyor olsaydık her fonksiyonelliği geliştirişimizde kernele eklenti yapmamız gerekecekti. Bu ise büyük kernele sahip sistemlerde her yeni geliştirmede kernelin yeniden derlenmesi ve sistemin reboot edilmesi gerçekten de kötü bir durumdur.</p>
<p><span id="more-197"></span></p>
<p>Kernelimizde kurulu olan modülleri <span style="color: #3366ff;">lsmod</span> komutuyla görebiliriz.</p>
<p><span style="color: #3366ff;">cagdas@cagdas:~$ lsmod<br />
Module                  Size  Used by<br />
msdos                  15744  0<br />
fat                    58272  1 msdos<br />
isofs                  39844  1<br />
udf                    87716  0 </span></p>
<p>gibi bir sürü kernel modülümüz görünecektir.</p>
<p>Eğer buradaki örnekler çalışmazsa büyük bir ihtimalle kernelinizin <span style="color: #3366ff;">CONFIG_MODVERSIONS</span> u aktif hale getirilmiştir. Eğer versiyon hataları alıyorsanız kernelinizdeki modversioning özelliğini off hale getirerek derlemeniz gerekmektedir.</p>
<p>Gelelim ilk kernel modülümüze. Elebette ki <span style="color: #3366ff;">&#8220;Hello World!&#8221;</span> uygulaması olucak. Başka türlü olsaydı şaşardım <img src='http://www.cagdastopcu.com/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>
<p><span style="color: #3366ff;">/*<br />
*  hello-1.c &#8211; The simplest kernel module.<br />
*/<br />
#include &lt;linux/module.h&gt;    /* Needed by all modules */<br />
#include &lt;linux/kernel.h&gt;    /* Needed for KERN_INFO */</span></p>
<p><span style="color: #3366ff;">int init_module(void)<br />
{<br />
printk(KERN_INFO &#8220;Hello world 1.\n&#8221;);</span></p>
<p><span style="color: #3366ff;">/*<br />
* A non 0 return means init_module failed; module can&#8217;t be loaded.<br />
*/<br />
return 0;<br />
}</span></p>
<p><span style="color: #3366ff;">void cleanup_module(void)<br />
{<br />
printk(KERN_INFO &#8220;Goodbye world 1.\n&#8221;);<br />
}</span></p>
<p>Kernel modülleri en az iki fonksiyondan oluşmaktadır. Bunlar başla ve bitir fonksiyonlarıdır. Genellikle <span style="color: #3366ff;">init_module()</span> başla ve <span style="color: #3366ff;">cleanup_module()</span> bitir (temizle) isimlendirmeleriyle kullanılırlar ancak kafamıza göre de isimler verebilirdik.</p>
<p>init_module() yapacağımız işi veya asıl fonksiyonu kernelin içine koyarak çağırmamızı veya kerneli denetlemizi sağlar. cleanup_module() kısmı ise init_module() ün yaptıklarını geri alarak modülümüzün güvenli bir şekilde kaldırılmasını sağlar.</p>
<p>linux/module.h kütüphanesi bütün kernel modüllerde kullanılır.</p>
<p>linux/kernel.h kütüphanesini ise printk() uyarısını kullanabilmek için çağırdık. Bu uyarı syslogd ve klogd programları çalışıyorsa /var/log/messages dosyasına çıktımızı loglamaya yarar.</p>
<p>Ardından Makefile&#8217;ımızı kodu koyduğumuz dizinin içine koyalım. Dosyanın adı <span style="color: #3366ff;">Makefile</span> olacak.</p>
<p><span style="color: #3366ff;">obj-m += hello-1.o</span></p>
<p>all:<br />
make -C /lib/modules/$(shell uname -r)/build M=$(PWD) modules</p>
<p>clean:<br />
make -C /lib/modules/$(shell uname -r)/build M=$(PWD) clean</p>
<p>make komutu ile modülümüzü derleyelim.</p>
<p><span style="color: #3366ff;">cagdas@cagdas:~/Belgeler$ make<br />
make -C /lib/modules/2.6.28-16-generic/build M=/home/cagdas/Belgeler modules<br />
make[1]:`/usr/src/linux-headers-2.6.28-16-generic&#8217; dizinine giriliyor<br />
CC [M]  /home/cagdas/Belgeler/hello-1.o<br />
Building modules, stage 2.<br />
MODPOST 1 modules<br />
CC      /home/cagdas/Belgeler/hello-1.mod.o<br />
LD [M]  /home/cagdas/Belgeler/hello-1.ko<br />
make[1]: `/usr/src/linux-headers-2.6.28-16-generic&#8217; dizininden çıkılıyor</span></p>
<p>Evet ilk kernel modülümüzü derledik. Ardından modinfo komudu ile kernel modülümüz hakkında bazı bilgilere erişebiliriz.</p>
<p><span style="color: #3366ff;">cagdas@cagdas:~/Belgeler$ modinfo hello-1.ko<br />
filename:       hello-1.ko<br />
srcversion:     140276773A3090F6F33891F<br />
depends:<br />
vermagic:       2.6.28-16-generic SMP mod_unload modversions 586 </span></p>
<p>Ve en sonunda kernelimizin içine modülümüzü koyalım. Bunun için root kullanıcı olmamız gerekiyor. <span style="color: #3366ff;">sudo -s -H</span> komutuyla bildiğiniz gibi root oluyoruz. <span style="color: #3366ff;">insmod ./hello-1.ko</span> ile kernelimize modülümüzü ekledik ve /var/log/messages logunun son satırlarına bakalım <img src='http://www.cagdastopcu.com/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>
<p><span style="color: #3366ff;">Jan  4 03:22:17 cagdas kernel: [37145.098506] hello_1: module license &#8216;unspecified&#8217; taints kernel.<br />
Jan  4 03:22:17 cagdas kernel: [37145.098594] Hello world 1.</span></p>
<p>Evet mutlu son <img src='http://www.cagdastopcu.com/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>
<p>Eğer modülümüzü kernelimizden silmek istiyorsak <span style="color: #3366ff;">rmmod hello-1</span> komutunu kullanacağız.</p>
<p>Not: Bu yazı dizisi <a href="http://tldp.org/LDP/lkmpg/2.6/html/index.html">The Linux Kernel Module Programming Guide</a> belgesinin soft hali olucaktır. Kernelin 2.4 ve 2.6 sürümünlerine uygundur. Kernelinizin versiyonunu uname -a komutuyla öğrenebilirsiniz.</p>
<p>C kodu:</p>
<p><a href="http://www.cagdastopcu.com/wp-content/uploads/2010/01/hello-1.c">hello-1.c</a></p>
<div class="shr-publisher-197"></div><!-- Start Shareaholic LikeButtonSetBottom --><!-- End Shareaholic LikeButtonSetBottom --><div style="float: right; margin-left: 10px;"><a href="http://twitter.com/share?url=http://www.cagdastopcu.com/kernel-modul-programlama-giris.html&via=cagdastopcucom&text=Kernel Modül Programlama - Giriş&related=cagdastopcu.com:official twitter of cagdastopcu.com&lang=en&count=horizontal" class="twitter-share-button">Tweet</a><script type="text/javascript" src="http://platform.twitter.com/widgets.js"></script></div>]]></content:encoded>
			<wfw:commentRss>http://www.cagdastopcu.com/kernel-modul-programlama-giris.html/feed</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Yeni Yılı Java Me (MIDP) ile kutlamak</title>
		<link>http://www.cagdastopcu.com/yeni-yili-java-me-midp-ile-kutlamak.html</link>
		<comments>http://www.cagdastopcu.com/yeni-yili-java-me-midp-ile-kutlamak.html#comments</comments>
		<pubDate>Fri, 01 Jan 2010 00:05:57 +0000</pubDate>
		<dc:creator>cagdas</dc:creator>
				<category><![CDATA[GNU]]></category>
		<category><![CDATA[pragramlama]]></category>
		<category><![CDATA[jar]]></category>
		<category><![CDATA[java]]></category>
		<category><![CDATA[k550i]]></category>
		<category><![CDATA[konfigürasyon]]></category>
		<category><![CDATA[NetBeans]]></category>
		<category><![CDATA[sony]]></category>
		<category><![CDATA[toolkit]]></category>
		<category><![CDATA[wireless]]></category>

		<guid isPermaLink="false">http://www.cagdastopcu.com/yeni-yili-java-me-midp-ile-kutlamak.html</guid>
		<description><![CDATA[Sony Ericsson k550i de Java konfigürasyonlarını girmemiz gerekiyor. Profiles MIDP-2.0 Configuration CLDC-1.1 JTWI version 1.0 Screen resolution 176&#215;176 Color screen Yes Bu ayarları netbeans da konfigürasyonlardan elle girmek çok kolay. Ardından jar dosyamızı atıp keyfimize bakıyoruz. Tweet]]></description>
			<content:encoded><![CDATA[<!-- Start Shareaholic LikeButtonSetTop --><!-- End Shareaholic LikeButtonSetTop --><p>Sony Ericsson k550i de Java konf<a href="http://www.cagdastopcu.com/wp-content/uploads/2009/12/javaconf.png"><img class="size-full wp-image-172 alignleft" title="java, toolkit, k550i, netbeans, konfigurasyon, MIDP" src="http://www.cagdastopcu.com/wp-content/uploads/2009/12/javaconf.png" alt="java, toolkit, k550i, netbeans, konfigurasyon, MIDP" width="220" height="398" /></a>igürasyonlarını girmemiz gerekiyor.</p>
<p>Profiles MIDP-2.0<br />
Configuration CLDC-1.1<br />
JTWI version 1.0<br />
Screen resolution 176&#215;176<br />
Color screen Yes</p>
<p>Bu ayarları netbeans da konfigürasyonlardan elle girmek çok kolay. Ardından jar dosyamızı atıp keyfimize bakıyoruz.</p>
<div class="shr-publisher-173"></div><!-- Start Shareaholic LikeButtonSetBottom --><!-- End Shareaholic LikeButtonSetBottom --><div style="float: right; margin-left: 10px;"><a href="http://twitter.com/share?url=http://www.cagdastopcu.com/yeni-yili-java-me-midp-ile-kutlamak.html&via=cagdastopcucom&text=Yeni Yılı Java Me (MIDP) ile kutlamak&related=cagdastopcu.com:official twitter of cagdastopcu.com&lang=en&count=horizontal" class="twitter-share-button">Tweet</a><script type="text/javascript" src="http://platform.twitter.com/widgets.js"></script></div>]]></content:encoded>
			<wfw:commentRss>http://www.cagdastopcu.com/yeni-yili-java-me-midp-ile-kutlamak.html/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Projemi Bitirdim, Anahtarlanmış Doğrusal Sistemlere Giriş</title>
		<link>http://www.cagdastopcu.com/projemi-bitirdim-anahtarlanmis-dogrusal-sistemlere-giris.html</link>
		<comments>http://www.cagdastopcu.com/projemi-bitirdim-anahtarlanmis-dogrusal-sistemlere-giris.html#comments</comments>
		<pubDate>Thu, 08 Jan 2009 23:41:35 +0000</pubDate>
		<dc:creator>cagdas</dc:creator>
				<category><![CDATA[Elektrik]]></category>
		<category><![CDATA[Güç Elektroniği]]></category>
		<category><![CDATA[pragramlama]]></category>
		<category><![CDATA[anahtarlanmış]]></category>
		<category><![CDATA[doğrusal]]></category>
		<category><![CDATA[kontrol]]></category>
		<category><![CDATA[lineer]]></category>
		<category><![CDATA[sistemler]]></category>

		<guid isPermaLink="false">http://www.cagdastopcu.com/projemi-bitirdim-anahtarlanmis-dogrusal-sistemlere-giris.html</guid>
		<description><![CDATA[&#160; Beklan hocadan aldığım anahtarlanmış doğrusal sistemler projemi bitirdim. Sağolsun hocam da beğendi. Projeyi Latex&#8217;te yazmak ilk başta yorucu gelse de eğlenceliydi. İlk &#246;nce matematiksel temelleri basit&#231;e anlatmaya &#231;alıştım. Ardından anahtarlanmış sistemleri anlattım ve bazı kararlılık problemlerine değindim. Aslında tersinebilirlik (invertibility) konusunu da anlatmayı d&#252;ş&#252;n&#252;yordum ancak giriş belgesi i&#231;in fazla ayrıntı bir konu olacağından yazmadım. &#8230; </p><p><a class="more-link block-button" href="http://www.cagdastopcu.com/projemi-bitirdim-anahtarlanmis-dogrusal-sistemlere-giris.html">Continue reading &#187;</a>]]></description>
			<content:encoded><![CDATA[<!-- Start Shareaholic LikeButtonSetTop --><!-- End Shareaholic LikeButtonSetTop --><p>&nbsp;</p>
<p><a href="http://www.yildiz.edu.tr/~beklan/">Beklan</a> hocadan aldığım anahtarlanmış doğrusal sistemler projemi bitirdim. Sağolsun hocam da beğendi. Projeyi Latex&#8217;te yazmak ilk başta yorucu gelse de eğlenceliydi. İlk &ouml;nce matematiksel temelleri basit&ccedil;e anlatmaya &ccedil;alıştım. Ardından anahtarlanmış sistemleri anlattım ve bazı kararlılık problemlerine değindim. Aslında tersinebilirlik (invertibility) konusunu da anlatmayı d&uuml;ş&uuml;n&uuml;yordum ancak giriş belgesi i&ccedil;in fazla ayrıntı bir konu olacağından yazmadım. Bu tarz bir belge yazımında ise yapılmaması gerekenin &ouml;ğrenirken &ouml;ğrenilen konuyu bilgisayara not etmemek olduğunu g&ouml;rd&uuml;m. Aslında s&uuml;rekli yavaş yavaş yazsaymışım &ccedil;ok daha rahat edermişim. Yoksa bir haftada b&uuml;t&uuml;n teoremlerin ispatlarını tekrardan anlamaya &ccedil;alışmak &ccedil;ok zorlayıcı oluyor. Kendime de not d&uuml;şm&uuml;ş oldum =)</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p><a href="http://www.cagdastopcu.com/wp-content/uploads/2009/01/anahtarlanmis.pdf">Anahtarlanmış Doğrusal Sistemlere Giriş [PDF]</a></p>
<p>&nbsp;</p>
<div class="shr-publisher-78"></div><!-- Start Shareaholic LikeButtonSetBottom --><!-- End Shareaholic LikeButtonSetBottom --><div style="float: right; margin-left: 10px;"><a href="http://twitter.com/share?url=http://www.cagdastopcu.com/projemi-bitirdim-anahtarlanmis-dogrusal-sistemlere-giris.html&via=cagdastopcucom&text=Projemi Bitirdim, Anahtarlanmış Doğrusal Sistemlere Giriş&related=cagdastopcu.com:official twitter of cagdastopcu.com&lang=en&count=horizontal" class="twitter-share-button">Tweet</a><script type="text/javascript" src="http://platform.twitter.com/widgets.js"></script></div>]]></content:encoded>
			<wfw:commentRss>http://www.cagdastopcu.com/projemi-bitirdim-anahtarlanmis-dogrusal-sistemlere-giris.html/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Vim&#8217;le janjanlı kod yazma hedesi</title>
		<link>http://www.cagdastopcu.com/vimle-janjanli-kod-yazma-hedesi.html</link>
		<comments>http://www.cagdastopcu.com/vimle-janjanli-kod-yazma-hedesi.html#comments</comments>
		<pubDate>Sun, 18 Nov 2007 21:08:00 +0000</pubDate>
		<dc:creator>cagdas</dc:creator>
				<category><![CDATA[pragramlama]]></category>

		<guid isPermaLink="false">http://www.cagdastopcu.com/vimle-janjanli-kod-yazma-hedesi.html</guid>
		<description><![CDATA[öhüm 4 günde 9 vizeye girdim kafamda hasar oluştu galiba yaklaşık 100 formül ve 400&#8242;e yakın kavramı 15-20 saat gibi kısa bir sürede ezberleyip son derece yüksek seviyede matematik maymunluklarıyla uygulamasını aşkı meşk eyleyip sınavları kendimce başarılı olarak atlatabilmenin haklı ve salak gururunu yaşıyorum sayın olmayan okuyucularım. extremeye baktım paso ubuntu sexy den geliyorlar benim &#8230; </p><p><a class="more-link block-button" href="http://www.cagdastopcu.com/vimle-janjanli-kod-yazma-hedesi.html">Continue reading &#187;</a>]]></description>
			<content:encoded><![CDATA[<!-- Start Shareaholic LikeButtonSetTop --><!-- End Shareaholic LikeButtonSetTop --><p><a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://bp1.blogger.com/_Qa7ioJ5KoFk/R0C1ymZ9-qI/AAAAAAAAAFc/_5cOVl0vpLM/s1600-h/vim_header.gif"><img style="margin: 0pt 10px 10px 0pt; float: left; cursor: pointer;" src="http://bp1.blogger.com/_Qa7ioJ5KoFk/R0C1ymZ9-qI/AAAAAAAAAFc/_5cOVl0vpLM/s400/vim_header.gif" alt="" id="BLOGGER_PHOTO_ID_5134303456109918882" border="0" /></a><br /><span style="font-size:130%;">öhüm 4 günde 9 vizeye girdim kafamda hasar oluştu galiba yaklaşık 100 formül ve  400&#8242;e yakın kavramı 15-20 saat gibi kısa bir sürede ezberleyip son derece yüksek seviyede matematik maymunluklarıyla uygulamasını aşkı meşk eyleyip sınavları kendimce başarılı olarak atlatabilmenin haklı ve salak gururunu yaşıyorum sayın olmayan okuyucularım. extremeye baktım paso ubuntu sexy den geliyorlar benim bilmediğim ubuntu adında bi porno yıldızı felan mı var merak etmeye başladım:P</p>
<p>ve gelelüüm günün menüsüne:</p>
<p>vim unix tabanlı sistemlerin sanırım hepsinde olan günün birinde lazım olursa diye <a href="http://www.amazon.com/Unix-Unleashed-Robin-Burk/dp/0672314118">Robin Burk&#8217;ün UNIX</a> kitabında koca bir bölümünü ona ayırdığı belgeler.org da çok güzel bir giriş klavuzu bulabileceğiniz emacs ile kapıştığı rivayet edilen emacsı beceremeyen ben insanının lanet olsun emacsına da şu çok zeki rmssine de diyip seçtiği gpl lisansına sahip güzel bir editördür.</p>
<p>hemen sitesinden araklıyalım:<br /></span><br />
<h4><span style="font-size:130%;">What Is <a href="http://www.vim.org/">Vim</a>?</span></h4>
<p><span style="font-size:130%;"> Vim is a highly configurable text editor built to enable efficient text editing. It is an improved version of the vi editor distributed with most UNIX systems.   </span></p>
<p><span style="font-size:130%;"> Vim is often called a &#8220;programmer&#8217;s editor,&#8221; and so useful for programming that many consider it an entire <abbr title="integrated development environment">IDE</abbr>.  It&#8217;s not just for programmers, though.  Vim is perfect for all kinds of text editing, from composing email to editing configuration files. </span></p>
<h4><span style="font-size:130%;">What <a href="http://www.vim.org/">Vim</a> Is Not?</span></h4>
<p><span style="font-size:130%;"> Vim isn&#8217;t an editor designed to hold its users&#8217; hands.  It is a tool, the use of which must be learned. </span></p>
<p><span style="font-size:130%;"> Vim isn&#8217;t a word processor.  Although it can display text with various forms of highlighting and formatting, it isn&#8217;t there to provide WYSIWYG editing of typeset documents.  (It is great for editing TeX, though.)</span></p>
<p><span style="font-size:130%;"><br /></span>
<p><span style="font-size:130%;">kaynak: <a href="http://www.vim.org/about.php">http://www.vim.org/about.php</a></span></p>
<p><span style="font-size:130%;">sitesinden indirip kullanabilirsiniz. linux dağıtımı kullanıyorsanız zaten hazır olarak gelicektir.</span></p>
<p><span style="font-size:130%;"><br /></span>
<p><span style="font-size:130%;"><br /></span></p>
<p><span style="font-size:130%;">bu vim hedesinin içinde :syntax on dedik mi her yer renkleniyor işte syntaxa göre renklendirme yapılıyor.</span></p>
<p><span style="font-size:130%;">eğer kodu yazarken boşlukları kendisi versin derseniz</span></p>
<p><span style="font-size:130%;">:set cindent</span></p>
<p><span style="font-size:130%;">:set sw=4</span></p>
<p><span style="font-size:130%;">burda girinti sayısını 4e ayarladık. ama eğer bunları her defasında yapçam mı ben derseniz ubuntudakiler için anlatayım diğer linux kullanıcılarında da buna benzerdir. etcnin içinde vim, vimin içinde de vimrc diye bir dosya var bunda değişiklik yapmamız gerekiyor. ancak root değilken gücümüz bu dosyayı değiştirmeye yetmiyor.<br /></span></p>
<p><span style="font-size:130%;"><br /></span>
<p><span style="font-size:130%;">uçbiride :~$ gksu nautilus diyip GÖLGÖLERİN GÜCÜ ADINA GÜÇ BENDE ARTIK ROOHAAAAN diye bağırıp etc/vim/vimrc ye on penguen tıklama gücüyle ulaşıyoruz. oranın sonuna</span></p>
<p><span style="font-size:130%;"><br /></span>
<p><span style="font-size:130%;">autocmd BufRead,BufNewFile *.py syntax on<br />autocmd BufRead,BufNewFile *.py set ai<br />autocmd BufRead,BufNewFile *.cpp syntax on<br />autocmd BufRead,BufNewFile *.cpp set ai<br />autocmd BufRead,BufNewFile *.c syntax on<br />autocmd BufRead,BufNewFile *.c set ai</p>
<p>autocmd BufRead,BufNewFile *.py set cindent<br />autocmd BufRead,BufNewFile *.py set sw=4<br />autocmd BufRead,BufNewFile *.cpp set cindent<br />autocmd BufRead,BufNewFile *.cpp set sw=4<br />autocmd BufRead,BufNewFile *.c set cindent<br />autocmd BufRead,BufNewFile *.c set sw=4<br /></span></p>
<p><span style="font-size:130%;"><br /></span>
<p><span style="font-size:130%;"><br /></span></p>
<p><span style="font-size:130%;">ekleyip olayı kökünden çözüyoruz.</span></p>
<p><span style="font-size:130%;"><br /></span>
<p><span style="font-size:130%;"><br /></span></p>
<p><span style="font-size:130%;">dip not: </span><span style="font-size:130%;"><br /></span></p>
<p><span style="font-size:130%;">autocmd BufRead,BufNewFile *.py syntax on<br />autocmd BufRead,BufNewFile *.py set ai</span></p>
<p><span style="font-size:130%;">kısmını pyton.orgdan çaldım gerisini kendim uydurdum. bi sorun çıkarsa affola:P</span></p>
<p><span style="font-size:130%;"><br /></span>
<p><span style="font-size:130%;"><br /></span></p>
<p><span style="font-size:130%;">günün konusunu resimsiz bırakmak olmaz:</span></p>
<p></p>
<p><a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://bp3.blogger.com/_Qa7ioJ5KoFk/R0C7RGZ9-rI/AAAAAAAAAFk/6WMF2CyoCcQ/s1600-h/vim.png"><img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer;" src="http://bp3.blogger.com/_Qa7ioJ5KoFk/R0C7RGZ9-rI/AAAAAAAAAFk/6WMF2CyoCcQ/s400/vim.png" alt="" id="BLOGGER_PHOTO_ID_5134309477654067890" border="0" /></a></p>
<p></p>
<div class="shr-publisher-34"></div><!-- Start Shareaholic LikeButtonSetBottom --><!-- End Shareaholic LikeButtonSetBottom --><div style="float: right; margin-left: 10px;"><a href="http://twitter.com/share?url=http://www.cagdastopcu.com/vimle-janjanli-kod-yazma-hedesi.html&via=cagdastopcucom&text=Vim'le janjanlı kod yazma hedesi&related=cagdastopcu.com:official twitter of cagdastopcu.com&lang=en&count=horizontal" class="twitter-share-button">Tweet</a><script type="text/javascript" src="http://platform.twitter.com/widgets.js"></script></div>]]></content:encoded>
			<wfw:commentRss>http://www.cagdastopcu.com/vimle-janjanli-kod-yazma-hedesi.html/feed</wfw:commentRss>
		<slash:comments>4</slash:comments>
		</item>
	</channel>
</rss>

<!-- Dynamic Page Served (once) in 0.636 seconds -->

