Milano Konferansı sonrası

Merhaba,

“Milano’da katıldığım konferanstan yaklaşık 1 ay sonra blog yazımı tamamlayabildim. Daha önce tamamlayacaktım ancak sürekli araya bir şeyler girdi ve yazı da biraz uzundu. Ve evet. Biraz tembelim :). Milano dönüşü uçakta beklerken ve uçakta bir şeyler karaladım. Bu yazı da onun bilgisayara dökülmüş halidir. İyi eğlenceler”

Milanoda katıldığım konferanstan sonra deneyimlerimi aktarmak istedim. Türkiyede bir kaç etkinliğe katılmıştım LKD adına konuşma da yaptım. Bolca da konuşma dinledim. Ama hiç bu kadar büyük çaplı bir konferansa katılmamıştım. Yazı iki kısımdan oluşacak ilk kısım daha çok konferans sırasındaki gözlemlerimden ikinci kısım İtalya, Milan ve Kültürel deneyimlerden oluşacak.

Dediğim gibi ilk defa bu kadar büyük boyutta bir konferansa katılıyorum. Dünya’nın her yerinden pek çok insanın katıldığı bir konferans. Tamamen LibreOffice üzerine yoğunlaşmış bir konferans. Bir konferanstan bu kadar çok deneyim kazanabileceğimi bilmiyordum açıkçası. Bana kalsa kendim kalkıp oralara gidemezdim. Yol masrafımı TDF aracılığıyla Google karşıladı. Eğer bir şekilde böyle bir etkinliğe katılma şansınız olursa kaçırmayın.

Konferans sırasında iki akşam boyunca “hackathon” yapıldı. Biri CloudOn sponsorluğunda OOXML üzerine öbürü ise Google sponsorluğunda daha genel bir hackathondu. İki hackathona da katıldım. Diğer Summer of Code öğrencileriyle birlikte çalışma fırsatı bulduk. Siqi ve Florian ile bir hata çözdük. “Kendy” nin yardımıyla projemde eksik bir özellik üzerine çalışmaya başladım tekrar. Michael’dan da aynı anda birden fazla kişinin ortak çalışmasını sağlayan bir özellikle ilgili nereye bakmam gerektiği hakkında bilgi edindik. En önemlisi de kendimi daha özgüvenli biri olarak buldum bu olaylar sırasında. :)

Görsel hafızaya sahip biri için tanıştığı insanları yüzlerle eşleştirmek iyi bir şey. Bir isim geçtiği zaman ne üzerinde çalıştığına dair fikir kafanızda direk beliriyor. Sosyal yeteneklerim İngilizce de çok iyi değil. O yüzden çoğunlukla dinleyen taraf oldum. Dinlerken harcadığım çaba konuşurken harcadığım çabadan kat kat kat kat kat kat kat daha az. :D Eve dönüş yolunda bu zamanı buldum. Bazı fikirlerimi anlatmaya karar verdim. Bunun için de Blog’dan daha iyi bir yer olamazdı sanırım.

 

Uyarı: Buradan itibaren tamamen kişisel görüşler devreye girmektedir. Bazı kısımlar alakasız ya da yanlış olabilir. Görüş belirtmekte ya da görmezden gelmekte özgürsünüz.

 

CloudOn konferansta OOXML üzerine yoğunlaştıklarından bahsetti. Yani MS Office’in sonu x ile biten formatlarının LibreOffice üzerinde kullanılması ve aynı dosyanın tekrar MS Office üzerinde açılması üzerinde yoğunlaşıyorlar. Bu iş için İngilizce terim interoperability. Uygun Türkçe karşılığını bilmiyorum.

