30 Ocak 2017 Pazartesi

Kod Katkısı Haricinde Özgür Yazılımlara Nasıl Katkıda Bulunulur?

Özgür yazılımlar genelde çevrelerinde oluşan toplulukların gücüyle hayatını sürdürür. Topluluklar elbette sadece geliştiricilerden oluşmaz. Özgür yazılımlara kod katkısı dışında katkıda bulunmanın bir çok yolu vardır. Ve her katkı kıymetlidir.

Bir özgür yazılım topluluğunun içinde nasıl işler yapan insanlar vardır LibreOffice özelinde yazacağım. Unuttuğum atladığım varsa uyarırsanız düzeltirim.  

Hata raporlama 

Kullanıcıdan geri bildirim almak her yazılım için kıymetlidir. LibreOffice'in her gün yeni kabul edilen yamalarıyla birlikte derlenip paketlenir. Buradan günlük derlemelere ulaşabiliriniz. Böylece en son hali üzerinden yazılımı test edebilirsiniz. İlla geliştirme sürümünü test etmeniz gerekmez ancak karşılaştığınız hatanın kısa bir süre içinde de çözülmüş olma ihtimali mevcut. Ben geliştirme sürümünü test etmenizi tavsiye ederim.

Kullanırken karşılaştığınız bir hatayı hata takip sistemine raporlayabilirsiniz Hata nasıl raporlanır kısmını olabilecek tüm ayrıntılarıyla Necdet Yücel'in yazısından öğrenebilirsiniz.

Raporlanmış hatayı test edip onaylama

Hata ilk raporlandığında doğrusu "UNCONFIRMED" etiketine sahip olmasıdır. LibreOffice'te raporlanmış hatalar en az bir kişi tarafından daha tekrar edilirse "NEW" etiketi kazanır.  Böylece raporlanmış hataların gerçekten hata olma ihtimali yükselir. Bu sebeten raporlanmış hataları test etmek de ayrı bir iş haline gelir. LibreOffice'te test edilmesi gereken hataların listesine şu filtre ile ulaşabilirsiniz. Hatayı tarif edildiği şekilde siz de görebiliyosanız ve eminseniz "NEW" etiketi verebilirsiniz.

Manuel test

Testi yazılmış özelliklerin bir sonraki sürümde doğru çalışıp çalışmadığının farkedilmesi kolaylaşır. Kod yazmadan düz metin yazar gibi test yazmanız da mümkündür. Buradan yazılmış testleri inceleyebilir yenilerini ekleyebilirsiniz.

Çeviri

Hiçbir yazılım kendiliğinden Türkçe'ye çevrilmez. Türkçe kullanabildiğiniz özgür yazılımların her birinin arkasında bir ya da birden çok gönüllü çevirmen vardır. LibreOffice'in çevirilerinin %99'unu tek başına Necdet  hoca devam ettiriyor. Düzgün çeviri yapmak için İngilizce bilmekten fazlası gerekir. Çeviri tutarlı olmalıdır. Hızlandırıcılar, değişkenler, formül isimleri gibi kod ile bağlantılı çevirileri yaparken öncekilerin nasıl çevrildiğini mutlaka incelemelisiniz. Çeviri arayüzüne buradan ulaşabilirsiniz.

Web sitesi, mail, forum ve diğer sosyal mecralar

Özgür yazılımların da tanıtılması, pazarlanması, topluluğunun bir arada tutulması gerekir. Bu gibi mecraların da birileri tarafından yönetilmesi gerekir. LibreOffice'in web sitesi, mail sunucusu, forumu ile gönüllü olarak yerelde ilgilenen Zeki Bildirici  en son mail listesine paylaşılması gereken işlerin bir listesini yazmıştı. Bu yönden katkıda bulunmak, sorumluluk almak isterseniz tam zamanı.

Belgelendirme

Elbette kod belgelendirmesinden bahsetmiyorum. Onun için koda hakim olmak gerekir ve bence kod yazmaktan daha zor bir iştir. Yine de meraklısı için kod belgelendirmesini şuraya iliştireyim.

Yazılımın bir özelliğe sahip olması tek başına yeterli değildir. Kullanıcı onu nasıl kullanacağını bilmediğinde özellik onun için anlamsız hale gelir. LibreOffice'in orijinal kullanım klavuzlarını şu linkten bulabilirsiniz.

Güncel olmasa da yine çok yardımcı olacak Türkçe kullanım klavuzları -sanıyorum ki TÜBİTAK tarafından çevirilmişti- şuradan bulabilirsiniz. Bu belgelerin güncele yakın hale getirilmesi için yardımcı olabilirsiniz.


Kullanım videoları

