Hediyemiz Emeğimiz

Ablamın doğum günü için arkadaşım İdris ile birlikte ablamın odasının duvarına aşağıdak armayı çizdik. Sanırım bir Karşıyaka fanatiği için daha güzel bir hediye olmazdı :)

Kaf Sin Kaf

MySQL veritabanı ile ilgili bazı bilgileri öğrenmek

MySQL kullanıyorsanız, phpMyAdmin gibi bir arayüzünüz olmadığı zaman veritabanı ile ilgili bilgi almak için aşağıdaki sorguları kullanabilirsiniz.

Var olan veritabanlarını görmek:

show databases;

Bir veritabanını kullanmak için seçmek:

use veritabani_ismi;

Bir veritabanındaki tabloları listelemek:

show tables;
show tables from veritabani_ismi;

Bir tablonun oluşturulma scriptini görme:

show create table tablo_ismi

Bir tablonun kolonlarını görme:

describe tablo_adi

Konsoldan Rastgele String Oluşturma

Konsoldan rastgele stringler oluşturmak için bir çok yöntem var, bunların bir çoğu random ve urandom aygıtlarını kullanıyor. Benim şimdi anlatacağım yöntemle urandom aygıtını kullanıyoruz. < /dev/urandom tr -dc A-Za-z0-9 Burada tr komutuna standart girdi olarak /dev/urandom aygıtını gösteriyoruz. urandom rastgele değerler üretir, bu üretilen değerlerin bazıları yazdırılabilir bazıları da yazdırılamayan karakterlere denk gelir. Biz tr komutu ile bu rastgele üretilen değerlerden alfanümerik olanları ayıklıyoruz. Tabi bu komut sonsuza kadar çıktı üretir, sadece istediğimiz kadarını almak için head komutunu kullanabiliriz. < /dev/urandom tr -dc A-Za-z0-9 | head -c32 Bu komutla çıktının ilk 32 karakterini alıyoruz. tr kullanarak yapacaklarımızın limiti hayal gücümüz kadar. []

Linux'ta disk doluluk oranının yanlış hesaplanması

