Wednesday, November 28, 2012

(PHP) Mongo -> MongoClient

Php ile Mongo kullanirken kullandiginiz Mongo eklentisini artik kullanmayin. Zira guncellendi ve adi MongoClient oldu. Harika da oldu.

MongoClient'da en onemli degisiklikler


  1. Safe mode varsayilan olarak 'on'
  2. WriteConcern yine artik varsayilan olarak '1' geliyor. 
Yeni driver ile ilgili detaylari buradan inceleyin ve sisteminizi guncelleyin :  http://www.php.net/manual/en/class.mongoclient.php


Sunday, November 18, 2012

Neo4j Fancy Graph Data Visualization

Ve bu sayede tum node'lariniza kendisine ozgu ikonlar verebilirsiniz.

1. New Profile 'Data Browser' sayfasinda


2. Add rules. builtin image veya kendi ikon adresinizi verebilirsiniz.



3. Artik tüm node gorunumleriniz ayni olmak zorunda degil. 



Friday, October 5, 2012

Talk by Steven Jobs - IDCA 1983 by MB Tech



The “Lost” Steve Jobs Speech from 1983; Foreshadowing Wireless Networking, the iPad, and the App Store

Thursday, August 30, 2012

git http.postBuffer error

Cok buyuk dosyalari "push" eylerken su hatayi alabilirsiniz

"Unable to rewind rpc post data - try increasing http.postBuffer"  

bu durumda gercekten buyuk boyutta oush yapiyorsunuz demektir.
Sunu deneyin ve tekrar push deneyin

git config http.postBuffer 209715200 

Tuesday, August 21, 2012

Bu hafta ilgimi çeken 3 link ve bir iOS uygulaması


  1. Pub/Sub with MongoDb - Quick Start tadinda http://blog.mongodb.org/post/29495793738/pub-sub-with-mongodb
  2. Hal ve Gidiş Sıfır / Zéro de Conduite – Jean Vigo 1933 - "jean vigo’ nun filmi , merkezi söyleme, okul-öğretmen diktasına karşı vurulmuş müthiş bir yumruk, bir özgürleşme zaferidir." http://anticopyrighttr.wordpress.com/2012/08/15/hal-ve-gidis-sifir-zero-de-conduite-jean-vigo-1933/ (evet teknik olmayan bir mevzu)
  3. "Deploy your Node.JS applications to http://Nodester.com for FREE"
  4. Things sanirim aradiginiz turden bir "Takvim & Todo" uygulamasi. Ben iPad'e kurdum. "Things 2" adiyla OS versiyonu da var o da harika. Verilerinizi iCloud ile eslestiriyor ve guncel tutuyor.

Friday, August 10, 2012

Mountain Lion ve git

Mountain Lion'a yukseleten herkes git sorunu yasiyor. Tek yapilmasi gerken XCode'unuzu AppStore'dan guncellemek. Guncellerseniz bunun yani sira bir cok uyumsuzlugu da giderecektir.

Bu hafta ilgimi ceken 3 link

  1. What can “Hadoop” do for genomics?
  2. Scoop.it - Epeydir gozatmayi erteledigim bir icerik kesif araci (benim icin sadece kesfetme araci)
  3. MongoDb 2.2 RC0 - Gecen hafta beta'dan cikti ama buyuk veriyle bu hafta denedim. Ozellikle TTL collections mevzusu artik yerine oturuyor. Ayrica  hakkinda bir kac notum var surada.




Thursday, July 26, 2012

MongoDb 2.2 RC0 Güzel Yenilikler

MongoDb 2.2 versiyonu jira.mongo'daki konular ekseninde bir suredir beta olarak gelistiriliyordu.
Simdi gönül rahatlığıyla güncelleyip kullanabilirsiniz.
Genel yenilikler icin http://docs.mongodb.org/manual/release-notes/2.2/


En bekledigim ozellik TTL collections idi. Redis'de olan TTL index mevzusu epey ozendigimiz bir mevzuydu. Mevzunun detaylarina surdan bakabilirsiniz http://docs.mongodb.org/manual/tutorial/expire-data

Var olan indexlerinize TTL atamak istiyorsaniz silip tekrar olusturmalisiniz.
Capped collection'lar uzerinde uygulayamiyorsunuz (Capped collectionlar hala ayni havadalar. dokunulmaz ama performansli.).

