7 Ağustos 2016 Pazar

LibreOffice Calc Bileşeni İçin TC Kimlik No Kontrol Eklentisi

Selamlar,
LibreOffice Calc bileşeni için BASIC ile yazdığım bu eklenti, bir sütundaki TC kimlik numaralarının geçerli olup olmadığını kontrol ediyor.



Kullanıcıya kimlik numaralarının hangi satır ve sütundan başladığını soruyor, eğer kimlik numaraları geçerli değilse geçerli olmayan numaraların rengini kırmızı olarak değiştiriyor.




Numaralar düzeltilip eklenti tekrar çalıştırıldığında numaranın rengini tekrar siyah olarak değiştiriyor.




BASIC ile yazılmış eklentilerin LibreOffice tarafından çalıştırılması bir macro çalıştırılıyormuş gibi yapılıyor.
LibreOffice'te macroların çalıştırılması içinse Kütüphane > Modül > Macro hiyerarşisinde yazılmış olması gerekiyor.
Bu nedenle eklenti de aynı hiyerarşi ile yazılmalı.

Kütüphane olarak bir dizin, modül olarak bu dizinin altında eklentinin kodları bulunan bir dosya ve bu dosya içinde macro gibi çalıştırılacak olan fonksiyon ve alt yordamlar bulunmalı.

Eklentide bir ileti penceresi bulunması için bu pencere de kütüphaneye eklenmiş olmalı.

Eklentinin hiyerarşik olarak çalıştırılma işi Addons.xcu dosyasında
        <prop oor:name="URL" oor:type="xs:string">
          <value>macro:///TcNoControl.TcControl.TcKimlikKontrol</value>
        </prop> 
ile belirtiliyor.

Burada TcNoControl kütüphane ismi, TcControl modül ismi ve TcKimlikKontrol ise macro ismi olarak yer alıyor.

Bu yazıda bahsettiğim python eklentisinin aksine bu eklentide manifest.xml dosyasından kaynak olarak çağırılacak tek bir dosya yerine şu şekilde belirtilen kütüphane dizini çağırılıyor:
 <manifest:file-entry manifest:full-path="TcNoControl/" manifest:media-type="application/vnd.sun.star.basic-library"/>

Kütüphane dizininin içinde bulunan dosyalardan hangi dosyanın modül dosyası olarak çağırıldığını belirtmek için script.xlb adında bir dosya bulunuyor ve çağırma işi şöyle yapılıyor:
<library:library xmlns:library="http://openoffice.org/2000/library" library:name="TcNoControl" library:readonly="false" library:passwordprotected="false">
 <library:element library:name="TcControl"/>
</library:library>

Eklentinin sorunsuz olarak çalışabilmesi için modül dosyası olan TcControl dosyası belirtilen xml etiketi içinde html kodlaması ile kodlanmış olmalı.


