Python IRC

Bir irc uygulaması yazmayı düşünüyorum. Biraz göz attım, araştırdım ne nasıl oluyor diye. Şimdilik aşağıdaki kodları oluşturdum. Bir kanala mesajı yazıp kaçıyorsunuz sadece :)

import socket

network =’irc.zurna.net’
kanal = ‘#harakiri’
rumuz = ‘omer__’
port = 6667

irc = socket.socket(socket.AF_INET,socket.SOCK_STREAM)
print irc.connect((network,port))
print irc.send(‘NICK %s\r\n’ %(rumuz))
print irc.send(‘USER %s %s %s : Python\r\n’ %(rumuz,rumuz,rumuz))
print irc.send(‘JOIN %s\r\n’ %(kanal))
print irc.send(‘PRIVMSG %s :Merhaba omer\r\n’ %(kanal))
print irc.send(‘PART %s\r\n’ %(kanal))
print irc.send(‘QUIT\r\n’)
irc.close()

Php ve Javascript ile Yildizli Oylama Sistemi

Bir süredir yapmayı planlıyordum. Bir sitede farklı bir yöntem buldum. Onu geliştirmeye çalıştım. Tek sayfalık bir şey çıktı ortaya şimdilik. Sadece temel işlemler yapılıyor. Oylama vs gibi kısmını başka bir zamana bıraktım düzenlemek için.

Php dosyasının bulunduğu yerde resim klasörü açılıp içine konacak olan resim dosyaları aşağıdadır. Yukarıdan aşağıya doğru sıfır dan başlayarak numaralandırmanız gerekiyor.

0.gif
1.gif
2.gif
3.gif
4.gif
5.gif
6.gif
7.gif
8.gif
9.gif
10.gif

Php:
<?php
function Goster($durum){
return “<img src=\”resim/”.$durum.”.gif\” alt=\”\” id=\”yildizoysistemi\” usemap=\”#yildizoysistemi\” style=\”border:0px;\” />”;
}

$sonuc=1;
$durum=0;

$s1=0;
$s2=0.5;
for ($i=1;$i<11;$i++){
if ($sonuc==0){
echo Goster(0);
$durum=0;
break;
};
if ($sonuc>$s1 && $sonuc<=$s2){
$durum=$i;
echo Goster($i);
};
$s1+=0.5;
$s2+=0.5;
};

echo ‘<script type=”text/javascript” language=”javascript”>’;
echo ‘function Duzenle(numara){‘;
echo “document.getElementById(‘yildizoysistemi’).src=’resim/’ + numara + ‘.gif’;”;
echo ‘}’;
echo ‘</script>’;

echo ‘<map name=”yildizoysistemi”>’;
echo ‘<!– #$-:Image Map file created by GIMP Imagemap Plugin –>’;
echo ‘<!– #$-:GIMP Imagemap Plugin by Maurits Rijk –>’;
echo ‘<!– #$-:Please do not edit lines starting with “#$” –>’;
echo ‘<!– #$VERSION:2.0 –>’;
$x1=7;
for ($i=0;$i<10;$i++){
$a=$i+1;
echo “<area shape=\”rect\” coords=\”0,0,”.$x1.”,18\” OnMouseOut=\”Duzenle(‘”.$durum.”‘);\”; OnMouseOver=\”Duzenle(‘”.$a.”‘);\” />”;
$x1+=7;
}
echo ‘</map>’;
?>

Php İle Kelime Ezber Uygulaması

Kendim için Python kullanarak bir ezber programı yapacaktım. Ancak php ile daha kolay olacağı için onla başladım işe. Şimdilik bir küçük uygulama hazır. Aşağıda kodları mevcut. Bazen bir kelime ard arda tekrar ediyor. O sorunu aşarsam hoş bir uygulama olacak.

ekran1.jpg

index.php:

<?php
$liste=simplexml_load_file(‘en_tr_1.xml’);
$toplam=count($liste);

$kelime=”";
$cevap=”";
$islem=”";

if (isset($_GET["cevap"])) $cevap=$_GET["cevap"];
if (isset($_GET["islem"])) $islem=$_GET["islem"];
if (isset($_GET["kelime"])){
$kelime=$_GET["kelime"];
settype($kelime,”integer”);
};

if ($kelime>=0 && $cevap<>”" && $islem==”Biliyorum”){
if ($liste->kelime[$kelime]->tr==$cevap){
echo “Tebrikler <strong>”.$cevap.”</strong> cevabınız doğru.<br /><br />”;
}else{
echo “Yanlış cevap. “;
echo “<strong>”.$liste->kelime[$kelime]->en.”</strong> kelimesinin anlamı “;
echo “<strong>”.$liste->kelime[$kelime]->tr.”</strong> olmalıydı.<br /><br />”;
}
}

