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/
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 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
http://www.mkyong.com/linux/list-all-ip-addresses-connected-to-your-server/
Design patterns konusunu şu site güzel özetlemiş: http://sourcemaking.com/
BigData’yla ilgilenen herkesin anlayabileceği basit bir anlatım:
şurada da ücretsiz eğitim videoları var: zerotoprotraining.com
Windows’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.
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?
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.
Ö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.
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.
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')
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')
To be continued…
https://developer.getpebble.com/2/getting-started/hello-world/
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.