Metinden Anahtar Kelime (keyword) Üretme

Aşağıdaki get_keywords fonksiyonu verilen metinde ençok geçen kelimeleri bulup sonucu meta keyword olarak geri döndürüyor. İkinci parametreye verilen değer kaç keyword’ün geriye döndürüleceğini belirliyor.

WordPress options-permalink 403 Forbidden Hatası

Windows sunucularda karşılaştığım bu hata .htaccess dosyasından kaynaklanıyor. Eğer internette tarif edilen  yöntemlerini deneyip de çözüm bulamadıysanız .htaccess dosyasına  FollowSymLinks direktifini eklemeyi deneyin. .htacess dosyasına eklemeniz gereken 2 satır aşağıdaki gibi.

Options All -Indexes
Options +FollowSymLinks

.htaccess’i kullanan bir başka eklentiye sahip değilseniz .htaccess dosyasının tam içeriği aşağıdaki gibi olacaktır.

# BEGIN WordPress
Options +FollowSymLinks
Options -Indexes
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /wordpress/
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /wordpress/index.php [L]
</IfModule>
# END WordPress

Delphi: Canvas does not allow drawing Hatası

Canvas does not allow drawing” hatası tuval çizime izin vermiyor gibi bir anlam taşıyor. Tuval ressamların resimlerini çizdikleri yüzeye verilen ad burada ise programdaki bileşenlerin görsel kısımlarına (arabirim) karşılık geliyor.

Canvas hatası iki nedenden kaynaklanabilir. Ya çizim yapacak kaynağınız kalmamıştır ya da multithread bir programda tuvali boyamaya çalışan iki fırça birbiriyle çakışıyordur. Dediğimiz gibi bu Canvas hatası ençok multithread programlarda karşımıza çıkıyor. VCL bileşenleri thread-safe değillerdir. Bu yüzden bileşenlerin görsel özellikleriyle işlem yaparken Synchronize fonksiyonunu kullanmalısınız. Synchronize’a parametre olarak verdiğiniz alt program thread-safe olarak çalıştırılır. Yani canvas sorunu çıkartacak görsel işlemleri güvenli bir zamanda icra ettirmiş olursunuz. Aşağıdaki thread örneğini inceleyebilirsiniz.
Okumaya devam et “Delphi: Canvas does not allow drawing Hatası”

Edit’in içeriğini OnChange Olayında Değiştirmek

Başlık ilk okunduğunda anlaşılabilecek türden olmadı biliyorum. Metin kutusunun içeriği değiştiğinde içeriğine müdahale etmek pek mümkün değildir (Yani OnChange yordamında  içeriği değiştirecek işlemler yapmak). OnChange olayında içeriği değiştirirseniz, oluşan değişiklikten dolayı OnChange tekrar çalıştırılır ve bu böyle sonsuza kadar devam eder. Aslında yığın (stack) dolana kadar devam eder. Yığın neden dolar derseniz, bir nevi recursive (özyineli) bir süreç başlatırsınız, yani her alt süreçten geri dönebilmek için, sürecin geri dönüş noktası (yordamın enson çağırıldığı konuma karşılık gelen bellek adresi) yığına kaydedilir ve LIFO (Last in First out) düzeniyle geri boşaltılır.

Bu tarz birşeye ihtiyaç duyduğumuzda OnChange olayı boşaltılırsa yukarıdaki gibi bir zincirleme reaksiyon başlamayacaktır. İşimiz bittiğinde de OnChange olayını eski haline geri çevirmeyi unutmamalıyız. Olayın içini boşaltmak için nil değerini kullanıyoruz. Aşağıda bir örnek yer alıyor.

PHP için Güvenlik Kontrol Listesi

sk89q.com daha önce burada yayınladığı php güvenlik kontrol listesinin yazdırılabilir bir sürümünü PDF cheatsheet olarak yayınlamış. Sitede daha önce de bazı cheaatsheet‘ler yayınlamıştım.

[Download not found]

Delphi’de Scroolbar’ı Kod ile Kontrol Etmek

Delphi’nin bir scrollbar’a (kaydırma çubuğu) sahip TMemo, TListBox, TStringGrid ve TListView gibi birçok nesnesi bulunmakta. Nesnenin içindeki elemanlar nesnenin yüksekliğine sığmadığında otomatik olarak dikey bir  scroollbar oluşturulur. Bu bar ile liste içerisinde hareket edebilirsiniz. Bazen listede istediğiniz bir elemanı göstermek için kaydırma çubuğunu kontrol etmeniz gerekebilir. Aşağıdaki örneklerdeki gibi SendMessage ile nesneye mesaj göndererek listenin istediğiniz konuma kaymasını sağlayabilirsiniz.
Okumaya devam et “Delphi’de Scroolbar’ı Kod ile Kontrol Etmek”