Bazı kullanıcılara okuyarak öğrenmek yerine izleyerek öğrenmek daha cazip gelir. Bu yüzden LibreOffice'in sevdiğiniz özelliklerinin kullanımını ekranınızı kaydederek gösterebilirsiniz. Böyle çalışmalarınızı bize ulaştırısanız duyurmak isteriz.

Bağış

Özgür yazılımlar ağaçta yetişmez, yerden bitmez :) Etkinlikler, sunucu-domain masrafı, geliştirici teşvik gibi benim de göremediğim bir sürü gideri vardır. Benim zamanım yok ama bağış yapabilirim derseniz miktarından bağımsız olarak yine kıymetli bir katkıda bulunmuş olursunuz. Zaman da ayırırım bağış da yaparım derseniz:



16 Ocak 2017 Pazartesi

LibreOffice - Kendi Notebookbar'ınızı Oluşturun

Yakın zamanda MUFFIN konsepti içinde tanıtılan Notebookbar, LibreOffice fonksiyonlarının serbestçe yerleştirilebileceği ve düzenlenebileceği boş bir tuval gibidir. Fazla kodlama bilgisi gerektirmeden dilediğiniz şekilde özelleştirmeye açıktır. Nasıl özelleştirebileceğimize dair LibreOffice Dizayn ekibinden bir geliştirici gayet güzel bir blog yazısı yazmış. Türkçe konuşan kullanıcılar için aktarmak istedim.

Çalışma Ortamının Hazırlanması

Notebookbar arayüz (ui) dosyaları sadece XML formatlı metin dosyalarıdır. Dosyaları herhangi bir metin düzenleyicisinde değiştirmek mümkündür, ancak oldukça sıkıcıdır. ui dosyalarını değiştirmenin varsayılan yolu şimdilik Glade kullanmaktır.

$ sudo apt-get install glade

Glade'yi kurduktan sonra, belirli kontrolleri kullanmak için LibreOffice kataloğunu eklemek gerekmektedir. Glade'i çalıştırın. Düzenle->Tercihler-> Katalog ekle (+)  kısmından <libreoffice kurulumu>/share/glade dizinini ekleyin.

Glade'i yeniden başlattığınızda sol tarafta LibreOffice'e ait kataloğun eklendiğini göreceksiniz.

Mevcut Notebookbar'ı Düzenleme

Artık mevcut araç çubuklarını değiştirebilirsiniz. Mevcut notebookbar'ların ui dosyaları aşağıdaki konumlardadır.

Kelime işlemci için <libreoffice kurulumu> /share/config/soffice.cfg/modules /swriter/ui/
Hesap tablosu için <libreoffice kurulumu> /share/config/soffice.cfg/modules/scalc/ui/
Sunum için <libreoffice kurulumu> /share/config/soffice.cfg/modules/simpress/ui/
altındaki notebookbar_groups.ui veya notebookbar_simple.ui'dir.

Sadece bu ui dosyasını Glade'e yükleyin, istediğiniz gibi değiştirin, kaydedin ve değiştirin. Yaptığınız değişikliği LibreOffice'de görebilmek için yeniden başlatmanıza gerek yoktur.

Yeni Notebookbar Oluşturma

Mevcut dosyalarla uğraşmaktan korkuyorsanız sıfırdan başlamak da mümkündür. İlk önce yeni oluşturacağımız bu ui dosyasının referansını <libreoffice kurulumu>/share/registry/main.xcd içine eklemek gerekmektedir. Ne yazık ki, bu XML dosyası oluşturma işlemi sırasında düzenleme yapılmasını engelleyen satır sonları olmadan oluşturulmuştur. Neyse ki, XML dosyalarını biçimlendirmede yardımcı olan tidy adlı küçük bir araç var. Main.xcd dosyasını önce main.bak olarak yeniden adlandırın ve şunu çalıştırın:

$ cat main.bak | tidy -utf8 -xml -w 255 -i -c -q -asxml > main.xcd

Artık dosyayı tercih ettiğiniz metin düzenleyicisinde açabilirsiniz. Ekleme yapacağınız satırı dosya içinde "notebookbar_groups" kelimesi ile arayın ve çoğaltmak için komple bölümü kopyalayıp yapıştırın:


  <prop oor:name="Label">
    <value xml:lang="en-US">Contextual groups</value>
  </prop>
  <prop oor:name="File">
    <value>notebookbar_groups.ui</value>
  </prop>
  <prop oor:name="HasMenubar">
    <value>true</value>
  </prop>
</node>
Notebookbar_groups.ui'nin her uygulama için bir tane olması gerekir. Aşağıdaki bölümü değiştirdiğinizden emin olun:

 <oor:component-data xmlns:install="http://openoffice.org/2004/installation" oor:name="Notebookbar" oor:package="org.openoffice.Office.UI">
//...
  <node oor:name="Applications">
    <node oor:name="Writer" oor:op="replace">

