Opera 10.50 yayinlandi

March 2nd, 2010

Evet kisa bir süredir yayinlanmasini bekledigim sürüm sonunda yayinlandi, suan icin sadece Windows icin yayinlandi, Mac, Linux, Solaris ve FreeBsd versiyonlari yolda.

Yeni Javascript-Engine ile tam 7 kat daha hizlanan opera, gelistiricilerine göre suanda dünyadaki en hizli Browser durumunda.

Windows 7 ve Html5 destegi gelistirildi ve onun yaninda birde private Tab lar eklendi.
Private Tab da ziyaret edilen sayfalar iz birakmiyor, Tabin kapanmasiyla o sayfaya ait tüm izler yok ediliyor.

Ikinici ayin basinda yayinlanmis bir benchmark testi asagida.

opera 10.50 benchmark

Resimdede görüldügü gibi, opera IE den tam 17.7 kat daha hizli calisiyor.
Herkezin sevgilisi olan Firefox uda ikiye katlamis durumda.

FAzla dicek bir sey yok aslinda, lider kim belli.
Gelistirme hizli, Browser hizli daha bir insan ne isterki :)

Opera’yi indirmek icin www.opera.com ziyaret ede bilirsiniz.

Categories: Bilgisayar & Internet

Tags: No Comments

google den Dns servisi

December 15th, 2009

haberi duyali bir kac hafta oldu aslinda yazmaya yeni vakit buldum.
Google artik genel bir DNS servisi sunuyor. Amaci bulunan yeni fikirlerle DNS isteklerini daha cabuk sunmasi.
Servis diger google servislerinde oldugu gibi suan icin sadece deney olarak adlandirilmis.
Daha hizli cevaplar icin öncelikle clevere Caching mekanizmasini kullaniliyor. Böylelikle DNS kaydi gecersiz (TTL) kilinmadan DNS-Server kayit bilgilerini yeniliyor ve istek geldiginde google zaten hangi adresi döndürecegini biliyor ondan yeni bir istek yapmasina gerek yok.

daha genis bilgi burada.

Google in DNS Adresleri ise:
8.8.8.8
8.8.4.4

Categories: Bilgisayar & Internet, Genel

No Comments

Opera Unite

December 3rd, 2009

Beni taniyanlar bilir, yillarin operacisiyimdir ve kod yazarken öteki tüm browserleride kullansam özel islerim icin hep opera kullanirim.
Bugün yeni kesfettigim bir servisden bahsetmek istiyorum.
Diger bazi Browserler bu isler icin degisik addon lar kullanmak zorunda olurken Opera 10 ile bircok özellik otomatikman bilgisayariniza yükleniyor.
Servisin adi Opera Unite. Dosya paylasimi, Müzik dinleme, not tutma, arkadaslarla mesajlasma, Statik Websitenizi kendi evinizden host etme, resim paylasimi vs. gibi eylemleri destekliyor.
Mesela :
-arkadasiniza film göndermek istiyorsaniz, operada dosyayi paylasin ve arkadasiniz sizin bilgisayarinizdan sorunsuzca indirsin. Rapidshare e filan yüklemeye gerek yok,
-ayni sey resimlerde tüm arkadaslara resimleri tek tek göndermek artik opera ile yok, resimleri paylasin tüm arkadaslariniz ayni anda hepsini görsünler
-isyerinde yada okulda evinizdeki müzikleri dinlemek istiyorsunuz ama download etme imkaniniz yok, sorun degil evde müzikleri paylasin isyerinden bilgisayariniza baglanip istediginiz mp3 ü dinleyin.
……

Bu sersivi kullanabilmek icin opera 10 yüklü olmasi gerekiyor, birde myopera hesabina ihtiyacinz var.
Myopera hesabini opera unite ilk kullanmak istediginizde olustura bilirsinz 20 saniye sürmez.

Dana beklemeye gerek yok operayi indirin ve deneyin:
Benim opera unite adresim:

Categories: Bilgisayar & Internet

No Comments

Php 5.3 Namespace ler

October 1st, 2009

Bir uygulama nekadar büyür, nekadar cok yazar o uygulamada calisirsa, nekadar degisik tür kodlar, kütüphaneler kullanilirsa okadar cok isim cakismasi ola bilir.
En büyük örnegi php 5.1.0 cikmasindan bir kac gün sonra php 5.1.1 cikmasiyle görüldü, bunun nedeni php 5.1.0 da yeni Date adinda bir sinif bulunmasiydi.
Bircok Pear kullanicisi update den sonra Fatal Error larla karsilasmisdi cünki Pear inde Date Sinifi vardi.
Böyle bir cakismadan kacinmak icin simdiye kadar Zend Framework de oldugu gibi Uzun isimler kullanildi (Zend_Controller_Action).