Bir sunucuda garip bir problemle karşılaştım, diskte yer kalmadığını söylüyordu fakat ne yaparsam yapayım diski dolduran dosyaları bulamıyordum. Biraz araştırınca sorunu ve çözümünü buldum. Senaryo şöyle idi: Dosya bir program tarafından okumak için açılır. Başka bir program bu dosyayı siler. Bu senaryo gerçekleştiğinde, her ne kadar dosya silinmiş olsa da, hala diskte yer tutmaya devam edecektir. “du” komutuyla baktığınızda yer tutmayacaktır, ancak df ile kontrol ettiğimizde disk dolu olarak görünecektir. Basit bir demo yapacağım: Öncelikle 1GB boyutunda bir dosya oluşturacağım. mkdir /tmp/tmp_directory/ cd /tmp/tmp_directory/ dd if=/dev/zero of=1gb_file.dat bs=1M count=1024 Oluşturulan bu dosyayı python ile açacağım. python Python 2.7.4 (default, Jul 5 2013, 08:21:57) [GCC 4. []
df  disk  du  free space 

Python Sözlük Hızlı Rehber

Başlığında söylediği gibi, Python sözlük hızlı rehber # Anahtar/değer çiftleriyle sözlük tanımlama dict = { 'anahtar1′ : 'deger1′, 'anahtar2′ : 'deger2′, 'anahtar3′ : 'deger3′ } # Tüm anahtarları al sozluk.keys() # Tüm değerleri al sozluk.values() # Düzenleme sozluk['anahtar2'] = 'deger8′ # Erişim print sozluk['anahtar1'] # 'deger2'yi yazdır print sozluk['anahtar2'] # Boş sözlük tanımlama ve değer atama bosSozluk = {} bosSozluk['anahtar4'] = 'deger4' # Sözlük üzerinde döngü kurma (foreach) for anahtar in sozluk: print sozluk[anahtar] # Anahtarları sıralayıp, o sıraya göre değerleri yazdırmak anahtarlar = sozluk.keys() anahtarlar.sort() for anahtar in anahtarlar: print sozluk[anahtar] # Değerlere göre döngü kurmak (sıralı değil) for deger in sozluk. []

Listeler ile ilgili garip bir döküman

Bu yazı oluşturulurken http://www.pythonforbeginners.com/python-lists-cheat-sheet/ adresindeki yazı referans alınmıştır. Bir çok yeri doğrudan çeviri olmakla beraber bir kısmını kendim baştan yazdım. Yazım - Mantık hataları vs. bulursanız yorum yazmaktan çekinmeyin. Liste Nedir? Bir veya birden fazla elemanı tutmak için kullanılan en basit veri yapısıdır. Liste elemanlar topluluğudur (string, integer ve hatta diğer listeler). Listedeki her bir elemana index değeri atanır. Listeler köşeli parantezler ile açılıp kapatılır. Listedeki her bir eleman virgül ile ayrılır. Stringlerin aksine listeler mutable - değişkendir, bunun manası listeler değiştirilebilir. Liste Yaratma Listeler köşeli parantez ile açılıp kapatılan, virgülle ayrılmış elamanlarla yaratılır. Listeler bir takım değerler tutar (aynı stringlerin karakter serileri barındırması gibi). []
list 

Off the Record Messaging (OTR)

Off the Record Messaging (OTR) anlık mesajlaşma servislerinde güvenli olarak mesajlaşmak için geliştirilmiş bir protokoldür. Birçok anlık mesajlaşma uygulaması için eklentileri geliştirilmiştir. Ben pidgin ile birlikte kullanıyorum. Özel olarak kalmasını istediğiniz sohbetlerinizi OTR kullanarak güvenli bir şekilde yapabilirsiniz. [1] adresinde OTR ile ilgili wikipedia sayfasını bulabilirsiniz. [2] adresinde OTR ana sayfası bulunmakta.

Pidgin ve Ubuntu kullanıcıları için kurulum çok basit:

sudo apt-get install pidgin-otr

Bir çok dağıtım deposunda OTR hazır olarak gelmektedir. Windows kullanıcıları da pidgin için kurulum dosyasını OTR’ın web sayfasından indirebilir.

Aşağıda kullanım ile ilgili videoyu izleyebilirsiniz.

[1] http://en.wikipedia.org/wiki/Off-the-Record_Messaging
[2] http://www.cypherpunks.ca/otr/index.php

crypto  im  otr 

cURL ile GET/POST ve cookie kullanımı

cURL kullanarak komut satırından istediğimiz bir web sayfasına get/post istekleri yapabiliriz. –data parametresi ile post edilecek verileri gönderebiliryoruz. Url sonuna ekleyeceğimiz parametreler de get olarak gönderilecektir. curl --data "param1=value1&param2=value2" http://example.com/index.php Web sayfasının döndürdüğü sonu doğrudan ekrana basılacaktır, bunu bir dosyaya aktarmak için curl --data "param1=value1&param2=value2" http://example.com/index.php > result.html bir değişkene aktarmak için result=$(curl --data "param1=value1&param2=value2" http://example.com/index.php) kullanabiliriz. Erişmek istediğimiz web sayfası kullanıcı girişi istiyorsa cookie kullanrak bunu yapabiliriz. curl --data "username=askin&password=pasw0rd" http://example.com/login.php -c cookie.cook Bu komutla giriş yapıp, oluşturulan cookie’yi cookie.cook dosyasına kaydettik. Tabi burda username ve password parametreleri değişiklik gösterebilir, gönderilen form verisini inceleyerek, gerekli parametreleri bulup uygun formatta göndermek gerekir. []
cookie  cURL  get  post 

Pidgin ile kendi domain'imizden gtalk

Eğer kendi domain adımızla gmail kullanıyorsak, aynı adres ile gtalk da kullanabiliyoruz. Gmail web arayüzünden doğrudan gtalk kullanabiliyoruz, fakat iş pidgin gibi harici bir programla bunu yapmaya geldiğinde bir iki ayar yapmamız gerekiyor.

Kendi adresim için nasıl bir ayar yaptığımı göstereceğim. Adresim askin [at] askin.ws. Aşağıdaki resimde yapılması gereken ayarlar yazıyor.

pidgin-gtalk-1

pidgin-gtalk-2

Usb bellek üzerinde Raspberry PI

Malesef sd kart olmadan raspberry pi’yı boot etmemiz mümkün olmuyor. Benim elimde 1GB’lık bir sd kart vardı ve 2GB dan daha ufak imaj dosyaları bulamadım. Bu nedenle usb bellek ile boot etme ihtiyacı duydum. Benim sistemimde usb bellek ve sd kart aşağıdaki şekilde tanındı: usb: /dev/sdd sd: /dev/sde Öncelikle indirdiğimiz imaj dosyasını usb belleğimize kopyalıyoruz dd if=2013-02-09-wheezy-raspbian.img of=/dev/sdd Elimizde bulunan sd karta 1 adet fat32 bölüm oluşturuyoruz (oluşturduğunuz bölüm hem ilk sırada hem de birincil bir bölüm olmalı). Bunu ister Gparted gibi bir araçla yapın isterseniz fdisk kullanın. Bölümleme işlemlerini yaptıktan sonra aşağıdaki komutları uygulayın. mkdir /tmp/mnt_sd /tmp/mnt_usb mount /dev/sdd1 /tmp/mnt_usb mount /dev/sde1 /tmp/mnt_sd cp /tmp/mnt_usb/* /tmp/mnt_sd Bu işlemleri yaptıktan sonra /tmp/mnt_sd/cmdline. []