if ($islem==”Bilmiyorum”){
echo “<strong>”.$liste->kelime[$kelime]->en.”</strong> kelimesinin anlamı “;
echo “<strong>”.$liste->kelime[$kelime]->tr.”</strong> olmalıydı.<br /><br />”;
}

$rastgele = rand(0,$toplam-1);
echo “<strong>Kelime : </strong>”.$liste->kelime[$rastgele]->en.”<br /><br />”;

?>
<form method=”get” action=”index.php”>
<input type=”hidden” name=”kelime” value=”<?php echo $rastgele; ?>” />
<input type=”text” id=”cevap” name=”cevap” />
<input type=”submit” name=”islem” value=”Biliyorum” />
<input type=”button” onclick=”window.location=’index.php?islem=Bilmiyorum&kelime=<?php echo $rastgele; ?>’;” value=”Bilmiyorum” />
</form>
<script type=”text/javascript”>
document.getElementById(“cevap”).focus();
</script>

en_tr_1.xml :

<?xml version=”1.0″ encoding=”iso-8859-9″?>
<kelimeler>
<kelime>
<en>car</en>
<tr>araba</tr>
</kelime>
<kelime>
<en>book</en>
<tr>kitap</tr>
</kelime>
<kelime>
<en>computer</en>
<tr>bilgisayar</tr>
</kelime>
<kelime>
<en>coffee</en>
<tr>kahve</tr>
</kelime>
</kelimeler>

Güncelleme:

Projeyi geliştirmeye başladım. Yakında bununla ilgili bir internet sitesi yapmayı düşünüyorum. Şimdilik sistemi kullanılabilir ve özelleştirilebilir bir hale getirmekle meşgulüm. Son yapılan düzenlemelerden sonra site aşağıdaki gibi bir şeye benzedi.

ekran2.jpg

Her kelime için iki seçenek sunuluyor. Onlar arasından yapılan seçim sonucunda doğru veya yanlış cevabı verdiğini belirtiyor. Yanlış ise doğru cevabı iletiyor. Burada amaç cevap sayısını arttırıp işi zorlaştırmak değil zorluk çıkarmadan kelimenin hafızaya yerleşmesini sağlamak.

Cevap sayısı iki olunca insan ister istemez hangisi doğru olabilir şeklinde bir düşünceye kapılıyor. Eğer verdiği cevap doğru ise o doğruluğu düşünürken üretilen fikirler kelimenin hafızadaki kalıcığını biraz daha arttırıyor. Tabi bu benim tezim :) . Kendi üzerimde bir süre test edip sonuçları göreceğim. Bakalım işe yarayacak mı?.

Mysql Tablo Karakter Seti Değiştirme

Bir proje için Drupal içerik yönetim sistemi ile uğraşıyordum. Türkçe karakterler kayıt sırasında sorun çıkartmazken görünümde bozulmalara sebebiyet veriyordu. Biraz araştırma ile bunun veritabanı, tablo ve hücre karakter setlerinden kaynaklandığını öğrendim. Ancak çok sayıda tablo olunca bunu -phpmyadmin ile- yapmanın epey süreceğini anladım bir kaç denemeden sonra. Ardından aşağıdaki kodları buldum.

Bir tablo içerisindeki tüm elemanların ve tablonun karakter setini değiştirmek için:

ALTER TABLE `tablo`  CONVERT TO CHARACTER SET utf8 COLLATE utf8_general_ci;

sql kodunu kullanabilirsiniz(Ben utf8 e ayarlamaya çalıştım).

Pisi Bul

Pardus kullanıyor ve neden az paket var diyorsanız PisiBUL’u henüz kullanmadınız demektir. http://pisibul.sourceforge.net/tr.html adresinden proje sayfasına erişebilirsiniz. Ben hemen Bluefish ve Phpmyadmin paketlerini bulup kurdum. Normal bir şekilde de kurulabilir ama bu hali ile daha toplu oluyor.

Chmod ve Alt Dizin – Dosyalar , Sufi

Yedekleri ntfs dosya formatlı diskten root olarak aldığımdan (diğer türlü erişemedim zaten) normal kullanıcı grubundan erişim imkanı olmuyordu. Teker teker yapmak günlerimi alacaktı. Biraz araştırmadan sonra aşağıdaki komutları buldum. İlkini belirtilen dizinin alt dizin izinleri için, ikincisini ise alt dosya izinleri için kullanabiliyorsunuz.

#find Yedek/ -type d -exec chmod 777 {} \;

#find Yedek/ -type f -exec chmod 777 {} \;

~~

Sufi/Sonsuzluğa Hasret  tavsiye ederim.

Kaydırma Sorunu

Fare üzerindeki kaydırma aracı debian üzerinde çalışmıyordu. /etc/X11/XF86Config-4 dosyası üzerinde aşağıdaki kalın yazan yerleri ilave edince bir sorun kalmadı.

