Projedeki formları tespit etmek

Program projede yer alan formları çalışma anında tespit etmek ve onlara erişmeyi gösteren deneysel bir çalışma. Application.ComponentCount özelliği projede yer alan tüm nesnelerin sayısını verir. Application.Compnents dizisi ise bu nesnelerin veri yapısına işaret eden Tcomponent sınıfını içerir. Projedeki tüm nesneler taranarak is işleci ile TForm sınıfından olup olmadığına bakılır. as işleci ise dinamik olarak erişilen component’in istenilen sınıf gibi yorumlatılması için kullanılıyor.

Program projede yer alan formları çalışma anında tespit etmek ve onlara erişmeyi gösteren deneysel bir çalışma. Application.ComponentCount özelliği projede yer alan tüm nesnelerin sayısını verir. Application.Compnents dizisi ise bu nesnelerin veri yapısına işaret eden Tcomponent sınıfını içerir. Projedeki tüm nesneler taranarak is işleci ile TForm sınıfından olup olmadığına bakılır. as işleci ise dinamik olarak erişilen component’in istenilen sınıf gibi yorumlatılması için kullanılıyor.

Okumaya devam et “Projedeki formları tespit etmek”

Delphi’de düşük boyutlu program yazmak

Derlendiğinde 3.5KB ‘lık çalıştırılabilir kod üreten deneysel bir çalışma. Program delphi IDE’si veya doğrudan Delphi kod derleyicisi (dcc32) kullanılarak derleniyor. Ana program kodunu ve üniteleri derlemek için bat dosyaları kullanılıyor.

Küçük boyutları elde etmek için IDE aracılığyla derlemekten kaçınılabilir, Delphi IDE si varsayılan derleme seçenekleri ile programa fazladan kod ve kontrol blokları ekler. Bu özellik programın çevikliğini artırırken diğer yandan çalıştırılabilir kodun belli ölçüde büyümesine ve yavaşlamasına neden olur.

Çoğu zaman programa dahil edilen yerel Delphi üniteleri de programın boyutunu artırır. Bir nesnenin kullanılmayan bazı özellik ve yordamlari da ana koda dahil olur. Birbirinden türeyen bazı nesnelerin yapısı  türedikleri sınıfa bağlı olarak uzun bir zincir oluşturabilir ve bu durum doğal olarak programın boyutunun artmasına neden olur. Bunun yerine örnek programda olduğu gibi en sade sınıfları ve nesneleri kendiniz hazırlayabilirsiniz. Aslında bu yöntem kalın uygulamalar hazırlarken pek uygulanabilir değildir.

Programın bellek kullanımını da derleyici direktiflerini kullanarak sınırlandırabilirsiniz.

Derlendiğinde 3.5KB ‘lık çalıştırılabilir kod üreten deneysel bir çalışma. Program delphi IDE’si veya doğrudan Delphi kod derleyicisi (dcc32) kullanılarak derleniyor. Ana program kodunu ve üniteleri derlemek için bat dosyaları kullanılıyor.

Küçük boyutları elde etmek için IDE aracılığyla derlemekten kaçınılabilir, Delphi IDE si varsayılan derleme seçenekleri ile programa fazladan kod ve kontrol blokları ekler. Bu özellik programın çevikliğini artırırken diğer yandan çalıştırılabilir kodun belli ölçüde büyümesine ve yavaşlamasına neden olur.

Çoğu zaman programa dahil edilen yerel Delphi üniteleri de programın boyutunu artırır. Bir nesnenin kullanılmayan bazı özellik ve yordamlari da ana koda dahil olur. Birbirinden türeyen bazı nesnelerin yapısı  türedikleri sınıfa bağlı olarak uzun bir zincir oluşturabilir ve bu durum doğal olarak programın boyutunun artmasına neden olur. Bunun yerine örnek programda olduğu gibi en sade sınıfları ve nesneleri kendiniz hazırlayabilirsiniz. Aslında bu yöntem kalın uygulamalar hazırlarken pek uygulanabilir değildir.

Programın bellek kullanımını da derleyici direktiflerini kullanarak sınırlandırabilirsiniz.

Okumaya devam et “Delphi’de düşük boyutlu program yazmak”

uncaught exception: XMLHttpRequest.open methodunun çağrılması için gerekli izniniz yok.

Gece vakti aşırı korumacı bir tarayıcıyla başım dertte. Firefox yerel bir dosyadaki XMLHttpRequest kodu ile uzak bir siteden veri çekeceğinde bu hatayı verdi. Aslında uyarı demek daha doğru olacak. Bununla karşılaşana kadar Internet Explorer 6 da böyle bir durumun varlığından bile haberim yoktu. İşin aslı burada yazdığına göre yüce tarayıcı Firefox’un bir güvenlik özelliği. Kısaca Firefox çapraz-alan adı (cross-domain) sorgulamalarına izin vermiyor. Yani isteyensiten.com alan adından baskabirsite.com adresindeki bir veri kaynağından AJAX ile XML olarak veri istemek pek mümkün değil. Denerseniz şöyle bir hata mesajı alıyorsunuz, benden söylemesi ;)

Error: uncaught exception: 
Permission denied to call method XMLHttpRequest.open

Gece vakti aşırı korumacı bir tarayıcıyla başım dertte. Firefox yerel bir dosyadaki XMLHttpRequest kodu ile uzak bir siteden veri çekeceğinde bu hatayı verdi. Aslında uyarı demek daha doğru olacak. Bununla karşılaşana kadar Internet Explorer 6 da böyle bir durumun varlığından bile haberim yoktu. İşin aslı burada yazdığına göre yüce tarayıcı Firefox’un bir güvenlik özelliği. Kısaca Firefox çapraz-alan adı (cross-domain) sorgulamalarına izin vermiyor. Yani isteyensiten.com alan adından baskabirsite.com adresindeki bir veri kaynağından AJAX ile XML olarak veri istemek pek mümkün değil. Denerseniz şöyle bir hata mesajı alıyorsunuz, benden söylemesi ;)

Okumaya devam et “uncaught exception: XMLHttpRequest.open methodunun çağrılması için gerekli izniniz yok.”

The CoDeeN Content Distribution Network

CoDeeN yüksek performanslı içerik saklama ve dağıtmak amacıyla geliştirilmekte olan bir proje. Asıl Princeton üniversitesi bünyesinde geliştirilen proje birçok üniversitenin de desteğiyle test edilmekte ve geliştirilmekte. Amacı bir proxy network’ü oluşturarak kullanıcılarına içeriği en kısa zamanda en etkin ağ kaynağı kullanarak sunmak olan proje diğer yandan da önbellekleme yaparak içerik kaynaklarının yükünü hafifletme amacını taşıyor. Proje network’ündeki bir proxy’i kullanan bir kullanıcı sıradan web proxy’lerinden farklı olarak istediği içeriğe ulaşabilmek için uygulamaya dahil proxy’ler arasında en uygun CoDeeN proxy’sine yönlendirilebiliyor. CoDeeN hakkında daha fazla bilgi için bu sunuyu izleyebilirsiniz.

CoDeeN yüksek performanslı içerik saklama ve dağıtmak amacıyla geliştirilmekte olan bir proje. Asıl Princeton üniversitesi bünyesinde geliştirilen proje birçok üniversitenin de desteğiyle test edilmekte ve geliştirilmekte. Amacı bir proxy network’ü oluşturarak kullanıcılarına içeriği en kısa zamanda en etkin ağ kaynağı kullanarak sunmak olan proje diğer yandan da önbellekleme yaparak içerik kaynaklarının yükünü hafifletme amacını taşıyor. Proje network’ündeki bir proxy’i kullanan bir kullanıcı sıradan web proxy’lerinden farklı olarak istediği içeriğe ulaşabilmek için uygulamaya dahil proxy’ler arasında en uygun CoDeeN proxy’sine yönlendirilebiliyor. CoDeeN hakkında daha fazla bilgi için bu sunuyu izleyebilirsiniz.
Okumaya devam et “The CoDeeN Content Distribution Network”

Echo ve Print arasındaki farklar

Echo, Print’e göre işlemciyi daha verimli kullanır. Aşağıda örnek echo ve print‘in 100.000 kez parametresiz çalıştırılması sırasında geçen sürelerin ölçümünü gösteriyor.

 Echoing 100000 of nothing
 Execution time is 0.037015199661255 seconds.

 Printing 100000 of nothing
 Execution time is 0.040477991104126 seconds.

Echo, Print’e göre işlemciyi daha verimli kullanır. Aşağıda örnek echo ve print‘in 100.000 kez parametresiz çalıştırılması sırasında geçen sürelerin ölçümünü gösteriyor.

Echoing 100000 of nothing
Execution time is 0.037015199661255 seconds.

Printing 100000 of nothing
Execution time is 0.040477991104126 seconds.

Okumaya devam et “Echo ve Print arasındaki farklar”

Cazibeli PHP/SWF web grafikleri

PHP/SWF Charts, PHP kullanarak dinamik veri kaynağından basitçe, güçlü ve etkileyici grafikler sunmak için bir araç. Grafiği sunarken kullanılabilecek birçok flash tasarımı var. Örneğin aşağıdaki grafiği oluşturmak için şöyle bir kod kullanmak yetiyor;

