Tuesday, August 23, 2011

delicious apisi ile link tagliyorum

delicious'un son durumunu bilmiyorum, kapanacak mı ne zaman kapanacak emin değilim ama elimdeki bazı linkleri onunla tagliyorum
Aşağıdaki official apisi bana bunu sağlıyor
http://feeds.delicious.com/v2/json/urlinfo/data?url=http://www.webrazzi.com

[
{
"hash":"b41ae64e2e80ba1806245c61179ad903",
"title":"Webrazzi",
"url":"http:\/\/www.webrazzi.com\/",
"total_posts":209,
"top_tags":
   {"blog":77,"web2.0":54,"internet":36,"web":33,"technology":29,"webrazzi":23,"news":19,"haber":17,"blogs":14,"webdesign":13}
}
]

Thursday, August 18, 2011

Google Profanity ile istenmeyen kelime filtreleme meselesi

wdyl.com açılalı epey oldu. wdyl altında bir basit servis ve google'ın resmi bir apisi olan profanity api ile bir kelimenin istenmeyen ifade olup olmadığını anlayabilirsiniz.
"xxx"
"porno"
gibi ifadeler

Kullanımı basit
http://www.wdyl.com/profanity?q=ankara
"q" parametresine kelimenizi verin "true" veya "false" alacaksınız. "true" olması istenmeyen bir kelime olması demektir.
örnek çıktı (json formatında veriyor)

http://www.wdyl.com/profanity?q=ankara
{"response": "false"}


http://www.wdyl.com/profanity?q=porno
{"response": "true"}


As Wade notes, a simple snippet of PHP code can be used with apps via a JSON call to query whether or not Google thinks any given text contains rude words.
meseleyi irdeleyin http://labs.phurix.net/posts/googles-official-profanity-api


Tuesday, August 16, 2011

ElasticSearch Geo Location Search

Daha önce ElasticSearch kullanmaya başladığımdan ve gelişmiş bir kaç özelliğinden bahsetmiştim.

ElasticSearch gelişmiş filtrelemesi ile son derece performanslı olarak polygonal geo search ve distance calculation yapabildim. Aşağıdaki örnekte ayrıca "distance" parametresi verilerek ilgili uzaklıktaki nokta kayıtları da getirilebiliyor. Test için oluşturduğum ElasticSearch indexinde 300.000 rasgele nokta vardı. Sorgu hızını raporlamadım ancak genellikle 0.01 - 0.03 sn civarında cevap aldım. ElasticSearch kurlu makineye ram'i az ayırdığımdan cevap süresi biraz uzamış oldu. Genel oalrak performansını sevdim ancak. Location bazlı aramalar için de ideal bir search engine.

{
    "filtered" : {
        "query" : {
            "match_all" : {}
        },
        "filter" : {
            "geo_polygon" : {
                "place.location" : {
                    "points" : [
                        {"lat" : 40, "lon" : -70},
                        {"lat" : 30, "lon" : -80},
                        {"lat" : 20, "lon" : -90}
                    ]
                }
            }
        }
    }
}


Meseleyi irdeleyin
http://www.elasticsearch.org/guide/
http://www.elasticsearch.org/blog/2010/08/16/geo_location_and_search.html

Friday, August 12, 2011

ElasticSearch advanced search

ElasticSearch search engine olarak hala gözümde son derece esnek ve hızlı. Benzer içerikleri veya duplicate içerikleri bulmak için de gayet hızlı bir tool olarak kullanıyorum.

ElasticSearch ileri düzey filtreme teknikleri var bunlardan birisi de FLT (Fuzzy Like This Query) . İleri düzey çünkü zaten var olan More Like This filtresinin Levenstain ile geliştirilmiş hali gibi.

Text verileriniz içinde benzer olanları veya duplicate olanları bulmak için oldukça ideal.

Örnek bir sorgu

{
"fuzzy_like_this" : 

  {
    "fields" : ["blog.title", "blog.tags"],
    "like_text" : "futbol ve sinema hakkında",
    "max_query_terms" : 20, "min_similarity" : 0.5
  }
}







Meseleyi irdeleyin : 


Thursday, August 11, 2011

error: Setup script exited with error: command 'gcc' failed with exit status 1

python modülleri kurarken, derlerken bu hata sıkça çıkabilir

error: Setup script exited with error: command 'gcc' failed with exit status 1

Bu durumda 
sudo apt-get install python-dev

python-dev kurmanız gerekmekte.

Wednesday, August 10, 2011

TOR force renew ip

TOR kullanırken ip adresimi tekrar yenileme ihtiyacım oldu.
İlk önce terminalden tor'un bendeki portu olan 9500 portuna bağlanıp burada bahsedildiği gibi  newnym komutu gönderdim. Bu ip adresimi yenilemeye yetmedi. Tek yapmam gereken toru yeniden başlatacak bir bash script dosyası yazmaktı aslında :

sudo /etc/init.d/tor restart

Yeniden başlatmanız yeni ip almanız için yeterli.

Telnet ile bağlanıp yenile komutu göndermek için önce torrc dosyanızı düzenlemelisiniz.

sudo vi /etc/tor/torrc

dosyada bu satırı bulun ve başındaki "#" işaretini kaldırın

#ControlPort 9051

Artık telnet ile bağlanabilir ve yenile diyebilirsiniz.


telnet 127.0.0.1 9051
AUTHENTICATE
signal NEWNYM
quit


veya bunu bir sh dosyasına yazar ve öyle çalıştırısınız şöyleki


#!/usr/bin/expect -f
# telnet into tor and get clean path using expect

spawn telnet 127.0.0.1 9051
expect "Escape character is '^]'."
send "AUTHENTICATE\r"
expect "250 OK"
send "signal NEWNYM\r"
expect "250 OK"
send "quit\r"



Konuyu irdeleyin https://trac.torproject.org/projects/tor/wiki