Artık düğüm adını "Groups" dan "MyMuffin" e, etiketi "Contextual Groups" dan "My Muffin" e, ve dosya referansını notebookbar_groups.ui'den notebookbar_mymuffin.ui'ye değiştirmeniz gerekmektedir.

Gerçek dosya olan notebookbar_mymuffin.ui dosyasını <libreoffice kurulumu> /share/config/soffice.cfg/modules/swriter/ui/ adresinde oluşturun ve temel öğelerini girin:
<?xml version="1.0" encoding="UTF-8"?>
  <interface>
    <requires lib="gtk+" version="3.12"/>
    <requires lib="LibreOffice" version="1.0"/>
  </interface>

Ayrıca, yeni bir dosya oluşturmak veya diğer Notebookbar dosyalarından birini çoğaltmak ve içeriği silmek için Glade'yi kullanabilirsiniz. Yaratıcılığınızı bekleyen güzel bir boş kanvas görmek için Kelime işlemciyi başlatın.

Notebookbar'ı Düzenlemek

Çok basit bir uygulama ile başlamak için klasik bir araç çubuğu oluşturuyoruz. Glade'i çalıştırın ve oluşturduğunuz ui dosyasını açın. Kutu sembolünü (Konteynerler bölümündeki ilk öğe) boş kanvasın üzerine sürükleyin. Açılır pencerede öğe sayısını 1 olarak değiştirin (tüm özellikleri daha sonra değiştirebilirsiniz). Şimdi bir Notebookbar araç kutusu ekleyin (LibreOffice bölümündeki son öğelerden birinde, Kaplar altındaki ortak araç çubuğu çalışmıyor) ve GtkBox'a bırakın. Tüm denetimleri istediğiniz gibi yeniden boyutlandırabilirsiniz, ancak son hizalama LibreOffice tarafından yapılır.

sfxlo-NotebookbarToolbox'a sağ tıklayıp düzenleyi seçin. İletişim kutusunda, Hiyerarşi sekmesine gidin ve Ekle'yi tıklayın. Sağda Özelliklerin bulunduğu alanda Action Name kısmına ".uno:Open" yazın.



Araç çubuğu öğeleri varsayılan olarak düğmeler olarak tanımlanır ve normal "Aç" fonksiyonunun aksine ek özelliklere sahip bir menüye sahip olmazsınız. Bu özelliği Hiyerarşi altından kolaylıkla değiştirebilirsiniz: Tool Item->Type kısmında Düğmeden Menüye çevirebilirsiniz.

Daha fazla işlev eklemek isteyebilirsiniz, bu nedenle tüm işlevlerin nasıl çağrıldığını ve nereden yardım alacağınız sorusu ortaya çıkmaktadır.

.uno:Nedir?

.uno: komutları, bir işleve ait isim ve araç ipuçları, seçili temaya bağlı simge, etkin / devre dışı durum, gerçek işlev vs. gibi tüm bilgileri jenerik bir modele dönüştürür. Örneğin, .uno:Bold, düğmenin metin görünümünü kalın / kalın değil olarak değiştirdiği anlamına gelir. İşlevleri adıyla biliyorsanız, ana menü spesifikasyonunda (menubar.xml) sağdaki .uno: komutunu <libreoffice kurulumu> /share/config/soffice.cfg/modules/swriter/menubar/ adresinde bulabilirsiniz (diğer modüller için sırasıyla) scalc / menubar, simpress / menubar vb.).

Ve elbette diğer Notebookbar'lara bakmak mantıklı. Bağlam bağlı bölümleri nasıl ele alacağınızı, sekmeleri nasıl kullanacağınızı ve çok basit araç çubuğu yerine büyük düğmeleri nasıl kullanacağınızı gösterir.

Özetle

Mevcut Notebookbar'ları Glade'yi kullanarak <libreoffice kurulumu> /share/config/soffice.cfg/modules/ <module> / ui adresinde değiştirebilir veya <libreoffice> /share/registry/main.xcd dosyasını düzenledikten sonra kendinizinkini ekleyebilirsiniz. Notebookbar, kontrollerin eklenebileceği boş bir tuval.

Bu değişiklikler hacktir ve bir sonraki güncelleme ile geçersiz kılınacaktır. Bu prosedürün kullanıcı dostu olmadığının farkındayız. Mevcut uygulama deneysel ve çok erken bir aşamadadır. Fakat mümkün olanı bir fikir verir.

Daha da önemlisi, LibreOffice ile birlikte gönderilen mevcut Notebookbar türevlerini düzeltebilir veya geliştirebilirsiniz. Bu yüzden, daha iyi yapılabilecek bir şey gördüğünüzde iyileştirmeleri yamalar olarak kabul ediyoruz!

LibreOffice MUFFIN nedir, ne değildir?


LibreOffice kısa süre önce MUFFIN (My User Friendly & Flexible INterface) adını verdiği yeni kullanıcı arayüzü konseptini duyurdu.

My: Kişiselleştirilebilen
User Friendly: Kullanıcılarının kendi alışkanlıklarına göre düzenleyebileceği modüler
Flexible: Farklı donanımlara, farklı ekran boyutları ve çözünürlüklerine uyumlu
InterfaceVarsayılan arayüz, tek araç çubuklu arayüz, kenar çubuklu tek araç çubuğu ve yeni Notebook Bar (deneysel) seçeneklerinden birini seçmeye imkan tanıyan

Bu konseptin içindeki en yeni yerleşim biçiminin Notebookbar olması nedeniyle yanlış anlaşılan iki noktaya şöyle açıklık getirmeliyim:

1- Notebookbar, MUFFIN değildir. MUFFIN'in bir parçasıdır.
2- LibreOffice Notebookbar, Microsoft Office Ribbon değildir. Benzerlik gösterse de karşılığı bu değildir.
Notebookbar'ın üç kullanım seçeneğinden birinin ekran görüntüsü
Notebookbar ve yanlış anlaşılan MUFFIN hakkında LibreOffice topluluğuna sert eleştiriler geldi. LibreOffice Notebookbar'ı seçenek olarak getirdi. Ve henüz deneysel özellikler kısmında. İsteyen bu yerleşimi aktif edebilir. Yani kullanıcıyı bunu kullanmaya zorlamadı. Eleştiri güzeldir gelişimi hızlandırır ancak sert tepkileri anlamsız buluyorum ve bunların gönüllüler tarafından yapıldığını bir kez daha hatırlatmakta fayda görüyorum.

Notebookbar Türkçe tam karşılığı konusunda bir karasızlık mevcut. "Sekmeli / Kategorilendirilmiş Araç Çubuğu" uygun olabilir. Sizler de bu yeni yerleşimi kullanıp önerilerinizi yazabilirsiniz.

3 Ocak 2017 Salı

Akademik Bilişim - LibreOffice Geliştirme Atölyesi

19. Akademik Bilişim Konferansı 4-11 Şubat 2017 tarihleri arasında Aksaray Üniversitesi ev sahipliğinde gerçekleşecek. Türkiyedeki aktif LibreOffice geliştiricileri olarak geçen sene de açtığımız LibreOffice Geliştirme Atölyesini bu sene de tekrarlamaya karar verdik. Kurs ile ilgili ayrıntılı bilgiyi şuradan öğrenebilirsiniz. Geçen sene atölye esnasında internet bağlantısıyla ilgili yaşanan problemlere rağmen kurs sonunda kursiyerlerin 13 yaması LibreOffice core deposuna kabul edilmişti. Aradan geçen bir sene içinde ve düzenlediğimiz birden çok atölye sayesinde edindiğimiz tecrübelerimizle bu yıl yeniden Türkiyede LibreOffice geliştirmeyle ilgilenen kursiyerlerin aşmaları gereken süreci hızlandırmak istiyoruz.

LibreOffice 30 yıllık çok büyük proje olması sebebiyle küçük bir hata kaydını çözmeye çalışırken dahi içinde kaybolması çok kolaydır. Kodlama aşamasına geçmeden önce de LibreOffice topluluğunun nasıl çalıştığını, hangi geliştirme araçlarını nasıl kullandığını öğrenmek gerekmektedir. Atölye süresince önce geliştirme araçlarının kullanımını göstereceğiz. Daha sonra ben Faruk Uzun, Melike Yurtoğlu ve Yeliz Taneroğlu daha önce çözdüğümüz ikişer hata kaydını toplamda sekiz hata kaydının çözümünü ve çözüm için kendi takip ettiğimiz yolları anlatacağız. Ardından başlangıç seviyesi olarak kursiyerler için belirleyeceğimiz hata kayıtlarını (Bugzilla içinden hata kaydı seçmek de ilk defa yapacak biri için zor olacağından) kursiyerlere sunacağız. Atölye boyunca hata kayıtlarını çözmenize destek olacağız. Atölyenin sonunda LibreOffice'e kodu kabul edilen herkesin isimlerini LibreOffice'in resmi gezegeninde yayınlayacağız.

LibreOffice gibi büyük bir özgür yazılım projesinde kodunuzun bulunması önünüze tahmin etmesi zor kapılar açacaktır. Kursun hedefi olmamakla birlikte LibreOffice'e kod katkısı yapmak  cv'nize ekleyebileceğiniz etkili bir iş olacaktır.
Atölyemize https://kayit.ab.org.tr/ adresinden başvurabilirsiniz. Aksarayda görüşmek üzere :)