Aarhus, Danimarka LibreOffice Konferansı 2015



  Bu yıl Libreoffice Konferansı 23-25 Eylül tarihleri arasında Aarhus, Danimarka'da gerçekleşti. Ben de Türkiyeden gelen tek katılımcı ve aynı zamanda  konuşmacıydım. Etkinliğe katılım 30 farklı ülkeden ve yaklaşık 150 kişi civarındaydı. Etkinlik Aarhus semtindeki bi halk kütüphanesinde gerçekleşti. Konuşmalar paralel iki oturumda yapıldı.


  Konferansta  LibreOffice geliştiricileri, katkıcıları, pazarlamacıları, kullanıcıları, ülkelerindeki göçlerde rol almış insanlar, öğrenciler vardı.




  Konferansın ikinci günü saat 4 civarı konferans alanına ulaşabildim. Tanışmaya ve konuşmaya bu kadar istekli bir topluluğu ilk defa görüyorum sanırım. İlk olarak LibreItalia ekibiyle sonra Sophie -Organizasyonda büyük emeği geçen kişi- ile tanıştım. Yaka kartımı ve bi takım LibreOffice çıkartmaları aldıktan sonra son oturumlara katıldım. O gün paralel oturumlardan biri sadece ODF ile ilgiliydi. Son oturumda ise Bjoern Lİbreoffice sürümlerini nasıl çıkardıklarından bahsetti.

  Konferansın 3. günü benim de konuşmamın olduğu gündü. Öncesinden de çok hazırlanmış olmama ve Türkiye'de 15 kez konuşmuş olmama rağmen yapacağım ilk ingilizce sunumum olacağından yine ilk defa konuşacakmışım gibi heyecanlıydım :) Kendi konuşmamın olduğu saate kadar herhangi bir oturuma katılamadım. Etkinlik alanında bi yandan içimden konuşmamın provasını yapıp bi yandan insanlarla tanıştım. Etkinliğin benim için en güzel tarafı bu tanışma kısmıydı. Listelerde yazıştığım irc de konuştuğum soru sorduğum  insanlarla konuşup tanışmak çok güzeldi. 

  Yerel organizasyon çok iyi hazırlanmıştı. Konferans boyunca ihtiyacımız olan herşey mevcuttu, yardıma ihtiyaç duyulduğunda ilgilenecek birilerini bulmak çok kolaydı ve teknik hiçbir sorun yaşanmadı.

  Konuşma vakti geldi çattı. Düşünmek yaşamaktan her zaman daha zordur bunu bi kez daha kendime kanıtlamış oldum. Düşündüğüm kadar zor olmadı ingilizce sunum yapmak. Sunumun arkasından gelen soruları da rahatlıkla cevapladım. Bunda okulun son döneminde ve bu yaz katıldığım ingilizce kurslarının konuşma klüplerinin de etkisi büyük. Çanakkalede LibreOffice için çalışan 10 arkadaşım  ve Türkiyede planlanan LibreOffice göçü hakkında soru soruldu. Her anlamda benim için bulunmaz bir tecrübeydi. Buradan kullandığım sunuma ve konuşma özetine ulaşabilirsiniz.


Bu da sunumumun videosu


                               

  Konferansın bitiminde hackfest düzenlendi. Konferans alanından ayrı bir yerde yapılacaktı. Bulması kolay olmadı ama bulduk. 42 kişi etkinliğe kaydolmuş olmasına rağmen toplasan 5 kişi vardık ancak. Bu katıldığım ilk hackfest olduğundan baştan napacağımızı anlayamadım çok. Sonra anladım ki kendimiz istediğimiz konuyla ilgili çalışacakmışız, birşey sormak istediğinde şu kişiler c++ tan anlar, şunlar şundan, bunlar bundan diye bir grup kendini tanıttı. 2 saat kadar çalıştık ve ardından yemek saati geldi. Yemek daha çok kaynaşma ortamı gibiydi. Oturduğum masada müthiş bir sirkülasyon vardı. Gerçekten tanışmak için bu kadar istekli bir topluluk ilk defa görüyorum. İlk defa gittiğim bi ülkede sanki uzun süredir oradaymışım gibi hissettim.

  Konferansın son günü tüm oturumlara katılmaya çalıştım. Her alanda olduğu gibi LibreOffice tarafında da kadın geliştirici çok az sayıda. Son gün etkinlikteki durumu gören biri LibreLadies gibi topluluk olsa süper olmaz mı diyerek sanıyorum ki bu topluluğun da temelleri atmış oldu. Süper olur diyenlere bakarak böyle söylüyorum.

  Son gün LibreOffice'in 5. yaş günü için pasta kestik. İyi ki forklandın LibreOffice :)




