<?php
include “charts.php”;

//the chart’s data
$chart [ ‘chart_data’ ] = array ( array ( “”,         “2001”, “2002”, “2003”, “2004” ),
array ( “Region A”,     5,     10,     30,     63  ),
array ( “Region B”,   100,     20,     65,     55  ),
array ( “Region C”,    56,     21,      5,     90  )
);

//send the new data to charts.swf
SendChartData ( $chart );

?>

Delphi 2007 for PHP

Delphi for PHP (DPHP), Delphi benzeri görsel uygulama geliştirme ortamı ile PHP’de web projesi gelistirme konusunda bir devrim yaratıyor. DPHP, PHP’de sağlam web uygulamaları geliştirmek için hızlı ve kolay bir yol sunuyor. 

Web geliştiricileri arasında PHP kullananların oranı oldukça fazla. Hatta ilk sırada diyebiliriz. PHP için yazılmış açık kaynak kodlu proje ve bileşenleri de hesaba katarsak PHP’nin önemi iyice netleşecektir. Ancak yaygın kullanımına ve popülaritesine rağmen bu güne kadar aşırı gelişmiş kod editörlerinin dışında ciddi bir RAD (Rapid Application Development) aracına sahip olamamış. Delphi for PHP, Delphi arayüzüne aşina olanlara PHP’de hızlı bir geliştirme ortamı sunuyor.

Delphi for PHP (DPHP), Delphi benzeri görsel uygulama geliştirme ortamı ile PHP’de web projesi gelistirme konusunda bir devrim yaratıyor. DPHP, PHP’de sağlam web uygulamaları geliştirmek için hızlı ve kolay bir yol sunuyor.

Web geliştiricileri arasında PHP kullananların oranı oldukça fazla. Hatta ilk sırada diyebiliriz. PHP için yazılmış açık kaynak kodlu proje ve bileşenleri de hesaba katarsak PHP’nin önemi iyice netleşecektir. Ancak yaygın kullanımına ve popülaritesine rağmen bu güne kadar aşırı gelişmiş kod editörlerinin dışında ciddi bir RAD (Rapid Application Development) aracına sahip olamamış. Delphi for PHP, Delphi arayüzüne aşina olanlara PHP’de hızlı bir geliştirme ortamı sunuyor.

Okumaya devam et “Delphi 2007 for PHP”

PHoss Security Sniffer

PHoss linuxda çalışan bir ağ koklama yazılımı. Kullanımı çok basit olan Phoss ağdaki HTTP (Basic authentication), FTP, POP3, IMAP4, LDAP ve TELNET oturumlarının parola ve kullanıcı isimlerini canlı olarak elde ediyor ve ekrana basıyor. Tabi switch li bir ağınız varsa öncelikle arpspoof gibi bir araçla tüm trafiği kendinize yönlendirmeniz gerekir. Ağınız HUB ile bağlıysa buna görek yok. HUB zaten trafik tüm ağa yayarlar. Bu aracın windows muadili olarak Ace Password Sniffer ve SniffPass var.

Yarım kalmış bir PHP projesi: e-Okul

e-Okul, muazzam sayıda bit(irile)memiş projenin yer aldığı kod arşivimden bir e-devlet atraksiyonu. 2004 yılında nice umutlarla giriştiğim bu işin ömrü nedense pek fazla ol(a)madı. Ana fonksiyonlarının bir kısmı tamamlamış olmama rağmen düzeltilecek ve geliştirilecek çok yönü var. Temel olarak öğrenci ve ailelerinin şifreleri ile giriş yapıp not ve devamsızlık gibi bilgileri  öğrenebilmelerini sağlayan bir proje. Sanırım ekran görüntüleri daha çok şey anlatır. Genel özellikleri ve kodları bu konuda çalışan arkadaşlara belki faydalı olur.

CAPTCHA ile insan doğrulama

CAPTCHA, insan olmayan sistemleri bir takım insancıl özellikleri kullanarak tespit etmek olarak tanımlanabilir. Son bir aydır siteye onlarca reklam/link içeren spam yorumlar eklenmeye başlandı. Bu iş yorum spamcıları (blogspam comment) olarak sınıflandırılan yazılımlar kullanılarak yapılıyor. Bu programlar web deki formları tarayor ve açık sitelere mesaj ve bağlantılar otomatik olarak bırakılıyor. Bu iz bırakma atraksiyonları tamamen otomatize edilmiş yazılımlarla, pagerank/hit artırmak amacıyla yapılıyor. Siteyi spam dan korunmak için yorum ekleme formuna CAPTCHA güvenlik resmi yerleştirdim. Resimdeki güvenlik kodu ilgili kutuya doğru olarak girilmedikçe eklenen yorum kabul edilmeyecek.