Sunun gibi bir TTL index olusturabilirsiniz.
db.logs.ensureIndex( { "time": 1 }, { expireAfterSeconds: 3600 } )


- Onceki versiyonda bu islemi dakikalik calisan cron scriptlerim ile yapiyordum. Bu scriptlerim expire olmus dokumanlari grup grup siliyor ve saatte bir de collection uzerinde "repair" komutu calistiriyordu.

Onemli bir not "_id" uzerine TTL index olusturamazsiniz.

Konuyu iredelemek icin
Release Notes : http://docs.mongodb.org/manual/release-notes/2.2/
All JIRA Issues resolved in 2.2 :  https://jira.mongodb.org/secure/IssueNavigator.jspa?mode=hide&requestId=10907

Tuesday, July 3, 2012

mongodb - count embeded objects

Bir alana gore embeded objeleri saymak icin su sekilde yapiyorum

Saturday, June 30, 2012

mysql master-slave replication problemlerinde

Buyuk boyutlarda dataniz varsa ve master-slave replication yapinizda slave makinenizde guncellenmeme sorununuz mevcutsa kontrol etmeniz gerkenler sirasiyla soyle olmali

- Master sunucuda "SHOW MASTER STATUS\G" komutu. Goreceginiz bilgiyi not edin.

File: mysql-bin.001085
Position: 23152940
Binlog_Do_DB: xxxx
Binlog_Ignore_DB: information_schema,mysql
1 row in set (0.00 sec)

- Problemli slave sunucuda "show slave status\G" komutunu mysql client uzerinden calistirin.

Slave_IO_State: Waiting for master to send event
                  Master_Host: 192.168.200.70
                  Master_User: repl
                  Master_Port: 3306
                Connect_Retry: 60
              Master_Log_File: mysql-bin.001085
          Read_Master_Log_Pos: 26419968
               Relay_Log_File: mysqld-relay-bin.001329
                Relay_Log_Pos: 16690624
        Relay_Master_Log_File: mysql-bin.001033
             Slave_IO_Running: Yes
            Slave_SQL_Running: Yes
              Replicate_Do_DB: xxxxx
          Replicate_Ignore_DB:
           Replicate_Do_Table:
       Replicate_Ignore_Table:
      Replicate_Wild_Do_Table:
  Replicate_Wild_Ignore_Table:
                   Last_Errno: 0
                   Last_Error:
                 Skip_Counter: 0
          Exec_Master_Log_Pos: 16690479
              Relay_Log_Space: 5437822179
              Until_Condition: None
               Until_Log_File:
                Until_Log_Pos: 0
           Master_SSL_Allowed: No
           Master_SSL_CA_File:
           Master_SSL_CA_Path:
              Master_SSL_Cert:
            Master_SSL_Cipher:
               Master_SSL_Key:
        Seconds_Behind_Master: 80737
Master_SSL_Verify_Server_Cert: No
                Last_IO_Errno: 0
                Last_IO_Error:
               Last_SQL_Errno: 0
               Last_SQL_Error: 

Bu asamada kontrol etmeniz gerekenler Last_SQL_Error, Last_IO_Error ve Seconds_Behind_Master.
Eger Last_SQL_Error  icin bir hata aciklamasi veya kodu mevcutsa buyuk ihtimalle master uzerinden gelen bozuk ve yarida kesilmis bir sorgudandir. Aciklama olarak bir sorgu verilmisse once bu sorguyu db uzerinde calistirin. Calismamasi gerken bir sorgu ise siraya yapmaniz gerekenler

STOP SLAVE; -- master'dan sorgu gelisini durudur. slave'i durdurur. mysql servisini degil.
SET GLOBAL SQL_SLAVE_SKIP_COUNTER = 1;
START SLAVE; 

Tekrar "SHOW SLAVE STATUS\G" ile hata var mi diye kontrol edin. Eger Seconds_Behind_Master azaliyorsa veya zaten 0 ise replication sorunu yok denebilir. Ayni zamanda master uzerinde attiginiz SHOW MASTER STATUS ciktisindaki POSITION ile slave uzerinde gordugunuz position bilgileri en azindan yakin olmali.


Ayrica tam sirada slave uzerinde SHOW PROCESSLIST; ile LOCKED durumunda olan uzun suren sorgular var mi diye de kontrol ediniz. Uzun sure devam eden ve tablolarinizdan bir kacini kilitleyen sorgulariniz da replication durumunun geri kalmasina neden olabilecektir.


