Thursday, June 30, 2011

Kinect

Microsoft Xbox 360 ile beraber gelen algilayici Kinect, robotik ile ugrasanlarin oldukca ilgisini cekti. Kinect bilgisayar oyunlarini el hareketleri ile oynamayi mumkun kilan bir teknoloji, bunu oda icindeki kullanicinin ve aslinda her objenin gorsel, ses, hatta derinlik bilgisini hesaplayarak sagliyor. Bunun robotik ile ilgisi ne? Robotikte ayni anda etrafi haritalama ve olunan yeri hesaplama SLAM problemi olarak bilinir, SLAM icin etraftaki objelerin derinlik bilgisi gerekir.

Bu bilgi iki kamera uzerinden sadece gorsel imaj kullanilarak ve karsilastirmali olarak hesaplanabiliyor, fakat bu islem cok hesap gucu ister. Diger bir alternatif olan laser algilayicilari ise pahalidir. Kinect cok ucuz bir donanim uzerinden derinlik bilgisinin alinabilmesini sagliyor. Kinect'in iki kamerasindan bir tanesi etrafa infrared noktalari sacabiliyor ve o noktalarin buyuklugunu gorsel olarak olcerek o noktanin gosterdigi objenin uzaklik ve yer hesabini yapabiliyor. Robotik ile ugrasanlar ve kurcalamaya meraklilar hemen Kinect'i Xbox'dan cikartip bir robotun uzerine takmislar ve SLAM icin kullanmislar. Bir MIT'de, bir Almanya'da bir universitede bunu deneyenler oldu.

O'Reilly Answers


Wired

Monday, June 27, 2011

Web Sayfalarindan Gorunen Metni Kazimak (Scraping)

Bir web sayfasindaki Turkce, Ingilizce kelimeleri almak icin Python uzerinde Beautiful Soup adinda bir paket var. "Gorunen metin" derken bir sayfada okunabilir olan, HTML etiketleri haricindeki kelimeleri kastediyoruz, istatistiki analiz icin mesela herhangi bir gunun "kelime dagarcigini" cekip cikarmak icin boyle kodlar gerekebilir.
import re
import urllib
import BeautifulSoup

keywords = ['script', '<b>', '\n']

def visible(element):
if element.parent.name in ['style', 'script', '[document]', 'head', 'title']:
return False
elif re.match('<!--.*-->', str(element)):
return False
return True

def tokenize_site(url):
html = urllib.urlopen(url).read()
soup = BeautifulSoup.BeautifulSoup(html)
texts = soup.findAll(text=True)
visible_texts = filter(visible, texts)
tmp = []
for x in visible_texts:
if (x not in keywords): tmp.append(x)
res = []
for x in tmp:
for xx in x.split():
res.append(xx)
return res

if __name__ == "__main__":
res = tokenize_site('[MEDYA SITE ISMI]')

Monday, June 20, 2011

Ses Kayit, audiolab

Audiolab kurulusu surada. Python audiolab ile beyaz ses (white noise) yaratmak icin
import numpy as np
from scikits.audiolab import play
# output one second of stereo gaussian white noise at 48000 hz
data = np.random.randn(2, 480000)
play(0.001 * data)
Uc dakikalik bir beyaz ses toplamini dosyaya kaydetmek icin
from scikits.audiolab import Format, Sndfile
import numpy as np
filename = 'foo.wav'
data = 0.001 * np.random.randn(48000, 2)
format = Format('wav')
f = Sndfile(filename, 'w', format, 2, 48000)
for i in range(60*3):
f.write_frames(data)
f.close()
Audiolab ne yazik ki MP3 formatinda yazamiyor. Wav dosyalari komut satirindan cevirmek icin
sudo apt-get install shntool
sudo apt-get install lame

lame -V2 foo.wav foo.mp3

Sunday, June 19, 2011

Toplu Dosyalar

Bazi PDF dosyalarini biraraya koyduk:

Matematik, Uygulamali Matematik ornekler, kavramlar:

Link 1

ODE

Link 2

Bu dosyalar eklendikce buyuyecekler; ODE dosyasi her yeni ders eklendiginde buyuyecek. Uyg. Mat dosyasi da yeni ornekler geldikce gelisebilir. Bu baglantlar blog'un solunda Indir kategorisi altinda da erisilir halde.

Thursday, June 16, 2011

App Arama Motoru

Yahoo mobil uygulamalar icin ozel bir arama motoru baslatmis. iPhone, Android secimini bir tab uzerinden yaptiktan sonra uygulama ismi, turu gibi anahtar kelimeler girerek arama yapabiliyorsunuz.

http://apps.search.yahoo.com/

Sunday, June 12, 2011

OpenCV ve Goruntu Kaydetmek

Ekrandaki goruntuyu MPEG formatinda kaydeden basit bir program. Keywords: python, record, opencv, capture, mpeg, video
from opencv import cv
from opencv import highgui