Php 5.3 ile bu uzun isimlerdende kurtulmak mümkün.

php dünyasininen en uzun süre tartisilan seperator u kesinlikle namespace seperator oldu.
Asil cif iki nokta üstüste (::) kullanilicakti ama php dünyasinda cif anlamli olur diye sonunda (\) Backslah isaretinde karar kilindi.

Namespace kullana bilmek icin, php dosyasinda ilk ifade namespace olmasi gerekmektedir, aksi takdirde bir fatal error ile karsilasirsiniz.
mesela:

PHP:
  1. <?php
  2. namespace Skorp;
  3. echo "skorp.eu";

Bir namespace bircok dosyayi kapsiya bilir. Dosyalarin her biri ayni namespace i beyan etmeleri gerekir. Asagidaki örnekde göründügü gibi, bir dosya icinde birden cok namespace bulunmasinada izin veriliyor.

PHP:
  1. <?php
  2. namespace Skorp
  3. {
  4.  
  5. echo "skorp.eu";
  6. }
  7.  
  8. namespace Foo
  9. {
  10. echo "foo.com";
  11.  
  12. }

Ama asagidaki örnege izin verilmiyor, en az bir namespace beyan edilmisse onun disinda herhangi bir kod olamaz.

PHP:
  1. <?php
  2. namespace Skorp
  3. {
  4.  
  5. echo "skorp.eu";
  6. }
  7.  
  8. echo "gohome";

alinan hata mesaji:
Fatal error: No code may exist outside of namespace {} in

Bir örnek ile namespaceleri nasil kullanacagimizi bakalim.

PHP:
  1. <?php
  2. namespace Skorp
  3. {
  4.     class Test {}
  5. }
  6.  
  7. namespace Foo
  8. {
  9. class Test{}
  10. }
  11.  
  12. namespace Bar
  13. {
  14.     var_dump(new \Foo\Test());
  15. }

Bar namespace i icinde Foo namespacindeki Test sinifini olusturuyoruz.

var_dump satirini su sekilde yazmis olsaydik:

PHP:
  1. var_dump(new Foo\Test());

söyle bir hata ile karsilasicaktik.
Fatal error: Class 'Bar\Foo\Test' not found in

Bundan Adreslemeye dikkat etmemizi cikartiyoruz, normal bilgisyardaki Dosya Yapisi gibidir namespace de basta \ isareti yoksa kendi namespace icinde ara o sinifi.

Alias Mekanizmasi
Herzaman \Foo\Test veya daha uzayan satirlar kullanmamak icin Alias mekanismasini kullana biliriz.

PHP:
  1. namespace Bar
  2. {
  3.     use Foo\Test as anton;
  4.     var_dump(new anton());
  5. }

daha kisa yazmak icin

PHP:
  1. namespace Bar
  2. {
  3.     use Foo\Test;
  4.     var_dump(new Test());
  5. }

Bu kisa yöntemde en son bilesen adi kullanilir alias olarak yani bizim örnegimizde Test

dikkat edilmesi gereken birsey daha var alias mekanizmasini kullanirken \ yazmamiza gerek yok, php burda sinif adinin tam yolunu bilmek istiyor.

Fonksiyonlarda bilinmesi gereken ise, onlara birer Alias veremiyoruz, ondan fonksiyonun tüm adini yazmak gerekiyor.
yazilan fonksiyonlar ilk önce kullanilan Namespace icerisinde aranmaktadir, eger orada bulunmadiysa, global Namespace de aranir.

Mesela strlen adinda bir fonksiyonumuz varsa ama biz php nin bize sunmus oldugu strlen fonksiyonunu kullanmak istiyorsak ozaman basina bir \ koymamiz gerekiyor

PHP:
  1. echo \strlen("blabla");

son olarakda hangi namespace de oldugumuzu görmek icin _NAMESPACE_ Konstansini cagara bilirsiniz.

Categories: PHP

Tags: , 1 Comment

CentOs de Php5.2.9′a updateleme

September 21st, 2009