Artik hicbir hata kalmamis, uzun suren veya tablolari kilitleyen bor sorgu da yok ve replication ayarlarinizdan da eminseniz ve hala replication geri kaliyorsa su iki durumu da kontrol edin :

1. Makine uzerinden asiri bir yuk mu var. vmstat veya htop gibi araclarla kontrol ediniz.
2. Replication ayarlarinizi bir dokumantasyon yardimiyla kontrol edin http://www.howtoforge.com/mysql_master_master_replication
3. (Bu en onemli madde. Gozden kaçar genelde) Slave uzerinde surekli "freeing items" konumunda duran bir islem var mi?


Ucuncu maddede bahsedilen bir durum varsa genellikle "freeing items" konumunda olan bu islemin Query aciklamasinda "NULL" yazar ama bu replication surecini tikar. Genelde master'da yapilan bulk UPDATE/DELETE islemleri slave'de buna neden olabilir. Buyuk veritabaniniz varsa tum riski size ait olmak uzere su sorgulari calistirisaniz sorununuz cozulecek ve repliaction tekrar guncelligini korumaya baslayacaktir.


(Sunucunuze bu islem sirasinda hicbir sorgu gelmemeli!)

KILL xxxxx; -- xxx = "freeing items" konumunda sıkışan işlemin ID degeri
STOP SLAVE;
FLUSH TABLES; -- http://dev.mysql.com/doc/refman/5.0/en/flush.html
-- FLUSH TABLES islemi uzun surebilir. DAta buyuklugunuze gore.
 START SLAVE;

Wednesday, June 20, 2012

Sphinx İçin Türkçe Sorunları

Sphinx ile Türkçe verilerinizde sorunsuz çalışmak için öncelikle tüm tablolarınızın ve alanlarınızın "utf8 " olduğunu kontrol edin. (Mysql kullandığınızı varsayıyıorum.)

Sphinx ayar dosyasında ilgili "index" ayarı için  şu iki satır ekli olmalı :


charset_type            = utf-8

charset_table           = A->a, B->b, C->c, U+C7->U+E7, D..G->d..g, U+011E->U+011F, H->h, U+49->U+131, U+130->i, J..O->j..o, U+D6->U+F6, P->p, R..U->r..u, U+15E->U+15F, U+DC->U+FC, X->x, W->w, V->v, Y->y, Z->z, a, b, c, U+E7, d..g, U+11F, h, U+131, i..o, U+F6, p, r..u, U+15F, U+FC, x, w, v, y, z

Ayar dosyasında "source" ayarı için de bu satır önemli :


sql_query_pre                   = SET NAMES utf8


Ayrıca min_word_len değerini biraz yükseltirseniz de kimseye zarar gelmez.
min_word_len            = 3

Monday, June 11, 2012

Xubuntu çift monitör sorunları

Ubuntu'da Xfce ile çift monitor ayarları tam bir işkence. Eğer ki  monitörlerinizden birisi farklı yönde çevrilmiş durumdaysa sizi çok uğraştıracaktır.  randr ile uğraşması berbat bir durum.
arandr daha görsel ve pratik bir araç. Oldukça küçük kullanışlı.

apt-get install arandr

veya kaynaktan

git clone git://gitorious.org/arandr/arandr.git

Sunday, May 6, 2012

IndexTank - Real-time Search and Indexing System

Linkedin epey bir sure IndexTank'i opensource yapmisti [1]. IndexTank opensource olmadan once ElasticSearch ile hayranlikla cokca zaman gecirmisitim. Ve su kadarini soyleyebilirim ikisini de search servisi olarak kullanan bir son kullanici olarak IndexTank'da daha iyi olan bir ozellik goremedim.

Ikisi de Apache Lucene uzerine calisiyor. Ancak IndexTank oldukca eski bir surumunu kullaniyor. Gercekten eski bir surum. Ayar dosyasinda 3.0 yaziyor [2] ki su anki Lucene cekirdegi surumu 3.6  [3].

ElasticSearch guide sayfasi [4] alisilagelmis bir dokumantasyon sayfasi gibi olmasa da oldukca ise yarayan egelenceli bir sayfa. ElasticSearh aktif bir mailliste de sahip. IndexTank icin yeterli bir community ve dokumantasyona ulasamadim. Cunku http://indextank.com/ sayfasi aktif degil uzun suredir. Sadece bir linkedin grup sayfasi var ve oldukca yetersiz.


Hemen kurup deneyebilirsin : https://github.com/linkedin/indextank-engine
Kendi performans testlerinizi kendiniz yapabilirsiniz ama tek makine uzerinde kiyaslama yapmak dogru olmayabilir. Cunku IndexTank cloud tabanli bir yapida basarisini kanitlamis bir sistem olarak tanitiliyor.



maven ile derlemeniz gerek. Yani eger sahip degilseniz once maven kurmalisiniz.

Indirdikten sonra

mvn compile package assembly:single

calistirmaniz yeterli artik "target/" altinda olusan jar dosyasini calistirabilirsiniz su sekilde

java -cp target/indextank-engine-1.0.0-jar-with-dependencies.jar com.flaptor.indextank.api.Launcher


Java, python,  ruby ve  php icin onerilen Api client'lar sunlar


Java: https://github.com/flaptor/indextank-java
Python: https://github.com/flaptor/indextank-py
Ruby: https://github.com/flaptor/indextank-rb
PHP: https://github.com/flaptor/indextank-php


Veri alisverisi yine json formatinda. github sayfasinda birkac ornek bulabililirsiniz.



1. "IndexTank is now open source!" : http://engineering.linkedin.com/open-source/indextank-now-open-source
2. https://github.com/linkedin/indextank-engine/blob/master/pom.xml#L19
3. Apache Lucene Releases : http://lucene.apache.org/core/downloads.html
4. ElasticSearch Guide : http://www.elasticsearch.org/guide/

Thursday, April 26, 2012

sketchpad - processing.js ve etherpad birlesince

processing.js ile web canvas ile animasyonlar yaparken etherpad destegi ile hem soyallik hem de ortak  kodlamayi sagliyor. Profesyonel bir arac degil ancak processing.js'yi cok kullanan biriyseniz ayrica seveceksiniz.

http://sketchpad.cc



Galeriye de bir goaztin tabi
http://studio.sketchpad.cc/sp/padlist/all-portfolio-sketches

Wednesday, April 25, 2012

Kötü Mail ve Siteler Listem

Bu listedikiler gerçekten kötü ve internetten yok edilmesi gerek. Sitelerinize üye alımlarda kesinlikle izin vermeyin. Özellikle google'ın şu duyurusundan sonra http://googlewebmastercentral.blogspot.com/2012/04/another-step-to-reward-high-quality.html


Wednesday, March 28, 2012

Close Mongo Connections!

MongoDb makinemde mongostat ile baktığımda gördüğüm connection sayısı  500 civarındaydı.
  

faults locked % idx miss %  conn   
     0      0.5          0   576   
     0      2.7          0   579   
     0      0.6          0   580   
     0      0.3          0   583   
     0      2.7          0   585   
     0      0.4          0   586



PHP tarafında sadece kapatmadığım mongodb bağlantılarını kapatarak bu sayının 30'a düştüğünü gördüm. Get performansında da beklediğim üzere büyük artış oldu.

Şu an da mongostat çıktısı

  qr|qw   ar|aw  conn       time
    0|0     0|0    34   10:40:10
    0|0     0|0    34   10:40:11
    0|0     0|0    35   10:40:12
    0|0     0|0    35   10:40:13
    0|0     0|0    35   10:40:14


Wednesday, March 7, 2012

Wednesday, February 29, 2012

Bu hafta radarima takilanlar - 3 link (httpie, gravity, arya)

Bu hafat sunlar gozume carti ve inceledim

Python-powered HTTP CLI for humans : https://github.com/jkbr/httpie
Gravity unlocks the Interest Graph : http://www.gravity.com/
Mongodb Power web search index : https://github.com/SupermanScott/Arya
Optimizing Object IDs : http://www.mongodb.org/display/DOCS/Optimizing+Object+IDs

Monday, February 27, 2012

Derhal Macport'tan Hombrew'e Gecin

Macports ile paket yonetmek degil paket karistirmak mumkun oluyor sadece.
Silmesi de ayri dert olabiliyor. Henuz Macports ile hic bir paket kurmasaniz da bir takim bagimliliklari yuzunden silinmeyebiliyor su sekilde bir "-f" parametresi ile force edebilirsiniz.

sudo port -f uninstall installed

Tamamen silinmesi icin


sudo rm -rf /Applications/DarwinPorts
sudo rm -rf /Applications/MacPorts
sudo rm -rf /Library/LaunchDaemons/org.macports.*
sudo rm -rf /Library/Receipts/DarwinPorts*.pkg
sudo rm -rf /Library/Receipts/MacPorts*.pkg
sudo rm -rf /Library/StartupItems/DarwinPortsStartup
sudo rm -rf /Library/Tcl/darwinports1.0
sudo rm -rf /Library/Tcl/macports1.0
sudo rm -rf ~/.macports

silmeli ve son olarak dikkatlice ve yedeklerinizi alarak!!!
sudo rm -rf /opt/local
 de kalan dosyalari da silmeli

ve sonunda                    


Ardindan da derhal homebrew e merhaba
/usr/bin/ruby -e "$(curl -fsSL https://raw.github.com/gist/323731)"


Irdeleyin : https://github.com/mxcl/homebrew/wiki/installation

Sunday, February 26, 2012

Sayfa Istatistiklerinde Neden MongoDb Kullanmali

Istatistik verileri icin ihtiyaciniz olan sey hizli bir yazma islemi ve bolca disktir ;)

Disk konusunda kolay genisletilebilmesi ve distrubuted yapisinin kolay kontrol edilmesinin yani sira su uc madde yuzunden sayfa goruntuleme gibi istatistiklerinizi MongoDb'de kullanmaniz icin iki temel neden

  • select - edit - update seklinde bir kullanimdansa $inc ile tek islem yapmaniz yeterlidir. Tek baglanti tek islem tek update. Klasik yontemle de tek insert yaparak devasa buyuklukte gunluk loglar olusturabilirsiniz tabi ardindan bunlari islersiniz. Neden olmasin. Ancak mongodb $inc performansindan vazgecmek istemezsiniz. 
  • write islemleri asenkron gerceklestiginden oldukca hizli gerceklesecektir ve loglama hizini dusurmeyecektir.

Sunday, February 19, 2012

MongDb Disk Temizligi

Ozellikle disk alaninizin neredeyse yarisini kaplayan bir veritabaniniz varsa collection sildiktan sonra mutlaka
db.repairDatabase()

calistirmayi unutmayin yoksa bos yere sildiginiz collection icin ayrilmis alan diskinizde yer kaplayacak.

Mevzu uzerine sunu da okuyun tabi http://www.mongodb.org/display/DOCS/Excessive+Disk+Space

Tuesday, February 14, 2012

David Zuelke : Large-Scale Data Processing With Hadoop and PHP

Kabaca map reduce nedir sorusunu sorduysaniz once bu linkBu sunum da David Zuelke'nin son 6 aydir her konferansta sundugu ve benim de cok begendigim bir cirpida Hadoop-PHP sunumu : Large-Scale Data Processing With Hadoop and PHP (PHPBNL2012 2012-01-27)
View more presentations from David Zuelke

MongoDb ile Aşırı Disk Kullanımı ve Sonrasında Optimizasyon

Senaryomuz su :
MongoDb diskiniz %88 doldu. Makineye yeni bir dik takamiyorsunuz. Gereksiz buyuk boyutlu collectionlar var ve siz bu gereksiz collection'lari sildiniz.
db.col1.drop()
db.col2.drop()
db.col3.drop()
Veri buyuklugunun neredeyse yaridan fazlasini sildiginizi dusunurken hala %88 doluluk orani sizi sasirtti zira mongodb bir takim disk ve indexleme performansi kurallari geregi sildiginiz datanin kapladigi alani diskte hala ayrilmis olarak tutar. Bunun icin collection'lari silmeden once bosaltip ardinddan db.col1.runCommand("compact") calistirmaniz gerekirdi ama artik silindi ve bunu calistirinca hata veriyor (ve tabiki ayni adda bos bir collection acip calistirmak anlamsiz olacaktir).
Bu durumda veri tabanina repair komutu vermek gerekecek ancak bu da kullanimda olan disk alanini kadar bos alana ihtiyaca ihtiyac duyacaktir ve hata verecektir. Bu durumda yapilmasi gereken sey (eger bir disk ekleyemiyorsaniz) elinizdeki var olan datasinin gercekte diskin yarisindan kucuk bir alana sigdigini dusundugunuz veritabanina :

1. db.copyDatabase("db1","db1back") 
2. use db1 
3. db.dropDatabase() 
4. db.copyDatabase("db1back","db1") 
5. use db1back 
6. db.db1() 

19G lik veri icin ortalama yarim saat surdugunu ve hakli olarak bu sirada gelen insert ve find komutlarina cevap vermedgini de ekleyim.

Ek olarak okunmalidir  ki  http://www.mongodb.org/display/DOCS/Excessive+Disk+Space

BOM is evil

\ufeff olarak da kendini gosterebilir tabi. Baş gizli düşmanınızdır unutmayın derim.
Özellikle de bir çeşit api hizmeti veriyorsanız "utf8" i BOM'suz kaydedin aksi halde servisinizden faydalanacak olan istemciler size bolca invalid format hatasi bildirir (xml veya json).
Siz de çıktılarınızı doğru gönderdiginizi iddia edip hatanin kaynagini aradikca beyhude bir ugras isine girmis olursunuz.
Siz daima UT-8 kaydederken BOM'suz kaydedin

Konuyu irdeleyin
BOM : http://en.wikipedia.org/wiki/Byte_order_mark
Unicode : http://en.wikipedia.org/wiki/Unicode
UTF-8 : http://en.wikipedia.org/wiki/UTF-8

Tuesday, January 31, 2012

memcache-top

Memecache sunucularının genel durumuna göz atmak için ufak bir script kullanmaya başladım. Çok "handy"
Zaten kendisine şöyle diyor : "perl command-line memcached stat reporter, top-like output"

Şuradan : http://code.google.com/p/memcache-top/

Şöyle kullanıyorum

memcache-top  --sleep 1 --instances 192.168.200.151,192.168.200.152,192.168.200.153,192.168.200.154,192.168.200.157,192.168.200.158


INSTANCE                USAGE   HIT %   CONN    TIME    EVICT/s READ/s  WRITE/s
192.168.200.151:11211   89.1%   77.0%   31      1.0ms   0.0     213.3K  
192.168.200.152:11211   89.0%   70.9%   33      1.0ms   0.0     198.5K  
192.168.200.153:11211   88.7%   84.7%   24      1.0ms   0.0     171.4K  
192.168.200.154:11211   59.6%   60.6%   39      0.9ms   0.0     196.7K  
192.168.200.157:11211   87.9%   49.8%   53      0.8ms   4.0     243.7K  
192.168.200.158:11211   88.4%   57.0%   29      0.8ms   0.0     176.4K  






Saturday, January 7, 2012

#mongotips 4 - list mongo collections and data sizes

db.getCollectionNames().forEach( function(c){   size = db[c].stats().storageSize; print(db[c] + ' ' +size/1024/1024) } )
ile tek tek collection'lari ve boyutlarini listelemis olursunuz. Ama suna dikkat cekeyim; toplam boyut  mongoDb dataninzin diskte kapladigi alani vermeyebilir. Ozellikle de cok fazla delete islemi yapmissaniz disk alani bosaltilmamis ancak ayrilmis olabilir. Bu sizi yaniltmasin. Bu kullanilmayan alanlari compact komutu ile optimize edebilirsiniz.



Friday, January 6, 2012

mongodb c++ driver on debian etch

sudo scons
scons: Reading SConscript files ...
NameError: name 'AddOption' is not defined:

Eğer debian etch kullanıyorsanız "scons" ile mongodb driver kurulumu hatalar verecektir.
Çözüm için

1. scons son sürümünü inidirn http://www.scons.org/ ve kurun "make install"
2. libboost tüm paketlerini kurun " sudo apt-get install libboost* "

Sunday, January 1, 2012

Google App Engine "Error 409" Hatası Çözümü


Su hata ile karsilastim


Error 409: --- begin server output ---
Another transaction by user xxxx is already in progress for app: xxxx, version: 1. That user can undo the transaction with "appcfg rollback".
--- end server output ---

Aslinda zaten nasil cozebileceginiz cikitda yaziyor. Sadece appcfg'yi bulmaniz ve rollback komutu ile calistirmaniz gerek. Proje dizinin bir ust konumunda su sekilde calistirabilirsiniz : 



python /usr/local/bin/appcfg.py -verbose --no_cookies --email=tayyar.besik@gmail.com --passin rollback xmpp-bot