MySQL Proxy İle Performans

MySQL Logo

Merhaba,

ORACLE, MySQL’i alınca bir takım endişelere kapılmıştım ama yapılan çalışmalar ve beklenen politika değişiklikleri yapılmadan devam edildiği  için ORACLE’ın MySQL’i alması iyi olmuş. Türkiye’de yaşadığımız için DBA‘ları değil biz yazılımcıları daha çok ilgilendiren bir konu oluyor bu MySQL’in yeni ürünü MySQL Proxy. İsmi üzerinde Proxy. :) Çalışma mantığının basit hali aşağıdaki şemada açıklanmış. 128 Thread(İş parçacığı , Process değil!) ile çalıştığında daha önce sadece MySQL üzerinde caching v.s. ile performans çalışmaları ile yaptığım halinden, MySQL+MySQL Proxy %50′den fazla performans artışı sağlıyor. Şuan 0.8.0 versiyonunda olmasına rağmen bence ileride çok yoğun şekilde kullanılacak ve tutulacak bir üründür. Üstelik Open Source bir ürün.

MySQL Proxy Architecture

(“Büyük halini görmek için üzerine tıklayabilirsiniz.”)

Eğer indirdiyseniz. Windows kullananlar ile şimdi kurulum işlemlerine geçelim.

İndirdiğiniz sıkıştırılmış dosyayı C:\ , F:\ gibi kolay erişebileceğiniz bir dizinin içine atınız. Daha sonra bu klasörün içindeki bin dosyasının path’ini Windows PATH tanımlamasına ekleyiniz. Ben “F:\mysql-proxy-0.8.0-win32-x86\bin” bu dizine kurduğumdan bu path’i ekledim. Artık command line’dan mysql-proxy yazarak erişebilirsiniz. Vista ve Windows 7 kullanıcılarına Firewall burada bir uyarı verebilir. Bu izni vermezseniz MySQL Proxy network’e erişemeyeceğinden düzgün çalışamayacaktır. Bu izni vermeniz gerekmektedir.

Konfirgürasyonu biraz karışık geldi ilk baktığımda ondan kolay kullanım için basit bir program yazmayı düşünüyorum. Her zaman olduğu gibi tabii ki sizinlede paylaşacağım. :) Yoksa sinir kat sayınızın çarpanları artabilir. :D En geç haftasonuna kadar zaman bulabilirsem, yazıp hemen alt tarafa ekleyeceğim.

Yinede kendim denemek istiyorum diyorsanız; “mysql-proxy –help-all” şeklinde tüm MySQL App. Shell komutlarına erişebilirsiniz.

NOT: MySQL Server 5.1.x sürümlerinde istikrarlı çalışmaktadır. Daha önceki sürümlerinde henüz test edilmemiş. Problem çıkartma ihtimali yüksek.

İyi Çalışmalar.

, ,

1 Comment

IIS 7 üzerinde ASP ODBC Hatası

Merhaba,

Eğer IIS 7 üzerinde ODBC Driver 3.51 sürümü üzerinden MySQL server’a bağlanmak istiyorsanız ve HTTP 500 hatası alıyorsanız. Öncelikle IIS Manager’dan ASP’ bölümünden hata görüntülenmesini (True) aktif ediniz ve localden siteye erişerek hata mesajını kontrol ediniz. Eğer hata mesajı Connection string’i işaret ediyorsa.

Çözüm için deneyebileceğiniz seçenekler;

  • IIS 7 Management Console’dan Parent Path özelliğini True yapınız.
  • Access kullanıyorsanız. Bu dizine ,IUSR_<machine_name> hesabına ve Network Services hesabına okuma ve yazma izni veriniz.
  • REGEDIT(Kayıt Defteri)’ten HKEY_LOCAL_MACHINE>Software>ODBC.INI ye geldiğinizde. Mouse ile ODBC.INI’nin üzerine sağ tıklayarak Permission’ı seçiniz. Buradan Read yetkisi vermeniz gerekiyor.
  • Buradan server os’e uygun sürümünü seçerek MySQL Driver 5.1.x ‘i indirerek server’a kurunuz ve connection string’deki 3.51 driver sürüm numarasını 5.1 olarak değiştiriniz.

Eğer yinede çözülmezse yorum olarak kısa hata mesajını ve bilgi verirseniz. Çözüm bulmaya çalışırım.

İyi Çalışmalar.

, , , , , , , ,

No Comments

PHP ile MAC adresi alma

Merhaba,

Normalde yoğun şekilde ihtiyacımız olan bir bilgi değil fakat Extreme Web Application veya Securty Tool geliştiriyorsak işimize yarayacak bir bilgidir. MAC adresi her ne kadar eşsiz olarak söylensede değiştirilebildiğini hepimiz biliyoruz. :)