CloudOn’un bu yaklaşımı seçmesi tabi ki kendi işlerine yaradığı için. Aynı zamanda LibreOffice için de çok iyi. Kendi arkadaş çevremde işlerin nasıl yürüdüğüne bakarsak sanırım bunu daha iyi anlayabiliriz. Şirketler için durum farklı olabilir tabi ki. Etrafımdaki arkadaşlar ya bilgisayarlarında yüklü gelen MS Office sürümlerini ya da korsan versiyonlarını kullanıyorlar. Ve hayatlarından gayet memnunlar. Başka hiç bir şeye ihtiyaçları yok. Çünkü ofis programı onlar için bedava. :D Microsoft Office onlar için “orjinal” ofis programı. Birkaç kişiye boşuna Ofis arama LibreOffice senin ihtiyacını karşılar dediğim zaman ilk etapta deneyenler oldu. Bu konuşmanın aramızda geçtiği pek çok kişi bunu denedi. Ama ilk yaptıkları şey LibreOffice’i MS Office ile karşılaştırmak oldu. İlk beğenmedikleri şeyde nefret etmeye ve bir daha kullanmamaya başladı bir kısmı.

MS Office’in “orijinal” ofis programı olması (kullanılan kopya korsan olsa bile) MS Office formatlarının kullanılmasını sağlıyor. Kimse de ODF kullanmayı denemiyor. Kendi çevremdekilere LibreOffice’i tavsiye ederken ben de başka bir yol geliştirdim. İnsanlara LibreOffice kullanmalarını, bir sıkıntı yaşarlarsa eski MS formatlarını kullanmalarını öneriyorum. Eski binary formatlar (doc, xls, ppt,…) yeni OOXML formatlarına göre (docx, xlsx, pptx,…) daha iyi çalışıyorlar. Bu yolla insanlar daha az sinirleniyorlar ofis programı kullanırken. Bir süre kullanmalarına devam ettikten sonra ODF formatlarına (odt, odp, …) geçmelerini öneriyorum. Böylece etrafımdakiler LibreOffice ile daha acısız tanışabilmiş oluyorlar. En azından bir kaç kişiyi bu yolla kazandırabildim sanıyorum :D

Benim gibi öğrenciler için, ofis programına çok fazla ihtiyaç duymayan işletmeler için, öğretmenler için insanların LibreOffice’e geçişi OOXML filtrelerinin düzgün çalışmasına bağlı. Büyük firmalar için durum daha farklı olabilir tabi ki. Farklı göç senaryoları yazılması gerekebilir. Ama benim çevrem için bu şekilde.

OOXML’e yönelmek iyi güzel, ama yeterli değil. LibreOffice çok iyi bir topluluğa sahip. Brezilya, Fransa, Almanya, İtalya toplulukları gibi büyük boyutlu toplulukların yanında Türkiye de de gelişmekte olan bir topluluk var. Yani yardım alabileceğiniz, yardım edebileceğiniz bir topluluğumuz kendi dilimizde de mevcut :) Ancak geliştiricilere de kullanıcılar kadar ihtiyacımız var. Android, İOS cihazlar için uzaktan kumanda uygulamaları gibi güzel özelliklere ihtiyacımız var. (Bir saniye bu uygulamalar zaten yapılmamış mıydı? ;) ). Bir dosyada ortak çalışmayı sağlayacak özelliklere ihtiyacımız var. Daha iyi bir tasarıma ihtiyaç var. Daha iyi simgelere ihtiyaç var. İnsanlara LibreOffice’in varlığını duyuracak insanlara ihtiyaç var. Son kullanıcıyı etkileyen küçük sorunların çözülmesine ihtiyaç var.

LibreOffice’te yardım edilebilecek bir sürü yer var. Geliştirmeye yeni olanlar için “EasyHack” etiketli hatalar var. Tasarımdan anlayan ve yardım edebilecekler için hali hazırda devam eden bir sürü çalışma var. Varlığından haberdar olmadığımız hatalar için testçilere ihtiyaç var.

Geliştiriciler için Türkçe bir de geliştirici listemiz var. Şu an tek yardım alabileceğiniz benim ancak bu durumu değiştirebiliriz ;).

Konferansta bir çok konuşma vardı. Ben geliştirme ile alakalı olandaydım daha çok. Daha çok dinleyen öğrenen taraf olduğım için söyleyebileceklerim bu kadarla sınırlı malesef.

