RSS
 

Author Archive

IIS7 – Error establishing a database connection Error

10 Feb

MySQL Logo

Merhaba,

Bugün Bloguma girdiğimde HTTP 500 Internet Server Error mesajı ile karşılaştım. Loglardan baktığımda “Error establishing a database connection” hatası ile karşılaştım.

Eğer sizde IIS 7.x üzerinde WordPress kullanıyorsanız, ve yüksek hitiniz var ise aynı problemle karşılaşabilirsiniz. Çözümü basit. Blogunuza özel bir MySQL Login Account’ı açıp wp-confing.php dosyasına bu bilgileri yazarak, blogunuzun bu giriş bilgileri ile MySQL Server’a bağlanmasını sağlayabilirsiniz.

Tek bir hesap oluşturup bütün MySQL DB alt yapısını kullanan yapılarlada da karşılaşabilir. Mümkün mertebe her application için bir mysql login account’ı oluşturunuz.

İyi Çalışmalar.

 
No Comments

Posted in MySQL

 

Small Basic V0.8 Çıktı

09 Feb

Merhaba,

2 sene önce sizlerle paylaştığım Small Basic makaleleri ile giriş yapmıştık. Eğer devam edenler varsa Yeni versiyonun çıktığına çok sevinecekler.

Small Basic v0.8

Yeni sürümde eklenen özelliklere kısaca göz atacak olursak;

  • Paylaşılmış programlar ile ilgili ek bilgi özelliği.
  • Paylaşılmış programları oylayabilme özelliği(Online)
  • Yazdığınız küçük programları çıktı şeklinde almak isterseniz zengin bir formatlama özelliği sizi bekliyor olacak.
  • Kod tamamlama özelliğinde artık kod örnekleride mevcut.
  • API kütüphanelerinde performans iyileştirmeleri yapılmış. ( En çok hoşunuza gidecek özellik bu sanırım. :D )

Paylaşılmış program da ne? Yazdığınız programları online olarak paylaşabiliyorsunuz. Örneğin: http://smallbasic.com/program/?CKM626

Türkçe, Rusça,Fransızca,Çince ve japonca gibi yeni dil destekleri gelmiş.

Small Basic Türkçe

(” Büyük halini görmek için üzerine bolca tıklayınız.”) :)

En çarpıcı özellik olarakta Small Basic için Silverlight desteğinin gelmesi olmuş. Bu sayede IDE yüklü olmadan program veya oyunları blogunuzda dahil heryerde yayınlayabileceksiniz.

Hatırlatma: Small Basic kodlarınızı Converter özelliği ile Visual Basic kodlarına otomatik çevirebilirsiniz.

Bir önceki Small Basic makalemde belirttiğim gibi yazacak çok şey var ve eğer Small Basic’e ilgi duyuyorsanız. Yorum olarak belirtirseniz yeni makale yazarken Small Basic’i de öncelikli olarak yazmaya çalışırım.

İyi Çalışmalar.

 
 

MySQL Proxy İle Performans

08 Feb

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

Posted in MySQL

 

IIS 7 üzerinde ASP ODBC Hatası

08 Feb

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

Posted in Sistem

 

PHP ile MAC adresi alma

20 Jan

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.

<?php
ob_start();
system('ipconfig /all');
$buffContent=ob_get_contents();
ob_clean();
$searchtxt = "Physical Address"; //Linux ise -> "Physical"
$pmac = strpos($buffContent, $searchtxt);
$mac = substr($buffContent,($pmac+36),17);
print("MAC Adresiniz: ".$mac); // MAC Adresiniz: 00-40-D0-C9-48-C7
?>

Ş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

Posted in PHP

 

Chrome RSS Okuyucu Eklentisi

15 Jan

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.

 
2 Comments

Posted in Yazılım

 

Mozilla Developer Center – Türkiye

13 Jan

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.

 
1 Comment

Posted in Genel

 

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

31 Dec

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

Posted in Genel

 

Hangi Program Hangi Portu Dinliyor?

30 Dec

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.

 
2 Comments

Posted in Sistem