if __name__ == '__main__':

MPEG1VIDEO = 0x314D4950
highgui.cvNamedWindow ('Camera', highgui.CV_WINDOW_AUTOSIZE)
highgui.cvMoveWindow ('Camera', 10, 10)

capture = highgui.cvCreateCameraCapture (0)

frame = highgui.cvQueryFrame (capture)
frame_size = cv.cvGetSize (frame)
fps = 30
writer = highgui.cvCreateVideoWriter ("output.mpg", MPEG1VIDEO,
fps, frame_size, True)
if not writer:
print "Error opening writer"
sys.exit (1)

while 1:
frame = highgui.cvQueryFrame (capture)
if frame is None:
break
highgui.cvWriteFrame (writer, frame)
highgui.cvShowImage ('Camera', frame)
k = highgui.cvWaitKey (5)
if k % 0x100 == 27:
break

highgui.cvReleaseVideoWriter (writer)

Sol Tarafta Cikan Formuller, Paragraf Araligi

Latex ile calisirken formullerimizin ve yazimizin ortada degil tam sol tarafta, numarasiz, paragraf bosluksuz, araliginin cok az olmasini istiyorsak, sunlari kullaniriz:
\documentclass[12pt,fleqn]{article}
\usepackage{graphicx}
\setlength{\parindent}{0pt}
\setlength{\parskip}{8pt}
\setlength{\parsep}{0pt}
\setlength{\headsep}{0pt}
\setlength{\topskip}{0pt}
\setlength{\topmargin}{0pt}
\setlength{\topsep}{0pt}
\setlength{\partopsep}{0pt}
\setlength{\mathindent}{0cm}

\begin{document}
\[ y=x^2 \]
\end{document}
\[ ve \] isaretleri \begin{equation} ve \end{equation} komutlarinin numarasiz halidir.

Thursday, June 9, 2011

Emacs, Ubuntu, Yeni Font (Monaco)

Suradaki baglanti Monaco isminde bir fontun Emacs icin nasil kurulacagini anlatir. Ubuntu 11 uzerinde de isledi.

Font suradan alinir.

sudo mv Monaco_Linux.ttf /usr/share/fonts/truetype/custom

sudo fc-cache -f -v

echo “Emacs.font: Monaco-11″ > ~/.Xresources

xrdb -merge ~/.Xresources

Bundan sonra Monaco font isminin Emacs'te nasil kodlandigini gormek icin editoru baslatip *scratch* buffer'ina girin, ve alttaki komutu yazip, eval-buffer ile isletin.

(insert (prin1-to-string (x-list-fonts "*")))

Sonuc icinde "-unknown-Monaco-normal-normal...." turunde bir font tanimi gelecek. Bu ismi alip .emacs icinde

(set-default-font "-unknown-Monaco-normal-...")

olarak tanimlayinca Emacs'in hep kullandigi font haline getirebilirsiniz. Guzel bir font! Ozellikle Python kodunu guzel gosteriyor.

Wednesday, June 8, 2011

Ubuntu 11

Ubuntu 11 versiyonunu kurduk, bazi notlar:

11.10

Her Ubuntu surumunde masaustu biraz daha degisiyor. 11.04 ve 11.10 arasinda bazi farklar var, once 10'dan bahsedelim, sonra 04 okunabilir. Oncelikle kubuntu ortami 04'ten farkli, ve artik bizim kullanabilecegimiz bir halde degil. Onun yerine Gnome masaustu kullaniyoruz.

sudo apt-get install gnome-shell

Sonra Logout yapilir ve tekrar girmeden once tekerlek sembolune tiklanir, ve Gnome secilir.

Emacs ile Alt-Space cok kullaniyoruz, ama Gnome'da bu kapilmis, iptal etmek icin System Tools | System Settings | Keyboard. Oradan Keyboard, Shortcuts, Windows. Activate the window menu secenegi Alt-Space tanimlamis. Uzerine iki tiklayin, ve alakasiz baska bir tuslama tanimlayin (backspace ile disable etmek ise yaramiyor).

Sonra

sudo apt-get install gnome-tweak-tool
gnome-tweak-tool

Bu program ile cop sepeti, vs. gibi seyleri geri alabilirsiniz. "Have File Manager Handle Desktop" On yapilmali.

11.04

Bu versiyon kurulus sirasinda masaustu (desktop) secenegi sunmuyor. Kurulum bittikten sonra ilk yuklenen desktop, asiri buyuk dugmelerle, habire animasyon yapan Windows Vista'ya benzer acaip bir ortam. Buradan hemen kurtulmak icin soldaki program ikonlari (toolbar) icinde + isaretinden uygulamalara girilir, oradan "Ubuntu Software Center" bulunur, ve center icinde "kubuntu-desktop" yazilir. Bu paket Internet'ten indirilecek, ve kurulacak. Sonra classic desktop secerek basit, sade bir desktop ortamina kavusabilirsiniz.

Tex / Latex icin

tetex-.. paketleri degil alttaki kullanilmali

sudo apt-get install texlive

Ubuntu 11 Emacs 23'u destekliyor, apt-get ile 22 alinamiyor, apt-get ile 23 gelecek,

sudo apt-get install emacs

Emacs uzerindeki preview-latex programini tekrar kurarken sunlari kullandik

sudo apt-get install emacs-extra emacs-goodies-el preview-latex dvipng

.emacs icindeki tanimlar su hale geldi:

(custom-set-variables
..
'(preview-scale-function 1.2)
'(preview-image-type (quote dvipng))
..
)

Eger bunlara ragmen islemediyse, Auctex (preview-latex paketi artik bu isimde) paketini kaynak olarak indirin, ve configure, make, sudo make install ile kurun. .emacs icine (load "preview-latex.el" nil t t) yazin ve hersey guzelce islemeye baslayacak.

OpenCV 2.0

Ubuntu paketleri icinde OpenCV 2.1 icin destek var. Kurmak icin apt-get install python-opencv. Bu gerekli ek paketleri indirip kuracaktir. Eger webcam'e erisilemiyorsa, gstreamer-properties programindan WebCam ismini direk secmek gerekebilir.

Chat Ikonu

Sag ust kosede bir mektup zarfi ve balon sekillerinde gereksiz iki ikon var. Bunlar silmek uzerine tiklayarak mumkun olmadi. Suraya gore apt-get kullanmak lazim:

sudo apt-get remove indicator-me indicator-messages

Matplotlib

show() komutu en son kurulumda problem cikardi. Cizim yaptirilan arka plandaki motorun (backend) secilmesi gerekiyor. WX iyi bir secenek, kurmak icin

sudo apt-get install wxgtk2.8

Matplotlib'in bundan haberdar olmasi icin

sudo gedit /usr/local/lib/python2.7/dist-packages/matplotlib/mpl-data/matplotlibrc

Dosyada

backend : WXAgg

yazilmasi yeterli. Bu satir buyuk bir ihtimalle sadece Agg iceriyor olacakti.

Animasyonlar

Masaustunde pencere acma, kapama hareketlerinin animasyon yapmasini durdurmak istiyorsak

sudo apt-get install compizconfig-settings-manager

Sonra menuden System | Settings | Compbiz Settings Manager secilir ve "Effects" bolumunde Effects icin secim kutusu iptal edilir.

Tor

sudo apt-get install tor tor-geoipdb
sudo apt-get install privoxy

ile kurulur. Privoxy ayari icin sudo gedit /etc/privoxy/config ile dosyayi edit edin, ve icerik olarak

forward-socks4a / localhost:9050 .

Firefox 4 uzerinde TorButton icin https://www.torproject.org/torbutton/

Install Alpha baglantisindan xpi dosyasi isletilebilir. YouTube video'larini ve flash icerik gorebilmek icin eklenti kurulduktan sonra Firefox sol ustte Tor statusunu gosteren bir isaret cikacak. Bu isaret uzerinde mouse sag dugme click yaparak "preferences" secenegine girin. Security Preferences tab'inden "disable plugins during Tor usage" secenegini de-aktive edin.

Simdi kirmizi xarpi isareti uzerine tiklayin, bu isaret yesile donusecek. Bu kadar. Artik istediginiz siteye baglanabilirsiniz.

Alt-Tab

Masaustu uzerinde klavye kisayolu kullanarak programlar arasinda gecis yapmak, Ubuntu 11 olagan ayarlarinda ayvayi yemis. Genelde en son kullanilan ilk geri gelir kurali islemiyor. Duzeltmek icin Sytem | Preferences | CompizConfig Settings Manager uzerinde Window Management secilir ve Static Application Switcher yerine Application Manager secilir.

Ses Efektleri

Eger konsol icine mesela gidilemeyecek durumda bile backspace yapilinca cikan bip, tan, tun seslerini kapatmak istiyorsak System Tools | System Settings, oradan Sound ve Sound Effects. Bir ses kontrol ayari var, onun yaninda Mute secilirse artik uyarici sesleri cikmaz.

Sifre

Eger kullanicinizin sifresini kisa yapmak isterseniz, passwd uzerinden gireceginiz sifre Ubuntu tarafindan begenilmeyebilir (kisa, cetrefil olmayan sifreyi guvensiz buluyor). Ama illa ki kisa / basit bir sifre vermek isterseniz, o zaman "sudo passwd [kullanici isminiz]" ile istediginiz sifreyi verebilirsiniz. Kendiniz super kullanici olmaniza ragmen sudo uzerinden tekrar kendi kullanicinizi referans etmeniz garip olabilir, ama kisa sifre bu sekilde memnun oluyor.