İkinci Kısım

İlk kez yurtdışına çıkmış oldum bu konferans sayesinde. Bu da heyecanımı iki katına çıkarmış oldu. Milanoda mimari çok iyi. Sanırım tüm Avrupa bu şekilde olabilir ama sokakta yürürken kendinizi iyi hissediyorsunuz. İnsanlar canayakın, soğuk değiller. Soru sorduğunuzda anlıyorlar ancak İtalyanca cevap veriyorlar. :D Gitmeden Duolingo’dan 2-3 kelime İtalyanca öğrenmek iyi olabilir. Kelimelerin okunuşu Türkçe bilen biri için çok kolay. İngilizce kelimelerin Türkçe okunuşu gibi zaten pek çok kelime. Yolunuzu bir şekilde bulursunuz. Gitmeden telefonunuza offline çalışan bir çevirici ve tripadvisor’u yükleyin. Çok işe yarayan iki uygulama oldu bunlar benim için.

Görülebilecek yerler az. Duomo(Katedral), Galleria ve La Scala yı görün giderseniz. Bu üçü aynı yerde zaten. Fırsatım olmadı ama gidip Castello’yu görün şansınız varsa. San Siro, Como gölü de gidilmesi gereken yerler arasında ama ben oralara da gidemedim. :D İnternette yeterince bilgi mevcut. Gitmeden önce dersinize iyi çalışırsanız sorunsuz geçirirsiniz günlerinizi öyle bir yer kendisi.

Katedralde bir yığın heykel vardı. Her boş buldukları yerine bir heykel kondurmuş adamlar. En tepede de bir tane som altın heykel var. Her taraf heykel. Hep heykel. Katedral baya büyük bir bina. Gidip görün. Bir şey diyemiyorum :)

Milano hakkında internette hali hazırda olan bilgilerden başka bir şey söyleyemeyeceğim. Ekşide yazılanların çoğu doğru. Ona göre gidin ona göre gelin :D

Şimdilik bu kadar.

Linux üzerinde LibreOffice derlemek

Düzenleme: Derleme sırasında Java ile ilgili kısımlarda bazı sorunlara rastlayabilirsiniz. Bu sorunlar yerelleştirme ayarlarıyla ilgili olacaktır büyük ihtimalle. İşletim sisteminizin dilini İngilizce yapmak sorununuzu çözecektir. İsterseniz derleyicinin dil ayarlarıyla da oynayabilirsiniz.

Bu yazıyı LibreOffice’i geliştirme amacıyla derlemek isteyenlere yönelik yazıyorum. Mutlaka İngilizce bilmek gerekiyor çünkü tüm geliştirme, evrensel olduğundan İngilizce yapılıyor. Geliştirici Wiki sayfasını kısaca Türkçeleştirmeye çalıştım.

Geleceğe not:Yazının yazıldığı tarihi göz önüne alarak güncelliğini Geliştirici Wikisinden kontrol edebilirsiniz..

1 – Disk boyutu

LibreOffice büyük bir proje. Kodların kendisi 1,5 GB civarında. Debug sembolleriyle birlikte tüm proje derlendiğinde 25 GB civarı oluyor.  Tabi tüm projeyi debug sembolleri kapalı olarak derleyip işinize yarayacak modülü tekrar debug sembolleriyle derleyebilirsiniz. Ancak yeni başlayacaklara yapıyı anlayana kadar tüm debug sembolleri açık derleme yapmanız.

2 – Bağımlılıklar

Programın derlenmesi için bir takım bağımlılıklara ihtiyacımız var. Wiki sayfasında dağıtımlara yönelik bağımlılıklar verilmiş elbette. Ben Ubuntu ve Fedora için olanları yazıyorum. Ayrıca Fedorada “devel” paketlerine ihtiyacımız olacak.

