TThreadPool Günlükleri – Vol I : TParallelizableProperties

Son iki yazımda bahsettiğim üzere bir süredir YSA konusu üzerinde bazı çalışmalar yapıyorum. Hatta dün yayınladığım yazıda, üzerinde çalıştığım ağ ile ilgili bazı kısımların paralelleştirilebileceği hakkında birkaç kelam etmiştim. Bugün bu paralelleştirme çalışmaları üzerine mantığını oturtmaya ve işleyişini geliştirmeye yavaş yavaş başladım. İşte ilk meyveler:

Continue reading

KillTimer ve Null Hwnd

Hemen hemen 1 ay önce yayınlamayı planladığım bu yazıyı tamamlayıp yayınlayayım dedim artık :) Kendimi o aralar fena bir şekilde Thread’lere gömmüş durumdaydım: “İşletim sistemi API’lerini kullanarak istediğim kodu nasıl thread haline getiririm?”, “Anonymous threadleri nasıl istediğim anda sonlandırırım?”, “Thread context menülerine nasıl müdehale ederim?”, “CodeInjection ile Thread’leri nasıl çileden çıkartırım?” ve benzeri konular… Continue reading

Pencere Görünümlerine Hükmetmek

Windows Xp gerek arabirim olarak gerek çekirdek olarak bir çok konuda bir devri kapatıp yeni bir devir açan bir işletim sistemi olmuştu 8-9 sene kadar önce… Daha esnek, daha kararlı ve kullanıcı arabirimi olarak da bir çok yenilik getiren bir işletim sistemi.

Arabirim olarak, Windows 2000’de gördüğümüz AlphaBlending’e bir de tüm arabirim genelinde tema desteği gelmişti ki kullanımın tadına doyum olmuyordu… Hoş; benim için farkeden bir şey yoktu gene :) Gene standart tema, gene standart görünüm… Neyse…

IDE’ler de bu gelişmeye ayak uydurdular ve aslında işletim sisteminin sağladığı bir destek ile projelerimizde, sistemin temalarından faydalanmamızı sağlayan bileşenler sundular. Borland editörlerini kullananlar bilirler: “XPManifest”. Yalnız bu bileşenin bir sıkıntısı vardı. Eğer sistemde temalar aktif değilse sizin projeniz de bu temalardan faydalanamıyordu. Yani manifest bileşenleri, sistemdeki tema aktif ise projenize etki edebiliyordu ( hala öyle ;) ). Son kullanıcının göz zevkine de hitap etmesi gereken biz geliştiricilerin ise bu durumu aşması gerekiyordu:

Continue reading

Bir MultiDesktop İncelemesi…

İnternetin kesikliği ve fındık toplama işinin de bitmiş olmasıyla kendime yeni uğraşlar edinmem gerektiğini düşünüyodum. Kitap okumak.. Okudum. Müzik dinlemek.. E, bunu her zaman yapıyorum zaten.. Ne yapayım ne yapayım derken eski projelerime sardım kendimi. Bir türlü tamamlayamadığım Server-Client programım ( Tamamladığım farklı versiyonları mevcut. Bu versiyon tamamen benim fantazim.. ), bellek taşmalarını engelleyemediğim ve bir türlü performansını artıramadığım Linked List yapılarım… C++ ve C# ta durum nedir bilmiyorum ama Delphi’deki TList sınıfı, bir linked list değil bir Pointer Array’dir ve ne yaptımsa benim listemin hızını TList’in hızına bir türlü yaklaştıramadım (C# tamamen nesneye dayalı bir dil olduğundan ve pointer desteğinin de kısıtlı olduğunu bildiğimden “C#’ta da gerçek bir Linked List uygulaması yoktur.” diyebilirim sanırım.)…

Neyse… Oturdum yeniden yazmaya başladım bu yapıyı. Bir editör, yeni bir tane daha, yeni bir tane daha.. Geçtiğimiz bahardaki halime benzedim :) Gene 7-8 tane editör penceresi… Bir de oranın buranın Explorer pencereleri.. Taskbar doldu taştı. Ya biraz daha düzenli olmalı projeleri sırayla geliştirmeliydim ( ki hayatta yapamam ) ya da bu karışıklığa başka bir alternatif bulmalıydım. Emektar Dial-Up ile internete bağlandım ve başladım “MultiDesktop in Windows XP” diye aramaya… :)

Continue reading