Skip to main content

Posts

Showing posts from 2009

Octave'da EPSTK ile Polar Grafik Çizimi

Octave'da polar(..) fonksiyonu, polar kordinatlarda grafik çizdirmeye yaramaktadır. Ancak bu fonksiyon polar çizimlerde gridleri polar kordinat düzleminde gösterememektedir. Bunun için octave'ın epstk isimli toolkitini öneririm.

Aşağıdaki örnek kodla siz de kendi polar grafiğinizi çizdirebilirsiniz:

x=0:0.01:2*pi;
y=sin(x).*cos(2*x).*sin(3*x);

eopen('polarplot.eps')
epolar(x,y);
eclose
eview


Koddan da anlaşılacağı üzere grafik polarPlot.eps olarak kaydedilmektedir. eview komutu gv programı yüklü değilse hata vermektedir. Ancak yine de ilgili eps sorunsuz bir şekilde yaratılmaktadır.

Ubuntuda "The following signatures were invalid: BADSIG 40976EAF437D05B5"

Bir süredir, sanırım bir ara proxy ayarları ile ilgili yaptığım birşeyden dolayı, synaptic paket yükleyicisinden sürekli olarak bir dizi


W: GPG error: http://archive.canonical.com karmic Release: The following signatures were invalid: BADSIG 40976EAF437D05B5 


Hatası alıyordum. Linkteki sayfadan problemin çözümünü  buldum:


gpg --keyserver keyserver.ubuntu.com --recv 437D05B5; gpg --export --armor 437D05B5 | sudo apt-key add -; gpg --keyserver keyserver.ubuntu.com --recv 437D05B5; gpg --export --armor 437D05B5 | sudo apt-key add -; sudo apt-get update



Ubuntu Fontlarını Kullanmak

Ubuntu'nun logosunda da görülebilen fontları kullanabilmek için Ubuntu sistemde konsoldan;

sudo apt-get install ttf-ubuntu-title

Yazmak yeterli olacaktır. Bunun ardından ilgili programlarda ubuntu'nun fontlarını kullanabilirsiniz.

Latex için Önemli Bir Eklenti: texlive-science

Latex'te algoritma ve pseudo kod yazma gibi şeyleri de kapsayan bir paket. Ubuntuda:

 sudo apt-get install texlive-science

yazarak kurabileceğiniz bu paketin içeriği de şu şekildedir:

SIstyle -- The SIstyle package. SIunits -- International System of Units. alg -- LaTeX environments for typesetting algorithms. algorithm2e -- Floating algorithm environment with algorithmic keywords. algorithmicx -- The algorithmic style you always wanted! algorithms -- Floating algorithm environment. biocon -- Typesetting biological species names bitfield -- Draw bit field data structure diagrams. bpchem -- Typeset chemical names, formulae, and numbering of chemical compounds. bytefield -- Create illustrations for network protocol specifications. chemarrow -- Arrows for use in chemistry chemcompounds -- Simple consecutive numbering of chemical compounds. chemcono -- Support for compound numbers in chemistry documents. clrscode -- Typesets pseudocode as in Introduction to Algorithms. c…

OPENGL ile PONG OYUNU

Aşağıdaki kod opengl ile programlanmış basit bir pong oyunudur. Bir ev ödevi olarak yazdığım bu program temel openGL fonksiyonlarını kullanır ve oyun fare ile oynanmaktadır.

Programı derlemek için komut satırına basitçe:

gcc assignment2.c -o assignment2 -I/usr/X11R6/include/ -L/usr/X11R6/lib -lGL -lGLU -lglut -lm

Yazmak yeterli olmaktadır. Ancak bunun için ilgili glu ve glut kütüphanelerinin sistemde kurulu olması gerekmektedir. Bunun için örneğin ubuntu'da Synaptik paket kurma yardımcısı ile freeglut3-dev gibi güncel openGL kod geliştirme kütüphanelerinin kurulması gerekmektedir. Program içerisinde yer alan bip sesini elde edebilmek için:

http://www.kodmanya.com/2009/11/c-ile-beep-bip-sesi-vermek.html


Linkindeki kodu da bu kodla aynı klasörde derlemek gerekmektedir.