Beni her zaman cesaretlendirdiği ve bu konferansa katılımım için sağladığı tüm desteği için Necdet Yücel 'e sonsuz teşekkürler.




6 Ekim 2015

Posted In: aarhus, danimarka, denmar, freesoftware, Gezegen, libreofis, pebble, pebble-remote

Python Paketi Hazırlamak

    Pebble Remote projesinin bana katkısı gerçekten çok büyük oldu. Daha buraya yazmadığım bir sürü büyük küçük birbirini gerektiren bi çok işi öğrendim.  Paketlemeyi öğrenme amacım pebble remote'un pip komutuyla kurulabilir hale gelmesini sağlamaktı.

Şimdi örnek olarak aşağıdaki python projesini pip ile kurulabilir hale getireceğiz

pebbleremote
└── pebble
    ├── bluetooth.py
    ├── data
    │   └── logo.png
    ├── __init__.py
    ├── py_script.py
    └── remote.py

setup.py dosyasını yazmalıyız

Öncelikle bu dosyanın yukarıdaki pebble modülü ile aynı seviyede olması gerekiyor.

pebble
├── pebble
│   ├── bluetooth.py
│   ├── data
│   │   └── logo.png
│   ├── __init__.py
│   ├── py_script.py
│   └── remote.py
└── setup.py

setup.py dosyasının içinde bulunması gerekenler:


from setuptools import setup

setup(name='pebble-remote',
version='1.0',
description='Libreoffice Impress tool for remoting presentations with Pebble',
url='http://github.com/Libreoffice/impress_remote/tree/master/pebble',
author='Gulsah Kose',
author_email='gulsah.1004@.gmail.com',
license='MPLv2',
packages=['pebble'],

scripts=['pebble/py_script.py'],

install_requires = ['setuptools'],
zip_safe=False)

Bu kadarını yazdığımızda sadece pebble modülünü gereken yere kuracak hale getirmiş oluruz. Ama içinde yukarıda olduğu gibi bir python dosyası olmayan modüle dahil olmayan dosyalar olabilir -data dizini ve altındaki png dosyası gibi-.

Onuda pakete dahil etmek için aşağıdaki yolu izliyoruz:

- Öncelikle MANIFEST.in dosyasının içinde aşağıdaki satırı  yazalım Bunu modül dışında olan dosyaları pakete dahil etmek için kullanıyoruz:

include /pebble/data/logo.png

 pebble
├── MANIFEST.in
├── pebble
│   ├── bluetooth.py
│   ├── data
│   │   └── logo.png
│   ├── __init__.py
│   ├── py_script.py
│   └── remote.py
└── setup.py

 - Bu ekleme için setup.py dosyasının içeriğini de değiştirmemiz gerekecek. Dosyanın son hali aşağıdaki gibi olacak:


from setuptools import setup 

setup(name='pebble-remote',
version='1.0',
description='Libreoffice Impress tool for remoting presentations with Pebble',
url='http://github.com/Libreoffice/impress_remote/tree/master/pebble',
author='Gulsah Kose',
author_email='gulsah.1004@.gmail.com',
license='MPLv2',
packages=['pebble'],

scripts=['pebble/py_script.py'],

package_data={
'pebble/data': ['logo.png'],
},

data_files=[
('/opt/pebble/logo/', ['pebble/data/logo.png'])

],

install_requires = ['setuptools'],

zip_safe=False)


