<?xml version="1.0" encoding="utf-8"?>
<?xml-stylesheet type="text/css" href="http://www.cankavaklioglu.name.tr/guncelgunce/"?>
<rss version="2.0" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:admin="http://webns.net/mvcb/" xmlns:atom="http://www.w3.org/2005/Atom">
<channel>
<title>Filed under: Linux | Güncel günce</title>
<atom:link href="http://www.cankavaklioglu.name.tr/guncelgunce/archives/linux/index-rss.xml" rel="self" type="application/rss+xml" />
<link>http://www.cankavaklioglu.name.tr/guncelgunce</link>
<description>yapılmışlar yapılacaklar</description>
<dc:language>tr-tr</dc:language>
<dc:creator>Can Kavaklıoğlu</dc:creator>
<dc:date>2009-12-12T14:50:29+02:00</dc:date>
<admin:generatorAgent rdf:resource="http://nanoblogger.sourceforge.net" />
<item>
<link>http://www.cankavaklioglu.name.tr/guncelgunce/archives/2009/12/index.html#e2009-12-12T14_50_16.txt</link>
<guid isPermaLink="true">http://www.cankavaklioglu.name.tr/guncelgunce/archives/2009/12/index.html#e2009-12-12T14_50_16.txt</guid>
<title>Pdf Dosyasına Yazdırmak</title>
<dc:date>2009-12-12T14:50:16+02:00</dc:date>
<dc:creator>Can Kavaklıoğlu</dc:creator>
<dc:subject>Linux</dc:subject>
<description>
<![CDATA[Ödev slaytlarını yazdırmak isterken, binbir türlü güçlük çekmekteyken, pdf dosyasına yazdıma yolunu buldum, paylaşmak istedim.
<br /><br />
Debian (testing) sistemlerde bulunan, muhtemelen Ubuntu'da da vardır, cups-pdf paketini kuruyorsunuz. 
<br /><br />
Sonra sisteme yeni bir printer ekliyorsunuz. Ekleme işlemini arayüz yönteminize göre farklılık gösterebilir. Ben cups'un web arayüzünden yaptım. http://localhost:631 adresinden, printer ekleme şeklinde gittiğinizde, şu şekilde bir konfigürasyon yapmak gerekiyor:
<br /><br />
Local Printers: CUPS-PDF (Virtual PDF Printer)
<br /><br />
ppd dosyası olarak şunu seçmek gerekiyor:
<br /><br />
/usr/share/ppd/cups-pdf/CUPS-PDF.ppd
<br /><br />
Bu adımlardan sonra belirttiğiniz isimli yeni bir yazıcı olarak gözükmesi lazım. Bu yazıcıya iş gönderdiğinizde çıktılar ev dizininizdeki PDF isimli bir klasörde çıkıyor (/home/can/PDF).
<br /><br />
Peki böyle bir yazıcıyı ne için kullanacağım derseniz. Ben şunun için kullanmıştım.
<br /><br />
Diyelim ki bir dizi slaytınız var, her biri bir pdf sayfası, bunların 6 tanesini tek bir kağıda basmak istiyorsunuz, bunu yaparken printerınıza göre, kafanıza göre seçenekler yapmak istiyorsunuz. Ama bunların hepsini test etmek için kağıt harcamak istemiyorsunuz. İşte o zaman bu yacızıyı kullanabilirsiniz : ) Çıktıları pdf olarak görüp, ondan sonra basabilirsiniz. Mesela bir sayfaya 6 tane basmak için şöyle bir komut kullanabilirsiniz:
<br /><br />
lp -d virtualPdfPrinter  -o number-up-layout=btlr -o number-up=6 -o page-top=6   dosya.pdf
<br /><br />
page-top seçeneği benim kullandığım gerçek yazıcının sayfaları biraz fazla aşağıdan basmaya başlayıp, sayfaların üst 2-3 satırını basmadığı için, basılacak dökümanı sayfanın biraz aşağısından başlat demek için kullandığım bir seçenek. Diğer seçenekler bir kağıda 6 sayfa basmak için.
<br /><br />
Diğer birbirinden enfes cups seçenekleri için: http://www.cups.org/documentation.php/doc-1.4/options.html]]>
</description>
</item>
<item>
<link>http://www.cankavaklioglu.name.tr/guncelgunce/archives/2009/03/index.html#e2009-03-24T22_48_28.txt</link>
<guid isPermaLink="true">http://www.cankavaklioglu.name.tr/guncelgunce/archives/2009/03/index.html#e2009-03-24T22_48_28.txt</guid>
<title>amixer' ın dayanılmaz hafifliği</title>
<dc:date>2009-03-24T22:48:28+02:00</dc:date>
<dc:creator>Can Kavaklıoğlu</dc:creator>
<dc:subject>Linux</dc:subject>
<description>
<![CDATA[Bir pencerede her zaman bir adet alsamixer açık tutardım. Ancak az önceki bir dakika itibariyle artık buna ihtiyacım yok. Yaşasın amixer!
<br /><br />
Sesi kapatmak (mute) (mesela ctrl+alt+aşağı)
<br /><br />
<code>amixer set Master mute</code>
<br /><br />
Sesi açmak (unmute) (mesela ctrl+alt+yukarı)
<br /><br />
<code>amixer set Master unmute</code>
<br /><br />
Sesi artırmak (mesela ctrl+yukarı)
<br /><br />
<code>
KEK=$(amixer get Master | grep 'Front Left:' | cut -d ' ' -f 6) <br>
amixer set Master $[$KEK+1]
</code>
<br /><br />
Sesi azaltmak (mesela ctrl+aşağı)
<br /><br />
<code>
KEK=$(amixer get Master | grep 'Front Left:' | cut -d ' ' -f 6) <br>
amixer set Master $[$KEK-1]
</code>
<br /><br />
Bu komutlari birer betiğe yazıp, bir de klavye kısayolu verdi mi, dadından yenmiyor. Şiddet ile tavsiye olunur.]]>
</description>
</item>
<item>
<link>http://www.cankavaklioglu.name.tr/guncelgunce/archives/2009/03/index.html#e2009-03-18T08_18_41.txt</link>
<guid isPermaLink="true">http://www.cankavaklioglu.name.tr/guncelgunce/archives/2009/03/index.html#e2009-03-18T08_18_41.txt</guid>
<title>Daha hızlı Internet bağlantısı</title>
<dc:date>2009-03-18T08:18:41+02:00</dc:date>
<dc:creator>Can Kavaklıoğlu</dc:creator>
<dc:subject>Linux</dc:subject>
<description>
<![CDATA[Çoğu kereler görmüşümdür, Firefox "Looking up ..." der kalır böyle, aziz dns sunucusunun cevabını dört gözle bekler. Bütün bu bekleme anlarında aklımdan sürekli olarak tek kelime geçerdi "dnscache, dnscache, dnscache ...!!!" şeklinde.
<br /><br />
Sanırım sonunda kolay bir yolunu buldum:
<br /><br />
aptitude install dnscache-run
<br /><br />
ve ışık hızında dns cevapları! Genel olarak bağlantı hızı farkedilir derecede artıyor. Tavsiye olunur.]]>
</description>
</item>
<item>
<link>http://www.cankavaklioglu.name.tr/guncelgunce/archives/2008/12/index.html#e2008-12-12T19_33_10.txt</link>
<guid isPermaLink="true">http://www.cankavaklioglu.name.tr/guncelgunce/archives/2008/12/index.html#e2008-12-12T19_33_10.txt</guid>
<title>Günün C++ dersi</title>
<dc:date>2008-12-12T19:33:10+02:00</dc:date>
<dc:creator>Can Kavaklıoğlu</dc:creator>
<dc:subject>Linux</dc:subject>
<description>
<![CDATA[Basit bir en büyük bulma fonksiyonu, ne kadar zor olabilir ki !??!? Bütün elemanlara bakacaksın, elinde tuttuğun bir sayı ile karşılaştıracaksın. Hep en büyüğünü elinde tutacaksın, yani mesela diyeceksin ki:
<code><pre>
#include &lt;float.h&gt;
double max() {
  double max=DBL_MIN;
  for(int i=0; i&lt;elementnum; i++) if(max&lt;element) max=element;
  return max; 
}
</pre>
</code>
dimi? değğğiiiiiilll!!! DBL_MIN double veri tipinin tutabileceği en küçük değeri veriyor yani: 2.718282.22507e-308. İstendiği gibi en küçük eksi sayıyı değil!!!
<br /><br />
Bu yüzden o satır şöyle olmalı: <code>double max=-DBL_MAX;</code>]]>
</description>
</item>
<item>
<link>http://www.cankavaklioglu.name.tr/guncelgunce/archives/2008/12/index.html#e2008-12-03T20_22_08.txt</link>
<guid isPermaLink="true">http://www.cankavaklioglu.name.tr/guncelgunce/archives/2008/12/index.html#e2008-12-03T20_22_08.txt</guid>
<title>ffmpeg2theora</title>
<dc:date>2008-12-03T20:22:08+02:00</dc:date>
<dc:creator>Can Kavaklıoğlu</dc:creator>
<dc:subject>Linux</dc:subject>
<description>
<![CDATA[Debian'ın testing arşivindeki ffmpeg2theora, ne de güzel bir "video encoding" programı imiş. Bir kameradan aldığınız dosyaları 
<br /><br />
ffmpeg2theora <dosyaadı>
<br /><br />
kolaylığında güzelcene sıkıştırıyor. Çıktısı da vlc oynatıcısı tarafından güzelce gösteriliyor. Tavsiye olunur.]]>
</description>
</item>
<item>
<link>http://www.cankavaklioglu.name.tr/guncelgunce/archives/2008/09/index.html#e2008-09-22T17_26_00.txt</link>
<guid isPermaLink="true">http://www.cankavaklioglu.name.tr/guncelgunce/archives/2008/09/index.html#e2008-09-22T17_26_00.txt</guid>
<title>Derdime deva</title>
<dc:date>2008-09-22T17:26:00+02:00</dc:date>
<dc:creator>Can Kavaklıoğlu</dc:creator>
<dc:subject>Linux</dc:subject>
<description>
<![CDATA[Bir gün bir ağ ortamı varmış. Bu ağ ortamına yeni bir yönlendirici(router) eklenmiş, NAT yapsın, ateşten duvarlar örsün diye.
<br /><br />
Günlerden bir gün, NAT sakinlerinden birisi MATLAB lisans sunucusuna ile münasebet etmek istemiş. Ancak talih buna bir türlü izin vermemiş. Sebebini kimse bilmez imiş...
<br /><br />
NAT sakini ile bendeniz çaresiz Erdinç ustanın yardımına başvurmuş. Yüce ustamız WINS sunucusunu NAT sakininin bilgisayarına ve yönlendiriciye girerek, bütün sıkıntılarımıza derman olmuştur.
<br /><br />
Ama neden olmuştur?!??!?! Bu soruma bir cevabı olanların beri gelmesini ve bana eposta atmasını rica eder, kıssadan hisse ile bu yazıyı bitirmek isterim: tecrübe en büyük erdemdir, tecrübeli kişileri sayınız, seviniz, başınızın üstünde tutunuz, bkz. milyon tane danışmanlık şirketinin kazandığı yüksek meblâlar.]]>
</description>
</item>
<item>
<link>http://www.cankavaklioglu.name.tr/guncelgunce/archives/2008/09/index.html#e2008-09-19T06_45_59.txt</link>
<guid isPermaLink="true">http://www.cankavaklioglu.name.tr/guncelgunce/archives/2008/09/index.html#e2008-09-19T06_45_59.txt</guid>
<title>x2x ve 2.6.26 kerneli</title>
<dc:date>2008-09-19T06:45:59+02:00</dc:date>
<dc:creator>Can Kavaklıoğlu</dc:creator>
<dc:subject>Linux</dc:subject>
<description>
<![CDATA[Dün Debian'ın paketlediği 2.6.26 kerneline geçtim, veeee WLAN lambası çalışmaya başladı!!! Olley! Bununla beraber procmeter3 programının göstermeyi bıraktığı bazı değerler (ör. pil durumu) geri geldi, ne de güzel oldu. (Hatırlatma, bilgisayar: VAIO SZ71MN)
<br /><br />
Dünün nostaljik bir değeri vardı. Baya zaman önce uğraştığım ve tek çözüm olarak ortaya çıkmış <a href="http://x2x.dottedmag.net/">x2x</a> programını yeniden çalıştırdım. Bu sefer eski bir bilgisayarı değerlendirmek için.
<br /><br />
x2x programının yaptığı şey şudur: bir X sunucusuna gelen klavye ve fare girdilerini, başka bir X sunucusuna yönlendirmek. Bu durumda benim işime yarayan kısmı şu oluyor, eski bir p2 işlemcili dizüstü bilgisayara kendi sistemimi kurup*, istediğim zaman fareyi monitörün sağ tarafından dışarıya doğru ittirdiğimde fare ve klavye kontrolü öteki bilgisayara geçiyor, ağ üzerinden. 
<br /><br />
Böylece, aynı klavye ve fareyi kullanarak, diğer bilgisayarda bir belge açıp onu okurken, bu bilgisayarda başka bir iş yapabiliyorum. Bu işi niye iki monitör ile yapmıyorsun diyen olursa, sebebi basit, canım istemiyor! Bunun dışındaki bir sebep de eski bilgisayarı değerlendirmek.
<br /><br />
* Kurulum çok problemli olmadı. Gözünü sevdiğimin kernelinin core duo da çalışan kodunun aynısı gitti p2 de de çatırt diye çalıştı! Dehşet birşeysin sen ulu kernel! Bunun yanında enlightenment da çok ulu bir "window manager" olduğunu bir kez daha kanıtladı, o da p2 makinede core duo da çalıştığı hızda çalıştı (açılış hariç).
<br /><br />
x2x in kurulumu için birkaç şey yapmak gerekiyor, ve ne yazık ki bunlar x2x in belgelemesinde iyi anlatılmamış. Adımlar şöyle:
<br /><br />
Klavye ve faresini kullanacağımız bilgisayara (ip si 198.168.2.2 olsun) şöyle diyoruz:
<br /><br />
<code>aptitude install x2x</code>
<br /><br />
Klavye ve faresini uzaktan kullanacağımız bilgisayardaki /etc/X11/xdm/Xservers dosyasındaki 
<br /><br />
<code>:0 local /usr/bin/X :0 vt7 -nolisten tcp</code>
<br /><br />
satırındaki "-nolisten tcp" kısmını siliyoruz. Böylece hedef bilgisayardaki X sunucusu tcp den komut dinler oluyor. Bu değişikliği yaptıktan sonra X sunucusunu yeniden başlatmak gerekir tabiki. Güvenlik için sıkıntı oluşturabilir tabi bu istenirse.
<br /><br />
İkinci adım olarak da, yine klavye ve faresini uzaktan kullanacağımız bilgisayarda, X'e giriş yapmış kullanıcı ile şu komutu veriyoruz, ki öteki bilgisayardan gelecek X komutları bu bilgisayarda kabul görsün:
<br /><br />
<code>xhost 192.168.2.2</code>
<br /><br />
Bu adımlar tamamlandıktan sonra, klave ve faresini kullanacağımız bilgisayarda (ip si 192.168.2.10 olsun) , şöyle bir komut vererek diğer bilgisayarın klavye ve faresini kontrol edebiliyoruz:
<br /><br />
<code>x2x -west -to 192.168.2.10:0</code>
<br /><br />
Bu komutunu verdikten sonra kaynak bilgisayarın sol tarafına doğru fareyi götürüp ittirdiğimizde faremiz hedef bilgisayarın sağ tarafından çıkıyor ve işlem tamamlanıyor. Kaynak bilgisayara geri dönmek için, hedef bilgisayarın sağ tarafına aynı işlem uygulanır.
<br /><br />
-west yerine, istendiği gibi -north, -east, -south da kullanılabiliyor. Bir not, enlightenment'da önceden tanımlanmış olarak gelen ayarlarda olduğu gibi, kaynak bilgisayarda, zaten fareyi sağa, sola götürerek sanal masa üstleri arası gezinme durumu varsa, bunu kapatmak iyi bir fikir olabilir, çünkü x2x in geçişi ile kaynak bilgisayardaki sanal masa üstü kaydırma işlevi birbirine girebiliyor ve pek kullanılabilir olmuyor. Ben şimdilik enlightenment'ın sağ tuş menüsü ile çıkan "Virtual Desktop Settings" altındaki "Enable edge flip" seçeneğini kaldırarak bu değişikliği yaptım; zaten çoğu zaman klavyeyi kullanarak bu geçişi yapıyorum fare yerine. Hatta farkettim ki sanırım farenin bu geçişleri çoğu zaman istemediğim şekilde oluyor : )
<br /><br />
Yaşasın Linux!]]>
</description>
</item>
<item>
<link>http://www.cankavaklioglu.name.tr/guncelgunce/archives/2008/09/index.html#e2008-09-03T00_03_14.txt</link>
<guid isPermaLink="true">http://www.cankavaklioglu.name.tr/guncelgunce/archives/2008/09/index.html#e2008-09-03T00_03_14.txt</guid>
<title>Kamera desteği listeleri</title>
<dc:date>2008-09-03T00:03:14+02:00</dc:date>
<dc:creator>Can Kavaklıoğlu</dc:creator>
<dc:subject>Linux</dc:subject>
<description>
<![CDATA[Basit usb kameralar için iki ünlü markanın Linux desteği sayfaları. Eğer bilgisayar için bir kamera almayı düşünüyorsanız, bu listelerden kontrol edip alın, <a href="http://www.quickcamteam.net/hcl/linux/logitech-webcams">Logitech</a> , <a href="http://opensource.creative.com/webcam.html">Creative</a>.
<br /><br />
Ayrıca diğer markalar için de şu driver listelerini deneyebilirsiniz: <a href="http://linux-uvc.berlios.de/">uvc</a> , <a href="http://mxhaard.free.fr/spca5xx.html">spca</a>]]>
</description>
</item>
<item>
<link>http://www.cankavaklioglu.name.tr/guncelgunce/archives/2008/08/index.html#e2008-08-31T16_14_08.txt</link>
<guid isPermaLink="true">http://www.cankavaklioglu.name.tr/guncelgunce/archives/2008/08/index.html#e2008-08-31T16_14_08.txt</guid>
<title>Sonunda!!! Joystick çalıştı!!!</title>
<dc:date>2008-08-31T16:14:08+02:00</dc:date>
<dc:creator>Can Kavaklıoğlu</dc:creator>
<dc:subject>Linux</dc:subject>
<description>
<![CDATA[Bir vakittir, canım arkadaşlarımın doğum günü hediyesi olarak aldığı, Ergin üstadın çalıştığını söylediği, <a href="http://www.logitech.com/index.cfm/gaming/pc_gaming/joysticks/devices/291&cl=us,en">dehşetengiz joystiği</a> çalıştırmaya çalışıp, çalıştıramamaktaydım.
<br /><br />
Amacım wine ile yüklenmiş ve çalışmakta olan Falcon 4.0 oyununda bu joystick ile uçak uçurabilmekti. Ama nedense bazı tuşlar ve dönüş yönleri beklenen şekilde çalışmıyordu. Ergin üstad bunun bir çözüm yolu olduğunu söylediyse de ben bulamamıştım.
<br /><br />
Ancaaak o gün geldi ve bugün çözümü buldum. Unutmadan anlatayım:
<br /><br />
<code>wineconsole regedit</code>
<br /><br />
Komutu ile açtığımız dandikler ötesi registry sisteminin şurasındaki: HKEY_CURRENT_USER/Software/Wine/ , Wine klasörünün üzerine sağ tuşlan basıp New/Key diyoruz. Bu "key" in adı DirectInput oluyor. Sağ tarafta çıkan dandik ötesi girdi yerine de yine sağ tuşla basıp "New/String Value" diyoruz. Yine çıkan dandik girdinin üzerine sağ tuşla basıp "rename" diyince çıkan kutuya Logitech Logitech Extreme 3D yazıyoruz, sağ tuşla basıp "modify" deyip değer olarak X,Y,Rz,Slider1,Hat0,Hat0 yazıyoruz*.
<br /><br />
Sonra oyunu açıyoruz ve paşalar gibi wine üzerinden uçak oyunu oynuyoruz. Dadından yenmez!
<br /><br />
<a href="http://forum.winehq.org/viewtopic.php?t=1148&highlight=joystick">* Kaynağa bağlantı</a>]]>
</description>
</item>
<item>
<link>http://www.cankavaklioglu.name.tr/guncelgunce/archives/2008/08/index.html#e2008-08-19T21_12_29.txt</link>
<guid isPermaLink="true">http://www.cankavaklioglu.name.tr/guncelgunce/archives/2008/08/index.html#e2008-08-19T21_12_29.txt</guid>
<title>Gördüğüm ilk manalı "pointer pointer"</title>
<dc:date>2008-08-19T21:12:29+02:00</dc:date>
<dc:creator>Can Kavaklıoğlu</dc:creator>
<dc:subject>Linux</dc:subject>
<description>
<![CDATA[Kameradan görüntü alma işleri ile uğraşırken ister istemez araya Posix'in Thread'leri girdi. Bu işlerle uğraşırken şöyle bir durum oluştu:
<br /><br />
Bir sınıf, elindeki bir objeye bir pointer yolluyor. Bu bir buffer, buraya bir resmin kopyalanması gerekiyor. Çağrılan objenin fonksiyonu diyor ki, yahu belki bu gelen pointer'ın ucundaki buffer'ın boyu yeterli olmayabilir (ki değil gerçekten), ben bir kontrol edeyim:
<br /><br />
<code>dest=(unsigned char*)realloc(dest,size);</code>
<br /><br />
Sonra da elindeki resmi buraya kopyalıyor:
<br /><br />
<code>memcpy (dest, outpict, size);</code>
<br /><br />
Bu da güzel. Mi? Değil, hem de hiç değil! Neden? Çünkü bu işleri başlatan sınıf bu durum karşısında "Seg fault" çakıyor! Neden peki neden neden neden!?!?
<br /><br />
<a href="http://www.bariskurt.name">Barış Kurt</a>'un işaret ettiği üzere, sebebi şu. Kullanılan realloc fonksiyonu, verilen "dest" isimli pointer'ı değil, kendisine yapılan çağrının sonucu olarak döndürdüğü pointer'ın boyunu ayarlıyor! Yani "dest=..." satırındaki sol taraftaki "dest" pointer'ı realloc'un oluşturduğu doğru boyuttaki buffer'a işaret ediyor! Bu "dest" pointer'ı da çağrılan fonksiyonun parametresi olduğundan yerel kaldığı için, çağıran sınıfın elindeki eski pointer bir güzel patlıyor, çünkü boyu düzeltilmemiş oluyor!
<br /><br />
Bu yüzden, şu satırları kullanmak gerekiyor:
<br /><br />
<code>*dest=(unsigned char*)realloc(*dest,size);<br>
memcpy (*dest, outpict, size);
</code>
<br /><br />
Dikkat buyrulacağı üzere, buradaki dest ler pointer pointer'ı yani, çağıran sınıfın içindeki pointer'ı gösteren pointerlar. Bu şekilde kullandığımızda, beklenen oluyor, ana sınıfın içerisindeki buffer'ın boyu realloc edilebiliyor.
<br /><br />
Vay vay vaay, diyor, Barış Kurt'a gösterisinden ötürü teşekkür ediyoruz.
<br /><br />
Bu hatanın sebebi nedir dersek, şudur: işin başındaki realloc'un kullanımındaki eksik tecrübeden ötürü, realloc'un aldığı pointer'ın işaret ettiği yer üzerinde işlem yaptığını düşünmemden sirayetle gelen pointer'ın gösterdiği yeri düzelttiğini sanmam. Hernekadar bu hatayı farkedip, sonradan yerel olarak doğru şekilde çalışacak hale getirmiş olsam da, en baştaki tasarım hatasından kaynaklanan çağıran sınıfın içerisindeki buffer'ın düzeltilmemesi mesele báki kalmış ve hatanın teşhis olunup bertaraf edilme sürecini bir hayli aheste kılmıştır. ]]>
</description>
</item>
</channel>
</rss>