sudo yum install gcc-c++ ant java-devel junit4 flex bison perl-Archive-Zip \
gtk2-devel freetype-devel gstreamer-devel autoconf gperf libXaw-devel \
GConf2-devel gnome-vfs2-devel cups-devel gstreamer-plugins-base-devel

Bağımlılıklar için:

Fedora:
sudo yum-builddep libreoffice

Ubuntu:
Yazılım merkezinden kaynak depolarının açık olduğuna emin olun.
sudo apt-get build-dep libreoffice

Ayrıca tüm dağıtımlar için ccache git ve doxygen paketlerini kurun. Yamaları göndermek için git, ikinci derlemede hız kazanmak için ccache kullanıyoruz. ccache özellikle önemli çünkü derleme sonuçlarını tutarak bizi gereksiz işlemden ve vakit kaybından kurtarıyor. İkinci derleme esnasında sadece değişen kısımları yeniden derliyor ve yaklaşık 10 dk’da derlemeyi bitirebiliyoruz.

3 – Kaynak kodları indirmek

Git kullanarak “core” deposunu indiriyoruz. Derleme yapacağınız dizine konsol üzerinden ulaşıp şu komutu vermeniz yeterli.

git clone git://gerrit.libreoffice.org/core libo

Son olarak indirdiğimiz klasörün de içine giriyoruz konsoldan. Derleme esnasında verdiğimiz parametrelere bağlı olarak gerekebilecek alt modülleride indiriyoruz.

make fetch

4 – Autogen.sh

Bu aşama her şeyin doğru olup olmadığını kontrol eden ve doğruysa verilen parametrelere göre derleme için gereken ayarları yapan kısımdır. Sadece şu kod yeterli olacaktır. Özel olarak verilebilecek parametrelere wikiden bakabilirsiniz. Son ayarları da okuduktan sonra gerekli parametrelerle bu komutu verin.

./autogen.sh --enable-dbgutil --without-junit

5 – Son ayarlar

ccache’in tutacağı alanı arttırmak iyi bir fikir olabilir.
ccache --max-size 32G

Daha hızlı derleme yapabilmek için autogen.sh kısmında –with-parallelism parametresini eklemek derleme zamanını azaltacaktır. Makinenin daha fazla thread oluşturması ve işlemcileri sonuna kadar kullanması için bu parametreyi kullanabilirsiniz.

Ben rastlamadım ama “epm not found” ya da “no package found gnome-vfs-2.0” hatalarının çözümüne buradan ulaşabilirsiniz. https://wiki.documentfoundation.org/Development/Native_Build#rpm_not_found.2Fant_not_found.2Fno_package_gnome-vfs-2.0

Fedora’da derleme yapıyorsanız –enable-gio parametresini kullanmanızı öneririm. Ayrıca Autogen sırasında büyük ihtimalle yaşayacağınız “gstreamer” sorunu için iki çözüm var. İlki Fedora’nın tercih ettiği gstreamer sürümünü kullanmak bunun için gerekli parametreler “–disable-gstreamer-0_10 –enable-gstreamer“, ikincisi LibreOffice’in tercih ettiği sürümü kullanmak bunun için de “gstreamer-devel gstreamer-plugins-base-devel” paketlerinin kurulu olması gerekiyor.

6 – Derleme

make 2>&1 | tee build.log

Komutuyla derlemeye başlıyoruz. Hata oluşması durumunda build.log dosyasını kullanabilirsiniz. Kayıt tutmak istemiyorsanız sadece make komutunu verebilirsiniz.

LibreOffice kaynak kodunun olduğu klasördeki alt klasörlerin hemen hemen her biri birer modüldür. Derleme esnasında bu çıkacabilecek sorunların çözümü için hangi modülde sorun olduğunu bulmamız gerekiyor. Çıktıyı dikkatli incelemek bunun için gerekli.

İstersek tek bir modülü de derleyebiliriz.

make modüladı.clean
make modüladı

“Sometimes s*** just happens.”
Başka çaremizin kalmadığı durumlarda da en baştan derleme yapmak zorunda kalabilirsiniz.

