Category Archives: Genel

Videoları FFMPEG ile Youtube’a yüklemek için kodlamak

ffmpeg -i <input file> -codec:v libx264 -crf 21 -bf 2 -flags +cgop -pix_fmt yuv420p -codec:a aac -strict -2 -b:a 384k -r:a 48000 -movflags faststart <output_name>.mp4

kaynak: https://www.virag.si/2012/01/web-video-encoding-tutorial-with-ffmpeg-0-9/

Cloudflare API’ına Konsoldan Erişmek

Cloudflare neredeyse bütün fonksiyonlarını kontrol edebileceğiniz bir API sunuyor. Bunu PHP, Perl, Java, Python vs. çeşitli dillerde yazdığınız programlarda kullanabilirsiniz. Ayrıntılı döküman şurada: https://www.cloudflare.com/docs/client-api.html

Daha önce Apache loglarını inceleyip XMLRPC saldırısı yapan IP’leri belirleyen bir betik yazmıştım. Tespit ettiği IP’leri bana eposta ile bana gönderiyordu. Şimdi bunu güncelleyip, otomatik olarak Cloudflare Firewall’undan engelleyen bir hale çevirdim. Son hali şöyle oldu:

 

#!/bin/bash
if [ "$#" -ne 1 ];
then
  LIMIT=100
else
  LIMIT=$1
fi
 
MY_EMAIL=""
CLOUDFLARE_API_KEY=""
DATE=`date`
LIST="\nMore than $LIMIT:"
WARNING="\nMore than $LIMIT:\n"
IPTABLES="\niptables command:"
TOTAL=0
 
echo -e "### xmlrpc Attack Detection ###\n$DATE\n"
 
for IP in $(grep "POST /xmlrpc.php" /var/log/apache2/access*log | awk '{print $1}' | awk -F ':' '{print $2}' | sort | uniq)
do
  COUNT=`grep $IP /var/log/apache2/*.log | grep xmlrpc.php | wc -l`
 
  if [[ "$COUNT" -gt $LIMIT ]];
  then
    CLOUDFLARE=`curl -s https://www.cloudflare.com/api_json.html \
      -d 'a=ban' \
      -d 'key='$IP \
      -d 'tkn='$CLOUDFLARE_API_KEY \
      -d 'email='$MY_EMAIL`
 
    echo "IP: $IP count: $COUNT"
    LIST="$LIST\n$IP"
    WARNING="$WARNING\n$IP     => count: $COUNT\n$CLOUDFLARE\n"
    IPTABLES="$IPTABLES\niptables -I INPUT 1 -s $IP -j DROP"
    ((TOTAL=$TOTAL+1))
  fi
done
echo "Total: $TOTAL IP addresses"
 
echo -e $LIST
echo -e $IPTABLES
 
if [[ "$TOTAL" -gt 0 ]];
  then
  echo -e $WARNING |mail -s "xmlrpc attack warning" $MY_EMAIL
fi

Sunucu saldırı altında mı?

http://www.mkyong.com/linux/list-all-ip-addresses-connected-to-your-server/

Design Patterns

Design patterns konusunu şu site güzel özetlemiş: http://sourcemaking.com/

Hadoop nedir

BigData’yla ilgilenen herkesin anlayabileceği basit bir anlatım:

şurada da ücretsiz eğitim videoları var: zerotoprotraining.com

Malware temizleme

adwcleanerWindows’ta bir dosyayı silmek isteyip de başka birisi tarafından açıldığı için silemediğimde sinir olurum. Kimin açmış olduğunu görmek için Unlocker diye bir program indirdim. Yanında YouTube Accelerator ve ShopperPro gibi bir sürü Malware’le birlikte geldi. Program Ekle/Kaldır’dan kaldırmak ve Program Files’tan dosyalarını silmek yeterli olmayınca AdwCleaner‘ı buldum ve çok memnun kaldım.

Siteleri yorumlarla sosyalleştirmek

Yönettiğim WordPress ile yapılmış birkaç web sitesinde Disqus‘ı kullanarak tartışma alanı açmayı düşünüyorum. Bu da denemesi olsun.

Edit: biraz araştırmaya başlayınca farklı alternatifler de olduğunu gördüm. Özellikle IntenseDebate ve Livefyre’i deneyeceğim. Sonra da şurada listelenenleri: http://explorerhub.com/blog/disqus-intensedebate-alternatives/

Edit2: Disqus ilk 3 seçenek arasında Türkçe dil desteği ve arayüzünün kolaylığı ile öne çıkıyor. Livefyre’nin gerçek zamanlı olması hoş. IntenseDebate de WordPress’e şekil olarak daha uygun gibi. Yine de bu 3 seçeneğin hepsinde, ziyaretçinin bu siteler üzerinde hesap açmak zorunda oluşu hoşuma gitmedi.

Acaba, WordPress.com’daki gibi ziyaretçinin yorum yapabilmek için Facebook, Twitter veya Google+ hesabı ile giriş yaptığı ama benim siteme veya başka bir siteye kayıt olmasına gerek bırakmayan ve yorumu sadece benim sunucumda kaydeden bir eklenti bulabilir miyim?

Ya da sadece Facebook comments’i kullanıp geçsem mi?

Pebble ile ilk denemeler

4 hafta önce sipariş ettiğim Pebble akıllı saatim nihayet elime geçti ve denemelere başladım. Deneyimlerimi ilgilenelerle paylaşmak istiyorum. Black Friday için yapılan 20$’lık indirimle 130$’a aldım ve gümrüğe de takılmadan doğrudan adresime geldi.

2013-12-29 23.14.27

Öncelikle çok şık ve rahat bir saat. Sade arayüzünü çok beğendim. Android 4.4 çalışan Nexus 4’ümle sorunsuz bir şekilde çalışıyor. Gelen aramaları ve SMS’leri saatte görmek -ne kadar gerekli olduğunu bilmesem de- hoş. Güzel uygulamalar ve saat arayüzlerini ücretsiz edinebiliyorsunuz.

1-2 gün üzerinde gelen 1.10 versiyonlu firmware ile kullandıktan sonra geliştirmeye başlamaya karar verdim. v2.0 hala beta aşamasında ama geliştiriciler için daha çok imkan sağladığı için önce saatin firmware’ini 2.0’a yükselttim, sonra da SDK’sını Macbook’uma (Mac OS X Lion 10.7.5) indirdim.

SDK Kurulumu

Kurulumun tüm adımları https://developer.getpebble.com/2/getting-started/macosx/ adresinde verildiği için tekrar yazmayacağım ancak dikkat edilmesi gereken iki nokta var.

  • PebbleSDK-2.0-BETA4/requirements.txt dosyası hatalı. Pillow için iki ayrı versiyon girilmiş. Yükleme yapabilmeniz için birisini silmeniz gerekiyor. Yoksa şöyle hatalar alıyorsunuz:
Double requirement given: Pillow>=2.2.1 (from -r /Users/mustafa/pebble-dev/PebbleSDK-2.0-BETA4/requirements.txt (line 2)) (already in Pillow==2.0.0 (from -r /Users/mustafa/pebble-dev/PebbleSDK-2.0-BETA4/requirements.txt (line 1)), name='Pillow')
Storing complete log in /Users/mustafa/Library/Logs/pip.log
iMustafa:PebbleSDK-2.0-BETA4 mustafa$ cat /Users/mustafa/Library/Logs/pip.log
Double requirement given: Pillow>=2.2.1 (from -r /Users/mustafa/pebble-dev/PebbleSDK-2.0-BETA4/requirements.txt (line 2)) (already in Pillow==2.0.0 (from -r /Users/mustafa/pebble-dev/PebbleSDK-2.0-BETA4/requirements.txt (line 1)), name='Pillow')

Exception information:
Traceback (most recent call last):
  File "/Library/Python/2.7/site-packages/pip-1.4.1-py2.7.egg/pip/basecommand.py", line 134, in main
    status = self.run(options, args)
  File "/Library/Python/2.7/site-packages/pip-1.4.1-py2.7.egg/pip/commands/install.py", line 221, in run
    requirement_set.add_requirement(req)
  File "/Library/Python/2.7/site-packages/pip-1.4.1-py2.7.egg/pip/req.py", line 893, in add_requirement
    % (install_req, self.get_requirement(name), name))
InstallationError: Double requirement given: Pillow>=2.2.1 (from -r /Users/mustafa/pebble-dev/PebbleSDK-2.0-BETA4/requirements.txt (line 2)) (already in Pillow==2.0.0 (from -r /Users/mustafa/pebble-dev/PebbleSDK-2.0-BETA4/requirements.txt (line 1)), name='Pillow')

 

  • Python kütüphane gerekliliklerini yükleyebilmek için komutun başına “sudo” eklemeniz gerekiyor. Yoksa uzun uzun log’lardan sonra şu hatayı görebilirsiniz:

 

Exception:
Traceback (most recent call last):
  File "/Library/Python/2.7/site-packages/pip-1.4.1-py2.7.egg/pip/basecommand.py", line 134, in main
    status = self.run(options, args)
  File "/Library/Python/2.7/site-packages/pip-1.4.1-py2.7.egg/pip/commands/install.py", line 241, in run
    requirement_set.install(install_options, global_options, root=options.root_path)
  File "/Library/Python/2.7/site-packages/pip-1.4.1-py2.7.egg/pip/req.py", line 1294, in install
    requirement.uninstall(auto_confirm=True)
  File "/Library/Python/2.7/site-packages/pip-1.4.1-py2.7.egg/pip/req.py", line 525, in uninstall
    paths_to_remove.remove(auto_confirm)
  File "/Library/Python/2.7/site-packages/pip-1.4.1-py2.7.egg/pip/req.py", line 1639, in remove
    renames(path, new_path)
  File "/Library/Python/2.7/site-packages/pip-1.4.1-py2.7.egg/pip/util.py", line 294, in renames
    shutil.move(old, new)
  File "/System/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/shutil.py", line 290, in move
    rmtree(src)
  File "/System/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/shutil.py", line 249, in rmtree
    onerror(os.remove, fullname, sys.exc_info())
  File "/System/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/shutil.py", line 247, in rmtree
    os.remove(fullname)
OSError: [Errno 13] Permission denied: '/System/Library/Frameworks/Python.framework/Versions/2.7/Extras/lib/python/Twisted-11.0.0-py2.7.egg-info/dependency_links.txt'

 

Eğer bazı Python kütüphanelerinin yüklü olmadığına yönelik bir hata alırsanız Python konsolunda şu komutu girerek hangi kütüphanelerin yüklü olduğunu görebilirsiniz:

help('modules')

 

İlk Uygulama

To be continued…

https://developer.getpebble.com/2/getting-started/hello-world/

Estonya Seçim Yazılımının Kodlarını Yayınlamış

Her ne kadar kullanılan kodların tamamı olmasa ve gerçekten bu kodların kullanıldığını garanti edecek bir mekanizma olmasa da güzel bir hareket. Güvenliğin artırılmasını sağlayacaktır.

Estonia publishes its e-voting source code on GitHub