Centos in kendi reploari php 5.1.6 ile geliyor.
Bazi applikasyonlar mesela Oxid shop php 5.2 gerektiriyor bu yüzden Centos de nasil php yi güncelleriz bakalim:

CODE:
  1. wget -q -O - http://www.atomicorp.com/installers/atomic.sh | sh

CODE:
  1. yum repolist all

ile baka bilirz atomic repolara eklendimi diye.

ardindan

CODE:
  1. yum update

son olarak

CODE:
  1. /etc/init.d/lighttpd  restart
  2.  
  3. apache kullananlar
  4.  
  5. /etc/init.d/httpd  restart

Categories: Linux, PHP

Tags: , No Comments

hostname degisikliginde slave calismiyor (mysql master / slave)

September 14th, 2009

bugün yeni bir sugarcrm kurarken fark ettimki slave durmus calismiyor hemen loglara baktim ve bu hatalari gördüm:

CODE:
  1. 090914 16:14:33 [Warning] Neither --relay-log nor --relay-log-index were used; so replication may break when this MySQL server acts as a slave and has his hostname changed!! Please use '--relay-log=/var/run/mysqld/mysqld-relay-bin' to avoid this problem.
  2. 090914 16:14:33 [ERROR] Failed to open the relay log '/var/run/mysqld/mysqld-relay-bin.000492' (relay_log_pos 35994)
  3. 090914 16:14:33 [ERROR] Could not find target log during relay log initialization
  4. 090914 16:14:33 [ERROR] Failed to initialize the master info structure

hata slave in hostname i degistigi ve yeniden baslatildigi icin geliyordu,

slave i durdurup yeniden baslatmayi denedim ama bu hata ile karsilastim:

CODE:
  1. ERROR 1201 (HY000): Could not initialize master info structure; more error messages can be found in the MySQL error log

biraz google de aradikdan sonra bu yaziyi buldum:

kisaca yapilanlari anlatmaya caliscagim, öncelikle slave i durduralim:

CODE:
  1. mysql> stop Slave;

ardindan

CODE:
  1. mysql> SHOW SLAVE STATUS\G
  2. yazip su  bes satira dikkat ediyoruz
  3.  
  4. *************************** 1. row ***************************
  5. Master_Host: localhost
  6. Master_User: root
  7. Master_Port: 3306
  8. Relay_Master_Log_File: gbichot-bin.005
  9. Exec_Master_Log_Pos: 79

Simdi slave i resetleyip, kaldigi yerden devam etmesini söyliyecegiz.

CODE:
  1. mysql> RESET SLAVE;
  2. mysql> CHANGE MASTER TO MASTER_HOST="localhost", MASTER_USER="root", MASTER_PASSWORD="test", MASTER_LOG_FILE="gbichot-bin.005", MASTER_LOG_POS=79;

*ikinci satiri yukardaki kendi verilerinizle degistirin (sifrenizi /etc/my.cnf de bula bilirsiniz)

simdi slave i yeniden baslatalim:

CODE:
  1. mysql> START SLAVE;
  2. ardindan
  3. mysql> SHOW SLAVE STATUS\G
  4. *************************** 1. row ***************************
  5. Slave_IO_Running: Yes
  6. Slave_SQL_Running: Yes
  7. Seconds_Behind_Master: 8

ve bu üc satira dikkat ediyoruz, Slave* ile basliyan satirlarin ikiside Yes olmali,
Seconds_Behind_Master: 0 yazdigi zaman master slave le ayni demek, eger sizde cok büyük bir sayi yaziyorsa zamanla o gecicekdir, sifir olana kadar

CODE:
  1. mysql> SHOW SLAVE STATUS\G;

ile kontrol ede bilirsniz.

Categories: Veritabani

Tags: No Comments

Tüm Dbleri yedeklemek

August 7th, 2009

Bugün bir bash Script sunacagim, bir serverdeki tüm db leri teker teker yedekleye bilmek icin.

CODE:
  1. #!/bin/bash
  2. echo "Save all db's:"
  3. DBASELIST=`mktemp`
  4. # tüm db lerin isimleri ni topla
  5. # sifreburaya yazan yere root sifrenizi girin (script de iki kez kullaniliyor)
  6. mysqlshow -sifreburaya | awk '{print $2}' | grep -v Databases | sort>$DBASELIST
  7. #Backup hagi klasör icine yüklensin
  8. cd /data
  9. mkdir -p `date +%Y%m%W`
  10. cd `date +%Y%m%W`
  11. for x in `cat $DBASELIST`; do
  12.     echo "Db: $x yedekleniyor";
  13.     mysqldump --opt -psifreburaya $x>$x.sql;
  14. done;
  15. echo "Eski .gz-dosyalarini sil"
  16. rm *.gz
  17. echo "dosyalari SIKISTIR:"
  18. gzip *

