28 Mayıs 2013 Salı

Test Istanbul Turkiye Yazilim Kalitesi Raporu yayinlandi

www.testistanbul.org adresinden ulaşabileceğimiz gibi, test istanbul 2013 - 2014 yazılım kalitesi raporu ( TURKEY SOFTWARE QUALITY REPORT 2013 - 2014) yazyınlandı. yazılım da test konusu ile ilgili güzel bir infografik içermektedir. http://www.testistanbul.org/TurkeySoftwareQualityReport_2013_2014.pdf  adresinden görebileceğiniz döküman ilginizi çekecektir diye düşünüyorum. Devamı için : Test Istanbul Turkiye Yazilim Kalitesi Raporu yayinlandi

27 Mayıs 2013 Pazartesi

class_exists ve spl_autoload

Eğer spl_autoload ile bir autoloader belirttiyseniz, daha sonra kodunuzun herhangi bir yerinde class_exists() ile o sınıfın olup olmadığını kontrol ediyorsanız, zaten kontrol etme işlemiyle birlikte sınıfı load etmiş oluyorsunuz. Bunu http://www.php.net/manual/en/function.spl-autoload-register.php#95456 linkindeki yazıdan da görebilirsiniz.   Bir örnek kod da vermeye çalışacağım ilerleyen zamanlarda. Devamı için : class_exists ve spl_autoload

25 Mayıs 2013 Cumartesi

TTNET - Yine spamda bir ilk

bir gün facebook'a girmeye çalışırken önünüze : http://bilgi.ttnet.com.tr/ttnetlilereozel/index.aspx?fid=1&host=www.ttnet.com.tr sayfası açılırsa, bilin ki TTNET kullanıyorsunuzdur. TTnet pismanlıktır. Devamı için : TTNET - Yine spamda bir ilk

23 Mayıs 2013 Perşembe

Chrome - Virus Taramasi Basarisiz Oldu Hatasi

Chrome'da herhangi bir dosyayı indirmeyi tamamladıktan sonra bu hatayı ("Virüs Taraması Başarısız Oldu" veya "Failed-Virus scan failed") veriyor ve dosyayı siliyordu. Aslında bu hata sadece Chrome'da ortaya çıkmadı. Aynı zamanda Firefox ve IE'da da herhangi bir dosyayı indiremiyordum. Çözümü ise basit bir Kayıt Defteri elemanını değiştirmekten geçiyor.
  1. Öncelikle Başlat > Çalıştır'ı açarak çıkan pencerede regedit yazarak Kayıt Defteri Düzenleyicisi uygulamasını çalıştırın.
  2. Açılan ekranda aşağıdaki değeri bulun.
    HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion\Policies\Attachments\ScanWithAntivirus
  3. ScanWithAntivirus değerine çift tıklayarak açın ve değeri 2 veya 3 ise 1 yapın. Burada değer 2 veya 3 ise virüs tarama aktif, 1 ise pasif durumda oluyor.
  4. Sisteminizi yeniden başlatın.
Uzun uğraşlar sonucu bu yöntemi buldum ve benim sorunuma çözüm oldu. Umarım aynı şekilde sizin sorununuza da çözüm olabilir. Devamı için : Chrome - Virus Taramasi Basarisiz Oldu Hatasi

20 Mayıs 2013 Pazartesi

Mysql - birden fazla IP den mysqle baglanmak