Çalıştırdığım sistem Windows Server 2K8 + PHP 5 (FastCGI Module)

Localhost’ta çalışıyorsak şimdi Windows Command Line’a geçip ipconfig /all yazalım.

Yukarıdaki gibi bir ekran çıktısı ile karşılaşıyoruz. Şimdi bu bilgileri PHP tarafında alsak ve bir metod olsa aynı command line gibi kullanabilsek güzel olmaz mıydı? Hepimizin aklına ilk anda exec() metodu gelebilir fakat bu değil. :) System() metodunu kullanacağız.

  1.  
  2. <?php
  3. system(‘ipconfig /all’);
  4. $buffContent=ob_get_contents();
  5. $searchtxt = "Physical Address"; //Linux ise -> "Physical"
  6. $pmac = strpos($buffContent, $searchtxt);
  7. $mac = substr($buffContent,($pmac+36),17);
  8. print("MAC Adresiniz: ".$mac); // MAC Adresiniz: 00-40-D0-C9-48-C7
  9. ?>
  10.  

Şimdi kodumuzu kısaca açıklayalım.

Öncelikle System() metodundan dönen datayı arabelleğe alıp sonra arabellek içeriğini temizliyoruz ve arabellekteki veri üzerinde arama ve bir takım düzenleme işlemleri ile bize dönen string veriyi filtreleyerek içinden istediğimizi alıyoruz. Dönen sonucu direkt görmek isterseniz ob_clean() metodunun hemen altında print($buffContent); exit; yazınız.

Çıktısında size üzerinde çalıştığı makinenin ilk MAC adresini dönecektir. Birden fazla ethernet bağdaştırıcısı olabilir. Bu durumda substr() metoduna vermiş olduğumuz start ve end point sayılarını değiştirmemiz gerekmektedir.

UYARI: Bu MAC adresi istemcinin(Client) değil scriptin çalıştırıldığı makinenin(Server) MAC adresidir.

İyi Çalışmalar.

, , , ,

No Comments

Chrome RSS Okuyucu Eklentisi

Chrome RSS Okuyucu – v0.7

Merhaba,

Google Chrome bildiğiniz üzere beta versiyonunda eklenti desteğini açtı. Yakında istikrarlı sürüm Chrome’a da bu özelliğini aktaracaktır.  Geliştirdiğim ve Türkçeleştirdiğim bu RSS okuyucu eklentiyi rahatlıkla Chrome tarayıcılarınıza yükleyebilirsiniz. Aşağıda ekran görüntülerinden bazılarını paylaşıyorum.

Chrome RSS Okuyucuyu Şimdi Kur.

İyi Çalışmalar.

, , , , , , , , , ,

No Comments

Mozilla Developer Center – Türkiye

Merhaba,

Mozilla Geliştirici Merkezi‘nin Türkiye kısmını bugün itibari ile yayına almış bulunuyorum. Destek olmak isteyen arkadaşlar bana e-posta ile ulaşırlarsa, bir proje ekibi oluşturarak senkron ve hızlı bir şekilde çalışabiliriz.

Ana sayfanın altına eklediğim notun sonunda iş planı mevcuttur.

İyi çalışmalar.

, , ,

No Comments

Yeni Yılınız Kutlu Olsun. (2010)

merry_christmas

Merhaba,

Ne çabuk geçti 2010 yıl valla hiç anlayamadım. :D

Nice mutlu senelere.

Geçen senede etrafımızdakiler hep para,sağlık ve mutluluk diledi. Google Analytics’den takip ettiğim kadarı ile gerçekleşme oranı %0.0032 olarak gözüküyor. :)

Umarım bu yıl o 0.0032′lik yüzdenin içerisine dahil oluruz.

Hoş Geldin 2010. :)

, , ,

2 Comments

Hangi Program Hangi Portu Dinliyor?

Merhaba,

Genelde sistemcileri daha çok ilgilendiren bir konu ama soket programlama yaparken bizi çıldırtabilecek bir durum. :) XYZ Server ile iletişime geçmek istiyorsunuz diyelim. XYZ server’ın 139 portunu kullansın. Windows servislerinden start etmeye çalışıyoruz ama bu port başka bir program tarafından dinlendiğinden program başlatılamadı gibi bir hata alıyoruz. Şimdi ne yapacağız?

XP/Vista/Windows7/Server 2003/2008 ‘de geçerlidir. Diğer sürümler de test etmedim ama büyük ihtimalle olur.

Öncelikle Start->Run->cmd ile Command Line(Komut Satırı)’a geçiyoruz. Ardından aşağıdaki kodu yazıyoruz.

netstat -ano -p tcp

