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 :)

20 Mayıs 2016 Cuma

Resmi Orijinal Boyutuna Getir Özelliğinin Kontrolü

LibreOffice Impress belgeye bir resim eklediğinizde, resim zaten orijinal boyutundaysa bile orijinal boyutuna geri döndür seçeneği aktif oluyordu. Ve bu haldeyken seçildiğinde resmi yeniden boyutlandırma işlemleri arkada gereksiz yere çalışıyordu. İlgili hata kaydı buradadır.

Gönderdiğim yama sayesinde resim bir kez seçildiğinde ya da ilk eklendiği esnada çalışan bir kontrol ekledim. Zaten orijinal boyutundaysa kullanıcı artık o seçeneği çalıştıramayacak.

Eklenen resim orijinal boyutunda değilken:


Orijinal boyutundayken:


Aynı durum Format->Image->Original Size seçeneği için de geçerlidir.

3 Mayıs 2016 Salı

LibreOffice Hackfest Ankara, Turkey 2016

LibreOffice Hackfest Ankara was held for the first time in Turkey between on 29th April and 1st May sponsored by TUBITAK (Scientific and Technological Research Council of Turkey). Michael Meeks, Markus Mohrhard and Jan-Marek Glogowski came to Ankara, Turkey for sharing their knowledge with us about LibreOffice. 20~ people attended the event.

29th April:
  • Met with each other.
  • Michael and Markus made presentations about following topics
    • Solving arbitrary problems from a standing start - Real word engineering
    • LibreOffice code structure
    • LibreOffice core classes
    •  Automated testing
    •  Calc & Chart2
    •  ODF and OOXML in LibreOffice
    •  Data for LibreOffice developers
30th April and 1th May:
  • Coding and coding :)
 Hackfest was so beneficial for all attendees. We can get help from irc and mailing list but being together accelerated all of us. Michael, Markus and Jan were very friendly and helpful developers so we left hackfest very happy. We are going to go on contributing and spreading LibreOffice in Turkey.

Finally i want to say that time is the most precious thing we have so thanks to Michael, Markus and Jan for spearing time to us and many thanks to TUBITAK for sponsorship.

 And some photos \o/















30 Mart 2016 Çarşamba

Free Software and Linux Days 2016 - İstanbul, Turkey


Free Software and Linux days is a local event that brings together the community of free software in Turkey. One can find a lot of people and (unfortunately) a few company supporting free softwares. I participate this event since 2013 and i love to be there every time.
  
We have applied for a working group meeting on "LibreOffice Development and Extensification Works in Turkey" and our application was accepted. I think people need encourage to start  contributing major project like LibreOffice. We were there to show that someones working on LibreOffice in Turkey. We talk about our contribution stories. At the end of the session we talked with attendees why people don't contribute the LibreOffice in our country. Our meeting was attended by about 30 people. The results are following: 

  • Free softwares are not promoted enough.
  • No time to contributing the free softwares (workers in other jobs)
  • Do not dare (students)
  • Don't know how to start
Our time was not enough for what we want to talk at all. I think people who never contribute the major free sofwares, don't know how nice feeling to be in LibreOffice community. I know that we need organize more workshop for people to experience this feeling.
The contributing LibreOffice is a war of libertation. We have to spare time to win our freedom.
You can find our presentation here.

And some photos from meeting: