ali ihsan

.

Debian’a Youtube icin DNS ayari

Yazan: ali ihsan Ocak 15, 2010

/etc/resolv.conf dosyasinda normalde

nameserver 192.168.2.1

yaziyor, Bu satiri silip yerine

nameserver 4.2.2.1

yazdim.

/etc/init.d/networking restart (1)

dhclient (2)

komutlarindan sonra

/etc/resolv.conf dosyasinin icerigi yine

nameserver 192.168.2.1

oldu. Dosyayi tekrar duzenleyip kayettikten sonra

chattr +a /etc/resolv.conf

komutunu girmek gerekiyor. chattr dosya oznitelikleri ile ilgili bir komut. a parametresi de sadece dosyanin sonuna ekleme yapilabilecek sekle sokuyor dosyayi.
+ ile bu ozellik ekleniyor. – ile de kaldiriliyor. Bu komuttan sonra 1 ve 2 komutlarini tekrar yazinca youtube yasagi kalkiyor.

Yazı kategorisi: Linux, Network, Özgür Yazılım | Etiketler: , , | » yorum bırak;

Mesnevi Notları – 1

Yazan: ali ihsan Aralık 20, 2009

Hz. Mevlana’nın Mesnevi’sini okurken not aldığım, bazı konuları anlamama yardımcı olmuş ve hala
anlamaya çalıştığım kısımları bir deftere not etmiştim. Bu notları kısım kısım yazmayı düşünüyorum.
Umarım okuyanlara da faydası olur. Birbirini açıklayan beyitleri birlikte yazdım.
Tabi bu beyitlerin geçtiği hikayeleri okumak daha faydalı olacaktır.

245/1
Musa’da hesapsız faziletler olduğu halde, vehmi ona perde oldu.

279/1
İki arı aynı çiçekten gıda alır, fakat birisinden zehir birisinden bal olur.

306/1
Deniz suyunun acılığı, konulduğu kaptan değildir.

320/1
Havuz temizleninceye kadar havuzun suyunu keserler. Sonra su ona bir parlaklık,güzellir verir.

557/1
Akıl ve iktidar Hakka ulaşma yolu değildir. Kul için acz ve zayıflık gerekir.

Çocuk hacamatçının bıçağından korkar, şefkatli anne babası ise sevinç içindedir.

50/1
İnşallah’ı terk acze sebep olur. Güzel huyun namesi Allah’ı zikirdir.

71/1
Ruh gibi hayalde gizlidir. Bu dünya da o hayallerden biridir.

180-181-182/1
Sevgilinin sırrı gönülde gizli olursa bil ki, muradın çabuk olur.
Peygamber “Sırrını gizleyen muradına tez kavuşur.” dedi.
Tohum toprak altında gizlenince mesut, yeşermiş ve tertemiz olur.

321-322-323/1
Cild oku çıkarmak için yarılır,iyileşmek için yeni deriler çıkar.
Kafir kalelerini tahrip ederler, fethedilince onlar tamir olunur.
Neden, niçin denilmeyen Hakk’ın işi akılla anlaşılmaz. Bu birkaç misal zaruret içindir.

855/1
Nerede su olursa orada yeşillik olur. Gözyaşı Hakk’ın rahmetine vesiledir.

914-917/1
Anneler çocuklarını arayıcı olur. Asıl elbet fer’ini takip eder.
Gerçi havuz su içinde mahpustur, fakat havanın onu buharlaştırdığı hissedilir.
Rüzgar devamlı o suyu çeker kurutur, lakin bu çekiş görülmez.
Bu nefes de sabah ve akşam ruhumuzu yavaş yavaş dünya zindanından kurtarır.

Yazı kategorisi: Mesnevi | Etiketler: , | » yorum bırak;

tropy

Yazan: ali ihsan Kasım 26, 2009

Linuxtaki traceroute komutunun çıktısında ip adreslerinin yanında,
o ip adresinin bulunduğu şehir ve ülke de gözükse nasıl olur diye düşünürken,
aranırken ip2location ile karşılaştım. Sitede ip adresini sorguluyorum ve ip nin
bilgilerini veriyor. Şehir, ülke, isp vs.. Amacım çıktı sayfasını python ile okuyup düzenli

ifadeler ile şehir bilgisini çekmekti. ip2location da bu mümkün olmadı.

Python için bir kütüphanesi var ama bu kadar kolay halledilebilecek bir iş için kütüphane yüklemek istemedim.

Nihayet ipmap.com işimi gördü. Çıktı sayfasından şehir bilgisini alabildim.

geopy kütüphanesi yardımıyla da şehir bilgisinin yanına o şehrin koordinatlarını ekledim.

Geopy, google maps kullanan bir kütüphane ve iki nokta arasındaki uzaklığıda hesaplayabiliyor.
Onu da koda eklemeyi düşünüyorum. Her satırdaki şehrin bir önceki satırdaki şehir ile arasındaki uzaklık ve
çıktının son satırında toplam uzaklık. Uzaklıklar düz çizgi olarak tabi.

Sonra bu çıktıları renklendirsem de daha kolay okunsa diye düşünürken, taşınırken bir de baktım ki pypi de termcolor diye bir kütüphane var. Linuxta çalışıyor ama windowsla pek arası yok. İşletim sistemi adı nt değilse küpüthaneyi import edecek şekilde ayarladım. Gözünün yağını yidiğimin pythonu her işi yapıyor. Şunu yapayım deyipte kütüphanesini bulamadığım bir konu olmadı şimdiye kadar :)

Geopy import edilirken ve şehir koordinatlarını bulurken çıktılar veriyor.
Bu çıktıların nasıl gizleneceğini bulamadım.


program komut satırından çalışıyor. Bu işi görsel olarak yapan bi kaç program var: geotrace, gtrace

programın kodu

kullanımı : python tropy.py google.com

bir ekran görüntüsü:


Yazı kategorisi: Linux, Network, Python | Etiketler: , , , , | » yorum bırak;

Bâis-i Berbâdım Oldu Can Yakıcı Gözlerin – Nubar Efendi (Kânunî)

Yazan: ali ihsan Kasım 5, 2009

Geçen gün bir arkadaşın evinde dinlediğim Ermeni bestekarlar 1 albümünden bir şarkı.
Makamı rast, usülü düyek.

Notasını bulmakta zorlandım, benden sonra arayanlar zorlanmasınlar :)

Eserin sözleri:

B’ais-i berbadım oldu can yakıcı gözlerin

Eser-i zülfünle müzeyyen serâpa gül tenin

Seni kim görse ey melek olur heman esirin

Âleme cellat mı geldi can yakıcı gözlerin


Eserin notası:  Bais-i berbadim

Osmanlıca kelimelerin türkçeleri:

Bais 1: Şiddetli zarara uğramış kimse

Bais 2:  Sebep olan, icap ettiren

Zülf (zülüf): Yüzün iki yanından sarkan saç lülesi

Müzeyyen: Bezenip süslenmiş, ziynetli

Serap (serab): Şaşkın hâle gelme. Çorak yerlerde, çölde sıcak ve ışığın te’siriyle ileride, yakında yahut ufukta su veya yeşillik var gibi görünme hâdisesi.

Yazı kategorisi: Türk Müziği | Etiketler: , , , | » yorum bırak;

N'ideyim Sahn-ı Çemen Seyrini Cânânım Yok – Hacı Sâdullah Ağa

Yazan: ali ihsan Ekim 23, 2009

Ah n’ideyim sahn-ı çemen seyrini cânânım yok
Ah bir yanımca salınır serv-i hırâmânım yok
Yâr kurbanın olam yâr dost hayrânın olam dost
Yel lel li ye le lâ lâ lâ
Ömrüm ye le lâ li te rel li ye
Le lâ lâ lâ lâ ömrüm ye le lâ li
Ah bir yanımca salınır serv-i hırâmânım yok

Eserin Notası:
Hicâz Yürük Semâî Sayfa 1
Hicâz Yürük Semâî Sayfa 2

Güftesi Enveri‘ye bestesi Hacı Sâdullah Ağa‘ya   ait.
Ttnetmüzik‘te Münir Nurettin Selçuk‘tan ve Zeki Müren‘den dinlenebilir.

Yazı kategorisi: Türk Müziği | Etiketler: , , , | » yorum bırak;

Grub Boot

Yazan: ali ihsan Ağustos 4, 2009

grub> rootnoverify (hd0,0)
grub> makeactive
grub> chainloader +1
grub> boot

Yazı kategorisi: Linux | Etiketler: , | » yorum bırak;

PSPP de Tek Yönlü ANOVA (One Way ANOVA)

Yazan: ali ihsan Ağustos 1, 2009

Anova (Varyans Analizi), temel olarak anakütle ortalamaları arasında fark olup olmadığını araştıran istatistiksel bir yöntemdir. Örneğin A, B ve C gibi üç sınıfımız olsun. Bu sınıfların başarı düzeyleri arasında fark olup olmadığını araştırmak için Anova kullanabiliriz. Ayrıntılı bilgi için  Vikipedi’nin Varyans Analizi başlığını inceleyebilirsiniz.

Ben bu yazıda Python programlama dilinin 2.4, 2.5 ve 2.6 versiyonlarında 30 farklı kod çalıştırdım ve çalışma sürelerini saniye cisinden kaydettim. Şimdi PSPP yardımıyla versiyonların çalışma sürelerinin ortalamaları arasında fark olup olmadığını test edeceğim. Yani versiyonlar arasında hız açısından bir değişme olup olmadığını araştıracağım.

PSPP’yi açalım ve sol alt kısımdan variable view a geçelim. Burası değişkenlerimizi tanımladığımız kısım.

Biri grup ve biri süre olmak üzere iki değişkenimiz olacak. Grup değişkeni versiyonları belirtmek üzere sırasıyla 1,2,3 değerlerini alacak. Süre değişkeni saniye cinsinden ölçtüğümüz değerleri barındıracak. Değişkenlerimizi bu şekilde girelim. İkisi de sayısal tipte olacağı için herhangi bir değişiklik yapmamıza gerek yok. Varsayılan değişken tipi zaten sayısal.

Değişken Tanımı

Değişken Tanımı

Versiyon değişkenimiz grupları içereceği için Values kısmından gruplama yapıyoruz :

anova_gruplarVersiyon değişkeninin Values sütununa tıklayıp yukarıdaki gibi değerleri giriyoruz. Üç tane grubumuz var.

Variable View tarafında işimiz bitti. Data View tarafına geçip ölçümlerimizi girelim:

30 kodu 3 versiyonda da  denedim. Yani version sütununda ilk 30 satıra 1.00, 31-60 satırlarına 2.00 ve 61-90 satırlarına da 3.00  giriyoruz. 1.00 Python2.4′ü ifade ettiği için, 1.00 yazan satırların karşısına Python2.4 için yaptığımız ölçümlerin sonuçlarını giriyoruz. Diğer versiyonlar için de aynı şekilde…

Veri Girişi

Veri Girişi

Verileri PSPP içine almak için türlü yollar denedim ama olmadı. Hatta kod yazarakta içeri veri alınabiliyormuş.

Dökümanlarında bişeyler var ama ben sonuç alamadım. Denediğim kod:

anova_script

F numerik bir değişkeni almak istediğimizi belirtiyor. 6.3 ise alacağımız verinin toplam 6 karakter oluğunu virgülden sonra da 3 karakter isteediğimizi belirtiyor. Sondaki nokta ise GET DATA bloğunun bitişi için.

Sonunda text dosyasından verileri SPSS içine attım. Sonra o dosyayı kaydedip PSPP de açtım. Ölçümleri buradan alabilirsiniz.

Şimdi anovanın uygulanışına geçelim.

anova_anova

Analyze > Compare Means > Oneway Anova yolunu takip ediyoruz:

anova_anova2Çıkan pencerede Dependent Variable kısmına  version değişkenini Factor kısmına da sure değişkenini atıyoruz.

Statistics kısmından Homogeneity seçeneğini işaretliyoruz. Bu seçenek çıktıda varyansların eşit olup olmadığını inceleyen Levene testinin sonucunu gösterecek. Anova yapabilmemiz için varyasnların homojen olması gerekiyor.

Ok a basıp çıktımızı alıyoruz:

anova_cikti1

1.1 den version değişkeni için Significance sütununa bakıyoruz: 0.108>0.05 olduğu için

Ho: Varyanslar eşittir. hipotezini kabul ediyoruz.

Yazı kategorisi: Özgür Yazılım, İstatistik | Etiketler: , , | » yorum bırak;

SSH ile Parolasız Erişim

Yazan: ali ihsan Temmuz 30, 2009

Eğer uzaktaki bir hesaba SSH ile parolasız erişmek istiyorsak bunu ssh-keygen programının oluşturduğu anahtarlarla yapabiliriz. ssh-keygen programı biri açık, diğeri de bu açık anahtarın gizli anahtarı olmak üzere 2 anahtar oluşturur. Ev dizinimizde .ssh klasörüne girdikten sonra

ssh-keygen -t type -f filename

komutuyla anahtarları oluşturabiliriz. type kısmına rsa veya dsa dan birini yazabiliriz. eğer -t parametresini kullanmazsak anahtar rsa tipinde oluşturulacaktır.
-f parametresiyle oluşacak anahtara isim verebiliriz. -f parametresini kullanmazsak anahtar dosyası id_rsa ismiyle oluşturulacaktır. Diğer parametreler için man sayfasına bakabilirsiniz.
Komutu çalıştırdıktan sonra ssh-keygen bize passphrease sorar. bu kısmı boş bırakırsak bağlantı tamamen parolasız gerçekleşir. Eğer burada bir parola girersek
artık bağlanırken otumumuzun şifresini kullanmamız gerekmez ama passphrease girmemiz gerekir. Ben bu kısmı boş bırkıyorum.
komut sonlandıktan sonra .ssh klasöründe eğer -f parametresini kullanmamışsak id_rsa ve id_rsa.pub olmak üzere iki dosya oluşacaktır.
id_rsa.pub dosyası açık anahtarı, id_rsa dosyası da gizli anahtarı içerir. id_rsa.pub dosyasını bağlanmak istediğimiz hesabın ev dizininin .ssh klasöründe bulunan authorized_keys dosyasının içine atmalıyız:

cat id_rsa.pub | ssh user@host ‘cat>>.ssh/authorized_keys’

komutu authorized_keys dosyasına bizim açık anahtarımızı girecektir. bağlanacağımız hesapta .ssh klasörü ve authorized_keys dosyası olmayabilir. Eğer yoksa bunları elle oluşturabiliriz.
Daha sonra uzaktaki hesabımıza son kez parola girerek bağlanıp kullanıcı izinlerini değiştirmemiz gerekir.

ssh user@host

kotmutu ile bağlanırız. Parolayı girdikten sonra uzaktaki makinada ev dizinimizde bir konsol açılır. İzinleri değiştirmek için

chmod 700 .ssh

ve

chmod 640 .ssh/authorized_keys

komutlarını çalıştırırız. 700 parametresi o dosya üzerinde sadece o dosyanın sahibi olan kullanıcının okuma yazma ve çalıştırma yetkisinin olmasını sağlar. Burası benim takıldığım noktalardan biri idi. Çünkü ssh authorized_keys dosyasını başka kullanıcıların erişimine açık olduğunu  anlarsa o dosyayı kullanmayı reddedecektir. ssh -v parametresi ile birlikte kullanarak yapılan işlemlerin ayrıntılarını görebilirsiniz. Eğer -f parametresini kullanmışsak ve anahtar dosyasına bir isim vermişsek -i (identify file) parametresiyle anahtar dosyasının bulunduğu dizini ve dosyanın ismini belirtmemiz gerekir. Örneğin .ssh klasöründe host1_to_host2 isimli bir anahtar dosyamız varsa

ssh user@host2 -i ~/.ssh/host1_to_host2

şeklinde kullanarak parolasız bağlantıyı sağlayabiliriz.
Exit deyip bağlantıyı kesebiliriz. Bundan sonraki bağlantılarımız parolasız gerçekleşecek.

Parolasız erişim için gerekli ayarları yaptık. Şimdi bir ruby scripti ile bağlantı kurmayı deneyelim: Örneğin karşı makinada ev dizinimizde bulunan klasör ve dosyaların listesini elde etmek istiyoruz.

liste=%x{ssh hedefmakine ls}
puts liste

Burda belitmem gereken bir ayrıntı var. Eğer karşıdaki makina ile başında oturduğumuz makinadaki kullanıcı hesabımız aynı ise bağlanırken sadece makina adını yazmak yeterli olur. Eğer kullanıcı adını girmezsek ssh kullanıcı hesaplarının aynı isimde olduğunu varsayarak oturduğumuz makinadaki kullanıcı adımızla bağlanmaya çalışacaktır.
İlk satır liste değişkenine hedefmakine’de bulunan ev dizinimizdeki dosya ve klasörlerin listesini atar. İkinci satır bunları ekrana yazar. Ben bu çıktıyı almak için system fonksiyonu üzerinde uğraştım. Ama bir türlü listeyi elde edemedim.
System fonksiyonu true veya false döndürüyor. Listeyi sadece ekrana basıyor, o çıktıyı kullanamıyoruz.

Karşı makinada çalıştırdığımız komut yine bir ssh komutu olabilir. Örneğin:

ssh m1 ssh m2 ls

Başında bulunduğumuz makina m1 makinasına, m1 makinası da m2 makinasına parolasız erişebiliyorsa ve 3 makinadaki oturumlarımızın ismi aynı ise bu komut m2 makinasındaki ev dizinimizin listesini verecektir. Parolasız erişimler yoksa bu komut çalışmaz.

Yazı kategorisi: Linux, Network, Ruby | Etiketler: , , , | » yorum bırak;

Debian Paket Depoları – Kökten Çözüm

Yazan: ali ihsan Temmuz 29, 2009

Bir süredir debian veya ubuntu üzerine bir program kurmak istediğimde kendimi internette paket deposu ararken buluyorum. Her program için bunları teker teker sources.list dosyasına girmek gerekiyor. Bu zorluktan kurtulmanın bir yolunu ararken dün  paket depolarının tüm listesini buldum: http://www.apt-get.org/main/

Burdan ihtiyacım olanları alıp kullanabilirdim ama benim aklıma daha temiz bir çözüm geldi:

Depoların hepsini sources.list dosyasına eklemek :)

Yukarıdaki adresi önce pythonla okuyup bir dosyaya yazdım. Sonra düzenli ifadeler kullanarak html etiketlerini ayıkladım. “deb ” ile başlamayan satırları eledim.  deb den sonraki tek boşluk “debian” ile ve “deb-src” ile başlayan satırları almamak içindi. Geriye paket depolarının /etc/apt/sources.list dosyasına girmeye hazır olan adresleri kaldı.

deb_repoBunları bir dosyaya yazdım.

Yaklaşık 380 satırlık bir liste oldu. Listeyi sources.list dosyasına girmek için:

cat deb_repo>>/etc/apt/sources.lit

komutunu verdim. apt-get update yaklaşık 12 dakika sürdü. Update bittikten sonra Synaptic i çalıştırdım. /var/lib/apt/lists dizininden bir kaç site silmem gerekti.

sources.list dosyasındaki bir kaç site için  de  hata verdi.

Hatayı takip edip o siteleri çıkardıktan sonra tekrar update ettim.

Yaklaşık 30000 paket listeledi. Vlc nin 1.0 versiyonu yine gelmedi ama olsun. Artık  paketlerin çoğu elimin altında :)

Şimdilik işe yarayacakmış gibi duruyor. Yan etkilerini bekleyip göreceğiz.

1  GÜN SONRA

Pek işe yarayan bir çözüm değil :) Zira Synaptic hata vererek çalışıyor ve çok fazla gereksiz depo var.

Listedeki satırları elerken “unstable”, “non-free”, “contrib”, “kde”, “testing”,  “woody”, “sarge” kelimelerinin bulunduğu satırları eledim:

if i[:4]==”deb ” and “unstable” not in i and “non-free” not in i and “contrib” not in i and “kde” not in i and “testing” not in i and “woody” not in i and “sarge” not in i:

Daha sade bir liste oluştu. 6000 küsür paket var. Ubuntu üzerinde denediğim için hala paket kurmada sorun yaşıyorum. En kısa zamanda debian’da deneyeceğim.

Yazı kategorisi: Linux, Python, Özgür Yazılım | Etiketler: , , , , | » yorum bırak;

SSH – Bağlanma ve Dosya Kopyalama

Yazan: ali ihsan Temmuz 24, 2009

İdentra’da yapmakta olduğum staj süresince ilk projem SSH üzerine idi. Bu vesileyle SSH ile yakından tanışma fırsatı buldum. Edindiğim tecrübeleri, karşılaştığım sorunları ve bu sorunlara bulduğumuz çözümleri burada yazmaya çalışacağım. Projeyi Ruby üzerinde geliştirdiğim için yazılara gerektiği yerde Ruby kodlarını da ekleyeceğim.

SSH (Secure SHell – Güvenli Kabuk) kısaca ağ üzerindeki bir sunucu ile bağlantı kurmaya yarayan bir protokoldür.

Bağlanmak istediğimiz makinada bir hesabımız olduğunu varsayarsak:

      ssh username@ip

komutu bağlanmak için yeterli olur. Bu komut bizden karşı makinadaki oturumumuzun parolasını ister. Parolayı girdikten sonra bağlantı gerçekleşir. İp yerine makina ismi de yazılabilir ve bağlanacağımız makinada SSH sunucusunun çalışıyor olması gerekir. Parolayı girdikten sonra karşıdaki makinada bir konsol açılır ve yetkilerimiz çerçevesinde işlemlerimizi gerçekleştirebiliriz. İşimiz bittiğinde exit komutunu verip ssh oturumunu sonlandırabiliriz. Bağlandığımız makinada bir komut çalıştırmak istersek bu komutu bağlanmak için kullandığımız komutun arkasına ekleyebiliriz:

      ssh username@ip ls

Bu komut bize konsol açmayacak sadece istediğimiz işlemi gerçekleştirip oturumu sonlandıracaktır.

SSH ile dosya kopyalamak için scp komutunu kullanırız. Genel kullanımı şu şekildedir:

      scp user@host1:file1 user@host2:file2

Bu komut host1 deki file1 i host2 ye file2 ismiyle kopyalar. Yani scp komutundan sonra kopyalanacak dosyayı sonra kopyalanacağı yeri yazıyoruz. Karşıdaki makinadan kendi makinamıza bir dosya kopyalayacağımız zaman

      scp username@host:filename .

komutunu veririz. Bu komut karşı makinada ev dizinimizde filename ile ismini belirttiğimiz dosyayı kendi makinamızdaki ev dizinimize kopyalar.Kendi makinamız için username ve host belirtmemize gerek yok. filename den sonra gelen nokta ev dizinimizi belirtir. nokta yerine ~ karakteri de kullanılabilir, aynı anlama gelir. ~/filename2 şeklinde kullanırsak dosyayı buraya filename2 ismiyle kopyalar. Kendi makinamızdaki bir dosyayı karşıya kopyalayacağımız zaman

      scp filename user@host:

komutunu veririz. filename dosyası host makinasında ev dizinimize kopyalanır. : den sonra :/a/b şeklinde kopyalayacağımız klasörü belirtebiliriz.

Eğer scp ile büyük bir dosya kopyalıyorsak ve bu dosyanın yavaş yavaş gelmesini istiyorsak bağlantı hızına limit koyabiliriz. Bunu scp nin l (limit) parametresiyle yaparız:

      scp -l 1000 filename user@host:

komutunu verdiimiz zaman dosya 1000 Kbit/s. ile kopyalanacaktır.

Yazı kategorisi: Linux, Network | Etiketler: , | » yorum bırak;