Belgelik: Mart, 2009

Gnuplot ile verilerden grafik oluşturmak

Benim gibi milimetrik kağıtlardan nefret ediyorsanız, eldeki verilerinizi o küçük noktalara yerleştirmek, onlardan bir eğri çıkartmak ve o eğrinin açısını hesaplamaktan sıkıldıysanız bu yazı tam size göre. Birazdan anlatacaklarım çok işinize yarayabilir.

Gnuplot açık kaynak kodlu grafik oluşturma uygulamasıdır. Grafik’ten kastım her türlü veri’yi görsel olarak sunmaktan bahsediyorum. Bu iki boyutlu kartesian koordinatları olabilir, üç boyutlu kök eğrileri olabilir ya da borsa’daki herhangi bir indeksin işlemleri de olabilir. Gnuplot’un kendine has bir kabuğu var, konsoldan gnuplot yazdığınızda doğrudan giriş yaparsanız. Kullanması da inanın çok kolay. Çok basit tasarlamışlar, ama çok zor işlerin üstünden de gelebiliyor(hastasıyım böyle yazılımların). Bir örnekle başlayalım. Örneğin:

gnuplot> plot sin(x)

yazdığınızda size bir tane sinus dalgası çıkartacak. Bu kadar basit. Şimdi gelelim bizim yapmak istediğimiz şeye.

Elimde bir çok veri var, şimdiki kullanacağım veri geçen hafta kontrol laboratuvarında ısı sensöründe aldığım verileriyle ilgili olacak. Veriler şu şekilde:

# X Y
0 297
30 299
60 303
90 310
120 310
150 312
180 316
210 318

Bu verileri “test.dat” olarak kayıt ediyoruz. Şimdi ilk kolon boş anlamına geliyor, ikinci kolon x ile başlıyor sonraki kolonları da tab ile ayrıştırıyoruz. Burada iki tane eksen için verilerimiz var şimdi bizim için. X ekseni bizim örneğimizde saniye’yi gösteriyor. Y ekseni de kelvin’deki sıcaklık değerini gösteriyor. Görüldüğü gibi zamanla sıcaklık artıyor. Gnuplot ile sonra şunları yazıyoruz