CAPTCHA, insan olmayan sistemleri bir takım insancıl özellikleri kullanarak tespit etmek olarak tanımlanabilir. Son bir aydır siteye onlarca reklam/link içeren spam yorumlar eklenmeye başlandı. Bu iş yorum spamcıları (blogspam comment) olarak sınıflandırılan yazılımlar kullanılarak yapılıyor. Bu programlar web deki formları tarayor ve açık sitelere mesaj ve bağlantılar otomatik olarak bırakılıyor. Bu iz bırakma atraksiyonları tamamen otomatize edilmiş yazılımlarla, pagerank/hit artırmak amacıyla yapılıyor. Siteyi spam dan korunmak için yorum ekleme formuna CAPTCHA güvenlik resmi yerleştirdim. Resimdeki güvenlik kodu ilgili kutuya doğru olarak girilmedikçe eklenen yorum kabul edilmeyecek.
Okumaya devam et “CAPTCHA ile insan doğrulama”

NetServer:Yeni bir WAMP paketi

NetServer Windows (NT/2000/2003/XP) için hazırlanmış ve sistem tepsisinde çalışan bir arabirim tarafından kolayca konfigüre ve kontrol edilebilien bir sunucu paketidir. Paketin içerisinde Apache+PHP, MySql, Filezilla FTP Server, hMailServer and PHP scriptleri yer alıyor.

NetServer Windows (NT/2000/2003/XP) için hazırlanmış ve sistem tepsisinde çalışan bir arabirim tarafından kolayca konfigüre ve kontrol edilebilien bir sunucu paketidir. Paketin içerisinde Apache+PHP, MySql, Filezilla FTP Server, hMailServer and PHP scriptleri yer alıyor.
Okumaya devam et “NetServer:Yeni bir WAMP paketi”

Çalışan programı silmek

Çalışan bir programın kendi dosyasını silebilmesi çalışan başka bir programınkini silmesinden daha kolaydır. Belki de bu konuda denemelerde bulunmuş olanlar vardır. Windows işletim sistemi, çalışan programların diskteki dosyalarını sadece okunabilir olarak ayarlar. Programın dosyasını silmek için burada anlatılan birçok yöntemin yanında pek pratik olmayan ama kesin sonuç verdiğinden dolayı kullanmayı tercij ettiğim yönteme göre; Programın kendini silen bir batch (.bat – [toplu işlem dosyası]) dosya oluşturur. “kendinisil.bat” dosyasının içeriğinde aşağıdaki iki satır komut yer alır;:

del program.exe
del kendinisil.bat

Çalışan programın kendini silmesi için yapması gereken tek şey, çalışmasını sonlandırmadan önce “kendinisil.bat” dosyasını bir kez çalıştırmaktır. Batch dosyası  ms-dos komut sistemi altında çalıştırıldığından icraya başlaması biraz zaman alır, bu arada da işletim sistemi asıl programın çalışmasını çoktan sonlandırmıştır. Batch dosyası yerine getireceği son işlem olan kendini silme işini gerçekleştirmeden önce çalışması biteceğinden bu aşamada da silme işlemi sonuçlandırılır.

Yazan: Tankado

PAD: Portable Application Description

PAD (Portable Application Description), ADP (Association of Shareware Professionals) tarafından desteklenen taşınabilir uygulamaların künyesini hazırlamak için tanımlanmış bir XML standardıdır. PAD yazılım geliştiricilere ürünlerini ve özelliklerini internetteki çeşitli web sitelerine sunmak için bir standart sağlıyor. PAD ‘i destekleyen web sitelerine programınızın PAD dosyasını kolayca gönderebilir, her seferinde farklı sitelere bilgileri yeniden girme zahmetinden kurtulabilirsiniz.

Bir XML dosyası olan PAD de olması gereken alanları buradan inceleyebilirsiniz. PAD dosyası oluşturmak için çok sayıda yazılım da mevcut. Bunlardan ASP’nin sağladığı PADGen isimli yazılım ücretsiz ve PAD formatına uygun desteği veriyor.

PAD dosyanızı oluşturduktan sonra yazılımları indeksleyen download sitelerine göndermek çok kolay. Bazı sitelere PAD dosyasını bir form aracılığıyla gönderebilirken bazıları da pad.xml dosyanızın URL adresini girmenizi isteyebiliyor. Ayrıca PADexpress gibi bir programı kullanarak bu işi yüzlerce yazılım indirme sitesi için otomatik olarak yaptırabilirsiniz.