/**********************************************************************
* By Şükrü OZAN sukruozan.at.gmail.com
**********************************************************************/
#include <GL/glut.h>
#include <…

C ile Beep (Bip) Sesi Vermek

Aşağıdaki kod yardımı ile konsoldan bip sesi elde etmek mümkündür. Biplemenin frekansı ve süresi komut parametresi olarak verilmektedir. Linux'ta derlemek için:

gcc -o beep beep.c

Yazmak yeterlidir. Derleme işleminin ardından çalıştımak için konsola öneğin:

./beep 1000 100


Yazarak bip sesi elde edilebilmektedir. Linux'ta /dev/console un izinlerini chmodla 777 yapmak gerekebilmektedir.



/* beep.c - for Linux and DOS/Windows */

#include <stdio.h>
#include <stdlib.h>
#ifdef __DJGPP__
#include <dos.h>
#include <pc.h>
#endif
#define ESC 27

void beep (int frequency, int duration)
{
#ifdef __DJGPP__
sound (frequency);
delay (duration);
nosound ();
#else /* Linux */
FILE *tty;
if ( NULL == (tty = fopen ("/dev/console", "w")) ) {
fprintf (stderr, "Cannot write to /dev/console!\n" );
exit (1);
}
fprintf(tty, "%c[10;%d]%c[11;%d]\a", ESC, frequency, ESC, duration);
#endif
}

