18 Haziran 2009

KDE 4.2 ve GPF - 2

Önceki yazımda KDE4'ün web çizgi romanı okuyucusundan ve GPF ile tanışmamdan bahsetmiştim. Bir süre çizgi romanı KDE4'ün plasmoidini kullanarak okuduktan sonra plasmoidin 31 Mart 2000'den sonrasını gösteremediği gerçeğiyle karşılaştım. Çünkü 1 Nisan 2000 tarihinde çizgi romanın kendisi yerine şaka amaçlı bir sayfa konmuştu ve plasmoid resmi indiremediği için ilerleyemiyordu.

Bunun ardından çizgi romanı bir süreliğine sitesinden okumaya devam ettim. Bu kez de sayfanın yenilenmesi uzun sürdüğü için parçalar arasında çok bekliyordum. En sonunda bekleme sorunumu ve belli bir tarihten sonrasını indirememe sorununu çözecek, aynı zamanda sevdiğim bölümleri kaydedebileceğim bir PyQt uygulaması yazmaya karar verdim.


Uygulamayı yazmam yaklaşık 30 dakika sürdü. İki parçadan oluşuyor. İlk parça olan indirici sadece siteye bağlanıp çizgi roman parçalarını kaldığım yerden şu anki tarihe kadar teker teker indirmeye çalışıyor ve bunları belirlediğim bir dizine tarihleriyle kaydediyor. İkinci parça olan okuyucu ise tıpkı KDE4 plasmoidinde olduğu gibi bu dizindeki resimleri sırayla gösteriyor. Artık sadece sırayla değil istediğim numaralı parçaya atlayarak da okuyabiliyor, sevdiğim parçaları ve son okuduğum parçayı kaydedebiliyordum.

Bir süre sonra plasmoidde olup da uygulamamda eksik olan bir özelliği fark ettim. KDE4 plasmoidleri istenilen açıyla çevrilebiliyorlar. Plasmoidi 90 derece çevirdiğim zaman yatarken de boynumu kırmadan okuyabiliyordum. Ekran kartımın sürücüsü desteklemediği için görüntüyü yan çevirmem de mümkün değildi. Bu yüzden uygulamama resmi gösterirken verilen açıyı kullanmasını sağlayan yeni bir özellik ekledim. Başta zor olacağını düşünmüştüm ama Qt sayesinde şu üç satır işimi gördü:
transform = QtGui.QTransform()
transform.rotate(90)
pixmap = pixmap.transformed(transform)
Diğer insanların da faydalanabilmesi için yazdığım uygulamanın kodlarını GPLv3 ile lisanslayıp sudrap SVN deposuna koydum. Bir türlü zaman ayırıp kurulabilecek hatasız bir uygulama haline getiremediğim için pisi paketini yapmaya da uğraşmadım. İlgililer kodları buradan inceleyip indirebilir, hatta değiştirip tekrar dağıtabilirler.

GPF'i sonuna kadar okuduktan sonra kendi çizgi romanımı yapma girişimlerine başladım. Aslında bu ayrı bir blog girdisinin konusu olabilir. Ama hazır başlamışken devam edeyim. Girişimlerim birkaç hafta sürdü. Sonra plasmoide yeni eklenen bir web çizgi romanı daha ilgimi çekti. Adı Geek Hero Comic olan bu çizgi romanın diğerlerinden farkı özgür olmasıydı. Tüm parçalar SVG olarak Inkscape'te çiziliyor ve Creative Commons lisansıyla yayınlanıyor. Bir yazılım şirketinde çalışan özgür yazılımcının yaşadıklarını konu alması ise ilgimi çekmek için yeterliydi.

Geek Hero Comic'in bu parçasında hacker amblemini (tabutun üzerinde) görünce nereden geldiğini merak ettim. Wikipedia'da bunun anlamını öğrendim ve başka bir simgenin varlığından haberdar oldum. Hackerlığın ikinci simgesi olan Dust Puppy, User Friendly isimli başka bir çizgi romanın karakteriydi. Tabi hemen bu çizgi romanı da okumaya başladım. User Friendly, GPF'ten daha eski olduğu için okunacak daha fazla parçası vardı. Hemen daha önce yaptığım uygulama için bir de User Friendly indirme betiği hazırladım. Bununla 1997'den günümüze kadar olan bütün parçaları indirip okumaya başladım. User Friendly'i okudukça GPF'in köklerinin nereden geldiğini anlamaya başladım. Bunda da GPF'te olduğu gibi fantastik yan karakterler vardı. İlk fantastik karakter sunucuda biriken tozlardan meydana gelen Dust Puppy, ikincisiyse bunun yazdığı Erwin adlı yapay zeka olunca okumak için uzun bir çizgi roman daha bulduğum için sevindim...

Geçen zamanda çizgi romanlar dışında pek çok şeyle de uğraştım. Bunları başka bir gün, başka bir blog girdisinde anlatmayı umuyorum. Görüşmek üzere.