Eğer 2 farklı IP'deki sunucunuz, aynı mysql sunucusuna bağlanması gerekiyorsa yapmanız gereken temel olarak bir kaç maddelik işiniz var demektir. Bunları listeleyelim :
  1. Bağlanılan (mysql-server'in olduğu makinenizde) mysql konfigürasyon dosyanızı bulun. (işletim sisteminiz centos ise /etc/my.cnf gibi bir yerde, ubuntu ise, /etc/mysql/my.cnf gibi bir yerdedir). 
  2. my.cnf içerisinde bind-address diye bir parametre varsa, onu 0.0.0.0 şeklinde düzeltin, yoksa
    bind-address = 0.0.0.0
    şeklinde yeni bir satır ekleyin (çünkü varsayılan değeri 127.0.0.1 yani localhost tur)
  3. my.cnf içerisinde skip-networking diye bir parametre varsa onu silin. (veya başına # işareti koyarak yorum haline getirin.)
  4. Mysqlinizi yeniden başlatın. (service mysql restart)
  5. şu anda veritabanınız dışarıdan bağlantılara açık hale geldi. Ancak bu bi güvenlik tehdidini de beraberinde getirir. Doğrudan bir tehlike değil bu ancak, root şifrenizi deneye yanıla(brute-force teknikleri de dahil) bulabilirler, veya yanlış vermiş olduğunuz yetki, user var ise, bunları keşfedebilirler)  Bu yüzden bir firewall kullanmalıyız. Halihazırda iptables vardır diye düşünüyorum. iptables için bir kural ekleyelim ve istemediğimiz ipler dışındaki istekleri drop edelim, böylece sadece istediğimiz IP'ler networkten içeri girebilsin. :
    iptables -A INPUT -p tcp --dport 3306 ! -d xxx.xxx.xxx.xxx -j DROP
  6. bir user ekleyin.
    CREATE USER 'kullanici'@'ip_Adresi' IDENTIFIED BY 'şifre';
  7. Bu kullanıcıya ilgili IP için yetki verin(hangi yetkileri istiyorsanız)
    GRANT SELECT , INSERT , UPDATE , DELETE , CREATE , DROP , INDEX , ALTER , CREATE TEMPORARY TABLES , CREATE VIEW , EVENT, TRIGGER, SHOW VIEW , CREATE ROUTINE, ALTER ROUTINE, EXECUTE ON `database_adi` . * TO 'kullanici'@'ip_Adresi';
  8. Testlerinizi yapın. Bu testleri hem bağlanmasını istediğiniz makineler için, hem de istemediğiniz makineler için mutlaka yapın. mysql-client yüklü ise şöyle yapabilirsiniz :
    mysql -u kullanici -h ip_Adresi database_adi
mysql bağlantıları için iptables kuralları kaynak: http://www.cyberciti.biz/faq/unix-linux-mysqld-server-bind-to-more-than-one-ip-address/ Devamı için : Mysql - birden fazla IP den mysqle baglanmak

17 Mayıs 2013 Cuma

Amazon S3 - Klasor Mantigi

Amazon S3 (Simple Storage Service) üzerindeki klasör mantığı şu şekildedir : S3, üzerine UTF8 formatlarını destekleyen her türlü dosya ismi verebiliyorsunuz. Bu dosya isimlerine "/" (slaş) karakteri de dahil. Bİr çok kolaylaştırıcı S3 arayüzünde(aws management console da dahil) ise içinde slaş geçen dosya isimlerinde slaştan önceki kısım bir klasör şeklinde gösteriliyor. Örnek vermek gerekirse 1- ben amazons3 üzerine API bir dosya gönderdim. Dosyanın adı da my/test.txt olsun. Bu durumda, Amazon üzerinde aslında bir my klasörü ve içinde de bir test.txt dosyası varmış gibi görebilirsiniz Aws management console üzerinden. Ancak amazonun kendi apisinde yazdığı listObjects metodu ile içerideki dosyaları listelediğimizde, 1 klasör ve bir dosya şeklinde değil sadece bir dosya gözükecektir. 2- Aws Management console üzerinden bir klasör oluşturup içine de bir dosya koyduğumuzda ise, dönen sonuç 2 tanedir. bir tane my/ adlı dosya, bir tane de my/test.txt adlı dosya. İlk örnekte my/test.txt yi sildiğimde my/ diye bir klasör görünümlü dosya da görmezsiniz, İkincide ise my/test.txt yi sildiğinizde my/ diye bir klasör görünümlü dosya hala vardır, ve onu ayrıca silmeniz gerekmektedir. Sonuç : Amazon üzerinde klasör diye bir şey yoktur. Sadece arayüzde anlamayı kolaylaştırmak için içinde / geçen karakterlere göre gruplama yapılmaktadır. O yüzden klasik hard disk üzerinde yapabileceğiniz işlemleri, directory exist kontrollerinizi yapmadan buraya rahatça uygulayabilirsiniz. Çünkü oluşturduğunuz her şey bir dosyadır. Klasör sadece gruplama amaçlıdır, ve web arayüzlerinde görmenizi kolaylaştırır. Devamı için : Amazon S3 - Klasor Mantigi

13 Mayıs 2013 Pazartesi

Amazon S3 - static website hosting - The specified bucket is not valid hatasi

Amazon s3 üzerinde bir bucket (demet) yaratıp, bunu static website hosting ile dışarı yayına vermek istiyorsanız, Bucketi seçip sağ taraftan properties kısmından, static website hosting kısmında ayarlarınızı kayıt etmeniz gerekiyor.   Ancak The specified bucket is not valid. hatası alıyorsanız, burada bucket isminizde geçersiz karakterler olabilir. Örneğin bemim bucket ismimde test_test gibi bir alt çizgi (underscore) vardı. Amazon s3 bu siteyi yayınlayabilmek için bana bir dns kaydı oluşturacağından ve dns kaydında alt çizgi bulunamayacağından ötürü "The specified bucket is not valid." hatası veriyordu. Bucket ismimi değiştirdim, ve artık save işlemini yapabildim. Umarım işinize yarar. Devamı için : Amazon S3 - static website hosting - The specified bucket is not valid hatasi

PHP - Sayfanin iframe icerisinde acilmasini engellemek

Bazı durumlar olur ki, sitenizin, veya bir web sayfanızın iframe içinde açılmasını istemezsiniz. Bu durumda ne yapabiliriz diye bir bakındım ve güncel browser'ların kullandığı bir yöntem gördüm. Örneğimiz şöyle olacak : 1 adet test.html sayfası, 1 adet test.php sayfası. test.html içeriği
test.php in iframe <br />  <iframe src = 'test.php'>
test.php içeriği :
<?php  header("X-FRAME-OPTIONS: DENY");    echo "hello world";    ?>

Görüldüğü gibi, php dosyamızda bir adet header gönderiyoruz, ve burada Frame seçeneklerini DENY yani engellemesini söylüyoruz. Böyle olunca örneğin chrome ve mozilla'da iframe içinde "hello world" yazmıyor, çünkü request'i deny üstteki header'dan dolayı ediyor. Chrome ek olarak konsol'a bir uyarı da basıyor. Ekran görüntüsü de chrome için şu şekilde oluyor. php-deny-iframe

Devamı için : PHP - Sayfanin iframe icerisinde acilmasini engellemek