int main (int argc, char *argv[])
{
int frequency, durati…

Latex'te Denklem İçerisine Ufak Boşluklar Koymak

Latex'te özellikle matematik denklemlerinde sayılar ya da paramatreler arasında birbiriyle ayrık olduklarını göstermek açısından, ufak boşluklar koymak gerekebilmektedir.


\,a small space\:a medium space\;a large space\quada really large space\qquada huge space\!a negative space (moves things back to the left)
Bu yukarıdaki ifadeleri denklem içerisinde kullanarak istediğiniz ölçülerde irili ufaklı boşluklar bırakmak mümkün olabilmektedir. Bunu bulduğum sayfada da LaTeX ile ilgili temel ve çok pratik bilgiler de mevcut, işte linki:


http://www.artofproblemsolving.com/LaTeX/AoPS_L_GuideLay.php

Latex'te Denklem İçerisine Ufak Boşluklar Koymak

Latex'te özellikle matematik denklemlerinde sayılar ya da paramatreler arasında birbiriyle ayrık olduklarını göstermek açısından, ufak boşluklar koymak gerekebilmektedir.

\,a small space\:a medium space\;a large space\quada really large space\qquada huge space\!a negative space (moves things back to the left)
Bu yukarıdaki ifadeleri denklem içerisinde kullanarak istediğiniz ölçülerde irili ufaklı boşlujlar bırakmak mümkün olabilmektedir. Bunu bulduğum sayfada da LaTeX ile ilgili temel ve çok pratik bilgiler de mevcut, işte linki:


http://www.artofproblemsolving.com/LaTeX/AoPS_L_GuideLay.php

Linux'ta .PNG dosyalarını .EPS ye çevirmek

Şimdi öncelikle neden böyle birşeye ihtiyaç duyuyoruz? Örneğin ben tez raporlarımı latex ile hazırlıyorum. Raporlarda kullandığım grafikleri inkscape ile çiziyorum. Inkscape çizim sonuçlarını .PNG uzantılı olarak kayıpsız bir şekilde kaydediyor. Bu çizimlerin latex te hazırlanan bir doküman içerisinde kullanmanın en uygun ve geçerli yolu bu imgelerin EPS (encapsulated post script) olarak kaydedilmesidir. Deneyimlerinden gördüğüm kadarıyla da bunun en kolay ve en iyi sonuç veren yolu şu;

Örneğin ubuntu işletim sisteminde ben;

sudo apt-get install sam2p

yazarak gerekli paketi kurdum. Ardından, png'lerimin bulunduğu klasöre gidip;

sam2p deneme.png EPS: deneme.eps

yazarak zahmetsizce dönüşüm işlemini gerçekleştirebildim.

Ham Görüntü Bilgisini (raw image data) Sıkıştırmak

Linux'ta NETPBM adı verilen paket sayesinde çok kullanışlı bazı görüntü çevirme komutlarını kullanabilmek mümkün olabilmektedir. Bu sayede çok görüntü kaplayan ham görüntü datasını jpg gibi sıkıştırılmış formatlara dönüştürmek mümkün olabilmektedir. Bir örnek vermek gerekirse, diyelim ki elimize "deneme.ppm" isimli ham görüntü datası olsun. 800 e 600 lük bu ham görüntü datasının kapladığı alan 3.4 MB olmaktadır. NETPBM paketini ben ubuntu'da

sudo apt-get install netpbm

Komutu ile kurduktan sonra;

ppmtojpeg deneme.ppm > deneme.jpg

Komutu ile kolaylıkla dönüştürebildim. Komuttan da anlaşılacağı üzere dönüştürme işleminin ardından iki dosya da elimizde bulunabilmekte. Aşağıdaki resim 3.4 MB iken şu anda sadece 76 KB lık bir yer tutmaktadır.


2005 İzmir Depremi

Ekim 2005'te İzmirde orta düzeyin üzerinde bir deprem gerçekleşti. Bu her ne kadar basında fazla ilgi görmemiş olsa da, İYTE'de kalıcı hasarlar bırakmış bir depremdi. Şu anda Ekim 2009 dayız ve depremden ciddi ölçüde etkilenip zarar görmüş olan, Elektrik Elektronik Mühendisliği bölümüne ait binaların deprem yönetmeliğine uygun olarak güçlendirilme  çalışmaları halen devam etmektedir.

Bu resimler o depremin ciddiyetinin boyutlarını gözler önüne sermektedir.




Işın İzleme (Ray Tracing) - Adım 3.

Şimdi ışın izleme konusunda önemli bir uygulama daha gerçekleştiriyorum. Burada sahnemizdeki 3B hissi daha net olarak görülebiliyor.

Resimlerde oluşacak olan gürültü kullanılan hesaplama yönteminden kaynaklanıyor. Piksel başına 5, 25 ve 100 ışınlık uygulamalardan elde ettiğim görüntüler şu şekilde oldu. (rpp : rays per pixel)

5 rpp




25rpp




100rpp


Işın İzleme (Ray Tracing) - Adım 2.

Işın izleme konusu ile ilgili olarak geçen entry de oluşturulacak olan sistemde kullanılacak temel kütüphane bileşenleri ile basit bir uygulama gerçekleştirmiştim. Şimdi bu uygulamaya bir adım daha ekleyip. Temel objelerden küreyi kullanıp basit bir sahne üzerinde ilk ışın izleme denememi gerçekleştirmek istiyorum.




Oluşacak olan çıktı yukarıdaki şekildedir. 

Linux Sistemde Ati Ekran Kartı Üzerinde Çoklu Monitör Uygulaması

Ekran kartlarının birden çok monitörü rahatlıkla destekleyebildiği günümüzde bu uygulamayı denememek olmazdı. Laptop ve Philips LCD monitör ile denedim çok güzel bir sonuç aldım herkese de tavsiye ederim. Elimizdekilerin listesi;


Acer Aspire 6530 laptop,Ati radeon ekran kartı,
Kubuntu 9.04 işletim sistemi 2.6.28-11 kernelİkinci monitör olarak Philips 170S LCD monitör
Ati nin catalyst adı verilen ekran kartı ayarlarını kontrol edebileceğimiz sistem paketi sistemde yüklü ise aticonfig adı verilen konsoldan çalıştırılan komut da sistemimizde yüklü demektir. Bu tarz direk xorg.conf u değiştirecek denemeler yapmadan önce bu dosyanın yedeğini almada fayda var. Aticonfig kendisi her değişiklikte bir backup dosyası yaratıyor ama yine de ben manuel olarak işlemlere başlamadan evvel kendi yedeğinizi almayı öneririm. Ben şu linkten faydalandım;

http://gofedora.com/how-to-configure-dual-display-ati-radeon-fglrx-xinerama/

Aslında yapılan basit;

sudo aticonfig --initial=dual-head --screen-layout=left --x…

Linux Sistemde NVidia Ekran Kartı ile Çoklu Monitör Uygulaması

Bir Önceki uygulamanın benzeri şekilde, bu sfer desktop bilgisayarda masa üstünü iki LCD üzerinde kullanmayı denedim ve bundan da çok güzel bir sonuç elde edildiğini gördüm. Elimizdekiler şunlar;

NVidia G-Force ekran kartlı bir P4 bilgisayar, iki monitör çıkışına sahip, Üzerinde Ubuntu 9.04 işletim sistemi yüklü, kernel 2.6.28-15
Philips 190 VW LCD monitörPhilips 170S LCD monitör
Ubuntu kurulumda Nvidia ile ilgili programları kurmuştu ancak bunları sornadan da indirmek mümkün. System->Administration -> Nvidia X Server Settings uygulaması açıldığında zaten sistemin iki monitörü de gördüğünü farkedeceksiniz. Ana ekranı ekran çözünürlüklerini xinerama seçeneğini seçtikten sonra logout ve login yaptığınızda sonucu direk olarak görebiliyorsunuz. Ati ekran kartına göre Nvidia da bu işleri gerçekleştirmek gerçekten çok zahmetsiz oldu. Sonuç da aşağıdaki gibi oldu. İki ekranda American Dad'in iki ayrı bölümünün oynadığını görebilirsiniz.



Ubuntu Linux + UC-LOGIC WP8060

Ubuntu'nun 8.10 versiyonunda wizardpen-0.6.2 versiyonu çizim tableti sürücüsü sorusuz olarak çalışıyordu. Bu paket 9.04 Jaunty'e geçtikten sonra çalışmadı. Sanırım XOrg'un yeni versiyonu ile ilgili bir değişiklikten dolayı paket derlenemiyordu.

Geçen gün wizardpen-0.7.0-alpha2 versiyonunu indirdim ve gördüm ki artık o derleme hatası yok ve sürücü sorunsuz olarak derlenebiliyor. Daha sonrasında ubuntunun ilgili sayfasındaki yönergeler uyarınca sürücüyü yüklemeye çalıştım. İlgili sayfanın link de şu şekildedir:

https://help.ubuntu.com/community/TabletSetupWizardpen


Bu linkteki yönergeler takip edildiğinde sürücüyü ve dolayısıyla tabletinizi çalıştırmak mümkü olacaktır. Ben elimdeki UC-LOGIC WP8060 model tabletimi şu anda kullanabiliyorum. Yalnız bir iki hatırlatmayı yapmak isterim. Örneğin ilgili bir pardus sayfasında da dile getirildiği gibi,

"Şimdi yapacağımız işlem ile sürücüleri yerine yerleştirmeliyiz. Midnight commander ile wizardpen-0.6.0.2/src/.libs/ klasörü içindek…

Ubuntu Linux + UC-LOGIC WP8060

Ubuntu'nun 8.10 versiyonunda wizardpen-0.6.2 versiyonu çizim tableti sürücüsü sorusuz olarak çalışıyordu. Bu paket 9.04 Jaunty'e geçtikten sonra çalışmadı. Sanırım XOrg'un yeni versiyonu ile ilgili bir değişiklikten dolayı paket derlenemiyordu.

Geçen gün wizardpen-0.7.0-alpha2 versiyonunu indirdim ve gördüm ki artık o derleme hatası yok ve sürücü sorunsuz olarak derlenebiliyor. Daha sonrasında ubuntunun ilgili sayfasındaki yönergeler uyarınca sürücüyü yüklemeye çalıştım. İlgili sayfanın link de şu şekildedir:

https://help.ubuntu.com/community/TabletSetupWizardpen


Bu linkteki yönergeler takip edildiğinde sürücüyü ve dolayısıyla tabletinizi çalıştırmak mümkü olacaktır. Ben elimdeki UC-LOGIC WP8060 model tabletimi şu anda kullanabiliyorum. Yalnız bir iki hatırlatmayı yapmak isterim. Örneğin ilgili bir pardus sayfasında da dile getirildiği gibi,

"Şimdi yapacağımız işlem ile sürücüleri yerine yerleştirmeliyiz. Midnight commander ile wizardpen-0.6.0.2/src/.libs/ klasörü için…

Linux Sistemde NVidia Ekran Kartı ile Çoklu Monitör Uygulaması

Bir Önceki uygulamanın benzeri şekilde, bu sfer desktop bilgisayarda masa üstünü iki LCD üzerinde kullanmayı denedim ve bundan da çok güzel bir sonuç elde edildiğini gördüm. Elimizdekiler şunlar;

NVidia G-Force ekran kartlı bir P4 bilgisayar, iki monitör çıkışına sahip, Üzerinde Ubuntu 9.04 işletim sistemi yüklü, kernel 2.6.28-15
Philips 190 VW LCD monitörPhilips 170S LCD monitör
Ubuntu kurulumda Nvidia ile ilgili programları kurmuştu ancak bunları sornadan da indirmek mümkün. System->Administration -> Nvidia X Server Settings uygulaması açıldığında zaten sistemin iki monitörü de gördüğünü farkedeceksiniz. Ana ekranı ekran çözünürlüklerini xinerama seçeneğini seçtikten sonra logout ve login yaptığınızda sonucu direk olarak görebiliyorsunuz. Ati ekran kartına göre Nvidia da bu işleri gerçekleştirmek gerçekten çok zahmetsiz oldu. Sonuç da aşağıdaki gibi oldu. İki ekranda American Dad'in iki ayrı bölümünün oynadığını görebilirsiniz.



Linux Sunucu'nun Tarihini ve Saatini Konsoldan Ayarlamak

Linux sunucunun sistem tarihini ve saatini ayarlamak date komutu ile mümkün olabilmektedir. En basit şekilde;

date -s "19 OCT 2009 13:26:00"   

yazıldığında. Ya da;

date set="19 OCT 2009 13:26:00"

yazıldığında sunucunun tarihi 19 Ekim 2009 saat 13:26:00 olacak şekilde ayarlanabilmektedir.

date +%Y%m%d -s "20091019"

Yazdığımızda sayısal bazda yılı ayı ve günü değiştirmek;

date +%T -s "13:26:00"

Yazdığımızda sadece saati değiştirmek   

date +%T%p -s "1:26:00PM"

Yazdığımızda saati AM veya PM cinsinden de değiştirmek mümkün olabilmektedir.

Linux sistemde Ati Ekran Kartı üzerinde Birden çok monitör Uygulaması

Ekran kartlarının birden çok monitörü rahatlıkla destekleyebildiği günümüzde bu uygulamayı denememek olmazdı. Laptop ve Philips LCD monitör ile denedim çok güzel bir sonuç aldım herkese de tavsiye ederim. Elimizdekilerin listesi;


Acer Aspire 6530 laptop,Ati radeon ekran kartı,
Kubuntu 9.04 işletim sistemi 2.6.28-11 kernelİkinci monitör olarak Philips 170S LCD monitör
Ati nin catalyst adı verilen ekran kartı ayarlarını kontrol edebileceğimiz sistem paketi sistemde yüklü ise aticonfig adı verilen konsoldan çalıştırılan komut da sistemimizde yüklü demektir. Bu tarz direk xorg.conf u değiştirecek denemeler yapmadan önce bu dosyanın yedeğini almada fayda var. Aticonfig kendisi her değişiklikte bir backup dosyası yaratıyor ama yine de ben manuel olarak işlemlere başlamadan evvel kendi yedeğinizi almayı öneririm. Ben şu linkten faydalandım;

http://gofedora.com/how-to-configure-dual-display-ati-radeon-fglrx-xinerama/

Aslında yapılan basit;

sudo aticonfig --initial=dual-head --screen-layout=left --…

Linux + Pardus 2009 + Bluetooth Mouse

Casper Minibook uma pardus 2009 kurduktan sonra, bluetooth mouse u deneme şansım oldu ve mouse çalıştı. Öncelikle bluetooth ile ilgili gerekli programların hepsini yükledim. Sonra cihaza minik bluetooth dongle ımı taktım ve sistem zaten direk olarak tanıdı. Sonra mouse un pair tuşuna basarak konsoldan;

sudo hcitool scan

Yazdım, ve ekranda

00:01:02:03:04:05       Bluetooth Mouse


Yazısını gördüm.  00:01:02:03:04:05 mouse un MAC adresi oluyor. Ve ardından hemen

sudo hidd --connect  00:01:02:03:04:05

Yazdım, bir saniye sonra mouse makine ile eşleşti ve kullanılabilir duruma geldi. Ben de sevindim. Mouse e-bay  den linki de budur;

http://cgi.ebay.com/Mini-Bluetooth-1000DPI-Optical-Wireless-Mouse-PC-Laptop_W0QQitemZ280404589849QQcmdZViewItemQQptZLH_DefaultDomain_0?hash=item41496a7d19

Çok ucuz ve kullanışlı bir mouse. Minibook için ideal bir mini mouse. Ben Casper minibook a bir de mini bluetooth dongle aldım, o da e-bay den, onun linki de budur

http://cgi.ebay.com/ws/eBayISAPI.dll?ViewItem&…

PHP ile Dosya Upload Etme

Aşağıda yer alan kod parçacığı ile kullanıcıların, bilgisayarlarında bulunan dosyaları, web sitemizde istediğimiz alana yüklemelerini sağlayabiliriz.<pre name="code" class="php"><?phpfunction dosyayukle($dosya,$temp){$file_name = $dosya;$yuklenecekyol="dosyalarimiz";$upload=@move_uploaded_file($temp,"$yuklenecekyol/$file_name");}$dosyaadi=$_FILE[‘dosyaadi’];$dosyaname=$_FILES['dosyaadi']['name'];$dosyatemp=$_FILES['dosyaadi']['tmp_name'];dosyayukle($dosyaadi,$dosyatemp);?></pre>

Casper MiniBook + Linux + Pardus 2009

Pardus 2007 den sonra Pardus 2008 biraz problemli gelmişti o yüzden kullanmamıştım. Geçenlerde bir Casper Minibook aldım, şimdi ona Pardus 2009 kurdum. İşletim sistemi bu bilgisayarla gayet uyumlu, majör bir   problem olmadan işletim sistemini usb den kurdum. Update'i yaptım ve gerekli programları kurdum. Cihaz süper bir performansta çalışıyor. Windows kullanmak istemeyenler Casper Minibook a gönül rahatlığı ile pardus 2009 u kurabilirler. Benim linux KDE ile birlikte gelen ve kullanmaktan vazgeçemediğim şeylerin kısa bir listesi de şu şekilde.
gcc derleyiciinkscape, vektörel çizim programıfirefoxthunderbirdkile, latex kodlarını yazmak ve derlemek için çok kullanışlıı bir arayüz
kate, genel bir kod yazma arayüzü, içindeki gömülü konsol ile derleme işlemlerini de yapabilirsiniz
pidgin (msn gibi mesajlaşma programlarının klonlarını aynı anda çalıştırabilen bir program)amarok, müzikleri müzik yayınlarını dinlemenizi sağlayan sade ve temiz bir arayüze sahip kullanışlı bir programmplayer …

Işın İzleme (Ray Tracing) - Adım 1.

Işın izleme (Ray Tracing), bilgisayar ile modelleme uygulamalarında, son adımda gerçekçi görüntünün en gerçekçi haline geldiği aşamadır. Burda yapmaya çalışacağımız şey kendi basit ışın izleme sistemimizi oluşturmak. Bunun için öncelikle çıktı olarak elde edeceğimiz resim dosyasını yaratmamızı sağlayan kütüphaneleri oluşturuyoruz.


İzleyeceğimiz yol ve kodlar, Peter Shirley'in yazdığı "Realistic Ray Tracing" kitabının ikinci baskısından alınarak bazı modifikasyonlarla güncellenmiştir. Kodlar c++ ile yazılmıştır. Nasıl derleneceği yazının sonunda anlatılacaktır.


İlk iki kütüphanemiz rgb.h ve image.h aşağıdaki şekildedir.


--------------------------------------------------------------------------------------------------------------
#ifndef RGB_H
#define RGB_H


#include <assert.h>


#include <iostream>
#include <stdlib.h>
#include <math.h>
#include <fstream>
#include <istream>
#include <string.h>


usingnamespace std;


class rgb {
public:



rgb() {}