<?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>WwW.TarikZengin.CoM &#187; GNU/Linux</title>
	<atom:link href="http://tarikzengin.com/tag/gnulinux/feed/" rel="self" type="application/rss+xml" />
	<link>http://tarikzengin.com</link>
	<description>Japonya&#039;dan bildiriyor....</description>
	<lastBuildDate>Sat, 01 Oct 2011 06:25:56 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.3.2</generator>
		<item>
		<title>Gentoo&#8217;da Logitech Pro 9000 Webcam Kullanımı</title>
		<link>http://tarikzengin.com/gentooda-logitech-pro-9000-webcam-kullanimi/</link>
		<comments>http://tarikzengin.com/gentooda-logitech-pro-9000-webcam-kullanimi/#comments</comments>
		<pubDate>Fri, 09 Oct 2009 08:55:32 +0000</pubDate>
		<dc:creator>Aydin Tarik Zengin</dc:creator>
				<category><![CDATA[Gentoo]]></category>
		<category><![CDATA[Linux]]></category>
		<category><![CDATA[GNU/Linux]]></category>
		<category><![CDATA[Linux-uvc]]></category>
		<category><![CDATA[Logitech]]></category>
		<category><![CDATA[logitech pro 9000]]></category>
		<category><![CDATA[Quickcam]]></category>
		<category><![CDATA[v4l2]]></category>
		<category><![CDATA[video 4 linux]]></category>
		<category><![CDATA[video linux]]></category>

		<guid isPermaLink="false">http://www.tarikzengin.com/?p=835</guid>
		<description><![CDATA[<a href="http://tarikzengin.com/gentooda-logitech-pro-9000-webcam-kullanimi/" title="Gentoo&#039;da Logitech Pro 9000 Webcam Kullanımı"></a>Tokyo&#8217;ya gitmişken, Akıhabara&#8217;da bir gün harcamadan edemedim. Dolaşırken birkaç parça ufak şey ve de ne zamandır almayı düşündüğüm Logitech Pro 9000 webcami aldım. Almadan önce de satıcıyla epey cebelleştim. İnatla Logitech&#8217;in Linux desteği vermediğini, driver bulamayacağımı söyledi. UVC sürücülerinin bu &#8230;<p class="read-more"><a href="http://tarikzengin.com/gentooda-logitech-pro-9000-webcam-kullanimi/">Read more &#187;</a></p>]]></description>
			<content:encoded><![CDATA[<a href="http://tarikzengin.com/gentooda-logitech-pro-9000-webcam-kullanimi/" title="Gentoo&#039;da Logitech Pro 9000 Webcam Kullanımı"></a><p>Tokyo&#8217;ya gitmişken, Akıhabara&#8217;da bir gün harcamadan edemedim. Dolaşırken birkaç parça ufak şey ve de ne zamandır almayı düşündüğüm Logitech Pro 9000 webcami aldım. Almadan önce de satıcıyla epey cebelleştim. İnatla Logitech&#8217;in Linux desteği vermediğini, driver bulamayacağımı söyledi. UVC sürücülerinin bu modeli çalıştırdığını önceden biliyordum. O yüzden satmak istememesine rağmen ısrar edip aldım. Bu yazıyı da almak isteyen olur da Linux&#8217;da çalışıp çalışmadığını merak eden olur diye yazıyorum.<span id="more-835"></span> <a href="http://linux-uvc.berlios.de/">Linux-uvc</a> sayfasında söylediğine gore bu serinin bazı modellerinde birtakım uyumsuzluklar ortaya çıkabiliyormuş. Bunun için de Logitech&#8217;in kendi yayınladığı <a href="http://www.quickcamteam.net/devices">şu</a> listeye bakabilirsiniz.</p>
<div class="wp-caption aligncenter" style="width: 410px"><img class="colorbox-835"  title="Logitech Pro9000" src="http://www.rcsnet.com/www_site/pix/products/960-000048.jpg" alt="Logitech Pro9000" width="400" height="400" /><p class="wp-caption-text">Logitech Pro9000</p></div>
<p>Gerekli sürücü <strong>media-video/linux-uvc</strong> paketi ile birlikte geliyor. Derlemek için kernelde <strong>V4L2</strong> desteğinin açık olması gerekli. Sonrasında Skype ile sorunsuz bir şekilde kullanabildim. <strong>media-video/luvcview</strong> ve <strong>media-video/guvcview</strong> de tüm özelliklerini kurcalamak ve kayıt yapmak için yeterli araçlar gibi görünüyor. Yazdığına gore oto-focus şu anda desteklenmiyormuş. Ben herhangi bir sorunla karşılaşmadım bu yüzden. Görüntü kalitesi gerçekten güzel. Tavsiye olunur.</p>
]]></content:encoded>
			<wfw:commentRss>http://tarikzengin.com/gentooda-logitech-pro-9000-webcam-kullanimi/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
		<item>
		<title>Gentoo-Tr Gezegeni</title>
		<link>http://tarikzengin.com/gentoo-tr-gezegeni/</link>
		<comments>http://tarikzengin.com/gentoo-tr-gezegeni/#comments</comments>
		<pubDate>Sat, 11 Jul 2009 05:48:44 +0000</pubDate>
		<dc:creator>Aydin Tarik Zengin</dc:creator>
				<category><![CDATA[Gentoo]]></category>
		<category><![CDATA[Linux]]></category>
		<category><![CDATA[Gezegen]]></category>
		<category><![CDATA[GNU/Linux]]></category>

		<guid isPermaLink="false">http://www.tarikzengin.com/?p=736</guid>
		<description><![CDATA[<a href="http://tarikzengin.com/gentoo-tr-gezegeni/" title="Gentoo-Tr Gezegeni"></a>Gurkan, Burak ve Serkan Gentoo Gezegeni acmislar. &#8220;Beni de alin&#8221; dedim, sagolsunlar kirmadilar. Ilk kesintisiz bos zamanimda bir Gentoo yazisi yolda. Gezegene buradan buyrun.]]></description>
			<content:encoded><![CDATA[<a href="http://tarikzengin.com/gentoo-tr-gezegeni/" title="Gentoo-Tr Gezegeni"></a><p><img class="size-medium wp-image-738 alignleft colorbox-736" title="gentoo" src="http://www.tarikzengin.com/wp-content/uploads/2009/07/gentoo-208x300.png" alt="gentoo" width="208" height="300" /></p>
<p>Gurkan, Burak ve Serkan <a href="http://gezegen.gentoo-tr.org/">Gentoo Gezegeni</a> acmislar. &#8220;Beni de alin&#8221; dedim, sagolsunlar kirmadilar. Ilk kesintisiz bos zamanimda bir Gentoo yazisi yolda.</p>
<p>Gezegene <a href="http://gezegen.gentoo-tr.org/">buradan </a>buyrun.</p>
]]></content:encoded>
			<wfw:commentRss>http://tarikzengin.com/gentoo-tr-gezegeni/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>10. Yıl Etkinlikleri</title>
		<link>http://tarikzengin.com/10-yil-etkinlikleri/</link>
		<comments>http://tarikzengin.com/10-yil-etkinlikleri/#comments</comments>
		<pubDate>Tue, 12 May 2009 15:36:22 +0000</pubDate>
		<dc:creator>Aydin Tarik Zengin</dc:creator>
				<category><![CDATA[Gentoo]]></category>
		<category><![CDATA[Linux]]></category>
		<category><![CDATA[Yaşam]]></category>
		<category><![CDATA[GNU]]></category>
		<category><![CDATA[GNU/Linux]]></category>

		<guid isPermaLink="false">http://www.tarikzengin.com/?p=712</guid>
		<description><![CDATA[<a href="http://tarikzengin.com/10-yil-etkinlikleri/" title="10. Yıl Etkinlikleri"></a>Haziran ayi benim icin oldukca ozel. Nedeni de hayatimi degistiren seyin hayatima girisinin 10. yili olmasi. Hayir, sevgilim ya da esim degil. 1999 yilinin yaz baslariydi. Ben 15 tam 12&#8242;de 8 yasinda idim. Hersey iste tam da o zaman basladi. &#8230;<p class="read-more"><a href="http://tarikzengin.com/10-yil-etkinlikleri/">Read more &#187;</a></p>]]></description>
			<content:encoded><![CDATA[<a href="http://tarikzengin.com/10-yil-etkinlikleri/" title="10. Yıl Etkinlikleri"></a><p>Haziran ayi benim icin oldukca ozel. Nedeni de hayatimi degistiren seyin hayatima girisinin 10. yili olmasi. Hayir, sevgilim ya da esim degil.</p>
<p>1999 yilinin yaz baslariydi. Ben 15 tam 12&#8242;de 8 yasinda idim. Hersey iste tam da o zaman basladi.</p>
<p>Abit anakart kutusundan cikan Linux CD&#8217;si. Onu hala sakliyorum. Seviyorum.</p>
<p>Her ne kadar beni duymayacak, yazdiklarimi okumayacak, okusalar da anlamayacak olsalar da Torvalds, Stallman ve diger milyonlarca gelistiriciye minnet duydugumu belirtmek istiyorum.</p>
<p>99&#8242;da baslayan macera sayisiz dagitim denememe, hepsinin artisini eksisini gormeme, guzelliklerle buyulenmeme neden oldu. Bugun belli basli sayilabilecek dagitimlarin tumunu, ve artik tarih sahnesinden silinmis bazilarini deneme firsati buldum ve bunun icin kendimi sansli hissediyorum.</p>
<p>Yalnizca bu mu Haziran ayini ozel yapan? Degil. Aradan 5 yil gecmis, 2004 yilinin Haziran ayina gelinmis, ben ise 20 tam 12&#8242;de 8 yasima gelmistim. Ve o gune kadar denedigim en iyi dagitimla tanistim. Gentoo!!</p>
<p>O gun bu gun beraberiz. Mutluyuz. Bu arada ben 25 tam 12&#8242;de 8 yasima gelmisim. Saka gibi.</p>
<p>Linux ile tanismamin 10., Gentoo ile tanismamin 5. yili olmasi sebebiyle bir dizi etkinlik duzenleyecegim. Dunyanin bir ucunda olmam sebebiyle etkinliklere yalnizca benim istirak edecek olmam hic de umrumda degil. Buraya geldigimden beri 4 Gentoo, 3 Kubuntu ve 1 Vine Linux kurulumu yaptim ve eylemlerim devam edecek.</p>
<p>Ederi 10binlerce dolari bulan yazilimlari karsilik beklemeden onume seren GNU camiasi, tesekkur ederim.</p>
]]></content:encoded>
			<wfw:commentRss>http://tarikzengin.com/10-yil-etkinlikleri/feed/</wfw:commentRss>
		<slash:comments>9</slash:comments>
		</item>
		<item>
		<title>Subversion Sunucusu ve Redmine Kurulumu</title>
		<link>http://tarikzengin.com/subversion-sunucusu-ve-redmine-kurulumu/</link>
		<comments>http://tarikzengin.com/subversion-sunucusu-ve-redmine-kurulumu/#comments</comments>
		<pubDate>Fri, 10 Apr 2009 14:08:45 +0000</pubDate>
		<dc:creator>Aydin Tarik Zengin</dc:creator>
				<category><![CDATA[Gentoo]]></category>
		<category><![CDATA[Linux]]></category>
		<category><![CDATA[Apache]]></category>
		<category><![CDATA[bash]]></category>
		<category><![CDATA[GNU/Linux]]></category>
		<category><![CDATA[OpenSSL]]></category>
		<category><![CDATA[Redmine]]></category>
		<category><![CDATA[RoR]]></category>
		<category><![CDATA[Ruby]]></category>
		<category><![CDATA[Ruby on Rails]]></category>
		<category><![CDATA[script]]></category>
		<category><![CDATA[Subversion]]></category>
		<category><![CDATA[SVN]]></category>
		<category><![CDATA[Use Flag]]></category>

		<guid isPermaLink="false">http://www.tarikzengin.com/?p=666</guid>
		<description><![CDATA[<a href="http://tarikzengin.com/subversion-sunucusu-ve-redmine-kurulumu/" title="Subversion Sunucusu ve Redmine Kurulumu"></a>Bu yaziyi bir HowTo belgesi gibi dusunmeyin lutfen. Tamamen kendi denemelerimden olusmakta. Nisan&#8217;da yeni donemin baslamasiyla beraber labda bazi bilgisayarlar bosa cikinca &#8220;Nasil degerlendirilebilir acaba bu eski bilgisayarlar?&#8221; dusuncesiyle boyle birsey yapmaya karar verdim. Makinelerden birini svn sunucusu olarak kullanabilirdik. &#8230;<p class="read-more"><a href="http://tarikzengin.com/subversion-sunucusu-ve-redmine-kurulumu/">Read more &#187;</a></p>]]></description>
			<content:encoded><![CDATA[<a href="http://tarikzengin.com/subversion-sunucusu-ve-redmine-kurulumu/" title="Subversion Sunucusu ve Redmine Kurulumu"></a><p>Bu yaziyi bir HowTo belgesi gibi dusunmeyin lutfen. Tamamen kendi denemelerimden olusmakta.</p>
<p>Nisan&#8217;da yeni donemin baslamasiyla beraber labda bazi bilgisayarlar bosa cikinca &#8220;Nasil degerlendirilebilir acaba bu eski bilgisayarlar?&#8221; dusuncesiyle boyle birsey yapmaya karar verdim. Makinelerden birini svn sunucusu olarak kullanabilirdik. Tum lab elemanlari da projelerini bu sunucuda tutabilirlerdi. Proje takibi icin de baslangicta trac kullanmayi dusunmustum. Fakat trac in ayni anda tek bir repo destekliyor olmasi dusunduruyodu beni. Tam bu sirada, daha once duymamis oldugum redmine ile ilgili bir kitap gordum kitapcida, subversion ve trac kitaplarinin hemen yaninda. Sonradan arastirinca kanim kaynadi hemen. Coklu proje destegi aklimi celdi. Bir de daha once hic Rails uygulamasi gormemistim, merak ettim.</p>
<p>Dagitim olarak da yabancilik cekmemek adina cok uzun suredir kullandigim Gentoo&#8217;yu sectim. Adim adim anlatmaya calisacagim.<span id="more-666"></span></p>
<p>Oncelikle bu sunucuda grafik arayuz kullanmayacagim, sadece uzaktan erisim saglayacagim icin X e gerek yok. Bu yuzden -X -gtk -gnome -qt -kde -alsa USE flaglerini kullaniyorum. Ayni zamanda bu makine oldukca eski (Celeron D) oldugu icin derleme suresini kisaltmak icin distcc kullaniyorum. Distcc&#8217;nin nasil ayarlandigina deginmeyecegim, zira zor bir yani yok. Sonuc olarak make.conf dosyasi su sekilde.</p>
<pre>CFLAGS="-O2 -march=pentium4 -pipe -fomit-frame-pointer"
CXXFLAGS="-O2 -march=pentium4 -pipe -fomit-frame-pointer"
CHOST="i686-pc-linux-gnu"
FEATURES="distcc parallel-fetch userpriv"
DISTCC_VERBOSE="1"
MAKEOPTS="-j6"
USE="apache2 postgres gd xml -X -gtk -gnome -qt -kde -alsa sqlite sqlite3"</pre>
<p>Base sistemin kurulumunun ardindan openssh ve bagimliliklari kurulduktan sonra islemleri uzaktan yapmaya devam edebilir hale geliyor sunucu.</p>
<p>Repolara web sunucu uzerinden erisecegimiz icin <strong><em>subversion</em></strong> paketini kurarken <strong><em>apache2</em></strong> destegi ile derlemek gerekli. Binary dagitimlarda bu destek dogrudan acik olarak mi geliyor bilmiyorum.</p>
<p>Apache kurulduktan sonra hicbir ayar yapmadan calisabilir durumda oluyor. Yalnizca init scriptini calistirmak yeterli. Subversion repolarimiza https uzerinden webdav ile ulasmak istedigimiz icin apache&#8217;ye bazi modulleri eklememiz gerekiyor.<em> </em><span class="literal"><strong><em>/etc/conf.d/apache2</em></strong> dosyasinda </span><span class="literal"><em><strong>APACHE2_OPTS</strong> </em>kismina </span><em><strong>-D SVN -D SVN_AUTHZ -D DAV -D DAV_FS -D SSL -D SSL_DEFAULT_VHOST</strong></em> degerlerini eklememiz gerekli. Benimki su sekilde</p>
<pre>APACHE2_OPTS="-D DEFAULT_VHOST -D INFO -D LANGUAGE -D SSL -D SSL_DEFAULT_VHOST\
 -D SVN -D SVN_AUTHZ -D DAV -D DAV_FS -D PASSENGER"</pre>
<p>Passenger kismina daha sonra deginecegim.</p>
<p>Repolari kullanacak tum kullanicilari sistemde olusturdum. Mail sunucusu olarak kullandigimiz bir de Fedora var labda, herkesin zaten bir hesabi mevcut bu makinede. Ldap kullanarak kullanicilari tekrar tanimlamadan kullanmanin bir yolu olabilir diye tahmin ediyorum fakat pek de detayli bir bilgim yok bu konuda.</p>
<p>Subversion depolarini kullanacaklar icin <strong><em>svnusers</em></strong> isminde bir kullanici grubu olusturdum ve kullanicilari bu gruba dahil ettim.</p>
<p>Repolar icin<em><strong> /var/svn/repos</strong></em> dizinini , konfigurasyon dosyalari icin de <em><strong>/var/svn/conf</strong></em> dizinini kullaniyorum. <strong><em>repos</em></strong> dizinine gruba dahil tum kullanicilar yazip okuma yapacagi icin izinlerini <strong><em>775</em></strong> olarak verdim. Unutulmamasi gereken bir nokta da apache kullanicisini da svnusers grubuna dahil etmek. Apace kullanicisi dagitima goredegisebiliyor. Sanirim Debian&#8217;da bu kullanici <strong><em>www-data</em></strong> ismiyle geciyor.</p>
<p>Repolara apache uzerinden ulasacak kullanicilar icin htpasswd dosyasi tanimlamamiz gerekiyor. Bunun icin de hal-i hazirda sisteme ekledigimiz kullanicilara</p>
<pre>htpasswd2 /var/svn/conf/svnusers kullanici_adi</pre>
<p>seklinde sifre belirlememiz gerekiyor. <strong><em>svnusers</em></strong> dosyasini olusturmak icin ilk calistirmada komuta -c parametresi eklemek gerekli.</p>
<p>Ardindan da olusturulan repoya hangi kullanicilarin hangi haklarla erismesine izin verecegimizi de <em><strong>/var/svn/conf/svnpolicy </strong></em>dosyasindan ayarlamamiz gerekiyor.</p>
<p>Bu islemleri basitlestirmek icin kisa bir bash script yazdim. Yazinin ilerleyen kisminda bulabilirsiniz.</p>
<p>Apache&#8217;yi svn repolarimizi gosterecek sekilde ayarlamakta sira. <em><strong>/etc/apache2/modules.d/47_mod_dav_svn.conf</strong></em> dosyasinda asagidaki duzenlemeyi yazpiyoruz.</p>
<pre>&lt;IfDefine SVN&gt;
        &lt;IfModule !mod_dav_svn.c&gt;
                LoadModule dav_svn_module       modules/mod_dav_svn.so
        &lt;/IfModule&gt;
        &lt;Location /svn/repos&gt;
                DAV svn
                SVNParentPath /var/svn/repos
                #SSLRequireSSL
                AuthType Basic
                AuthName "System Integration Lab SVN Repository"
                AuthUserFile /var/svn/conf/svnusers
                AuthzSVNAccessFile /var/svn/conf/svnpolicy
#                &lt;LimitExcept GET PROPFIND OPTIONS REPORT&gt;
                Require valid-user
#                &lt;/LimitExcept&gt;
                SVNIndexXSLT /svnindex.xsl
        &lt;/Location&gt;
        &lt;IfDefine SVN_AUTHZ&gt;
                &lt;IfModule !mod_authz_svn.c&gt;
                        LoadModule authz_svn_module     modules/mod_authz_svn.so
                &lt;/IfModule&gt;
        &lt;/IfDefine&gt;
&lt;/IfDefine&gt;</pre>
<p>Comment edilmis 2 satir var goruldugu gibi. Bu limitlemeyi acarsam bazi sorunlarla karsilastim. Bu sekilde benim icin yeterli sekilde calisiyor.</p>
<p><em><strong>SVNIndexXSLT</strong></em> satirinda belirttigimiz <strong><em>svnindex.xsl</em></strong> ve <strong><em>svnindex.css</em></strong> dosyalarini da sunucunun ana dizinine kopyaliyoruz. Bu durumda <em><strong>/var/www/localhost/htdocs/</strong></em></p>
<p>Henuz bir repo olusturmadik fakat olusturdugumuz takdirde <strong><em>http://localhost/svn/repos/repo_adi</em></strong> adresinden ulasabiliyor durumdayiz su an. Yalniz dikkat <strong><em>http</em></strong>, <strong><em>https</em></strong> degil henuz.</p>
<p>Http uzerinden tum iletisimi kesmek icin <strong><em>/etc/apache2/vhosts.d/00_default_vhost.conf </em></strong>dosyasinda tanimli ayarlarin hepsini comment ederek kapattim. Artik http uzerinden erisim yok. Https uzerinden de yok. Oh ne guzel. Yazi burada bitse ne kotu olur.</p>
<p>Simdi Redmine kurulumuna gecelim. <a href="http://www.redmine.org/wiki/redmine/RedmineInstall"><strong><em>http://www.redmine.org/wiki/redmine/RedmineInstall</em></strong></a> adresinde kurulum ile ilgili bilgiler mevcut. Svn ile redmine kodunu checkout edip istedigimiz bir dizine koyabiliriz. Ben <strong><em>/var/rails/redmine</em></strong> dizinine koydum.</p>
<p>Sistemde bulunmasi gereken paketler <em><strong>ruby</strong></em>, <strong><em>ruby-gems</em></strong>, <em><strong>mysql-ruby</strong></em>, <em><strong>rails</strong></em> ve bunlarin bagimliliklari. Kurulumdan sonra</p>
<pre>gem install rails -v=2.2.2</pre>
<p>ile rails versiyonunu ayarliyoruz.</p>
<p>Redmine dizini altindaki <code>config/database.yml dosyasinda gerekli database ayarlamasini yaptiktan sonra</code></p>
<pre><code>rake db:migrate RAILS_ENV="production"</code></pre>
<p>ile gerekli tablolari olusturuyoruz.</p>
<p>Artik redmine uygulamasini</p>
<pre>ruby script/server webrick -e production</pre>
<p>komutu ile calistirip <strong><em><span class="external">http://localhost:3000/</span></em></strong>adresinden uygulamayi gorebiliyor olmamiz gerekir.</p>
<p>/var/rails/redmine/config/email.yml dosyasinda da smtp ayarlarini yaparak Redmine&#8217;in kullanicilara e-mail yollayabilmesini saglayabiliriz.</p>
<p>Bir sonraki adim Redmine uygulamasini bu sekilde daemon modunda degil, apache icerisinden calisir hale getirebilmek. Bunun icin de apache&#8217;nin mod_rails destegi ile calismasi gerekli. Yukarida bahsettigim Passenger da iste tam bu ise yariyor.</p>
<p>Rails uygulamasi, public dizininde apache tarafindan sunulacak dosyalari barindiriyor. Burada .htaccess dosyasinda apache&#8217;ye Rails uygulamalarini mod-fcgid ile calistirmasini soylememiz gerekli.</p>
<pre># General Apache options
#AddHandler fastcgi-script .fcgi
#AddHandler cgi-script .cgi
AddHandler fcgid-script .fcgi
Options +FollowSymLinks +ExecCGI

RewriteEngine On

RewriteRule ^$ index.html [QSA]
RewriteRule ^([^.]+)$ $1.html [QSA]
RewriteCond %{REQUEST_FILENAME} !-f
#RewriteRule ^(.*)$ dispatch.cgi [QSA,L]
RewriteRule ^(.*)$ dispatch.fcgi [QSA,L]

ErrorDocument 500 "&lt;h2&gt;Application error&lt;/h2&gt;Rails application failed to start properly"</pre>
<p>Ben bu sekilde kullaniyorum. Ardindan apache&#8217;nin https uzerinden rails uygulamizi sunmasi icin <em><strong>/etc/apache2/vhosts.d/00_default_ssl_vhost.conf </strong></em>dosyasinda <strong><em>DocumentRoot</em></strong> bolumunu ayarlamamiz gerekli.</p>
<pre>&lt;IfDefine SSL&gt;
&lt;IfDefine SSL_DEFAULT_VHOST&gt;
&lt;IfModule ssl_module&gt;

Listen 443

&lt;VirtualHost _default_:443&gt;
        ServerName XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
        Include /etc/apache2/vhosts.d/default_vhost.include
        ErrorLog /var/log/apache2/ssl_error_log

        &lt;IfModule log_config_module&gt;
                TransferLog /var/log/apache2/ssl_access_log
        &lt;/IfModule&gt;

        SSLEngine on

        SSLCipherSuite ALL:!ADH:!EXPORT56:RC4+RSA:+HIGH:+MEDIUM:+LOW:+SSLv2:+EXP:+eNULL

        SSLCertificateFile /etc/apache2/ssl/server.crt

        SSLCertificateKeyFile /etc/apache2/ssl/server.key

        &lt;FilesMatch "\.(cgi|shtml|phtml|php)$"&gt;
                SSLOptions +StdEnvVars
        &lt;/FilesMatch&gt;

        &lt;Directory "/var/www/localhost/cgi-bin"&gt;
                SSLOptions +StdEnvVars
        &lt;/Directory&gt;

        &lt;IfModule setenvif_module&gt;
                BrowserMatch ".*MSIE.*" \
                        nokeepalive ssl-unclean-shutdown \
                        downgrade-1.0 force-response-1.0
        &lt;/IfModule&gt;

        &lt;IfModule log_config_module&gt;
                CustomLog /var/log/apache2/ssl_request_log \
                        "%t %h %{SSL_PROTOCOL}x %{SSL_CIPHER}x \"%r\" %b"
        &lt;/IfModule&gt;

        DocumentRoot /var/rails/redmine/public/

        &lt;Directory /var/rails/redmine/public&gt;
                Options ExecCGI FollowSymLinks
                AllowOverride all
                Order allow,deny
                Allow from all
        &lt;/Directory&gt;

&lt;/VirtualHost&gt;
&lt;/IfModule&gt;
&lt;/IfDefine&gt;
&lt;/IfDefine&gt;

# vim: ts=4 filetype=apache</pre>
<p><strong><em>ServerName</em></strong> kismi onemli. Domain ismini tam olarak yazmak gerekiyor, yoksa sertifika problemleri ile karsilasilabilir.</p>
<p>Apache, Redmine uygulamasini https uzerinden sunmaya hazir. Yukarida belirttigimiz sertifika dosyalarini da olusturtuktan sonra islem neredeyse tamam oluyor. <strong><em>SSLCertificateFile</em></strong> ve <strong><em>SSLCertificateKeyFile</em></strong> ile belirtilen 2 dosyayi openssl kullanarak olusturmaliyiz. Buna <strong><em>self-signed certificate</em></strong> deniyor. Bunun icin <a href="http://www.akadia.com/services/ssh_test_certificate.html">su sayfaya</a> bakabilirsiniz. Uzun uzun anlatmaya gerek yok.</p>
<pre>/etc/init.d/apache2 restart</pre>
<p>ile apache&#8217;yi tekrar baslattiktan sonra Redmine uygulamamizi https://domain_adi seklinde gorebiliyor olmaliyiz.</p>
<p>Eger buraya kadar sorunsuz geldiysek (ki cok kucuk bir ihtimal), simdi biraz sorun yaratalim.</p>
<p>Svn repolarimiza https://domain/svn/repos/repo_adi adresinden ulasabiliyorduk. Fakat bu <strong><em>DocumentRoot </em></strong>degerini degistirmeden once idi. Yeni <em><strong>DocumentRoot</strong></em> dizininde  <strong><em>svnindex.xsl</em></strong> ve <strong><em>svnindex.css</em></strong> dosyalari bulunmuyor. Bu da demektir ki artik repolara ulasamiyoruz. Aslinda apache ayarlarindan her alt dizine, her alt-domain&#8217;e gore farkli ayarlamalar yapilabiliyor. Ama ben yine en amele yolu secip bu iki dosyayi Redmine public dizinine koymayi tercih ettim. Sonucta isimi goruyorsa tamamdir, profesyonel degilim ne de olsa. Hobi olarak ugrasiyorum bu islerle. Hayir, hobilerim arasinda kendime iskence etmek gibi mazosist seyler yok.</p>
<p>Simdi gozden gecirelim neler yaptigimizi:</p>
<ul>
<li>Subversion repolarina https://domain/svn/repos/repo_adi adresinden ulasilabiliyor.</li>
<li>Redmine uygulamasi apache tarafindan calistirilip https://domain adresinden ulasilabiliyor.</li>
</ul>
<p>Iki maddecik, az gibi gorunuyor fakat cok gunlerdir bununla ugrasiyorum.</p>
<p>Simdi gelelim isleri kolaylastirmaya. Yaklasik 15 kullanici kullanacak bu sistemi. Her biri icin bir kullanici hesabi var sistemde. Reponun olusturulmasi ve gerekli izinlerin duzenlenmesi bazi asamalarda root yetkileri gerektiriyor. Herkesin reposuyla tek tek ilgilenmemek icin bu isi otomatize etmek gerekiyor.</p>
<pre>#!/bin/bash
DIR=/var/svn
REPODIR=$DIR/repos
CONFDIR=$DIR/conf
export USER=`whoami`
echo -n "SVN Database Name: "
read -e DATABASE
if test -e $REPODIR/$DATABASE
then
echo "This database exists. Please try another name."
else
svnadmin create $REPODIR/$DATABASE
sudo chown -R apache:svnusers $REPODIR/$DATABASE/
sudo chmod -R g-w $REPODIR/$DATABASE/
sudo chmod -R g+rw $REPODIR/$DATABASE/db/
sudo chmod -R g+rw $REPODIR/$DATABASE/locks/
echo "[$DATABASE:/]" | sudo tee -a $CONFDIR/svnpolicy
echo "$USER = rw" | sudo tee -a $CONFDIR/svnpolicy
echo "User $USER has been authorized to read-write the $DATABASE repository"
echo "ユーザ $USER は $DATABASE に対する書き込み/読み込みを許可されました"
echo "If you want to authorize more users, please contact with the admin"
echo "追加でユーザを許可したい場合は、管理者に問い合わせてください。"
echo ""
echo "Your database is now accessible from https://domain/svn/repos/$DATABASE"
fi</pre>
<p>Kullanicilara tamamen root yetkileri vermektense sudo kullanmak daha akilci geldi. Yukarida gorelecegi uzere yalnizca 3 komut sudo ile calistiriliyor. Bunlari da <strong><em>sudoers</em></strong> dosyasinda tanimliyorum.</p>
<pre>%svnusers ALL=/bin/chown, /bin/chmod, /usr/bin/tee</pre>
<p>Aslinda hala tehlikeli bir is, chmod ve chown kullanarak bile kolayca dagitilabilir sistem.</p>
<p>Ilk once daha farkli bir script hazirlamistim. Onun icinde bu sekilde sudo kullanmiyordum. Kullanici o scripti sudo ile calistiriyordu. Daha guvenli bir yontem. Fakat benim komutu calistiran kullanicinin adina ihtiyacim var ve whoami komutu sudo ile calistirildiginda dogal olarak root donduruyor. Aklima bir yol gelmedi simdilik. Onerilere acigim.</p>
<p>Artik kullanicilar kendileri svn repolarini olusturabiliyor durumdalar. Fakat hala Redmine uzerinde proje olusturma isi bana ait. Bunun bir yolu olup olmadigini bilmiyorum, fakat bir yandan da iyi oldugunu dusunuyorum. Onune gelen proje olusturmasin. Simdilik dusuncem bu.</p>
<p>Gelelim bir baska probleme. http uzerinden calisirken hersey gulluk-gulistanlik fakat https uzerinden ortaya cikan bir sorun var. Bununla epey cebellestikten sonra farkina vardim. Kullanici repoyu olusturuyor, https://domain/svn/repos/repo_adi adresinden goruntuleyebiliyor, Redmine&#8217;a sorunsuz bir sekilde login olup kullanabiliyor fakat Redmine&#8217;da olusturdugu projesine svn reposunu eklemeye kalktiginda bir turlu basarili olamiyordu. Uzun sure dusundukten sonra, svn checkout sirasinda  sertifikanin gecici mi kalici mi olmasini istedigimizi soran soru kafamda bir isik yakti. Biraz arastirinca anladim ki, Redmine svn reposuna ulasirken apache kullanicisini kullaniyor ve bu kullanici gerekli sertifikaya sahip degil.</p>
<p>Daha mantikli bir cozumunun oldugunu dusunuyorum fakat ben yine biraz amele bir yontem kullandim. apache kullanicisi ile svn checkout yapip sertifikayi almasini sagladim.</p>
<pre>sudo -u apache svn co https://domain/svn/repos/repo_adi</pre>
<p>Bu adimdan sonra Redmine icerisinden sorunsuz olarak repo ekleyip, goruntulenebiliyor hale geldi.</p>
<p>Son adim olarak, repolarin ve mysql vertabaninin duzenli olarak yedegininin alinmasi icin bir script hazirladim. Bu da repolardan ve veri tabanindan dump alip bunu labdaki dosya sunucusunda yedek icin ayirdigim alana periyodik olarak atmaya yariyor.</p>
<pre>#!/bin/bash

# Mount Tera Station
mount -t cifs //xxx.xxx.xxx.xxx/usr /mnt/tera -o user=xxxxx,pass=xxxxx

export whatisdate=`date +%F`

cd /var/svn/repos

# Backup the Subversion Databases
for i in $( ls ); do
echo $i repository is now backing up...
svnadmin dump $i &gt; /mnt/tera/redmine/Subversion\ Backups/$i-$whatisdate.dump;
echo "`date` - Subversion Backup : $i" &gt;&gt; /mnt/tera/redmine/log.txt
done

# Backup the Redmine Database
echo Redmine Mysql Database is now backing up...
mysqldump -u root --password=xxxxx redmine | gzip &gt; /mnt/tera/redmine/Redmine\ Database\ Backups/redmine_`date +%y_%m_%d`.gz
echo "`date` - Redmine Database Backup" &gt;&gt; /mnt/tera/redmine/log.txt

# Unmount Tera Station
umount /mnt/tera</pre>
<p>Bu scriptin soft linkini de <strong><em>/etc/cron.weekly/</em></strong> dizinine atarak haftada bir kez calismasini saglamis oluyorum.</p>
<p>Guvenlik acisindan pek cok eksigin oldugunun, scriptlerin icerisinde acik acik sifre ve kullanici adi kullandigimin farkindayim. Gunlerdir bu sistemi adam etmeye calisiyorum ve yaptiklarimin bir kismini simdiden unuttum. Bunlari da unutmadan yazayim dedim. Belki guvenlikle ilgili bazi iyilestirmeler yapabilirim.</p>
<p>Bazi kisimlarda hala sorunlarim var. Ornegin, farkli kullanicilar icin farkli repolar tanimli. Browser&#8217;da bunlardan birini https://domain/svn/repos/repo_adi seklinde actigimda beklendigi gibi kullanici adi ve sifre soruyor. Ardindan bir baska kullaniciya ait diger repoyu actigimda, tekrar kullanici adi ve sifre sormak yerine <em><strong>403 Forbidden</strong></em> hatasi veriyor. Tekrar sormasi icin browser&#8217;i kapatip tekrar acmam gerekiyor. Bunun nedenini bulabilmis degilim. Burada da fikir ve onerilere acigim.</p>
<p>Iyi aksamlar Turkiye, her nerede commit ediliyor ve ettiriliyorsa.</p>

<a href='http://tarikzengin.com/subversion-sunucusu-ve-redmine-kurulumu/redmine1/' title='redmine1'><img width="150" height="150" src="http://tarikzengin.com/wp-content/uploads/2009/04/redmine1-150x150.png" class="attachment-thumbnail colorbox-666" alt="redmine1" title="redmine1" /></a>
<a href='http://tarikzengin.com/subversion-sunucusu-ve-redmine-kurulumu/redmine2/' title='redmine2'><img width="150" height="150" src="http://tarikzengin.com/wp-content/uploads/2009/04/redmine2-150x150.png" class="attachment-thumbnail colorbox-666" alt="redmine2" title="redmine2" /></a>
<a href='http://tarikzengin.com/subversion-sunucusu-ve-redmine-kurulumu/redmine3/' title='redmine3'><img width="150" height="150" src="http://tarikzengin.com/wp-content/uploads/2009/04/redmine3-150x150.png" class="attachment-thumbnail colorbox-666" alt="redmine3" title="redmine3" /></a>
<a href='http://tarikzengin.com/subversion-sunucusu-ve-redmine-kurulumu/redmine4/' title='redmine4'><img width="150" height="150" src="http://tarikzengin.com/wp-content/uploads/2009/04/redmine4-150x150.png" class="attachment-thumbnail colorbox-666" alt="redmine4" title="redmine4" /></a>
<a href='http://tarikzengin.com/subversion-sunucusu-ve-redmine-kurulumu/redmine5/' title='redmine5'><img width="150" height="150" src="http://tarikzengin.com/wp-content/uploads/2009/04/redmine5-150x150.png" class="attachment-thumbnail colorbox-666" alt="redmine5" title="redmine5" /></a>
<a href='http://tarikzengin.com/subversion-sunucusu-ve-redmine-kurulumu/redmine6/' title='redmine6'><img width="150" height="150" src="http://tarikzengin.com/wp-content/uploads/2009/04/redmine6-150x150.png" class="attachment-thumbnail colorbox-666" alt="redmine6" title="redmine6" /></a>

]]></content:encoded>
			<wfw:commentRss>http://tarikzengin.com/subversion-sunucusu-ve-redmine-kurulumu/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Dan Kaminsky DNS Vulnerability</title>
		<link>http://tarikzengin.com/dan-kaminsky-dns-vulnerability/</link>
		<comments>http://tarikzengin.com/dan-kaminsky-dns-vulnerability/#comments</comments>
		<pubDate>Mon, 23 Feb 2009 15:08:29 +0000</pubDate>
		<dc:creator>Aydin Tarik Zengin</dc:creator>
				<category><![CDATA[English]]></category>
		<category><![CDATA[Makaleler]]></category>
		<category><![CDATA[Cache Poisoning]]></category>
		<category><![CDATA[Dan Kaminsky]]></category>
		<category><![CDATA[DNS]]></category>
		<category><![CDATA[DNS Vulnerability]]></category>
		<category><![CDATA[Gentoo]]></category>
		<category><![CDATA[Global Top Level Domain]]></category>
		<category><![CDATA[GNU/Linux]]></category>
		<category><![CDATA[Internet]]></category>

		<guid isPermaLink="false">http://www.tarikzengin.com/blog/?p=583</guid>
		<description><![CDATA[<a href="http://tarikzengin.com/dan-kaminsky-dns-vulnerability/" title="Dan Kaminsky DNS Vulnerability"></a>Abstract The Domain Name System (DNS) is a naming system which transforms human readable domain names, into machine readable IP addresses and vice versa. The DNS servers create a database entry for each domain and send the equivalent IP address &#8230;<p class="read-more"><a href="http://tarikzengin.com/dan-kaminsky-dns-vulnerability/">Read more &#187;</a></p>]]></description>
			<content:encoded><![CDATA[<a href="http://tarikzengin.com/dan-kaminsky-dns-vulnerability/" title="Dan Kaminsky DNS Vulnerability"></a><p style="text-align: justify;"><strong>Abstract</strong><br />
The Domain Name System (DNS) is a naming system which transforms human readable domain names, into machine readable IP addresses and vice versa. The DNS servers create a database entry for each domain and send the equivalent IP address when they receive a query. DNS servers synchronize themselves with the authoritative DNS sources. When a query came to DNS server, it caches this request for future queries. If this request comes from a non-authentic client and has cached by DNS server, this causes a poisoned cache. This request may come from an improper software, a wrong configured name server or a malicious software which is created to exploit the DNS system.</p>
<p style="text-align: justify;"><strong>Conventional DNS Query</strong></p>
<p style="text-align: justify;">Let&#8217;s explain this with an example. At first, the client  makes a request for www.example.net to the IPS&#8217;s DNS server. The DNS server knows that this client is not an authoritative for the domain, so it also knows that it has to find it out of its cache, not in the local zone.<span id="more-583"></span></p>
<p style="text-align: justify;">The DNS server forwards this query randomly to one of its 13 root servers. The root server receives this query but know nothing about this new domain. But it knows the Global Top Level Domain (GTLD) servers which are responsible for .net domains. GTLD server receives the same query from root server. If it also knows nothing about this domain, it adds a referral to the query and sends it back.<br />
This cycle returns until one of the servers knows the exact answer of our query. This true equivalent of the domain is called A Record.</p>
<p style="text-align: justify;">The DNS server also files away this answer into its own cache for the future queries.</p>
<p style="text-align: justify;">
<div id="attachment_584" class="wp-caption aligncenter" style="width: 510px"><img class="size-full wp-image-584 colorbox-583" title="NormalDNSQuery" src="http://www.tarikzengin.com/blog/wp-content/uploads/2009/02/figure1.gif" alt="A Normal DNS Query" width="500" height="478" /><p class="wp-caption-text">A Normal DNS Query (from www.unixwiz.net)</p></div>
<p>Figure 1 shows a normal procedure of DNS query. Here, the client sends a DNS query for the site www.unixwiz.net. The local recursive nameserver doesn&#8217;t know the answer and asks to an other root server. It sends back the message with a referral to an other root server. Local server tries all the authoritative root servers, until it finds the closest name server which is in the same domain with the target site. Finally, it sends a query to that name server and receives back the IP address.</p>
<p style="text-align: justify;"><strong>Cache Poisoning</strong><br />
The previous scenario was the way how a DNS query should be. The DNS server caches the A Record for future queries, but not forever, just for a while. This time interval is defined by the Time To Live (TTL) variable in the server configuration, and the only authorized person is the administrator of the DNS server. During TTL, each query for the same domain, will be answered from the local database. After the TTL passed, the record in the server database will be dropped and any query will cause a complete DNS cycle.</p>
<p style="text-align: justify;">If our bad guy wants to redirect the innocent clients to his malicious site rather than the original “good one”, he has to change this local database entry with his fake data.</p>
<p style="text-align: justify;">Indeed, it&#8217;s not so easy to send random DNS packets to the server. Because, DNS servers just allow the expected packets from other servers. And they have some specific messages between each other, that make the connection unique. Communication between servers is over UDP ports that the query (Question and Query ID of the DNS packet) was sent through.  So, the bad guy has to know these data to send a response to DNS server, which is like coming from an authoritative root server.</p>
<p style="text-align: justify;">The method he used is, sending a query for the target site and replying his own query before the original root server will. Figure 2 shows this process over an example.</p>
<p style="text-align: justify;">
<div id="attachment_585" class="wp-caption aligncenter" style="width: 581px"><img class="size-full wp-image-585 colorbox-583" title="DNSCachePoisoning" src="http://www.tarikzengin.com/blog/wp-content/uploads/2009/02/figure2.gif" alt="DNS Server Cache Poisoning (from www.unixwiz.net)" width="571" height="534" /><p class="wp-caption-text">DNS Server Cache Poisoning (from www.unixwiz.net)</p></div>
<p style="text-align: justify;">In this example, the bad guy sends a query to the DNS server for the target site www.bankofsteve.com. DNS server doesn&#8217;t know the IP address of this site and sends a query to a root server. The bad guy starts to flood at this point with increasing Query IDs. If he can find the true Query ID as fast as possible and sends back the poisoned DNS message to the victim name server with this Query ID, the DNS server accepts this response rather than the original one. In this example, the bad guy sends his malicious site&#8217;s IP address as a response of the original bank site query, before the bank&#8217;s original name server replies the query. The victim nameserver rejects the original nameserver&#8217;s response, because the Query ID will not be expected, after the bad guy sends the message by using this ID.</p>
<p style="text-align: justify;"><strong>Dan Kaminsky Method for Cache Poisoning</strong><br />
In 2008, Dan Kaminsky who is a security researcher and Director of Penetration Testing for IOActive, found a way to poison not just the addresses one by one. He discovered a way to change the authority records too.</p>
<p style="text-align: justify;">In this method, the basic idea is same with the early cache poisoning method, but there is a difference. The bad guy server floods the victim server with the response of the target site query and the authoritative record for the target domain. This means, the bad guy server becomes both the target site and the target name server.</p>
<p style="text-align: justify;"><strong>How to Fix</strong><br />
The key point here is the Query ID. If the bad guy can not guess the Query ID, all the method collapses. But the problem is the number of Query IDs that DNS servers use. Old style DNS servers uses 16 bit Query IDs, which means 64k chance to find the ID number. So randomization of the Query ID is a solution. But it&#8217;s still feasible to find the ID by trying.</p>
<p style="text-align: justify;">Increasing the Query ID bits may be a solution to this problem. But all the Internet infrastructure lies on the 16 bit DNS Query ID. So it&#8217;s impossible to change the Query ID structure.</p>
<p style="text-align: justify;">The most effective way to solve this problem is randomizing both the Query ID and the ports. The client talks to a nameserver on port 53/tcp. And the nameservers talks to each other on random UDP ports with random Query IDs and finds the answer. And than, the nameserver answers back to the client on port  53/tcp.</p>
<p style="text-align: justify;">By this way, finding the true Query ID and the port combination is a fat chance.</p>
<p style="text-align: justify;"><strong>Conclusion</strong><br />
Today all the major DNS servers support the method above. The most common DNS servers, BIND and MS DNS server have already patched their software against this vulnerability.<br />
The major Unix/Linux distributions such as RedHat, Gentoo and SuSE, have some security tools that scans the entire system against the vulnerabilities. <a href="http://www.gentoo.org/doc/en/security/security-handbook.xml?part=1&amp;chap=14">Glsa-check</a> tool of Gentoo Linux is one of them. It scans the system and updates the packets which are marked as insecure by the Gentoo Development Team. So being updated as fast as possible is the key point of being secure.</p>
<p style="text-align: justify;"><strong>References</strong><br />
1.<a href="http://en.wikipedia.org/wiki/DNS_cache_poisoning">http://en.wikipedia.org/wiki/DNS_cache_poisoning</a><br />
2.<a href="http://www.unixwiz.net/techtips/iguide-kaminsky-dns-vuln.html">http://www.unixwiz.net/techtips/iguide-kaminsky-dns-vuln.html</a><br />
3.<a href="http://bugs.gentoo.org/show_bug.cgi?id=231201">http://bugs.gentoo.org/show_bug.cgi?id=231201</a><br />
4.<a href="http://security.freebsd.org/advisories/FreeBSD-SA-08:06.bind.asc">http://security.freebsd.org/advisories/FreeBSD-SA-08:06.bind.asc</a><br />
5.<a href="http://www.softpanorama.org/DNS/dns_ports.shtml">http://www.softpanorama.org/DNS/dns_ports.shtml</a><br />
6.<a href="http://www.doxpara.com/DMK_BO2K8.ppt">http://www.doxpara.com/DMK_BO2K8.ppt</a></p>
]]></content:encoded>
			<wfw:commentRss>http://tarikzengin.com/dan-kaminsky-dns-vulnerability/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Hoşgeldin KDE4.2</title>
		<link>http://tarikzengin.com/hosgeldin-kde42/</link>
		<comments>http://tarikzengin.com/hosgeldin-kde42/#comments</comments>
		<pubDate>Wed, 04 Feb 2009 17:28:01 +0000</pubDate>
		<dc:creator>Aydin Tarik Zengin</dc:creator>
				<category><![CDATA[Gentoo]]></category>
		<category><![CDATA[Linux]]></category>
		<category><![CDATA[emerge]]></category>
		<category><![CDATA[GNU/Linux]]></category>
		<category><![CDATA[KDE]]></category>
		<category><![CDATA[KDE4]]></category>
		<category><![CDATA[KDE4.2]]></category>
		<category><![CDATA[Portage]]></category>

		<guid isPermaLink="false">http://www.tarikzengin.com/blog/?p=487</guid>
		<description><![CDATA[<a href="http://tarikzengin.com/hosgeldin-kde42/" title="Hoşgeldin KDE4.2"></a>KDE4.2 üzerindeki maskenin kalkmasıyla beraber emerge yolları gözüktü yine. kde-testing overlay&#8217;i de çok güzel setler oluşturmuş. @kdebase-4.2 , @kdenetwork-4.2 gibi birçok set hazır halde geliyor. Geriye de emerge @kdebase-4.2 demek kalıyor. kde-3.5 ile epey bağımlılık çakışması problemi oldu. Önceleri o &#8230;<p class="read-more"><a href="http://tarikzengin.com/hosgeldin-kde42/">Read more &#187;</a></p>]]></description>
			<content:encoded><![CDATA[<a href="http://tarikzengin.com/hosgeldin-kde42/" title="Hoşgeldin KDE4.2"></a><p>KDE4.2 üzerindeki maskenin kalkmasıyla beraber emerge yolları gözüktü yine. <strong>kde-testing</strong> overlay&#8217;i de çok güzel setler oluşturmuş. <strong>@kdebase-4.2</strong> , <strong>@kdenetwork-4.2</strong> gibi birçok set hazır halde geliyor. Geriye de</p>
<pre>emerge @kdebase-4.2</pre>
<p>demek kalıyor. kde-3.5 ile epey bağımlılık çakışması problemi oldu. Önceleri o da kalsın istedim ama kdelibs fena çakışıyor.</p>
<p><strong>kdeprefix</strong> USE flag&#8217;ini kullanarak derledim. Kullanmadan yaptığım deneme hüsran ile sonuçlandı.<br />
Bu da henüz tazecik kde4.2 masaüstüm.</p>
<div id="attachment_488" class="wp-caption aligncenter" style="width: 310px"><a href="http://www.tarikzengin.com/blog/wp-content/uploads/2009/02/kde4.png"><img class="size-medium wp-image-488 colorbox-487" title="kde4" src="http://www.tarikzengin.com/blog/wp-content/uploads/2009/02/kde4-300x187.png" alt="Yeni KDE4.2 Masaüstüm" width="300" height="187" /></a><p class="wp-caption-text">Yeni KDE4.2 Masaüstüm</p></div>
]]></content:encoded>
			<wfw:commentRss>http://tarikzengin.com/hosgeldin-kde42/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
		<item>
		<title>Timidity++ ile Midi&#8217;den Wav&#8217;e Donusturme</title>
		<link>http://tarikzengin.com/timidity-ile-mididen-wave-donusturme/</link>
		<comments>http://tarikzengin.com/timidity-ile-mididen-wave-donusturme/#comments</comments>
		<pubDate>Fri, 23 Jan 2009 20:28:23 +0000</pubDate>
		<dc:creator>Aydin Tarik Zengin</dc:creator>
				<category><![CDATA[Linux]]></category>
		<category><![CDATA[GNU/Linux]]></category>
		<category><![CDATA[midi]]></category>
		<category><![CDATA[midi to wave]]></category>
		<category><![CDATA[midi to wave converter]]></category>
		<category><![CDATA[Timidity]]></category>
		<category><![CDATA[wav]]></category>

		<guid isPermaLink="false">http://www.tarikzengin.com/blog/?p=468</guid>
		<description><![CDATA[<a href="http://tarikzengin.com/timidity-ile-mididen-wave-donusturme/" title="Timidity++ ile Midi&#039;den Wav&#039;e Donusturme"></a>Gecenlerde elimdeki bir midi dosyasini wav&#8217;e donusturmem gerekti. Bunun icin bir tool var mi diye bakinirken gordum ki bizim emektar timidity++ bu isi pek de guzel yapiyormus. Aciklamasina baksam hemen anlarmisim aslinda, Timidity++ : MIDI to WAVE converter/player Ben sadece &#8230;<p class="read-more"><a href="http://tarikzengin.com/timidity-ile-mididen-wave-donusturme/">Read more &#187;</a></p>]]></description>
			<content:encoded><![CDATA[<a href="http://tarikzengin.com/timidity-ile-mididen-wave-donusturme/" title="Timidity++ ile Midi&#039;den Wav&#039;e Donusturme"></a><p>Gecenlerde elimdeki bir midi dosyasini wav&#8217;e donusturmem gerekti. Bunun icin bir tool var mi diye bakinirken gordum ki bizim emektar timidity++ bu isi pek de guzel yapiyormus. Aciklamasina baksam hemen anlarmisim aslinda,</p>
<pre style="padding-left: 30px;"><em>Timidity++ : MIDI to WAVE converter/player</em></pre>
<p>Ben sadece midi engine olarak kullaniyordum kendisini. Neyse hem ipucu olsun, hem de kendim de bir dahaki sefere aramayayim diye yazayim.</p>
<pre style="padding-left: 30px;"><em>timidity input.mid -Ow -o out.wav</em></pre>
<p><em>Timidity&#8217;nin yuzlerce parametresi var aslinda. Hepsini bulup ogrenmek benim icin pek mumkun degil. Ihtiyacim oldukca ogreniyorum. Prensibim budur <img src='http://tarikzengin.com/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley colorbox-468' /> </em></p>
]]></content:encoded>
			<wfw:commentRss>http://tarikzengin.com/timidity-ile-mididen-wave-donusturme/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Amele Programming Reloaded</title>
		<link>http://tarikzengin.com/amele-programming-reloaded/</link>
		<comments>http://tarikzengin.com/amele-programming-reloaded/#comments</comments>
		<pubDate>Sun, 30 Nov 2008 06:26:08 +0000</pubDate>
		<dc:creator>Aydin Tarik Zengin</dc:creator>
				<category><![CDATA[Gentoo]]></category>
		<category><![CDATA[Linux]]></category>
		<category><![CDATA[AR5006EG]]></category>
		<category><![CDATA[Atheros]]></category>
		<category><![CDATA[GNU/Linux]]></category>
		<category><![CDATA[Madwifi-ng]]></category>
		<category><![CDATA[Mechanize]]></category>
		<category><![CDATA[Ndiswrapper]]></category>
		<category><![CDATA[Perl]]></category>

		<guid isPermaLink="false">http://tarikzengin.wordpress.com/?p=227</guid>
		<description><![CDATA[<a href="http://tarikzengin.com/amele-programming-reloaded/" title="Amele Programming Reloaded"></a>Evde kullandigim internet baglantisi bana biraz acayip geliyor. DHCP ile IP aldiktan sonra bir de ISP nin login sayfasina girip kullanici adi ve sifre ile login olmak gerekiyor. Bu tip baglantiya ne isim veriliyor hic bilmiyorum. Sorun su ki boot &#8230;<p class="read-more"><a href="http://tarikzengin.com/amele-programming-reloaded/">Read more &#187;</a></p>]]></description>
			<content:encoded><![CDATA[<a href="http://tarikzengin.com/amele-programming-reloaded/" title="Amele Programming Reloaded"></a><p>Evde kullandigim internet baglantisi bana biraz acayip geliyor. DHCP ile IP aldiktan sonra bir de ISP nin login sayfasina girip kullanici adi ve sifre ile login olmak gerekiyor. Bu tip baglantiya ne isim veriliyor hic bilmiyorum. Sorun su ki boot esnasinda DHCP sorgusu yapip IP almama ragmen firefox ile login sayfasina girip sifre girene kadar internete ulasamiyor olmak sinir bozucu. Ornegin NTP ile saat guncellemesi yapamiyorum bu durumda. Ya da en azindan gatget tarzi ufak uygulamalar desktop acildigi anda nete ulasamiyor ve sorunlarla karsilasiyorum.  Login sayfasinin yapisi oldukca basit. Kullanici adi ve sifrenin girildigi basit bir form submit ediliyor. Bir kac sene once Sesli&#8217;de kullandigim Mechanize ile yine ayni yapiyi kullanarak ufak bir script hazirladim. Yine Perl ile. Zaten neredeyse Sesli&#8217;deki betigin aynisini kullandim denebilir.Perl ile parsing yapmayi bilsem bash script&#8217;e de hic gerek kalmayacak ama su anda onu ogrenmeye ne vaktim ne de hevesim var. Yine yalnizca kendi isimi gorecek, benden baska kimsenin ne ihtiyac duyacagi ne de deneyebilecegi birsey cikti ortaya.<span id="more-227"></span></p>

<div class="wp_syntax"><div class="code"><pre class="perl" style="font-family:monospace;"><span style="color: #666666; font-style: italic;">#!/usr/bin/perl</span>
<span style="color: #000000; font-weight: bold;">use</span> strict<span style="color: #339933;">;</span>
<span style="color: #000000; font-weight: bold;">use</span> WWW<span style="color: #339933;">::</span><span style="color: #006600;">Mechanize</span><span style="color: #339933;">;</span>
<span style="color: #000000; font-weight: bold;">use</span> HTTP<span style="color: #339933;">::</span><span style="color: #006600;">Cookies</span><span style="color: #339933;">;</span>
&nbsp;
<span style="color: #b1b100;">my</span> <span style="color: #0000ff;">$username</span> <span style="color: #339933;">=</span> <span style="color: #0000ff;">$ARGV</span><span style="color: #009900;">&#91;</span><span style="color: #cc66cc;">0</span><span style="color: #009900;">&#93;</span><span style="color: #339933;">;</span>
<span style="color: #b1b100;">my</span> <span style="color: #0000ff;">$password</span> <span style="color: #339933;">=</span> <span style="color: #0000ff;">$ARGV</span><span style="color: #009900;">&#91;</span><span style="color: #cc66cc;">1</span><span style="color: #009900;">&#93;</span><span style="color: #339933;">;</span>
<span style="color: #b1b100;">my</span> <span style="color: #0000ff;">$adres</span> <span style="color: #339933;">=</span> <span style="color: #ff0000;">&quot;http://login.iam.ne.jp&quot;</span><span style="color: #339933;">;</span>
&nbsp;
<span style="color: #666666; font-style: italic;">#çıktının yazılacağı dosya</span>
<span style="color: #b1b100;">my</span> <span style="color: #0000ff;">$linkfile</span> <span style="color: #339933;">=</span> <span style="color: #ff0000;">&quot;out.html&quot;</span><span style="color: #339933;">;</span>
&nbsp;
<span style="color: #b1b100;">my</span> <span style="color: #0000ff;">$mech</span> <span style="color: #339933;">=</span> WWW<span style="color: #339933;">::</span><span style="color: #006600;">Mechanize</span><span style="color: #339933;">-</span><span style="color: #0000ff;">&amp;gt</span><span style="color: #339933;">;</span>new<span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
<span style="color: #0000ff;">$mech</span><span style="color: #339933;">-</span><span style="color: #0000ff;">&amp;gt</span><span style="color: #339933;">;</span>cookie_jar<span style="color: #009900;">&#40;</span>HTTP<span style="color: #339933;">::</span><span style="color: #006600;">Cookies</span><span style="color: #339933;">-</span><span style="color: #0000ff;">&amp;gt</span><span style="color: #339933;">;</span>new<span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
<span style="color: #0000ff;">$mech</span><span style="color: #339933;">-</span><span style="color: #0000ff;">&amp;gt</span><span style="color: #339933;">;</span>get<span style="color: #009900;">&#40;</span><span style="color: #0000ff;">$adres</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
<span style="color: #0000ff;">$mech</span><span style="color: #339933;">-</span><span style="color: #0000ff;">&amp;gt</span><span style="color: #339933;">;</span>form_name<span style="color: #009900;">&#40;</span><span style="color: #ff0000;">'LoginUser'</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>    <span style="color: #666666; font-style: italic;">#form adı LoginUser</span>
<span style="color: #0000ff;">$mech</span><span style="color: #339933;">-</span><span style="color: #0000ff;">&amp;gt</span><span style="color: #339933;">;</span>field<span style="color: #009900;">&#40;</span>username <span style="color: #339933;">=</span><span style="color: #0000ff;">&amp;gt</span><span style="color: #339933;">;</span> <span style="color: #0000ff;">$username</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>    <span style="color: #666666; font-style: italic;">#kullanıcı adının yazılacağı değişken username</span>
<span style="color: #0000ff;">$mech</span><span style="color: #339933;">-</span><span style="color: #0000ff;">&amp;gt</span><span style="color: #339933;">;</span>field<span style="color: #009900;">&#40;</span>passwd <span style="color: #339933;">=</span><span style="color: #0000ff;">&amp;gt</span><span style="color: #339933;">;</span> <span style="color: #0000ff;">$password</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>    <span style="color: #666666; font-style: italic;">#şifrenin yazılacağı değişken passwd</span>
<span style="color: #0000ff;">$mech</span><span style="color: #339933;">-</span><span style="color: #0000ff;">&amp;gt</span><span style="color: #339933;">;</span>click<span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
&nbsp;
<span style="color: #b1b100;">my</span> <span style="color: #0000ff;">$link_page</span> <span style="color: #339933;">=</span> <span style="color: #0000ff;">$mech</span><span style="color: #339933;">-</span><span style="color: #0000ff;">&amp;gt</span><span style="color: #339933;">;</span>content<span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
<span style="color: #000066;">open</span><span style="color: #009900;">&#40;</span>OUTFILE<span style="color: #339933;">,</span> <span style="color: #ff0000;">&quot;&amp;gt;$linkfile&quot;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
<span style="color: #000066;">print</span> OUTFILE <span style="color: #ff0000;">&quot;$link_page&quot;</span><span style="color: #339933;">;</span>
<span style="color: #000066;">close</span><span style="color: #009900;">&#40;</span>OUTFILE<span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span></pre></div></div>


<div class="wp_syntax"><div class="code"><pre class="bash" style="font-family:monospace;"><span style="color: #666666; font-style: italic;">#!/bin/bash</span>
<span style="color: #666666; font-style: italic;">#Degiskenleri tanimla</span>
<span style="color: #007800;">USER</span>=kullanici-adim-buraya
<span style="color: #007800;">PASS</span>=sifrem-de-buraya
<span style="color: #007800;">LINK</span>=link.html
<span style="color: #007800;">OUT</span>=out.html
<span style="color: #007800;">LOG</span>=log
<span style="color: #007800;">DIR</span>=<span style="color: #000000; font-weight: bold;">/</span>home<span style="color: #000000; font-weight: bold;">/</span>tarik<span style="color: #000000; font-weight: bold;">/</span><span style="color: #c20cb9; font-weight: bold;">login</span>
&nbsp;
<span style="color: #7a0874; font-weight: bold;">cd</span> <span style="color: #007800;">$DIR</span>
&nbsp;
.<span style="color: #000000; font-weight: bold;">/</span>gir <span style="color: #007800;">$USER</span> <span style="color: #007800;">$PASS</span>
&nbsp;
<span style="color: #7a0874; font-weight: bold;">export</span> <span style="color: #007800;">logintime</span>=<span style="color: #000000; font-weight: bold;">`</span><span style="color: #c20cb9; font-weight: bold;">cat</span> <span style="color: #007800;">$OUT</span> <span style="color: #000000; font-weight: bold;">|</span> <span style="color: #c20cb9; font-weight: bold;">grep</span> <span style="color: #ff0000;">&quot;Login Time&quot;</span>  <span style="color: #000000; font-weight: bold;">|</span> <span style="color: #c20cb9; font-weight: bold;">awk</span> <span style="color: #ff0000;">'{print $5 &quot; &quot; $6 &quot; &quot;  $7 &quot; &quot;  $8 $9 $10}'</span> <span style="color: #000000; font-weight: bold;">|</span> <span style="color: #c20cb9; font-weight: bold;">cut</span> <span style="color: #660033;">-d</span> <span style="color: #ff0000;">'&amp;lt;'</span> -f1<span style="color: #000000; font-weight: bold;">`</span>
&nbsp;
<span style="color: #000000; font-weight: bold;">if</span> <span style="color: #7a0874; font-weight: bold;">test</span> <span style="color: #ff0000;">&quot;x<span style="color: #007800;">$logintime</span>&quot;</span> = x
<span style="color: #000000; font-weight: bold;">then</span>
<span style="color: #7a0874; font-weight: bold;">echo</span> <span style="color: #ff0000;">&quot;Connection Problem. User : <span style="color: #007800;">$USER</span> . &quot;</span>
<span style="color: #7a0874; font-weight: bold;">echo</span> <span style="color: #ff0000;">&quot;Check your settings!&quot;</span>
<span style="color: #7a0874; font-weight: bold;">export</span> <span style="color: #007800;">errordate</span>=<span style="color: #000000; font-weight: bold;">`</span><span style="color: #c20cb9; font-weight: bold;">date</span><span style="color: #000000; font-weight: bold;">`</span>
<span style="color: #7a0874; font-weight: bold;">echo</span> <span style="color: #ff0000;">&quot;Failed  : <span style="color: #007800;">$USER</span> <span style="color: #007800;">$errordate</span>&quot;</span> <span style="color: #000000; font-weight: bold;">&amp;</span>gt;<span style="color: #000000; font-weight: bold;">&amp;</span>gt; <span style="color: #007800;">$LOG</span>
<span style="color: #000000; font-weight: bold;">else</span>
<span style="color: #7a0874; font-weight: bold;">echo</span> <span style="color: #ff0000;">&quot;Connection Established&quot;</span>
<span style="color: #7a0874; font-weight: bold;">echo</span> <span style="color: #ff0000;">&quot;Login Time : <span style="color: #007800;">$logintime</span>&quot;</span>
<span style="color: #7a0874; font-weight: bold;">echo</span> <span style="color: #ff0000;">&quot;Success : <span style="color: #007800;">$USER</span> <span style="color: #007800;">$logintime</span>&quot;</span> <span style="color: #000000; font-weight: bold;">&amp;</span>gt;<span style="color: #000000; font-weight: bold;">&amp;</span>gt; <span style="color: #007800;">$LOG</span>
<span style="color: #000000; font-weight: bold;">fi</span></pre></div></div>

<p>Ilk betigi &#8220;gir&#8221; ismiyle kaydedip ikinci betik icerisinden cagiriyorum. Baslikta da soyledigim gibi &#8220;Amele&#8221; programlama <img src='http://tarikzengin.com/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley colorbox-227' />   Login esnasinda calismasi icin de .bashrc&#8217;ye ekledim betigin yolunu. Aslinda en guzeli bir init script yazmak. Hemen net.eth0 ardindan kosacak bir init scripti daha mantikli. Bu yolla NTP update yapamam haliyle. O kismi hala sorunlu. Ama en azindan masaustu acildiginda internet calisir durumda oluyor. Bu da bir asama.  Simdi bir problem daha kaldi. Evdeyken DHCP kullaniyorum. Ardindan yukaridaki betikle login olmam gerekiyor. Labda statik IP kullaniyorum. Okulun diger kisimlarinda Wireless kullaniyorum, yine DHCP. Bunlarin tumu icin ayri profiller olusturmam gerekiyor /etc/conf.d/net dosyasinda. Su anda gozume biraz karisik gozukuyor. Bu betigin de yalnizca evden baglanirken calisiyor olmasini istiyorum. Su anda hic icimden gelmiyor <img src='http://tarikzengin.com/wp-includes/images/smilies/icon_sad.gif' alt=':(' class='wp-smiley colorbox-227' />  Belki yakinda duzgun bir ayar yaparim.</p>
]]></content:encoded>
			<wfw:commentRss>http://tarikzengin.com/amele-programming-reloaded/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Samba Japonca Karakter Seti</title>
		<link>http://tarikzengin.com/samba-japonca-karakter-seti/</link>
		<comments>http://tarikzengin.com/samba-japonca-karakter-seti/#comments</comments>
		<pubDate>Tue, 25 Nov 2008 06:39:33 +0000</pubDate>
		<dc:creator>Aydin Tarik Zengin</dc:creator>
				<category><![CDATA[Gentoo]]></category>
		<category><![CDATA[Linux]]></category>
		<category><![CDATA[GNU/Linux]]></category>
		<category><![CDATA[Japanese]]></category>
		<category><![CDATA[Japonca]]></category>
		<category><![CDATA[Konqueror]]></category>
		<category><![CDATA[lan]]></category>
		<category><![CDATA[Lisa]]></category>
		<category><![CDATA[Samba]]></category>
		<category><![CDATA[Samba Charset]]></category>
		<category><![CDATA[smb]]></category>

		<guid isPermaLink="false">http://tarikzengin.wordpress.com/?p=221</guid>
		<description><![CDATA[<a href="http://tarikzengin.com/samba-japonca-karakter-seti/" title="Samba Japonca Karakter Seti"></a>Labdaki Samba File Server&#8217;a erismek icin kullanici adi ve sifre aldim gecenlerde. Samba ayarlarim dogru olmasina ragmen ilk gunlerde sorunsuzca ulasabildigim workgroup simdilerde nedense ulasilamaz durumda. Bunu henuz cozebilmis degilim. Konqueror devamli &#8220;Unable to find any workgroups in your local &#8230;<p class="read-more"><a href="http://tarikzengin.com/samba-japonca-karakter-seti/">Read more &#187;</a></p>]]></description>
			<content:encoded><![CDATA[<a href="http://tarikzengin.com/samba-japonca-karakter-seti/" title="Samba Japonca Karakter Seti"></a><p>Labdaki Samba File Server&#8217;a erismek icin kullanici adi ve sifre aldim gecenlerde. Samba ayarlarim dogru olmasina ragmen ilk gunlerde sorunsuzca ulasabildigim workgroup simdilerde nedense ulasilamaz durumda. Bunu henuz cozebilmis degilim. Konqueror devamli &#8220;Unable to find any workgroups in your local network. This might be caused by an enabled firewall.&#8221; uyarisi veriyor smb:/ protokolunu kullandigim zaman. Bilgisi olan varsa yardimlarini beklerim.  Konqueror&#8217;dan Lisa ayarlarini &#8220;Kendi IPm&#8221;/&#8221;Subnet Mask&#8221; seklinde yapinca file server&#8217;i gorup erisebiliyorum lan:// protokolu uzerinden. Fakat daha buyuk bir sorun daha var<span id="more-221"></span> Dosya sunucusu uzerindeki cogu dosya ve klasor ismi Japonca yazilmis. Keza icerikleri de oyle <img src='http://tarikzengin.com/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley colorbox-221' />   Haliyle ilk etapta dosya isimlerini sacma sapan karakterler olarak gordum. Konquror, Tools menusunde &#8220;Select Remote Charset&#8221; isminde tam da benim sorunumu cozebilecek bir ayar gordum. Sevindim tabi hemen. Epey bi sevindirik oldum. Ta ki charset secene kadar. Konqueror dondu kaldi. Kill ettim. Tekrar actigimda sectigim charset set edilmisti. Ama halen karakterler duzgun degildi. Farkli charsetler icin &#8220;Sec / Konqueror donsun / Kill et / Tekrar ac / Olmasin&#8221; kombinasyonunu defalarca denedim. Gentoo Bugzilladan baktim, sanirim Gentoo&#8217;ya has bi bug bu.  Neden sonra Samba Charset ayarlarini degistirmek geldi aklima. Aradim taradim, birkac ufak bilgi bulabildim. En cok da <a href="http://www.monyo.com/technical/samba/docs/Japanese-HOWTO-3.0.en.txt" target="_blank">su adres</a>teki HOWTO isime yaradi. Kisacasi;  Display Charset :CP932  Unix Charset :UTF-8  DOS Charset :CP932  olarak ayarlamak gerekiyor.  smb.conf dosyasini da asagidaki sekilde duzenleyince herkes mutlu oldu sonsuza kadar mutlu yasadi.</p>
<pre style="padding-left:30px;">[global]
restrict anonymous = no
domain master = no
preferred master = no
workgroup = KLAB
max protocol = NT
acl compatibility = winnt
ldap ssl = No
server signing = Auto
display charset = CP932
dos charset = CP932
wins server = XX.XX.XX.XX (gizli bu soylenmez)</pre>
<div id="attachment_224" class="wp-caption aligncenter" style="width: 310px"><a href="http://www.tarikzengin.com/blog/wp-content/uploads/2008/11/sambaserver1.png"><img class="size-medium wp-image-224 colorbox-221" title="sambaserver1" src="http://www.tarikzengin.com/blog/wp-content/uploads/2008/11/sambaserver1-300x191.png" alt="Japanese Samba File Server by Konqueror" width="300" height="191" /></a><p class="wp-caption-text">Japanese Samba File Server by Konqueror</p></div>
]]></content:encoded>
			<wfw:commentRss>http://tarikzengin.com/samba-japonca-karakter-seti/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Computer &amp; Microcontroller Based Closed Loop Robot Position Control System</title>
		<link>http://tarikzengin.com/computer-microcontroller-based-closed-loop-robot-position-control-system/</link>
		<comments>http://tarikzengin.com/computer-microcontroller-based-closed-loop-robot-position-control-system/#comments</comments>
		<pubDate>Sun, 26 Oct 2008 08:17:27 +0000</pubDate>
		<dc:creator>Aydin Tarik Zengin</dc:creator>
				<category><![CDATA[English]]></category>
		<category><![CDATA[Linux]]></category>
		<category><![CDATA[Projeler]]></category>
		<category><![CDATA[Close Loop]]></category>
		<category><![CDATA[Control System]]></category>
		<category><![CDATA[Electronics]]></category>
		<category><![CDATA[Elektronik]]></category>
		<category><![CDATA[GNU/Linux]]></category>
		<category><![CDATA[GUI]]></category>
		<category><![CDATA[Proje]]></category>
		<category><![CDATA[QT]]></category>
		<category><![CDATA[Robot]]></category>
		<category><![CDATA[Robotics]]></category>
		<category><![CDATA[Robotik]]></category>
		<category><![CDATA[Ziegler Nichols]]></category>

		<guid isPermaLink="false">http://tarikzengin.wordpress.com/?p=203</guid>
		<description><![CDATA[<a href="http://tarikzengin.com/computer-microcontroller-based-closed-loop-robot-position-control-system/" title="Computer &amp; Microcontroller Based Closed Loop Robot Position Control System"></a>Not : Daha önce yazdığım proje yazısının birebir olmasa da çevirisi sayılabilecek bir yazı hazırladım. This is a short summary of our (me and my friend Umut Yuksekbas) graduation project. Sorry for the grammatical mistakes. Computer &#38; Microcontroller Based Closed &#8230;<p class="read-more"><a href="http://tarikzengin.com/computer-microcontroller-based-closed-loop-robot-position-control-system/">Read more &#187;</a></p>]]></description>
			<content:encoded><![CDATA[<a href="http://tarikzengin.com/computer-microcontroller-based-closed-loop-robot-position-control-system/" title="Computer &amp; Microcontroller Based Closed Loop Robot Position Control System"></a><p>Not : Daha önce yazdığım proje yazısının birebir olmasa da çevirisi sayılabilecek bir yazı hazırladım.  This is a short summary of our (me and my friend Umut Yuksekbas) graduation project. Sorry for the grammatical mistakes.</p>
<p style="text-align: center;"><strong>Computer &amp; Microcontroller Based Closed Loop Robot Position Control System</strong> <strong></strong></p>
<p style="text-align: justify;"><strong>Abstract</strong> : Robot systems scope out the problems fast and sensitive, don&#8217;t affected the factors which destructive of health for humans. For this reason they are needed at industrial areas.<span id="more-203"></span> Robots are used for precise applications in a wide area such as automotive industry, medicine, nuclear power stations and biomedical. They can be used in critical applications like sensitive surgical operations. That&#8217;s commonly utilized as a mechanical arm for handicapped ones. Our project&#8217;s subjects are automatic control systems and position control of a robotic arm with the coordinates that send from computer. We intended to design a closed loop control system of a mechatronic system. Manipulator system is a multi-input multi-output (MIMO) system and each joint is fed by different input signals for position check. Dynamic model of the manipulator system is not linear and contains interactive terms between joints. We have designed a 6-degree-of-freedom robot arm and a control system. DC motors on the joints provide the movement of the manipulator. We used L298 IC which contains H-Bridges for driving the DC motors and PIC 16F877 as microcontroller. Max232 serial interface sets up the communication between computer and microcontroller. We developed the position control algorithm in MPLAB IDE by using the Hitech PICC Compiler. Microcontroller takes the analog feedback signals from the potentiometers placed on joints then convert them to digital signals by built-in ADC modules. The PI control system uses the analog signals in order to calculate the optimum PI control parameters then provides the target movement with minimum error.</p>
<p style="text-align: justify;"><iframe title="YouTube video player" class="youtube-player" type="text/html" width="425" height="344" src="http://www.youtube.com/embed/WR5tswIPvck" frameborder="0" allowFullScreen="true"> </iframe>  <strong></strong></p>
<p style="text-align: justify;">
<p style="text-align: justify;"><strong>SYSTEM COMPONENTS </strong></p>
<p style="text-align: justify;"><strong>Hardware Component</strong></p>
<p style="text-align: justify;">PIC 16F877-20MHz contains 8 ADC channel and 2 PWM module and L298 contains two H-Bridge in it. This driver is very robust and is able to work with 46 V source voltage and 4 A source current. In this project  15 V source voltage and 0.5 A max current are utilized.</p>
<div id="attachment_205" class="wp-caption aligncenter" style="width: 310px"><img class="size-medium wp-image-205 colorbox-203" title="diagram1" src="http://www.tarikzengin.com/blog/wp-content/uploads/2008/10/diagram1-300x194.png" alt="Block Diagram" width="300" height="194" /><p class="wp-caption-text">Block Diagram</p></div>
<p>Position data which transmitted from computer come to the PIC&#8217;s serial port over the Max232 serial interface. After that, the ADC module reads and converts the analog values and transmits signals to the motor drivers for holding the arm in target position. The algorithm determines the transaction direction for decreasing the error and sends the signals. It breaks the motors when the arm is on the target position. Microcontroller checks all of the joint positions repeatedly and if it senses a deviation on the joint, brings the joint back to the target position. The algorithm changes the motor voltages directly proportional to the error</p>
<div id="attachment_22" class="wp-caption aligncenter" style="width: 310px"><a href="http://www.tarikzengin.com/blog/wp-content/uploads/2007/05/robot2.png"><img class="size-medium wp-image-22 colorbox-203" title="robotdevresemasi.png" src="http://www.tarikzengin.com/blog/wp-content/uploads/2007/05/robot2-300x271.png" alt="Schematics" width="300" height="271" /></a><p class="wp-caption-text">Schematics</p></div>
<p><strong>PCB Design</strong></p>
<p>A 2-layer circuit board was designed and assembled. L298 ICs can be seen on the right side of the first image. The sockets from top to bottom;</p>
<ul>
<li>Power</li>
<li>Analog Feedbacks (From joint pots)</li>
<li>Motors</li>
</ul>
<p style="text-align: center;">
<div id="attachment_207" class="wp-caption aligncenter" style="width: 471px"><a href="http://www.tarikzengin.com/blog/wp-content/uploads/2008/10/hpim1850.jpg"><img class="size-large wp-image-207 colorbox-203" title="hpim1850" src="http://www.tarikzengin.com/blog/wp-content/uploads/2008/10/hpim1850-768x1024.jpg" alt="PCB 1" width="461" height="614" /></a><p class="wp-caption-text">PCB 1</p></div>
<div id="attachment_208" class="wp-caption aligncenter" style="width: 624px"><a href="http://www.tarikzengin.com/blog/wp-content/uploads/2008/10/hpim1851.jpg"><img class="size-large wp-image-208 colorbox-203" title="hpim1851" src="http://www.tarikzengin.com/blog/wp-content/uploads/2008/10/hpim1851-1024x768.jpg" alt="PCB 2" width="614" height="461" /></a><p class="wp-caption-text">PCB 2</p></div>
<p><strong>Software Component</strong></p>
<p>We developed the microcontroller code by using HITECH PICC in MPLAB IDE. The P.I. Control System on the microcontroller side, calculates the error by differentiating the feedback values which read from ADC module and the expected value, continuously for each joint. This error value multiplied by Kp constant. All these error values summed and multiplied by Ki constant. The control signal which derived by summing the proportional and integral control signals, limited in a desirable range.</p>
<div id="attachment_23" class="wp-caption aligncenter" style="width: 310px"><img class="size-medium wp-image-23 colorbox-203" title="robot3.png" src="http://www.tarikzengin.com/blog/wp-content/uploads/2007/05/robot3-300x49.png" alt="Control Signal" width="300" height="49" /><p class="wp-caption-text">Control Signal</p></div>
<p>This calculation repeats for each joint over and over again for providing the position control. Ziegler-Nichols method were used for designing the control system, because it was not possible to get the technical data about mechanical system for deriving the mathematical model.</p>
<div id="attachment_25" class="wp-caption aligncenter" style="width: 310px"><img class="size-medium wp-image-25 colorbox-203" title="robot5.png" src="http://www.tarikzengin.com/blog/wp-content/uploads/2007/05/robot5-300x151.png" alt="Controller Design" width="300" height="151" /><p class="wp-caption-text">Controller Design</p></div>
<p>D and I constants of PID controller let by zero and, the P constant were increased until the system oscillates. The P constant on that oscillation time called Kc and the oscillation frequency called Tc.</p>
<div id="attachment_27" class="wp-caption aligncenter" style="width: 310px"><img class="size-medium wp-image-27 colorbox-203" title="robot7.png" src="http://www.tarikzengin.com/blog/wp-content/uploads/2007/05/robot7-300x166.png" alt="Oscillation" width="300" height="166" /><p class="wp-caption-text">Oscillation</p></div>
<p>The optimum P.I. Control parameters were derived by using the Ziegler-Nichols method. The system response is below mentioned.</p>
<div id="attachment_28" class="wp-caption aligncenter" style="width: 310px"><img class="size-medium wp-image-28 colorbox-203" title="robot8.png" src="http://www.tarikzengin.com/blog/wp-content/uploads/2007/05/robot8-300x196.png" alt="System Response" width="300" height="196" /><p class="wp-caption-text">System Response</p></div>
<p><strong>Graphical User Interface Design</strong></p>
<p>Graphical User Interface (GUI) was developed by using QT Designer and Kdevelop Integrated Development Environment in C++ programming language. The GUI design can be seen below. QT libraries are suitable for creating platform independent code. By this way, the GUI can be compiled and run under various platforms, such as Unix, Linux, FreeBSD, MacOS and Windows.</p>
<div id="attachment_29" class="wp-caption aligncenter" style="width: 310px"><a href="http://www.tarikzengin.com/blog/wp-content/uploads/2007/05/robot9.png"><img class="size-medium wp-image-29 colorbox-203" title="robot9.png" src="http://www.tarikzengin.com/blog/wp-content/uploads/2007/05/robot9-300x223.png" alt="GUI" width="300" height="223" /></a><p class="wp-caption-text">GUI</p></div>
<p>The coordinate data transmitted over the USB bus by using a USB/Serial converter with a 57600 baud rate.  Control System variables can be changed or modified with the GUI in realtime. Serial port device, baud rate and control system parameters can be selected and changed by using the GUI.</p>
<div id="attachment_31" class="wp-caption aligncenter" style="width: 310px"><a href="http://www.tarikzengin.com/blog/wp-content/uploads/2007/05/robot111.png"><img class="size-medium wp-image-31 colorbox-203" title="robot11.png" src="http://www.tarikzengin.com/blog/wp-content/uploads/2007/05/robot111-300x232.png" alt="GUI Ayarlari" width="300" height="232" /></a><p class="wp-caption-text">GUI Ayarlari</p></div>
<p><strong>Conclusion</strong></p>
<p>The system that we developed can do a position control in Cartesian Coordinate System. It keeps its position unless the operator will give a new coordinate, and can perform a coordinate change in a desirable time. I believe that this project is providing a useful design for industrial areas such as production and test, biomedical, security, situations that harmful for human, and academic study. The future plan for my study is making two robotic arms work together and in cooperation.</p>
]]></content:encoded>
			<wfw:commentRss>http://tarikzengin.com/computer-microcontroller-based-closed-loop-robot-position-control-system/feed/</wfw:commentRss>
		<slash:comments>7</slash:comments>
		</item>
	</channel>
</rss>