Delphi 7 Yardımı Windows 7’de de çalışsın

Windows 7 üzerine Delphi 7 kurduysanız F1 tuşu ile çağrılan yardım dosyasının görüntülenmediğini farkedeceksiniz. Sorun windows 7 ile beraber gelen yardım görüntüleyici programının artık eski yardım dosyası formatlarını (.hlp) desteklemiyor olması. Windows 3.1 den XP ye kadar kullanılan winhlp32.exe adındaki görüntüleyici ihtiyaçları karşılmadığı için Windows 7’ye dahil edilmemiş. Ancak microsoft’un sitesinden indirilebiliyor. Sorunu çözmek için aşağıdaki dosyayı indirerek kurabilirsiniz. İndireceğiniz .cab paketi içindeki install.cmd betiği, winhlp32.exe‘yi sisteminize kuracaktır. Dilerseniz winhlp32 programını microsoft‘dan da temin edebilirsiniz. (WGA gerektiriyor)

[Download not found]

E-Dergi: phpdergi

phpdergi okuyucularına web uygulamaları geliştirirken yardımcı olmayı hedefliyor. Sadece PHP değil, web uygulaması geliştirirken ihtiyaç duyduğunuz birçok alanda yazılar bulabileceksiniz dergide. JavaScript’ten sistem yönetimine, web sunucu kurulumundan CSS’e kadar hem basit hem ileri seviye birçok yazı okuyacaksınız dergide.

Elinizin altında internet adı verilen hemen her şeyi bulabileceğiniz bir kaynak var. Derginin farkı ise hiçbir yerde olmayan konular ya da fikirler içermesi olacak. Özellikle yukarıda belirttiğimiz gibi deneyimlerle kazanılan bilgiler, ipuçları ve web uygulamalarının güvenliği üzerine yazılara sık sık rastlayacaksınız.

http://www.phpdergi.com/

PHP ile TC Kimlik Numarasını Doğrulamak

Kullanıcıdan web form aracılığıyla bazı bilgiler almak gerektiğinde bilgileri doğrulama yoluna gideriz. TC kimlik numarasının formulize edilidğini daha önce söylemiştim. TC Kimlik numarasının son 2 hanesi ilk 9 hanesini doğrulamakta kullanılan bir tür güvenlik kodudur. Aşağıda güvenlik kodunu üreterek TC kimlik numarasını yazım yanlışlıklarına karşı doğrulayan is_valid_tckn() adında bir PHP fonksiyonu yer alıyor. Ayrıca C# ve VB fonksiyonlarını da sayfanın devamında bulabilirsiniz.

PHP TC Kimlik Numarası Doğrulama Fonksiyonu

Okumaya devam et “PHP ile TC Kimlik Numarasını Doğrulamak”

WordPress – WP Simple Cache Plugin

WP Simple Cache, wordpress kullanan sitelerin cevap süresini azami derece azaltan bir eklenti. Benzer birkaç eklenti varken neden böyle bir eklenti yazmaya giriştim derseniz, daha hızlı ve kullanımı kolay olan bir eklenti hazırlamak istedim. Bunda kullandığım diğer cache eklentilerinin yükleme ve performanslarında yaşadığım sorunlar etkili oldu. Ayrıca bu eklenti ile wordpress deneyimimi artırma şansı buldum. WP Simple Cache wordpress camiasına hediye ettiğim iikinci eklentim oldu. İlk göz ağırım WP Onlywire Auto Poster eklentisini buradan inceleyebilirsiniz.

Okumaya devam et “WordPress – WP Simple Cache Plugin”

TStringGrid Hücrelerinin Seçimini Kaldırmak

TStringGrid nesnesi varsayılan olarak seçili hücrelerini mavi renkle ışıklandırıyor bunu istemiyorsanız aşağıdaki kodu kullanabilirsiniz.

Hangi Linux Dağıtımını Seçmelisiniz

