Archive for October, 2008

Yeni Bir İş, Puanın Sırasını Bulma

Monday, October 27th, 2008

16 Ekim'den beri istcall'da çalışıyorum. Bu süre zarfında projelerle ve diğer uğraşılarımla pek ilgilenemedim. Ama yavaş yavaş adapte oluyorum bu düzene. İşin sevindirici tarafı Linux ve Python'dan uzak kalmamam olsa gerek. Diğer bir sevindirici tarafı ise artık tasarımla uğraşmam gerekmiyor.

Bazen lazım oluyorlar, listelemekte fayda var unutmamak için.

  • Bir dizinin boyutunu öğrenebiliriz : du -hs /home/
  • rm -f * ile silinemeyecek kadar çok dosya varsa kullanabiliriz : find . -name '*' | xargs rm
  • Linux sunucu üzerinde ms access veritabanı dosyasından veri çekmek için kullanabiliriz : mdbtools (PHP'de exec, Python'da os.system() ile işe yarayabilir web uygulamaları için. Yanız bu paket Pardus'da yok ya da ben bulamadım)
  • n tane işlem için işleri çok kolaylaştırabilir : imacros for firefox.
  • Pdf dosyasından veri almak için kullanılabilir: pdftotext (PHP'de exec ile işe yarayabilir.)
Aşağıda puanlara göre bir liste oluşturup, id değerine göre kullanıcı puanının kaçıncı sırada olduğunu bulmaya yarayan bir sınıf mevcut. Bir arkadaşın işine yarayacak sanırım.
 
< ?php
class sirala{
    var $db = null;
 
    function sirala(){
        $this->db = mysql_connect('localhost','root','vertrigo');
        mysql_select_db('test');
    }
 
    function kapat(){
        mysql_close($this->db);
    }
 
    function veriEkle($veriSayisi){
        for($count=0;$count< $veriSayisi;$count++){
            $point = rand(0,$veriSayisi);
            mysql_query(sprintf('insert into tablo(isim,puan) values("%s",%d)',
                'isim-'.$count,
                $point
            ));
        }
    }
 
    function veriSirala(){
        $result = mysql_query('select * from siralama');
        if (mysql_numrows($result)==0){
            mysql_query('insert into siralama(liste) values("")');
        }
        $puan_listesi = array();
        $result = mysql_query('select * from tablo order by puan desc ');
        $count = 1;
        while ($row = mysql_fetch_object($result)){
            $puan_listesi[$row->id] = $count;
            $count++;
        }
 
        mysql_query(sprintf('update siralama set liste="%s"',
            serialize($puan_listesi)
        ));
    }
 
    function sirayiAl($id){
        $result = mysql_query('select * from siralama ');
        $data = mysql_fetch_array($result);
        $data = unserialize($data[0]);
 
        return $data[$id];
    }
}
 
$sirala = new sirala();
 
// Test amaçlı 100 veri ekle.
$sirala->veriEkle(100);
// Eklenen verileri sırala ve siralama adındaki tabloya oluşan listeyi aktar
$sirala->veriSirala();
// ID değerine göre kişinin sırasını ekrana yaz.
echo $sirala->sirayiAl(90);
 
$sirala->kapat();
?>
 

Yeni Dönem

Wednesday, October 8th, 2008

Okul bu yaz bitti. MYO olduğu için bir miktar daha okuyacağım. Ancak 2009 DGS ile bu şekillenecek gibi. Şimdilik sınavsız geçiş hakkımı kullanıp açıköğretime kayıt yaptıracağım. Askerlik ile ilgili durumuda bir kaç hafta önce halletmiştim 2011'e kadar. Şimdi önümde değerlendireceğim bir vakit bulunmakta.

Okul nedeniyle bir süredir kişisel çalışıyordum. Okul bittiğine göre bu vakti bir işte çalışarak değerlendirmek benim için faydalı olacağa benziyor. Umarım kısa zamanda uyum sağlayacağım bir firma ile anlaşırım :)

PyTR ile Python konusundaki bildiklerimi -pek sık olmasada- yazarak insanları bilgilendirmeye çalışıyordum. Bir süre önce Python TR günlüğüne katıldım. Artık orada da yazmaya çalışacağım. Django ile ilgili bir yazı ile orayada merhaba dedim.

Not Al ve Gedit Patron biraz daha gelişti. Gedit Patron'u django ve google app engine için özelleştireceğim. Şimdilik bazı eksiklikleri var.

Not Al içinse geliştirme süreci yeni özellikler ekleyerek devam ediyor. Son olarak SSH üzerinden notları aktarma ve alma özelliği eklendi. Bu özelliği biraz geliştirdikten sonra müsait bir vakitte notlara etiket ekleme özelliğini ekleyeceğim.

Eğer projelerinizde SSH ile ilgili bazı işlemler yapacaksanız paramiko modülünü kullanabilirsiniz. Ben bu modülü kullanarak şöyle bir sınıf oluşturdum ve Not Al için kullandım. Yalnız windows üzerinde deneme fırsatım olmadı. Özellikle derleme işleminden sonra sorun çıkıp çıkmadığını test etmem gerekiyor.

Eğer roundcube kullanırken aşağıdaki gibi bir hata ile karşılaşıyorsanız şu sayfayı ziyaret etmenizde fayda var.

 
PHP Fatal error:  Call to undefined method MDB2_Driver_Datatype_mysql::getDBInstance()
 

Uzun süre yazmıyordum. Ortaya konu olarak bayağı karışık bir girdi çıktı :) .