make clean && make

7 – Derlenen programı çalıştırma

Öncelikle

make dev-install -o build

ile programı yüklüyoruz. Yalnız yüklemeyi sisteme değil /install/program klasörüne yapıyor. Buradaki “soffice.bin” dosyasını çalıştırdığımızda Libreoffice’in son hali önümüzde duruyor.

Buradan sonrası artık size kalıyor. Bu aşamaları geçerseniz Wiki’den takip edeceğiniz daha az yer kalıyor. Git komutları, yama oluşturma ve yollama ve EasyHacks sayfalarına gömülüp geliştiricilik aşamasında ilk katkınızı vermeye odaklanabilirsiniz.

LibreOffice İçin Küçük, Benim İçin Büyük Bir Adım.

Uzunca bir süredir araştırdığım ancak kendime uygun bir konu bulamadığım için 1,5 ay kadar önce anca sonuçlandırdığım bir süreç oldu. İlk kod katkımı yaptım LibreOffice’e sonunda. Büyük bir şey yapmadım aslında ama önemli sayılabilecek bir süreçti kendi açımdan.

Yaptığım şey sadece bir XML kodu düzenlemekti. Para birimi Türkiye için YTL olarak kalmıştı. Yerelleştirme dosyalarında bir küçük değişiklik yaparak TL’yi TRY koduyla tekrar varsayılan yaptım. Sanırım 3.7 sürümüyle birlikte değişiklik yayınlanacaktı. Para birimiyle ilgili kod kısmının nasıl çalıştığını bilmediğim için bir küçük hata yapmışım. Aslında diğer para birimlerini inceleyerek sorunsuz olarak çalışır hale getirebilirdim, biraz yanlış davranmış olabilirim. Neyse ki LibreOffice geliştiricileri çok anlayışlı ve yardım sever.

Olaylar şu şekilde gelişiyor:

  • Programlama hakkında biraz bilgi ediniyorsunuz. Bilgisayarla ilgili bir bölümde öğrenciyseniz zaten olaylar daha kolay gelişiyor.
  • Sizi gaza getirecek birini buluyorsunuz. :) Şanzelize kafede kola sözü alıyorsunuz mesela. :)
  • Sonra geliştirici wiki sayfasını okuyorsunuz. Kodu indirip derliyorsunuz. EasyHack ya da size uygun bir hata bulup “git” ile bir yama oluşturuyor ve yolluyorsunuz. Sonra bir başka geliştirici bakıp kodu onaylıyor sizin adınıza ekliyor. Bir de lisans metni yolluyorsunuz E-Posta listesine ve bitiyor.

Okulum dolayısıyla programlama ile ilgili sıkıntım olmadı. İngilizce bilmek gerekli çünkü geliştirme wiki sayfası İngilizce. Kodu indirip derleme işi de yönergeleri uygulamanıza bakıyor. Wiki sayfasına sıkça başvurabiliyorsunuz. Kendinize uygun hata ya da eksikliği Bugzilla’dan bulup çözüm için yine araştırma yapmanız gerekebiliyor.

Geliştirici adaylarının yukarıdakiler dışında hatayı çözecekleri ortamı belirlemesi gerekiyor. Kullanıcılarının çoğu Windows üzerinde LibreOffice’in ama geliştiricilerin çoğu da Linux üzerinde. Windows’a özel hataların çözülmesi de gerekli dolayısıyla.

Katkı yapmak istiyorum ama bilgim yok deyip kendinizi sınırlandırmamanız önemli. Zira Almanca yorum satırlarını İngilizce’ye çevirmeniz ya da gereksiz yorumları silmeniz gibi EasyHack’ler de var. Süreç boyunca da çok fazla şey öğreniyorsunuz zaten.

Benim ilk katkı maceram bu şekilde oldu. Katkı verme hevesindeki ve benzer durumdaki arkadaşlara yardım edebilcek bir yazı olduğunu umuyorum.

%d blogcu bunu beğendi: