Saturday, July 30, 2011

Çalınan JSTOR dökümanlarından çıkan istatistiksel veriler ile ne yapılır

Geçen haftalarda 18,592 JSTOR makalesi "çalınmıştı" ve bir çok torrent listesinde yerini almıştı. Bu kadar fazla dokuman kitlesini ustelikte duzensiz bir sekilde paketlenmis bir kalabalıgı indirmek kimin işine yarar diye ben de düsünmedim degil. Tabi olayın özünde 'bilimsel calismalar satılamaz' ilkesi vardi.

Ancak mkrecny bunlarla güzel bir istatistik çıkarmış.

  • Ortalama cümle uzunluğu daha kısa olan dokümanlar daha fazla alıntılanmış.
  • Daha az unique kelime içeren dokümanlar  daha fazla alıntılanmış.
  • Daha fazla alfadebik olmayan semboller içeren (rakamlar dahil) dokumanlar daha fazla alıntılanmış.


meseleyi irdeleyin : mkrecny.com/entry/15/

Tuesday, July 5, 2011

Google Suggest Api

Aslında official olarak bir api değil.
Şu şekilde epey kullandım
http://www.google.com/complete/search?hl=tr&client=suggest&js=true&q=test

hl parametresi dil ayarıdır.

Bir kaç gündür test ediyorum ve fark sanırım bir gün için bir ip'ye 50.000 sorgu kadar limit verilmiş. Çünkü artık 403 hatası vermeye başladı.

Ayrıca Yahoo suggest de var o ise günlük bir IP'ye 5.000 sorgu limiti veriyor ve google kadar güzel sonuclar vermiyor

Friday, July 1, 2011

Artık Google Appscript

Çeşitli medya takip sistemlerimi artık google app script ile google docs a taşiyorum. İnanılmaz kolay. Javascript olmasi bir yana network islemlerinde cross-doamin sorunlari yaşamadan kodlayabiliyor, diger kullanicilarin scriptlerinden de faydalanabiliyorsunuz.
Online editor ve debugger'i ile pratik cozumler yaratabilirsiniz. Simdilik sadece twitter ve google dan cesitli datalari fetch ediyorum ve raporluyorum.


Konuyu irdelemek icin : http://code.google.com/googleapps/appsscript/

Bi kaç ekran görüntüsü.



Wednesday, June 29, 2011

Cok Ozetle MapReduce nedir derseniz

Resim 1 - Hadoop işleyişini anlatan bir görsel. Gelen datasetini daha kucuk chunklara bolerek isler ve sonucu verir [1]


(Konuyu şuradan da uygulamalı olarak irdeleyebilirsiniz [2] )

Mapreduce temelde büyük datasetleri işlemesi gereken sistemlerde datasetini daha ufak parcalara (chunks) bolup birden fazla birimin islemesini saglayan sistemlerdir. Ozellikle Facebook, twitter ve google oldukca ileri seviyede kullanıyorlar. Google bu konuda surada makele yayınlamış olabilir [3]. Evet yayınlamış hatta hem slide [4] olarak hem de makale olarak [5].
Mapreduce  calisma stratejisini ozetleyen bir gorsel yazının başındaki gorseldir.

Map ve Reduce katmanı vardır. Map katmanı gelen işi ilgili birimlere dağıtır ve çıktıyı verir. Reduce atmanı ise gelen çıktıları tek bir işlem sonucu olarak verir. Bu arada hem map hem de reduce katmanı birden fazla birimden olusuyor.
Teknik olarak detaya giremeyeceğim çünkü henüz hiç kullanmadım ancak akla şu soru takılabilir 'Eğer map veya reduce katmanlarından bir birim arızalanırsa ne olur?' .  Bu durumda islem devam eder ancak arizali birimin isi diger birimlere verilir. Scalability dendiğinde en önemli kısmı MapReduce almaktatır.


1. http://www.cs.berkeley.edu/~ballard/cs267.sp11/hw0/results/htmls/Muzaffar.html
2. http://michaelnielsen.org/blog/write-your-first-mapreduce-program-in-20-minutes/
3. http://research.google.com/pubs/papers.html
4. http://labs.google.com/papers/mapreduce-osdi04-slides/index-auto-0025.html
5. http://labs.google.com/papers/mapreduce-osdi04.pdf


İlgili olabilecek veya beraberinde incelenebilecek diğer anahtar kelimeler
Distributed computing <link>
Machine Learning

Thursday, May 5, 2011

Memcached : Deleting by Namespace

Bu tricki bilmiyordum. 


While memcached does not support any type of wildcard deleting or deletion by namespace (since there are not namespaces), there are some tricks that can be used to simulate this. They do require extra trips to the memcached servers however.Example, in PHP, for using a namespace called foo:

$ns_key = $memcache->get("foo_namespace_key");
// if not set, initialize it
if($ns_key===false) $memcache->set("foo_namespace_key", rand(1, 10000));
// cleverly use the ns_key
$my_key = "foo_".$ns_key."_12345";
$my_val = $memcache->get($my_key);
//To clear the namespace do:
$memcache->increment("foo_namespace_key");


Konuyu irdeleyin : http://code.google.com/p/memcached/wiki/FAQ#Deleting_by_Namespace

Thursday, April 7, 2011

cUrl proxy

İstek sınırı olan servisleri kullanırken cUrl' bir proxy listesi verip arada değiştiriyorum. Daha fazla kullanmış oluyorum. Bazen de bu yaptığım bu servisleri kötüye kullanmak mıdır diye düşünüyorum.


curl_setopt($ch, CURLOPT_PROXY, "http://proxy.gazi.edu.tr:2001");
curl_setopt($ch, CURLOPT_PROXYPORT, 2001);
curl_setopt ($ch, CURLOPT_PROXYUSERPWD, "user@gazi.edu.tr:password");

Tuesday, April 5, 2011

CKEditor IE9

IE9 ile CKEditor hatalar vermeye başladı. Günellemeniz gerek.
Js paketlenme metodundaki bir uyumsuzluk olduğu belirlenmiş.
http://ckeditor.com/download

Monday, March 28, 2011

kendime not : ffmpeg bir nimetin varlığını unutma




Ffmpeg hayat kurtarandir mesela kolayca şunlar yapılır
http://www.commandlinefu.com/commands/tagged/76/ffmpeg
Resmi sitesi şudur : http://www.ffmpeg.org/
Büyükçe dökümantasyonu vardır :  http://www.ffmpeg.org/ffmpeg.html

Ücretsizdir ama destek olabilirsiniz.

internet haftası etkin katılım çağrısı

Maili aynen yapıştırıyorum


From: Mustafa Akgul <akgul@bilkent.edu.tr>
Date: 2011/3/27
Subject: [akgul-duyuru-306] internet haftasi etkin katilim cagrisi
To: akgul-duyuru@inet-tr.org.tr

internethaftasi.org.tr,  bt-stk.org.tr

Merhabalar,

12 nisanda Turkiye İnterneti 18. dogum gününü kutlayacak.
Bilisim Sivil Toplum Kuruluslari olarak 11 - 24 nisani İnternet haftasi olarak kutluyoruz.
Ekte somut önerileri de içeren Etkin Katilim Cagrisi yer almakta.

Her Internet gönüllüsünden, her yurttaşdan mütevazı destek bekliyoruz.    Bu internethaftasi.org.tr webinde görüşlerini yazmaktan, banner ve logolari yaymaktan, kendi çevresiden interneti konuşmak, web, gazete, radyo ve televizyonlarda bu konularda okuyucu görüşü yazmak, makale yazmak, soru sormak; bir yerde konuşmak, tartışmaya katılmak, yeni bir şeyler öğrenmek, yeni bir şeyler öğretmek gibi geniş bir yelpazede olabilir.

...
internethaftasi.org.tr 

Friday, March 18, 2011

Güzel Kitap : "The Elements of Content Strategy"



Content strategy is the web’s hottest new thing. But where did it come from? Why does it matter? And what does the content renaissance mean for you? This brief guide explores content strategy’s roots, and quickly and expertly demonstrates not only how it’s done, but how you can do it well. A compelling read for both experienced content strategists and those making the transition from other fields.

Detay :  http://gel.io/1BP


Ancak bir sorun var, ilk sipariş verenlerden olmama rağmen siparişim tam 2,5 haftada geldi.

Tuesday, February 1, 2011

installing node.js - for lazy guys

Üşengeçseniz ve konuya yeniyseniz, vaktiniz yoksa vs Node.js kurmak ve hemen denemek için

sudo apt-get install g++ libssl-dev curl apache2-utils
sudo apt-get install git-core
git clone git://github.com/ry/node.git
git clone https://github.com/joyent/node.git
cd node
./configure
make
sudo make install

Wednesday, January 19, 2011

Analytics annotation bug?

Analytics'de annotation eklerken bazı html tagların geçerli olduğunu fark ettim.


1.

2.

Friday, January 7, 2011

telnet ile memcach'e bağanıp test etmek istersen

Bağlanmak için (host port):
telnet 192.168.200.12 11211
Bir key'e değer atamak :
set testkey 1 0 11 Hello world 
1 : flag (arbitrary metadata),
0 : expiry (ie. never expire) 
11 : expect the value 11 bytes long
bir değeri almak
get testkey
Çıkış
quit
Diğer komutlar
stats  
stats items  
stats slabs  
delete  
replace  
add
http://11x.blogcu.com/telnet-ile-memcache-test-etmek/9427166

Tuesday, January 4, 2011

Nokta'da 2 Ayda 4 Hayati Öğreti

Nokta'da 2 aydan çok daha uzun bir süredir çalışıyorum ancak ilk iki ay Nokta'daki organik gelişim modeline dahil olmamla bir çok yeni şey öğrenip bazı bildiklerimin de ne kadar önemli olduğunu fark ettim ve iki ayın sonunda "bir yazı yazayım bununla ilgili" dedim. Ancak benim tipik özelliklerimden biri olan "akademik ertemele isteği" yüzünden yeni yazabiliyorum (akademik erteleme diye bir şey varmış evet. daha güzel bu şekilde denmesi.)

1. JFRI
“Just Fucking Release It” Ferruh Bey'in JDI ve JFDI'dan uyarlaması (http://ferruh.mavituna.com/motivasyon-oku/).
Nokta'da ilerleme sürecindne çok kullanılan bir "öğreti" :). Bu öğreti yine Ferruh Bey'in bahsettiği gibi "Release Often Release Early" çağrısının en güzel avantajlarından (http://catb.org/esr/writings/cathedral-bazaar/cathedral-bazaar/ar01s04.html).
Yapılan bir proje veya yenilik olabildiğince erken yayınlanır ve gelişimene devam eder.

2. Kullanıcıyı Dinle - Gerçekten Dinle - İyi Dinle
Sıkça yapılan değerlendirme toplantılarında kullanıcıyı dinlemek üzerine fazla mı abartıyorlar dediğim zamanlar geride kaldı. Kullanıcının önemini henüz anladım. Yapılan işlerde kendi kişisel görüşümü zaman zaman minimuma indirip kullanıcı davranışları gözlemleyip değerlendirdikten sonra karar vermem gerektiğini "gerçekten" öğrendim.

3. Bilmiyorsan Öğrenebilirsin Demektir
Burada pekiştirdiğim bir slogan oldu. 

4. "That's my family Kay, that's not me." (Michael,  Godfather, http://www.imdb.com/title/tt0068646/quotes?qt0361856)  
Ekip önemli bir kavram. Bunu herkes bilir ancak bu öğretiyi gerçekten öğrendiğim yer burası oldu. Ekip uyumu, ekip motivasyonu bunun gibi “ekip” ile başlayan şeyler... Aslında önemli şeylermiş.
"Finding good players is easy. Getting them to play as a team is another story." -  Casey Stengel (http://en.wikipedia.org/wiki/Casey_Stengel)

Friday, December 24, 2010

monitoring active connections

watch -n .5  "netstat -an | grep ESTABLISHED"

Friday, December 17, 2010

monitoring sphinx status

watch -n .5 /opt/sphinx/bin/searchd --status

Saturday, December 11, 2010

thenounproject.com - free svg symbols

Bir arkadaşım gösterdi  http://thenounproject.com/ da svg formatında çok güzel semboller vardı.

Sitenin amacı kendi sayfalarında da belirttikleri gibi yüksek kalitede popüler sembolleri ücretsiz olarak dağıtmak.

Sitedeki eksik hepsini indirememek sanırım. Şunu yazarak hepsini indirdikten sonra şöyle bir baktım güzel bir arşiv oldu. T-shirt, duvar, kapı her yere yapıştırabilecek svg formatında sembollerim oldu hepsi bu :)


#!/bin/bash
NUMBER=1
while [ $NUMBER -lt 250 ]; do
  wget http://thenounproject.com/site_media/zipped/svg_$NUMBER.zip
  let NUMBER=NUMBER+1
done

Saturday, November 27, 2010

Google App Engine Çalışmalarınızda Memcache (python)

Performans ve hız için App engine üzerinden çalışırken memcache kullanmak isteyebilrisiniz.

Python ile çalışıyorsanız bu şöye yapılıyor.


from google.appengine.api import memcache
....
...
# cache deki veriyi cekmek  
output = memcache.get("memcache-key")
# cache de varmi diye kontrol
if output is not None:
        # cache de varsa onu bas 
        print output
    else:
        # cache de yoksa veriyi cek ve cache yaz 
        output = ....
        memcache.add("memcache-key", output, 120)
        print output

Saturday, November 20, 2010

my .vimrc

Her yeni sistemde temizce böyle ayarlarım hemen.

syntax on
set autoindent
set showmatch
set smartindent
set tabstop=4
set shiftwidth=4
set ruler
set backup
set backupdir=~/.vim/backup
set directory=~/.vim/tmp
set cul
hi CursorLine term=none cterm=none ctermbg=3
if has("autocmd")
  filetype plugin indent on
endif
set nu
set showcmd        
set showmatch     
set ignorecase      
set smartcase        
set incsearch         
set hidden 

Wednesday, November 17, 2010

hello from google cl

google command line tool u deniyorum