Bu belgede, çok kullanılan kimi Linux dağıtımları hakkında, özellikle başlangıç son kullanıcılarının tercih yaparken önceden bir miktar fikir sahibi olabilmeleri için bilgi verilmeye çalışılmıştır. Mümkün olduğunca objektif kalmaya çalışılarak verilmiş bilgilerin ardından yer yer bahsi geçen dağıtımları uzun süredir kullanan kişilerin, bu dağıtımlar ile ilgili -taraflı :) – yorumlarına da yer verilmiştir. Siz de yorumlarınızı belge geliştiricisine ulaştırarak potansiyel kullanıcıların yön bulmasını kolaylaştırabilirsiniz.
Okumaya devam et “Hangi Linux Dağıtımını Seçmelisiniz”

ForceDirectories ile Dizin Ağacı Oluşturmak

Delphi‘de dizin oluşturmak için kullanılan komut CreateDir‘dir. CreateDir belirttiğiniz bir dizinde yeni bir dizin oluşturmak için kullanılır. Eğer amacınız iç içe birden fazla dizin oluşturmak ise (patika oluşturmak) bunu CreateDir’i birden fazla kullanarak yapabilirsiniz ama size tavsiyem bunun yerine ForceDirectories komutunu kullanmanız. Örneğin; D:\ sürücüsünde “Dökümanlar\Dersler\Matematik” gibi iç içe bir dizin yapısı oluşturmak istiyorsanız ForceDirectories komutunu aşağıdaki gibi kullanarak bu işi kolayca gerçekleştirebilirsiniz.


WordPress’e Dosya Yükleyememe Sorunu

Herhangi bir şekilde wordpress’e dosya yükleyemiyorsanız bunun birçok nedeni olabilir. Gönderinize resim/görüntü eklediğinizde hiçbir hata almadığınız halde resim görüntülenmiyorsa sorun yükleme dizininizde olabilir.

Benim yaşadığım sorun şöyle idi: WordPress yönetim ekranındaki Ayarlar->Çeşitli sayfasından sitenize upload edeceğiniz dosyaların bulundurulacağı dizini belirtebiliyorsunuz. Varsayılan olarak bu dizin wp-content/uploads olarak ayarlı. Burada dikkat edilmesi gereken şey yazdığınız dizin yolunun başında ve sonunda taksim “/” işareti olmamalı. Ayar sayfasında nasıl yazılacağıyla ilgili örnek verilmiş ama uyarı yapılmamış. Sorunu nasıl çözerim diye araştırma yaparken wordpress.org da şöyle bir sayfa buldum.  Burada yükleme sorunlarına yol açabilecek olası durumlar ve çözümlerinden bahsedilmiş. Burada anlatmaya çalıştığım sorunun nedeni bu sayfadaki 9. maddede anlatılmış. Ben ettim siz etmeyin… :)

WordPress Nasıl Türkçeleştirilir

WordPress.org’dan ilgilizip zip dosyasını indirip kurulum yaptığınızda wordpress ingilizce olarak kuruluyor. Türkçeye çevirmek için wordpress ana dizinindedeki wp-config.php dosyasında tanımlı olan WPLANG değerini aşağıdaki gibi değiştirmeniz yeterli.


PHP: Aslında CGI Antremanı Yapmalıyız

LKD‘nin Linux-programlama listesindeNeden Cannot modify header information – headers already sent by” hatası alıyorum sorulduktan sonra, Sn. Barış Çuhadır’ın cevaben verdiği bilgiler işin özünü yansıtması açısından çok güzeldi. Paylaşmak istedim.

CGI programları istenilen programlama dili ile yazılabilir. Örneğin ben şu anda C ile kendi cgi kütüphanemi oluşturmaktayım. C ile yazılan bir cgi programı, ayrı bir işlem olarak yaratılmayıp apache cgi modülü ile kullanıldığında, ortalama bir masaüstü bilgisayarda bile saniyede ortalama 800-1200 talebe yanıt verebiliyor.

Hele ki yazdığınız program işlemciyi yoğun olarak kullanan bir program ise, ör. C ile yazılmış, apache üstünde mod-cgi ile çalışan bir cgi programı yine apache üstünde mod-php ile çalışan aynı programdan 5-10 kat daha hızlı çalışmaktadır.
Okumaya devam et “PHP: Aslında CGI Antremanı Yapmalıyız”

How to Gets Thread Count in a Process

Herhangi bir prosesin (işlem) bünyesinde bulunan thread (kanal) sayısını almak için aşağıdaki alt programı kullanabilirsiniz. GetCurrentProcessId çalışmakta olan programın prosess kimlik numarasını getirir. TlHelp32 ünitesini dahil etmeyi unutmayın.