Artık projemiz kurulmaya hazır hale gelmiştir. Aşağıdaki komutu kullanarak kurulumunu yapabilirsiniz:

$sudo python setup.py install

Kurulumu bu şekilde yaptığınızda paketi kaldırmak için aşağıdaki komutları kullanabilirsiniz:

$sudo python setup.py install --record file.txt
 
#cat file.txt | xargs rm -rf

 Şimdi bu projeyi python package index (PyPi) 'e yükleyelim:

Önce bu adresten bir hesap oluşturmalısınız. Projenizi buraya yüklemeden önce depoda aynı isimde başka bir proje varmı diye bakmalısınız. Çünkü pypi'de tüm paket isimleri eşsiz olmalıdır.

Sonra aşağısaki komutu çalıştırdığınızda karşınıza size kullanıcı adı parola gibi bilgilerinizi soran kısımlar çıkacak. Bunları doğru bir şekilde tamamladığınızda herşey yolundaysa 200(OK) kodunu göreceksiniz. Bunu gördüğünüzde artık projeniz pip ile kurulabilir hale gelmiş olacak.
 
$sudo python setup.py register sdist upload
 
Artık #pip install pebble-remote yazdığınızda projeniz sorunsuz kuruluyor olmalı.


Paketlemeyi öğrenirken faydalandığım linkler burada. Yukarıdaki setup.py dosyası içindeki alanların ne anlama geldiği ayrıntılı anlatılıyor:

1) http://www.scotttorborg.com/python-packaging/minimal.html#
2) https://pythonhosted.org/setuptools/setuptools.html

Bununla ilgili çok örnek bulmanız mümkün elbet ama pebble remote için yaptığım paketi aşağıdaki linkten inceleyebilirsiniz

3) https://pypi.python.org/pypi/pebble-remote/2.0

24 Ocak 2015

Posted In: Gezegen, index, linux, ozguryazilim, package, pebble, pebble-remote, pip, pypi, python

Python’da Kullanıcı Tanımlı Hatalar

    Python projelerinde kullanıcılar hata tanımlayabilir ve aynı sistem tarafından tanımlı hatalar gibi try-except içinde kullanabilir.

    Ben pebble-remote projesini geliştirirken bu hata yakalama kısmında şöyle bir sorunla karşılaşmıştım. Kullanıcı tanımlı hata sınıflarım vardı ve bu sınıfların tanımlandığı dosyanın dışında bir yerde bu tanımlanan hataları yakalamak istiyordum. Hatanın tanımlandığı python dosyasını da import ettiğim halde bu hataları yakalayamıyordum.

   Daha iyi bir yöntemi de olabilir elbet ama benim deneyerek bulduğum çözüm hata sınıfının tam yolunu yazmak oldu.

Kullanmaya çalıştığım python modülünün yapısı aşağıda:

libpebble/pebble
├── __init__.py
├── LightBluePebble.py
├── pebble.py
└── stm32_crc.py

LightBluePebble.py dosyası içinde bir hata aşağıdaki gibi tanımlanmış:


LightBluePebbleError(Exception):
def __init__(self, id, message):
self._id = id
self._message = message
def __str__(self):
return "%s ID:(%s) on LightBlue API" % (self._message, self._id)

Bu hatayı yakalamak istediğim dosya içinde  içinde modülü aşağıda şekilde import ettim:


import pebble as libpebble

Bu haliyle aşağıdaki kod hatalıydı:


try:
...
except LightBluePebbleError as e
...

Doğrusu:


LightBluePebbleError = libpebble.LightBluePebble.LightBluePebbleError

try:
...
except LightBluePebbleError as e
...

16 Ocak 2015

Posted In: exception, Gezegen, handling, impress, linux, ozguryazilim, pebble, pebble-remote, python, userdefinedexception

Python Projelerine Mimetype Desteği Eklemek

    Python projeniz eğer sadece konsol aracıysa ve bunu sağ tıkla şununla aç şeklinde çalıştırılabilecek hale getirmek istiyorsanız projenize mimetype desteği eklemeniz gerekir.

    Benim buna ihtiyaç duymam, gururla daha çok yerde anlatacağım bir olayın arkasından oldu. Bu sene bitirme projemin bir parçası olarak Pebble ile LibreOffice Impress uzaktan kumandasını yazdım. Ve yazdığım araç bir hafta önce LibreOffice deposuna kabul edildi. Ve daha güzeli LibreOffice deposunun tümüne yazma hakkım olması ve listedekilerin "LibreOffice geliştirici ekibine hoşgeldin" demeleriydi. O anki heyecanımla Çanakkaleyi koşarak turlayabilirdim :) Bu süreçteki tüm desteği için Necdet hocama ne kadar teşekkür etsem az. pebble-remote kabul edildikten sonra bu projenin kullanımını kurulumunu basitleştirmeye çalıştım. Mimetype desteğini eklediktan sonra pebble-remote artık sadece bir konsol aracı olmaktan çıktı ve kullanımı çok çok kolaylaştı.

Mimetype desteği eklenmesi şu adımlarla gerçekleştirdim:


* Menüde görünecek logoyu belirledim ve bu logoyu /usr/share/pixmaps/ dizini altına pebble-remote.png ismiyle kopyaladım.












* Menüde görünebilir hale gelmesi için aşağıdaki dosyayı  /usr/share/menu/ altına pebble-remote adıyla kopyaladım. 

---
?package(pebble-remote):needs="X11" section="Applications/Office"\
  title="Pebble Remote" command="/usr/bin/pebble-remote"\
  hints="Presentation"\
  kderemove="y"\
  icon="/usr/share/icons/hicolor/32x32/apps/libreoffice-impress.xpm"
---

* Aşağıdaki dosyayı  /usr/share/applications/ dizini altına pebble-remote.desktop ismiyle kaydettim:

---
[Desktop Entry]
Version=1.0
Terminal=false
Icon=/usr/share/pixmaps/pebble-remote.png
Type=Application
Categories=Office;Presentation;X-Red-Hat-Base;X-MandrivaLinux-Office-Presentations;
Exec=pebble-remote %U
MimeType=application/vnd.oasis.opendocument.presentation;application/vnd.oasis.opendocument.presentation-template;application/vnd.sun.xml.impress;application/vnd.sun.xml.impress.template;application/mspowerpoint;application/vnd.ms-powerpoint;application/vnd.openxmlformats-officedocument.presentationml.presentation;application/vnd.ms-powerpoint.presentation.macroenabled.12;application/vnd.openxmlformats-officedocument.presentationml.template;application/vnd.ms-powerpoint.template.macroenabled.12;application/vnd.openxmlformats-officedocument.presentationml.slide;application/vnd.openxmlformats-officedocument.presentationml.slideshow;application/vnd.ms-powerpoint.slideshow.macroEnabled.12;application/vnd.oasis.opendocument.presentation-flat-xml;application/x-iwork-keynote-sffkey;
Name=Pebble Remote
GenericName=Presentation
Comment=Pebble remote control for LibreOffice Impress.
StartupNotify=true
Keywords=Slideshow;Slides;OpenDocument Presentation;Microsoft PowerPoint;Microsoft Works;OpenOffice Impress;odp;ppt;pptx;
InitialPreference=5
StartupWMClass=libreoffice-impress
X-KDE-Protocols=file,http,smb,ftp,webdav
---

Bu işlemlerden sonra odp formatındaki dosyaya sağ tıkladığımda aşağıdaki görüntüyü gördüm:


16 Ocak 2015

Posted In: Gezegen, impress, mimetype, ozguryazilim, pebble, pebble-remote, python, remote

WP Twitter Auto Publish Powered By : XYZScripts.com