Karşımıza gelen listeden IP:Port şeklindeki Local Address sutununu inceliyoruz ve hangi programın hangi portu dinlediğine bakıyoruz. Biz bu senaryo da 139 nolu portu hangi programın dinlediğine bakmak istiyorduk.

Windows Command Line

192.168.2.77 benim local ağdaki IP’dir. Yani 192.168.2.77′nin üzerinde çalıştığımız makine için 127.0.0.1′den bir farkı yoktur. Şimdi en son sutüna bakıyoruz. Buradaki PID(Process ID)’lerden ilgili portu dinleyen uygulamanın 4 olan PID’sini öğreniyoruz.

Şimdi CTRL+SHIFT+ESC ile Task Manager(Görev Yöneticisi)’ı açıyoruz. Buradan View->Select Columns->PID‘yi seçiyoruz. Şimdi task manager’ınız büyük ihtimalle ekran görüntüsündekine yakın olacaktır. Sizde Threads’ler olmayabilir. Önemli değil.

Windows 7 Tast Manager

Windows7 Task Manager

Listede de görüldüğü gibi PID’si 4 olan System.exe imiş. Tabi bunu sakın durdurmaya çalışmayın. :) Biz bunun yerine Dummy.exe olduğunu farz edelim eğer UI(User Interface – Kullanıcı Arayüzü) ile programı stop edebiliyorsak veya dinlediği portu değiştirebiliyorsak önce bunu yapmaya çalışalım eğer değiştiremiyorsak ve kapatamıyorsak burada görevi sonlandırabiliriz. Ardından XYZServer’ı çalıştırabiliriz.

Biraz uzun bir işlemmiş gibi durdu böyle anlatınca ama emin olun maximum 5dk’nızı almaz. :)

Saygılarımla.

, , ,

No Comments

Google Chrome Eklenti Geliştirme

Merhaba,

Google Chrome’da Firefox gibi eklenti yazılmasını yeni versiyonundan itibaren uygulamaya geçirecek gibi duruyor. Chrome Beta’yı indirerek eklentileri test edebilirsiniz.

Chrome Beta Download.

Öncelikle geliştirdiğimiz eklentinin bitmiş halini inceleyelim. Daha sonra kodlama kısmına geçeriz. Eklentimiz gayet basit bir işlem yapıyor. Bir popup içerisinde flickr api kullanarak resimleri listeliyor.

Flickr eklentisi 1

Kaynak kodları indirmek için tıklayınız.

Öncelikle kaynak dosyalarımızı eklemek üzere kolay erişebileceğimiz bir dizine ChromeExtension isminde bir klasör oluşturalım. Siz farklı bir isimde verebilirsiniz. Ardından bu uygulamada kullanacağımız dosyalar olan logo.png, test.html ve manifest.json dosyalarını oluşturalım.

Bu dosyaları yukarıdaki bağlantıya tıklayarak indirdiğiniz sıkıştırılmış dosya içerisinde bulabilirsiniz.

Chrome Extension Path

manifest.json

{
“name”: “Flickr Resim Galerisi”,
“version”: “1.0″,
“description”: “Flickr’daki resimlerinizi görüntüleyebilirsiniz.”,
“browser_action”: {
“default_icon”: “logo.png”,
“popup”: “test.html”
},
“permissions”: [
"http://api.flickr.com/"
]
}

Google Chrome Extension Manifest JSON

test.html dosyasının içeriği biraz uzun olduğundan vermiyorum. İndirdiğiniz winrar arşivinden çıkartarak inceleyebilirsiniz. İçerisinde ilgili pop-up ile ilgili style(CSS) kodları ve Flickr JS API kodları mevcuttur.

Yukarıdaki resimde de gördüğünüz üzere JSON ile basit bir şekilde extension tanımlamamızı yapabiliyoruz.

Yüklemek için ise aşağıdaki resimlerde gösterilen adımları takip etmeniz gerekmektedir.

Aşama 1;

Chrome Extension Setup 1

Aşama 2;

Google Chrome Extension Install Step 2

Aşama 3;

Chrome Setup Step 3

Aşama 4;

Google Chrome Extension Setup Step 4

Eğer JSON dosyasını düzgün olarak oluşturduysanız hata almadan bu aşamaları tamamlayarak ilk eklentinizi yazmış olacaksınız. Bir sonraki makalemde daha gelişmiş eklentiler yazacağız.

Saygılarımla.


, , ,

No Comments

AzBul.NET | Beta 3 Yayında

AzBul.NET | Az ama öz sonuçlar...

Merhaba,

Görsel ve yazılımsal olarak yenilenen AzBul.NET Beta 3 versiyonu ile karşınızda.

http://azbul.net

En kısa sürede teknik makalelerime devam edeceğim.

Saygılarımla.

No Comments