Section “InputDevice”
Identifier    “Configured Mouse”
Driver        “mouse”
Option        “CorePointer”
#Eskisi    /dev/input/psaux şeklindeydi
Option        “Device”        “/dev/input/mice”
Option        “Protocol”        “PS/2″
Option        “Emulate3Button”    “true”
Option        “ZAxisMapping”        “4 5″
EndSection

Section “InputDevice”
Identifier    “Generic Mouse”
Driver        “mouse”
Option        “SendCoreEvents”    “true”
Option        “Device”        “/dev/input/mice”
Option        “Protocol”        “ImPS/2″
Option        “Emulate3Button”    “true”
Option        “ZAxisMapping”        “4 5″
EndSection

Section “ServerLayout”
Identifier    “Default Layout”
Screen        “Default Screen”
InputDevice    “Generic Keyboard”
InputDevice    “Configured Mouse”
    InputDevice    “Generic Mouse”
EndSection

Pardus 2007.1 Kurulum Sorunu

Pardus’un 1.0 sürümünü deneyebildim sadece. Diğerlerinde hep kurulum sırasında hatalarla karşılaştım. Pardus 1.1 de kurulum yapılıyor gibi gözüküyor ama beklemeye rağmen bir sonuç alınamıyor aynı ekranda kalakalıyordu.

Pardus 2007.1 kurulumu sırasında beni yine bir hata bekliyordu. Bu seferde crc error.. System Halted şeklinde bir hata ile karşılaştım. Buna kurulum sirasinda çıkan hata demek doğru olmaz. Sadece cd yi okudu ve sistemi kontrol etme kısmına geçecekti.

Cd de sorun vardır diye düşündüm ve üç defa aynı iso dosyasını yaktım(40x , 20x , 4x). Sonuç değişmedi. Birde bu iso dosyasının indirilmesi var tabi. 15 saatlik bir vakit harcadım.

Bu hata ile karşılaşan pek yok gibi. Arama yaptım ama bir kaç sonuç çıktı. Onlarda da klasik cevaplar vardı(cd bozuk, hızı düşür, iso bozuk vs).

Linux34 den bir pardus siparişi vermek ya da byte plus dergisini almak iyi bir seçenek olabilir.

Solaris 10 DVD leri , PHP5 Yazı Dizisi

Bugün aslında python ile py2exe kullanımına dair bir kaç örnek vermeyi düşünüyordum ancak biraz can sıkıntısından dolayı bir şeylerle uğraşamadım. Bende bari bir iki tane, ziyaret edilip faydalanılabilecek adres verip günü kurtarayım :)

Şu sayfa ile php5 hakkında biraz fikir sahibi olabilirsiniz. Bu sayfa ilede bir kaç Solaris 10 dvdsine sahip olabilirsiniz.

Gimp ile Web 2.0 Tarzı Etiket

Gimp ile yapmaya uğraştığım ama bir türlü beceremediğim bir şeydi. Photoshop programı ile ilgili bir video görmüştüm. Ancak bunu gimpte uyguladığımda sorun çıkıyordu. Sonunda farklı bir yollada olsa bunu başarabildim.

Öncelikle bir kare oluşturup bunu bir katman olarak ayarlıyoruz. Sonra bu katmanı dört kez kopyalıyoruz.

gimp-web2_0-sticker-ekran1.jpg

İlk katmandaki kare normal, ikinci katmandaki kare 45 derece eğimli, üçüncü katmandaki kare 22.50 derece eğimli ve dördüncü karede -22.50 derece açı ile ayarlanıyor. Katmanı derece ile döndürmek için Tools>Transform Tools>Rotate yolu kullanılıyor yani kısaca shift+R.

gimp-web2_0-sticker-ekran2.jpg

Ardından içinde karelerimizin bulunduğu katmanları birleştiriyoruz. Birleştirme işine en üstteki katmandan başlamanız ve birleştirme içinde katmana sağ tıklayıp “Aşağı Birleştir” işlemini uygulamanız gerekiyor.

gimp-web2_0-sticker-ekran3.jpg gimp-web2_0-sticker-ekran4.jpg

Bu oluşan şekli zevkinize göre düzenleyebilirsiniz. Ayrıca isterseniz diğer çalışmalarınızda kullanmak üzere bunu bir fırça haline dönüştürüp işinizi kolaylaştırabilirsiniz. Bunun için son oluşan katmanın hepsini seçili hale getirip menüden Script-Fu>Selection>To Brush.. özelliğini kullanabilirsiniz.

Ben biraz üzerinde çalışıp aşağıdaki gibi bir çalışma ortaya çıkardım.

gimp-web2_0-sticker-ekran5.png

Birde video hazırladım.

Sonraki Sayfa »