Öyle bir seyir defteri…

Basit ama sinir bozucu bir hatanın öyküsü

09 Mart 2009 Pazartesi, 23:41 | Gezegen, Pardus

KDE 3 ile beraber Kooka tarayıcı arayüzünün gıcık bir özelliği vardır. Tarayıcı takılı/açık olmasa bile açılır, hiçbir hata da vermez, sadece yazılımın tarama fonksiyonları kapalı gelir.

Bazen elektrik kesintisinden sonra tarayıcının kendine gelememesinden, bazen de kablonun oynamasından tarayıcı çalışmayabiliyor. Bu benim başımı ağrıtıyor, çünkü uzaktan destek vermem gereken kişiler tarayıcının çalışmadığını anlamıyorlar; arayüzde bişiyi yanlışlıkla kapattıklarını düşünüp beni arıyorlar.

Pazar günü Pardus’un hata takip sisteminde temizlik yaparken, 3432 numaralı hata gözüme çarptı. Gürer’in onu raporladığı zamanı hatırladım, “evet ya, böyle bir problem vardı, yazacaktım ben de kaç zamandır” diye düşünmüştüm. Hatanın üzerinden 2.5 sene geçmiş, beni daha da uzun zamandır rahatsız ediyormuş yani :/.

Ya dedim, sinirimi bozup duruyor bu olay, kaç senedir rahatsız edip duruyor beni, herkesin KDE 4 sevdası peşinde koştuğu şu sıralar kimse de uğraşmaz bu işle, ne kadar zor olabilir ki…

kdegraphics’in kaynak kodunu indirdim, açıp Kooka dizinine girdim. Kooka tarayıcı olduğunda bir aygıt seçme penceresi çıkarıyordu. Aygıt bulamadığında hiçbir şey yapmıyor olmalı, orayı bulup else’ine bir uyarı penceresi çıkarmasını sağlamam yeterli olacaktı. Pencerede “Select Scan Device” yazıyordu, ben de onu grep’ledim kaynak kodunda, kooka.cpp’de çıktı. Orada baktım ki slSelectDevice() isimli bir fonksiyon çağırıyor. Bu kez onu grep’ledim, kookaview.cpp içinden çıktı.

Fonksiyonu incelediğimde problemin ne olduğunu gördüm. “Galeri modu” diye bişisi varmış Kooka’nın, tarayıcı bulamazsa o olduğunu farzediyormuş (kooka –help ile baktım, kooka -g diye özel olarak çalıştırıncaya karşılık geliyor). Buna da useDevice isimli bir değişkenin değerinin “gallery” olup olmadığına göre karar veriyormuş. Aradığım yeri de bulmuştum, bir else‘in altına yorum olarak “no devices available or starting in gallery mode” yazıyordu. İşte o or‘u ayırıp, useDevice’ın değeri gallery değilse “tarayıcı bulunamadı” diye bir uyarı çıkarttırmam gerekiyordu.

Şimdi KDE’de bunun nasıl yapıldığını bulmam gerekiyordu. Sistem çekmecemde beni kem gözlerden koruyan nazar boncuğum aklıma geldi. About penceresi sadece OK’e basılabilen bir yazı içeriyordu. Tam aradığım pencere tipiydi. KNazar’ın kodunu bir dizine çekip, içinde o kutuda yazan “KNazar is a usefull part of” kelimesini grep’ledim, çıktıda istediğim fonksiyon aynen yazıyordu.

kooka.cpp’nin içini açtım, if’i ve ardına uyarı çıkarma fonksiyonunu ekledim. diff komutu ile bir yama haline getirdim yaptığım değişikliği. kdegraphics paketine ekleyip, derledim. Uzuuun sürdü bir miktar ama bittiğinde artık tarayıcı takılı olmadığında uyaran bir Kooka’m vardı. Sadece iki satırda…

Siz siz olun, benim yaptığımı yapmayın. Ne yazılımı, ne de kullanılan teknolojileri tanımıyor olsanız da düz mantıklı çözmesi en fazla 10-15 dakikanızı alacak iki satır için yıllarca çile çekmeyin. “Biri”nin onu çözmesini bekleyerek çektiğiniz sıkıntıya değmez.

  1. “Basit ama sinir bozucu bir hatanın öyküsü” İçin Yapılan 3 Yorum

  2. Erkan Tekman 10 Mart 2009 Salı günü dedi ki :

    Harika bir özgür yazılım hikayesi. Geliştiricinin kaşıntısı var, kaynak kodunun açıklığı var, camia desteği var… Ellerine sağlık Doruk. Şimdi sıra yamayı yavaş yavaş upstream’a doğru göndermekte…

  3. cartman 10 Mart 2009 Salı günü dedi ki :

    i18n() içine koymazsan o string çevrilmez ama :-)

  4. Do 10 Mart 2009 Salı günü dedi ki :

    > i18n() içine koymazsan o string çevrilmez ama :-)
    KDE’nin Bugzilla’sına eklediğime koydum zaten.

Bir Yorum Yazın

You are logged in as . To logout, click here.