gnuplot> set xlabel “t (sec)”
gnuplot> set ylabel “temperature (kelvin”

Bu iki satır eksenleri adlandırmamızı sağlıyor. Ardından şu komutu yazdıyoruz:

gnuplot> plot “test.dat” using 1:2

Bu komut test.dat dosyasındaki birinci ve ikinci kolonların grafiğini bize çıkartıyor, kendisi şöyle bir şey:

gnuplot

Gördüğünüz gibi güzelce basit bir şekilde verileri yerlerine çıkartı. Şimdi genellikle bu noktaların ortasından geçen bir eğri’yi bulup, o eğrinin eğimini bulmamız bizim işimize yarayabiliyor. Birim zamandaki değişimi görmemizi sağlıyor, daha da önemlisi bu denklem bizim bulduğumuz verilerin denklemini oluşturacağından kolayca istediğimiz andaki veriyi elde edebileceğiz. Noktalardan geçen doğru’nun neye benzediğiniz Gnuplot’a söylemimiz lazım. Bu bir logaritmik fonksiyon olabileceği gibi trigonometrik fonksiyon da olabilir. Bunu biraz araştırdıktan sonra bir blog sayfasında buldum. Bizim örneğimizde basit bir eğri olduğundan fonksiyonumuz şu şekilde olacak:

gnuplot> f(x) = a*x + b

Kısaca y = ax +b olacak. Peki bizim a ve b değerlerimiz nelerdir ? Burada gnuplot devreye giriyor. Kendisi bizim test.dat’daki dosya’dan verileri alıyor ve hesaplama, yanılma yöntemiyle doğru sonucu buluyor(hata payı da var elbette). Onu da şu şekilde yapıyoruz:

gnuplot> fit f(x) “test.dat” via a,b

Bunu yazdığımızda uzun bir çıktı geliyor, altıncı denemeden sonra bize nihai sonuçları veriyor, ben sadece bizim işe yarar kısmı gösteriyorum size:

Final set of parameters Asymptotic Standard Error
======================= ==========================

a = 0.102778 +/- 0.008289 (8.065%)
b = 297.333 +/- 1.04 (0.3499%)

Gördüldüğü gibi a ve b değerli bulundu. Şimdi sadece şu satırı yazıyorum ve sonuçu elde ediyorum:

gnuplot> replot f(x)

Sonuç ise şu şekilde:

gnuplot1

a ve b değerlerinden oluşan denklemimiz ise y = 0.102x + 297.333 şeklide olacak. Denklemi de elde ettiğimize göre bu denklemden kolayca eğimi bulabiliyoruz. Hepsi bu kadar. Böyle uzun uzun yazıldığına bakmayın, topu topu 6-7 satırdan oluşuyor. Cetvele ve milimetrik kağıt ile uğraşmaktan hem daha zevkli hem daha güvenirli. Umarım yukarıda anlattıklarım işinize yaramıştır. Aşağıdaki bağlantılardan çok daha fazlasını bulabilirsiniz.

http://t16web.lanl.gov/Kawano/gnuplot/index-e.html
http://www.gnuplot.info/docs/gnuplot.html

Pandora’yı tek tıkla dinlemek

Başlık bulma konusunda pek iyi değilim, artık bu şekilde idare edin. Demek istediğim aslında şu, Pandora Türkiye’de dinlenemiyor, bir aralar oluyordu fakat kapattılar. Sonraları globalpandora diye bir şey çıktı fakat onun da sonu çabuk geldi. Proxy üzerinden dinleyebiliyoruz artık sadece. Bunun için de tarayıcımızdaki proxy ayarları değiştirmek lazım.

Bunun da  dezavantajları var, tüm şifreleriniz ve özel bilgileriniz proxy üzerinden iletileceği için pek güvenli sayılmayabilir. Ne yapabilirdik peki, site’ye özel proxy yapabilirdik, yani www.pandora.com sitesine girdiğimizde bizim proxy devre’ye girecekti. Bunu FoxyProxy ile yapabildiğini öğrendim. Sonra da bu şekilde kullandım, ama müzik dinlemek için Firefox’u açmak pek hoşuma gitmedi. Last.Fm gibi istemci olsa tadından yenmezdi.

Burada yapabileceğim bir şey var, oda Mozilla Prism kullanmaktı. Sayesinde web sitelerine uygulama gibi çalıştırabilecektik. Her ne kadar uygulama olmasa bile güzel bir şey bence. Benim yaptığım ise, Mozilla Prism’de proxy’ı devreye sokmaktı.  Şimdi aşağıda gördüğünüz gibi simge’ye tıkladığım an Pandora’yı dinleyebiliyorum

pandora

Tüm bunları şu şekilde yaptım:

  1. Mozilla Prism sayfasından, Prism’in standalone uygulamasını indiriyoruz
  2. Bu uygulamayı  /opt dizinine açıyoruz. Orada /opt/prism diye bir klasör oluşacak
  3. En son flash sürümünü indiriyoruz , içinden çıkan libflashplayer.so dosyasını /opt/prism/plugins klasörüne atıyoruz(eğer plugins klasörü yoksa oluşturuyoruz onu)
  4. İstediğiniz bir metin editörü ile /opt/prism/xulrunner/greprefs/all.js dosyasını açıyoruz ve aşağıdaki satırları

    pref(“network.proxy.type”, 0);
    pref(“network.proxy.autoconfig_url”, “”);

    şu şekile çeviriyoruz

    pref(“network.proxy.type”, 2);
    pref(“network.proxy.autoconfig_url”, “http://pac.byterelay.com/”);

    Bu satırlar 750′ini satırda ve birbirinden ayrı yerdeler, biraz aramanız gerekecek

  5. İşimiz bitti sayılır, şimdi konsoldan /opt/prism/prism açıyoruz ve www.pandora.com ve Desktop seçeneğini tıklıyoruz
  6. Başka adım yok :)

Sükunet ve sonrası

Yazmayalı baya bir zaman olmuş. Arkadaş çevremden bir çok kişi neden yazmadığımı sorup duruyorlar. Vallahi ben bile bilmiyorum. Sanırım insanların ara sıra nefes almaya ihtiyaçı var. Benim ki de bunun gibi birşey. Önceden böyle olmadığını biliyorum en azından, önceleri çok farklıydı. Ne bölümün zorluğu ne de can sıkıntısı vardı. Okuduğum okul malesef sınırlarımı zorluyor, bu başka şeyler zaman ayıramam anlamına geliyor. Hal böyle olunca hayatımda benim için önemli olan değerleri yeniden değerlendirmek zorunda kaldım. İyisiyle kötüsüyle bu şekilde en azından yürüyor benim için.

Bildiğiniz gibi Mürekkep.org muhteşemen bir geri dönüş yaptı. Alper abi 1 ay gibi kısa bir süre’de baştan aşağı yeniledi siteyi. Zaten ben yazamaz olmuştum kendisi son anda kurtardı diyebilirim. Ziyaret etmemişseniz kesinlikle tavsiye ederim.

Bunların dışında Staj başvuruları başladı. Bunlardan biri de Portakal Teknoloji. Bora Güngören’i gezegen’den takip ediyordum ve kendisin kurduğu şirketi çok merak ediyorum açıkcası. Açık kaynak dünyasında bir şeyler yapmak kadar güzel bir şey olmadığını da biliyorum. Bu sene Portakal Teknoloji farklı bir yol izleyecek staj alımları için. Kısaca şu şekilde işleyecek staj alımı:

  1. Blog yazmayan varsa, blog yazmaya başlayacak ve bu staj alım süreci hakkında bahsedecek
  2. Oluşturdukları bloglarda açık kaynak hakkında bir proje ayrıntılı bir şekilde tanıtılacak
  3. Tüm bunlar olmuşken, bireyin en azından açık kaynak dünyası için bir şeyler yapması da bekleniyor

Ayrıntılı bilgi için blog girdisini okuyabilirsiniz.

Ne demeli bilmiyorum ama güzel bir yol izlemişler. En azından bu konu hakkında bilgisi olmayanlara araştırmaya teşvik ediyor. Açık kaynak ekosistemini tanımasına fırsat veriyor ve güzel bir eleme yöntemi de oluyor. Staj denen hadise’yi malesef bazı kişiler farklı biçimde algılıyor, bu üç madde en azından bu kişileri de farklı bir bakış açısı kazandıracağına inanıyorum.

Şimdilik bu kadar, bu aralar yine yazmaya merak saldım. Sınavlar da tabi başladı bu yüzden cok yazabileceğimi sanmıyorum ama en azından denemeye değer :)