bukadar bunu linux makinanida herhangi bir yere yükleyin dosyayi .sh diye kayit edin ardindan
chmod 777 dosya.sh

elden calistirmak icin
sh dosya.sh

cronjob olarakda calistira bilirsiniz.
kolay gelsin

Categories: Linux, Veritabani

Tags: , 2 Comments

Mysql Sifremi unuttum

August 4th, 2009

bugün benimb asima geldigi gibi illa bir cok kisini basi gelir, gün gelir mysql sifremizi ya unuturuz ya kaybederiz, ya yanlis kaydetmis ola biliriz vs. vs.

Sifremizi unuttugumuzda neler yapmamiz gerekiyor.

öncelikle calisan mysql i durduruyoruz.

/etc/init.d/mysql stop

ardindan mysqld_safe i calistiriyoruz:

root@Linux:~# /usr/bin/mysqld_safe --skip-grant-tables &
[1] 6702
Starting mysqld daemon with databases from /var/lib/mysql
mysqld_safe[6763]: started

yukardaki [1] in yaninda yazan sayiyi 6702 hatirlayin lazim olacak.

mysql --skip-grant-tables flag i ile calistigi icin sifresiz gene root olarak mysql e baglana biliyoruz:

mysql --user=root mysql

ardindan sifremizi degistirecek olan satiri yaziyoruz:

update user set Password=PASSWORD('yenisifreyiburayayazin') WHERE User='root';

ardindan bu komutuda calistirip cikiyoruz:

flush privileges;

exit yazarak veya strg + c

simdi yukarda [1] in yaninda yazan numarali prozess i yok ediyoruz:

kill 6702

ardindan mysql imizi yeniden baslatiyoruz

/etc/init.d/mysql start

hepsi bukadar yeni root sifrenizle sorunsuzca mysql veritabaniniza baglana bilirsiniz.

Categories: Veritabani

Tags: No Comments

Php 5.3 Windows Destegi

August 1st, 2009

Bilindigi gibi Php dünyasinda Windows hep üvey kardes muamelesi görmüstür, bu Core gelistiricilerinin Unix sistemlerine odaklanmis olduklarindan kaynaklaniyordu.
Performans olsun bazi fonksiyonlar olsun windows da unix de calistigi gibi calismiyordu. Son zamanlarda Microsoft 'un da destegi ile cok emek sarf edilip, fonksiyonlarda, performansda ve stabilitede cok büyük adimlar atildi.

Görüne bilinir en büyük adim ise Php 5.3 ile gelen ve eskiden Windows da calismayipda Programcilarin basini agartan birkac fonksiyon.
Asagida fonksiyonlarin adlarini yaziyorum, daha genis bilgi icin lütfen php.net sayfasini ziyaret ediniz:

Iste artik Windows dada calisan o fonksiyonlar:
- checkdnsrr()
- dns_get_record()
- fnmatch()
- getmxrr()
- getopt()
- imagecolorclosesthwb()
- inet_pton()
- inet_ntop()
- link()
- linkinfo()
- mcrypt_create_iv()
- readlink()
- socket_create_pair()
- stream_socket_pair()
- symlink()
- time_nanosleep()
- time_sleep_until()

Categories: PHP

Tags: , 1 Comment

Php 5.3 genisletilen fonksiyonlar

July 28th, 2009

Bugunki yazimizda sadece php 5.3 de hangi fonksiyonlarin genisletildigine bakacagiz.
Php nin eski versiyonlarinda bulunan, php 5.3 ilede fonksiyon özellikleri genisletilen fonksiyonlar iste bunlar:

- array_reduce()
- clearstatcache()
- copy()
- fgetcsv()
- getimagesize()
- ini_get_all()
- nl2br()
- round()
- stream_context_create()
- strstr()

fonksiyonlarin standart degerleri, calisan programlari etkilemiyecek sekilde hazirlanmistir.
tam detayli bir bilgi icin php.net sayfasini ziyaret etmenizi tavsiye ediyorum.:

Categories: PHP

Tags: , 1 Comment

Feed

http://www.skorp.eu /