Her şey formata uygun olarak yazıldıktan sonra eklenti dosyalarının bulunduğu dizine girip
zip -r TcControl.oxt ./*
komutuyla oxt uzantılı dosyayı oluşturduktan sonra eklenti kullanılabilir hale geliyor.

Github üzerinden eklentinin kodlarına ulaşabilir, depo içindeki oxt uzantılı dosyadan eklentiyi LibreOffice'e ekleyebilirsiniz.

Hoşçakalın!


Sihirli Düğme

Selamlar,
Yine bir LibreOffice eklentisiyle karşınızdayım. Bu eklenti çalışma esnasında işler iyiye gitmediğinde her şeyi düzelmek için iyi bir yardımcı.
Karşınızda sihirli düğme!
The magic button sitesinin bir türevi olan ve BASIC dilinde yazdığım bu eklenti sayesinde sıkıntılarınızdan kısa süreliğine de olsa kurtulmanız mümkün.

Eklentiyi LibreOffice'e ekledikten sonra herhangi bir bileşende araç çubuğuna eklenen düğme yardımıyla çalıştırabilirsiniz.






Bir süre bekledikten sonra mutlu sona ulaşıyoruz. :)




Eklentinin kaynak koduna Github üzerinden ulaşabilirsiniz.

Hoşçakalın!

18 Temmuz 2016 Pazartesi

LibreOffice İçin Eklenti Geliştirmek

Selamlar,
LibreOffice eklentileri .oxt uzantılı bir sıkıştırılmış dosya ile LibreOffice'e ekleniyor.



Eklentinin düzgün bir şekilde LibreOffice'e eklenebilmesi ve çalışabilmesi için bu .oxt uzantılı dosyanın içeriğinde mutlaka bulunması gereken birkaç dosya var:


  • description.xml (Bu dosyanın içinde eklentinin versiyonu, LibreOffice içinde hangi isimle çağırılacağı, bir simgesi varsa simgesi, eklentinin görüntülenecek olan adı, varsa bağımlılıkları, yayımcısı, ve lisansı hakkında bilgilere ulaşmak için gerekli dosyaların tam yolları yer alıyor.)

  • description/license.txt (Bu dosyada eklentinin lisansı hakkında bilgiler yer alıyor.)

  • META-INF/manifest.xml (Bu dosyanın içinde eklentinin LibreOffice içinde nasıl çağırılacağı bilgisi yer alıyor. Bu dosyada kullanılan format ve isimlendirme, eklentinin yazıldığı programlama diline göre değişebiliyor. Bu dosya hakkındaki detaylı bilgiye ulaşmak için bu linki kullanabilirsiniz.)

  • Addons.xcu (Eklenti yüklendikten sonra arayüzde nasıl bir değişiklik olacağı bu dosyada belirleniyor.)

  • TinyCopy.py (description.xml dosyasında identifier value ile belirtilen eklentinin amacını yerine getiren asıl kod bu dosyada yer alıyor. )

  • Eğer eklentinin bir simgesi varsa bu simge images dizininde bulunmalı.

  • Ayrıca eklenti yöneticisinde de eklentinin simgesi bulunacaksa bu simge de description dizininde bulunmalı.




Bu dosyaları oluşturduktan sonra şu betik yardımıyla .oxt dosyasını oluşturuyoruz:
  • build
Bu betiğin sorunsuz çalışması için extensionname.txt isimli içinde eklentiadi.oxt bulunan bir dosya da çalıştığımız dizinde bulunmalı.


TinyCopy Eklentisi

Eklenti yazmak için kullanmanız gereken dil konusunda bir kısıtlama yok ama eklentilerin çoğu python, java ya da basic ile yazılmış.

Bu eklenti işi nasıl oluyormuş diye kurcalarken temel seviyede bir iş yapan ve pythonla yazılmış bu eklenti ortaya çıktı.

LibreOffice'i açıp eklenti yöneticisi ile TinyCopy.oxt dosyasını seçerek eklentiyi eklemek istediğimizde lisans sözleşmesi karşımıza çıkıyor.






Sözleşmeyi kabul ettiğimizde eklentimiz eklenti yöneticisindeki yerini alıyor.






Calc bileşeni için yazmış olduğum bu eklentide LibreOffice kodunda hiç bir değişiklik yapmadan eklediğim simgeye tıklayarak A1 hücresinde yazılı olan veriyi B1 hücresine direk olarak kopyalayabiliyoruz.






Eklentiyi oluşturan dosyalar ve .oxt formatı github'da mevcut. Eklentinin nasıl çalıştığına dair daha detaylı bilgi sahibi olmak isterseniz bakmakta fayda var.


Hoşçakalın!




11 Nisan 2016 Pazartesi

LibreOffice Dil Değişikliğinde Yeniden Başlatma Penceresi

Selamlar,
LibreOffice'te kullanıcı arayüzü dilini değiştirdiğimizde dil değişikliğinin etkin olabilmesi için baştan başlatılması gerekiyor. 
Bu yamadan önce dili değiştirip pencereyi kapatmak için “Tamam” düğmesine bastığımızda LibreOffice’i baştan başlatmanız gerektiği söyleyen bir uyarı penceresi açılıyordu.



Hata kaydında dil ayarları penceresine yeniden başlat diye bir düğme eklenmesi istenmişti ama neden yeniden başlatıldığıyla ilgili hiçbir açıklaması olmayan bu düğmeyi eklemek yerine daha iyi olduğunu düşündüğüm bir çözüm yoluyla yamayı yolladım.


Yamadan sonra dili değişitirip tamam düğmesine basınca "LibreOffice'in arayüz dili değişikliğinin etkili olabilmesi için yeniden başlatılması gerekiyor" diye uyarı veren, şimdi yeniden başlat ve daha sonra yeniden başlat düğmeleri bulunan pencere yerini aldı.

LibreOffice 5.2.0 sürümüyle birlikte dili değiştirdiğimizde kendimiz yeniden başlatmak yerine bu pencereyi kullanacağız.

Hoşçakalın! :)

30 Mart 2016 Çarşamba

Özgür Yazılım Ve Linux Günleri 2016

Selamlar,
Bu sene on beşincisi düzenlenen Özgür Yazılım ve Linux Günleri, 26 - 27 Mart'ta İstanbul Bilgi Üniversitesi Santral Kampüsü'ndeydi.
Geçtiğimiz Eylül'den beri İstanbul'a uğramamış olmam ve 6 ayda İstanbul trafiğinin iyice zıvanadan çıkmış olması hasebiyle Tuzla'dan yola çıkıp Eyüp'e ulaşmam bir hayli uzun sürdü. Sonucunda Chris Hoca'nın açılış konuşmasını kaçırdım ve hatta Barış Büyükakyol'un "Özgür Yazılım, Özgür Kültür" seminerinin sonuna yetişebildim.

Etkinliğin ilk günü katıldığım bir diğer oturum ise +Aydan Taşdemir'in (a.k.a Reyiz) "Pgbarman ile PostgreSQL yedekleme" idi.

İlk gün öğleden sonra etkinlikten etkinliğe görebilme fırsatı bulduğum Kripton insanlarıyla sohbet ederek geçti.

İkinci gün +Necdet Yücel ve +Kaan Ozdincer'in "Yine Yeniden Özgür Yazılım" semineriyle oturumlara katılmaya başladım. Süre sınırı olmasa uzun uzun dinlesek dediğim bir seminerdi.

Öğleden sonra Fatih Kadir Akın ve +Halil Kaya'nın "Türkiye'de Hackathon Kültürü ve Özgür Hackathon'lar" seminerine katıldım.

Bu seminerin hemen ardından benim de konuşmacılar arasında yer aldığım "LibreOffice Geliştirme ve Yaygınlaştırma" çalışma toplantısını gerçekleştirdik.
LibreOffice Çanakkale ekibi olarak (+aybüke özdemir+Gülşah Köse+İrem Şendur+Burçin Akalın+yeliz taneroğlu+Ayşe Melike Yurtoğlu+Kerem Hallaç+Feyza Yavuz+Kader Tarlan ve +Ahmet Can KEPENEK) bugüne kadar LibreOffice'e olan katkılarımızdan bahsettik,
LibreOffice'in Türkiye'de geliştirimesini nasıl yaygınlaştırırız?
LibreOffice'in Türkiye'de kullanılmasını nasıl yaygınlaştırız?
sorularına cevap arayarak toplantıyı sonlandırdık.

Bu özgür yazılım günleri, konuşmacı olarak katıldığım ilk etkinlik olarak kayıt defterimde yerini aldı.  :)
Etkinlik programına buradan ulaşabilir, oturumlar hakkında kısaca bilgi edinebilirsiniz.
Son olarak: Özgür yazılım ulan!
Hoşçakalın!

Dipnot: Daha önce katıldığım özgür yazılım günlerinde alan konusunda bu kadar sıkıntı yaşandığını hatırlamıyorum. Özellikle oturum çıkışlarında birilerine çarpmadan yürümek çok zordu. Bir köşeye geçip sohbet etmek de neredeyse imkansızdı. Keşke daha önceki etkinlik alanı kullanılsaydı.

16 Aralık 2015 Çarşamba

Amazon Kindle Fire (5th Gen) CyanogenMod 12.1 (UNOFFICIAL) Kurulumu (Linux)

FIRE OS 5.1.1'den önceki versiyonlar için geçerli

Selamlar,
Tableti daha önce şu linkte anlatıldığı gibi rootlamıştım.
Aşağıdakileri uygulamadan önce geliştirici seçeneklerinden usb debugging'in (enable adb) aktif olduğundan emin olmak gerek.

Kuruluma başlamadan önce şu dosyaları indirmiş olmamız gerekiyor:
Open Gapps (Arm -> 5.1 -> Pico indirilmeli)




Dosyaları indirdikten sonra CM Rom'u , SU'yu ve Gapps'i tabletin dahili belleğine kopyalıyoruz.

Dosyaları kopyaladıktan sonra terminali açıp 
adb devices
komutunu çalıştırmalı ve tabletin erişilebilir olduğundan emin olmalıyız.


Eğer tabletin seri numarası ve yanında device yazısını görüyorsak 
adb reboot bootloader
komutunu çalıştırıyoruz. 
Tablet yeniden başlatılmalı ve ekranda 'fastboot mode' yazmalı.


Bootloader kilitli olduğundan ve şimdilik kilidini açmanın bir yolu olmadığından
recovery'i tabletten flashlayamıyoruz, bu yuzden
fastboot boot TWRP_Fire_2.8.7.0.img 
komutunu çalıştırarak tableti TWRP(Team Win Recovery Project) ile başlatıyoruz.
Bundan sonrasına tablette devam edeceğiz.


Tablet açıldığında böyle bir ekranla karşılaşmalıyız.

Rom'u kurmadan önce Wipe seçeneği altında olan Advanced Wipe seçeneğinden Dalvik Cache ve Cache'i seçip Swipe to Wipe ile cache'leri temizliyor ardından geri düğmesiyle bir üst menüye dönüp Swipe to Factory Reset ile cihazı fabrika ayarlarına döndürüyoruz.

Sonrasında ana menüye dönüp Install seçeneğini seçiyor ve dosyaları tabletin dahili belleğinde kopyaladığımız dizine geçip önce cm-12.1-***.zip ile başlayan rom'u seçiyor ardından Add More Zips ile sırasıyla BETA-SuperSu-***.zip ve open_gapps-arm-5.1-pico-***.zip dosyalarını seçip Swipe to Confirm Flash ile kurulumu başlatıyoruz.

Kurulum tamamlandıktan sonra Reboot System seçeneğiyle tableti baştan başlatıyoruz.

Tablet açıldığında google apps ile ilgili bir hatayla karşılaşmamak için ilk açılış işlemleri tamamlanana kadar internete bağlanmamalıyız. 
İlk açılış işlemleri tamamlandıktan sonra internete bağlandığınızda google apps ile ilgili hata alıyorsanız usb debugging'i tekrar aktifleştirdikten sonra adb reboot bootloader ve fastboot boot TWRP_Fire_2.8.7.0.img komutlarını çalıştırıp TWRP'den cache'leri tekrar temizlemek ve sadece rom ve gapps'i yeniden kurmak gerekli.

Github wiki sayfası burada.
Kolay gelsin!

10 Kasım 2015 Salı

LibreOffice Belgelerini Önizlemesiz Olarak Kaydetme Seçeneği

Selamlar,
Bu sene LibreOffice'in geliştiricileri arasına katılmak için çalışıyoruz. Bu çalışma sürecinde ilk yamam kabul edildikten sonra, LibreOffice arayüzünde değişiklik yapmakla ilgili çalışmaya başladım.
LibreOffice dosyaları varsayılan olarak önizleme ile kaydediliyor fakat önizlemesiz olarak kaydetmek istediğinizde gelişmiş seçeneklerle haşır neşir olmadan buna izin vermiyor.
Belgenin önizleme ile kaydedilmesi, küçük resim eklendiğinden hem belgenin boyutunu arttırıyor hem de belgenin ilk sayfası/sunumu görüntülendiği için içerik hakkında bilgi verilmesinin istenmediği durumlarda sorun yaratıyor.
Yamadan Önce

İstenilen şey belge özellikleri penceresine önizlemesiz olarak kaydetme seçeneğinin eklenmesiydi.
Bu ekleme için hem arayüz dosyalarında hem de önizleme ile ilgili dosyalarda gerekli değişiklikleri yaptıktan sonra yamamı yolladım, jenkins ile her üç platformda da (Linux, OS X, Windows) başarıyla derlendikten sonra bir LibreOffice geliştiricisi tarafından gözden geçirildi ve bugün kabul edildi. 


Yamadan Sonra

Bu özellik LibreOffice 5.1 sürümünde yer alacak. 
Önizleme değişimi
Dosyaların boyutu yaklaşık olarak 15Kb değişiyor.


Tekrar süper haberlerle görüşmek üzere hoşçakalın. :)