30 Ekim 2016 Pazar

Özgür Web ve Teknoloji Günleri 2016

Herkese selam,

Yine kısa bir etkinlik sonrası yazısı yazıyorum. Etkinliklerden sonra hep blog yazmamın nedeni, böyle günlerin kayıtlara geçmesini istiyor olmam. Bu yıl "Özgür Web Teknolojileri Günleri" 22-23 Ekim'de Boğaziçi Üniversitesi'nde gerçekleşti.  Etkinliğe sadece ilk günü katılabildim ama dopdolu geçti.

Sunumlar 2 salonda paralel gerçekleşti. Ancak etkinliğe katılım çok fazla olduğu için salonlarda yer kalmadı. Kısa bir süre sonra da "Kendimi Şanslı hissediyorum" sınıfı açıldı. Burada, etkinliğe katılan herhangi birisi kısa ya da uzun anlatmak istediği ne varsa dinleyicilerle paylaşabiliyordu.

Benim ilk katıldığım sunum Halil Kaya ve Fatih Kadir Akın'ın "Belgelendirme Güdümlü Geliştirme" sunumuydu. Github'daki projelerimde belgelendirmeyi neden önemsemem gerektiği ile ilgili başka bir bakış açısı edindim diyebilirim.
Ardından Uğur Arıcı'dan "Modern Web Uygulamalarında Özgür Teknolojiler" sunumunu dinledim. 
Bu sunumdan sonra benim sunumum vardı. Ben de, Web Dünyasında Uluslararası Özgür Yazılım Fırsatları'nı anlattım. Bu sunumu yapmak için başvurmamın nedeni; böyle etkinliklere ilk defa katılıp, birşeyler yapmak isteyen ve nereden başlayacağı konusunda kafasında sorular olanlar için çevremde gördüklerimi, okuduklarımı ve kendi yaşadıklarımı anlatarak dinleyiciler için bir fikir oluşturmaktı. Sunumdan sonraki sorular, geri dönüşler beni çok çok mutlu etti.

Ardından Burak Can'ın "Elm Dili ile Fonksiyonel Programlama" sunumunu dinledim. Sunum sonunda bunu da bir denesem iyi olacak şeklinde ikna olmuştum. Boş bir vaktimde Elm'e vakit ayıracağım.
  Tabiki sunum araları hep aşırı süperli :)
Sunumları merak edenler buradan ulaşabilirler. 

Benim için yine çok harika geçen bir gündü. Yeni insanlarla tanıştım, az görebildiğim arkadaşlarımla görüştüm. Bir sonrakine siz de gelin. :)

12 Mayıs 2016 Perşembe

Go Git Services (Gogs) Kurulumu

Herkese merhaba,
Bu yazımda Gogs'un ne olduğundan ve nasıl yapılandırılıp kullanılabileceğinden bahsedeceğim.


Gogs'u Halil'in Github'da yıldızlaması ile gördüm. Ne iş yapıyormuş diye bakınca "vay be gavur da güzel proje yapmış" dedim ve projenin Go ile yazıldığını görünce aşırı sevindim. "Bu projeyi bir kurup deneyeyim, katkı versem çokii olur" diye düşündüm. Çünkü yaklaşık bir aydır boş kaldıkça Go'yu öğrenmeye vakit ayırıyorum ve bu da baya güzel denk geldi :)


Gogs özetle kendi git servisinizi kurmanızı, kullanmanızı, yönetmenizi sağlıyor. Belgelendirmesi de oldukça güzel yapılmış. Ben kaynak koddan hangi adımları uygulayarak kurduğumu anlatacağım.


İlk olarak servis vereceğimiz sunucunuza Go kurmalıyız. Ssh'a açık olacağı için bir kullanıcıyı yetkilendirmek gerekiyor. Bu yüzden yeni bir kullanıcı oluşturmalıyız.

#Kullanıcı oluşturup home dizinine geçelim.
$ sudo adduser --disabled-login --gecos 'Gogs' git
$ sudo su - git
$ cd ~

#Go'yu local diye bir dizin oluşturup yükleyelim.
$ mkdir local
$ wget https://storage.googleapis.com/golang/go$VERSION.$OS-$ARCH.tar.gz

# tar.gz uzantısını açalım.
$ tar -C /home/git/local -xzf go$VERSION.$OS-$ARCH.tar.gz

# Çevresel değişkenleri de ~/.bashrc altına ekleyelim.
$ sudo su - git
$ cd ~
$ echo 'export GOROOT=$HOME/local/go' >> $HOME/.bashrc
$ echo 'export GOPATH=$HOME/go' >> $HOME/.bashrc
$ echo 'export PATH=$PATH:$GOROOT/bin' >> $HOME/.bashrc
$ source $HOME/.bashrc

# Gogs'un kaynak kodunu kendi yerelimize çekelim ve derleyelim.
$ go get -u github.com/gogits/gogs (bağımlılıklar için)
$ cd $GOPATH/src/github.com/gogits/gogs
$ go build

# Şimdi "$ ./gogs web" dediğimizde çıktı aşağıdaki gibi olmalı: (varsayılan port 3000)

Bu çıktıda da dediği gibi ilk kez çalıştırdığımız için [w] uyarısını görmezden gelebiliriz.

Çıktıda bu uyarı dışında sorun yoksa şimdi app.ini dosyasını oluşturmalıyız. Bu kendi git servisimizin yapılandırmasını içeren dosya. (/custom/conf/app.ini

Benim yapılandırma dosyam şu şekilde:

APP_NAME = Gogs: Go Git Service
RUN_USER = git
RUN_MODE = prod

[database]
DB_TYPE  = mysql
HOST     = 127.0.0.1:3306
NAME     = gogs
USER     =root
PASSWD   =*********
SSL_MODE = disable
PATH     = data/gogs.db

[repository]
ROOT = /home/git/gogs-repositories

[server]
DOMAIN       =foo.bar.baz
HTTP_PORT    = 3000
ROOT_URL     = http://foo.bar.baz/
DISABLE_SSH  = false
SSH_PORT     = 22
OFFLINE_MODE = false

[mailer]
ENABLED = false

[service]
REGISTER_EMAIL_CONFIRM = false
ENABLE_NOTIFY_MAIL     = false
DISABLE_REGISTRATION   = false
ENABLE_CAPTCHA         = true
REQUIRE_SIGNIN_VIEW    = false

[picture]
DISABLE_GRAVATAR = false

[session]
PROVIDER = file

[log]
MODE      = file
LEVEL     = Info
ROOT_PATH = /home/git/go/src/github.com/gogits/gogs/log

[security]
INSTALL_LOCK = true
SECRET_KEY   =*************

# Son olarak konsol dışında 80.porttan erişip Github gibi arayüzü kullanmak istiyorsak, Nginx ya da Apache yapılandırmasını yapmalıyız.

Nginx yapılandırması için git kullanıcısından exit diyerek çıkalım.

$ vim /etc/nginx/sites-available/gogs

server {
    listen 80;
    server_name foo.bar.baz;
    location / {
        proxy_set_header    X-Real-IP $remote_addr;
        proxy_set_header    Host        $ http_host;
        proxy_pass              http://127.0.0.1:3000;
    }
}

Yeniden servisi çalıştıralım:

$ cd $GOPATH/src/github.com/gogits/gogs
$ ./gogs web


Şimdi tarayıcımıza "foo.bar.baz" dediğimizde bu sayfa ile karşılaşıyor olmalıyız.


Görüşmek üzere o/

5 Mayıs 2016 Perşembe

Mozilla Çalışmalarım 2

Herkese merhaba,

Bu yazımda öncelikle Mozilla'nın ürünü olan İnstantbird için düzelttiğim bir hata kaydından, sonrasında da neden birtakım projelere katkı verip durduğumdan bahsetmek istiyorum.

İnstantbird'ün ne olduğunu öğrendikten sonra severek kullanmaya başladım. Ürün mesajlaşma servislerinizi kullanabileceğiniz bir mesajlaşma servisi aslında. IRC, Slack, Twitter, Yahoo, Google Talk gibi servisleri kullabiliyorusunuz. Derleyip kurmak isterseniz de buraya bakabilirsiniz. 

Çözdüğüm hata kaydı ise burada ve yine arayüz ile ilgili bir iyileştirme. İnstantbird'ün üstte bulunan menüsünden "Tools">"Preferences">"Advanced"> "Manage Search Engines" yolunu izledikten sonra yeni bir pencere açılıyor. Bu pencerede geliştiricilerin gereksiz gördükleri Keyword bölümünü kaldırdım.

Öncesi:
Sonrası:

Peki neden böyle şeyler yapıyorum?

İkinci dönem başladığından beri hiç bilmediğim projelerin ne iş yaptıklarını öğrenip, kaynak kodundan kurup, hata kayıtlarını kapatmaya çalışıyorum. Katkılarım alındıkça da blogumda yazıyorum ve vakit ayırıp düzenli çalışan herkesin de ilgilendikleri projelere katkı verebileceğini düşünüyorum.

Bu katkılardan bazıları, bazı kişilerin gözünde küçük görüyor. Herkesin fikrine de saygım var elbette. Ama 21.yyda  kimsenin elini bağlayan yoktur diye tahmin ediyorum. Böyle kişilere "siz de katkı yapın, siz de yazın" demek isterim :)

Neden böyle yaptığıma gelelim, mezun olup yazılımcı olarak çalışacak olursam, işe başladığımda yüksek ihtimalle hali hazırda devam eden bir projeye dahil olacağım. Yani, şimdi irc üzerinden konuştuğum geliştiriciler yerine işyerindeki takım arkadaşlarım olacak, bunun dışında şimdi yaptığım katkılara benzer katkılar yapacağım. Hatta bir miktar daha küçük boyutlu hali bile olabilir. Çünkü Linux Kernel olsun, LibreOffice ya da Mozilla depoları, içi oldukça kalabalık olan projeler.

Bu projelere katkı vermeyi Jenga oynamaya benzetiyorum. Blokların hiçbirini yıkmadan eklemeler, çıkarmalar yapmak göründüğünden zor. Binlerce hatta milyonlarca dosya içindeki milyonlarca satır içinden doğru yerlere doğru kodlar eklemek ya da doğru yerdeki kodları çıkartmak iyi kod okuyup anlayarak oluyor.

Böyle projelere katkı vererek hem düşüncesini savunduğum özgür yazılım için hem de kendim için birşeyler yapıyorum. Yeni bir projeye dahil olduğumda hızlıca adapte olacağımı düşünüyorum.

Katkı vermek çok zevkli siz de gelsenize :)

LibreOffice Crash Projesi

Herkese merhaba,

Bir önceki yazımda Ankara'da gerçekleşen Hackfest'te Crash projesi için çalışmaya başladığımdan bahsetmiştim.

Crash projesinde Django kullanılıyor, LibreOffice sunucularındaki çökme raporlamaları için kullanılacak. Marcus'un bana ilk verdiği iş arayüzde bir düzenleme idi.

Eklenmiş olan her LibreOffice versiyonu için günlük çökme miktarı giriliyor ve özet bir grafik oluşturuluyor. Alt kısımda da versiyon ve ayrıntıların olduğu yeni sayfa için bir link vardı. Bu kısmı değiştirip dropdown butona çevirdim. Artık ne kadar versiyon eklenirse eklensin tablo genişleyip sayfayı aşmayacak :)

Before:


















After:
İlk Pull-Request'im alındı. Yeni şeyler ekledikçe yazacağım. Hoş kalın o/

2 Mayıs 2016 Pazartesi

LibreOffice Hackfest in Ankara 2016

Hi everyone,

LibreOffice Hackfest event occurred last weekend and it was hosted by TUBITAK-ULAKBIM. See here for details of the event.

We attended the event all together as Çanakkale team. (with/+Gülşah Köse, +Berk Güreken, +yeliz taneroğlu, +Ayşe Melike Yurtoğlu, +Burçin Akalın, +Kader Tarlan, +Faruk Uzun, +Özcan Esen, +Feyza Yavuz, +merttumer, +Kerem Hallaç +İrem Şendur)

We met LibreOffice developers Michael Meeks, Marcus Mohrhard and Jan-Marek Glogowski who came from abroad on friday. Then we listened to their presentations.


Michael Meeks's presentation began as introductory speech. This was about how the relationship between mentor and contributor should be maintained efficiently and how the development process should be.

Then, Marcus Mohrhard talked about the beneficial links and contents while contributing LibreOffice.

I had conversation with the developers at lunch break and I had a chance to meet them a lot. I had fun about the conversation and loved them all :)

Michael Meeks's was the first presentation in the afternoon. He told us about LibreOffice code base, LibreOffice components of the lowest level to the highest one and these components's communicate with each other. It was a enlightening presentation for me :)

Afterwards, Marcus explained the recent major changes in LibreOffice Calc's code. He talked about the difference in performance.

Before closing the day, Michael told the tools that used to debug in LibreOffice and we have been experimenting with small examples.

When Hackfest started, all the team members went on the tasks that they work on before and members who have questions about these tasks asked to the mentors.

As for what I'm doing is that I decided to contribute to the project that Marcus mentioned in his presentation Friday and I worked on the project installation and reviewed codes. I'm going to finish what we talk with Marcus and I will write about it in a few days:)

I didn't attend the second day of Hackfest. I spent time with my family in Bolu :)
I had fun, learned new things and made new friends. It was a great weekend for me. Also, I was glad to see Nurhak and Erdem, who I met their at AB2016.

Thank you very much, firstly my teacher +Necdet Yücel, event hosts TUBITAK-ULAKBİM and Muhammet Kara, Gökhan Gurbetoğlu and far away from Michael Meeks, Marcus Mohrhard and Jan-Marek Glogowski. I hope we meet again :)

LibreOffice Ankara Hackfest 2016

Herkese merhaba,

Geçtiğimiz haftasonu TÜBİTAK-ULAKBİM ev sahipliğinde LibreOffice Hackfest etkinliği gerçekleşti. Etkinlik ayrıntıları için buraya bakabilirsiniz.


Cuma günü yurtdışından gelen LibreOffice geliştiricileri Michael Meeks, Marcus Mohrhard ve Jan-Marek Glogowski ile tanıştık ve sunumlarını dinledik.

Sunum Michael Meeks'in giriş konuşması ile başladı. Bu konuşma daha çok  mentör ve katkıcı arasındaki iletişimin en faydalı şekilde nasıl yürütüleceği ve geliştirme işinin nasıl olması gerektiğiyle ilgiliydi.

Ardından Marcus Mohrhard, LibreOffice katkısı yaparken oldukça yararlı olacak linkleri ve içeriklerini anlattı.

Öğle arasında geliştiricilerle sohbet ederek onları daha çok tanıma fırsatı buldum. Sohbetleri çok keyifliydi ve hepsini çok sevdim :)
Öğleden sonraki ilk sunum Michael Meeks'indi. Bize LibreOffice'in kod tabanını anlattı. En alt seviyeden en üste kadar LibreOffice'in hangi bileşenlerden oluştuğunu bu bileşenlerin birbirleri ile nasıl iletişimde bulunduklarını anlattı. Benim için oldukça ufuk açıcı bir sunum oldu :)

Sonrasında Marcus, LibreOffice'in Calc bileşeni kodlarında son zamanlarda yapılan büyük değişiklikleri anlattı. Performans farklarından bahsetti.

Günü kapatmadan önce Michael, LibreOffice'de debug yapmak için kullanılan araçları anlattı ve küçük örnekler ile denemeler yaptık.

Hackfest'in başladığında ise tüm ekip, gelmeden önce üzerinde çalıştığı işlerle ile çalışmaya devam etti, soruları olanlar sorularını sordu.

Benim ne yaptığıma gelirsek, cuma günü Marcus'un sunumda bahsettiği projeye katkı vermeye karar verdim ve Hackfest'te kurulum işleri ile ilgilenip kodları inceledim. Birkaç gün içinde Marcus ile konuştuğumuz işi bitirip bununla ilgili de yazacağım :)

Hackfest'in 2. gününe katılmayıp Bolu'da ailemle vakit geçirdim. Yine dopdolu geçen çok eğlendiğim, yeni şeyler öğrendiğim ve yeni arkadaşlar edindiğim harika bir haftasonuydu. Ayrıca akademik bilişimde tanıştığım Nurhak ve Erdem'i de görmek çok güzeldi.

Başta +Necdet hocama, etkinliğe ev sahipliği yapan TÜBİTAK-ULAKBİM'e ve Muhammet Kara, Gökhan Gurbetoğlu'na, çok uzaklardan gelen Michael Meeks, Marcus Mohrhard ve Jan-Marek Glogowski'ye çok teşekkür ederim. Umarım yine görüşürüz :)


28 Mart 2016 Pazartesi

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

Merhaba, geçtiğimiz hafta  Özgür Yazılım ve Linux Günleri'nin 15.'si düzenlendi. Benim de katıldığım 5. Özgür Yazılım ve Linux Günleri etkinliği oldu.  

Etkinlik, Bilgi Üniversitesi Santral Kampüsü'ndeydi. Etkinlik boyunca tek gözüme batan problem küçük bir alanda olmasıydı. Katılım oldukça fazla olduğundan sunum aralarında standları gezmek, kocaman bir toplulukla sohbet etmek bir miktar zorlaştı diyebilirim.

Her yıl olduğu gibi Çanakkale'den kalabalık bir ekiple oradaydık. ( +Necdet Yücel +Berk Güreken  +Gülşah Köse +yeliz taneroğlu  +Ayşe Melike Yurtoğlu +Kerem Hallaç +İrem Şendur +Feyza Yavuz +Kader Tarlan  +Burçin Akalın +Beyza Nur Esen ve berfin sarı)

Okulumuzun özgür yazılım gönüllüsü olan mezun öğrencileri ile de görüşüp sohbet etmek her zamanki gibi aşırı zevkliydi. [Yaşasın Kripton :)] Çok sık görüşemediğim ve sohbetini çok sevdiğim insanları böyle etkinliklerde görüp sohbet etmenin tadı da başka tabiki. \o/

Katıldığım ilk sunum, HackerSpace'den Barış Büyükakyol'un "Özgür Yazılım, Özgür Kültür" sunumuydu. Barış, özgür yazılım felsefesini ve neden doğru olanın bu yol olduğunu anlattı.

İkinci katıldığım sunum ise, bahsettiğim mezunlardan +Aydan Taşdemir'in (Reyiz)  "Pgbarman ile Posgresql Yedekleme" sunumuydu. Pgbarman, sistem yönetimi alanında kullanılan bir araç olduğundan ilgiyle dinledim. Bu araç için Aydan da bir özellik eklemiş. Sunumda bize bu özelliği de anlattı.

İkinci gün, katıldığım ilk sunum Necdet Yücel ve +Kaan Ozdincer 'in "Yine Yeniden Özgür Yazılım" sunumuydu. Evet özgür yazılım diyoruz, başkalarını da yanımıza çağırıyoruz fakat bunu yaparken neleri yanlış yapıyoruz, nelerin üzerinde durup bu çağırma işini doğru yapmalıyız soruların tüm cevapları sunumdaydı :) 

Örneğin, özgür yazılım lisansı ile lisanslanmış bir yazılıma açık kaynak diyerek, hiçbir lisansı olmayıp kodlarını görebildiğimiz yazılıma da açık kaynak diyerek yanlış yapıyoruz. "virüs yok", "bedava" diyerek de karşı tarafı yanlış taraftan ikna etmeye çalışıyoruz aslında. Şimdilerde özgür yazılım gibi görünen ama hiç de öyle olmayan yazılımlar için özgür yazılımı ve felsefesini doğru anlamalı, anlatmalı topluluğun temelini sağlam tutmalıyız. Topluluk herşeydir :) Umarım bu sunumu başka bir etkinlikte dinleme şansı bulursunuz.

Sonrasında +Halil Kaya  ve Fatih Kadir Akın(fkdev)'ın "Türkiye’de Hackathon Kültürü ve Özgür Hackathon’lar" sunumuna katıldım. Bu sunumda da Hack kültürünü, son zamanlarda gerçekleşen hacathonların temel felsefeden biraz uzaklaştıklarını ve aslında Hackathon kültürünün nasıl olması gerektiğini anlattılar.


Gelelim bizim "LibreOffice Geliştirme ve Yaygınlaştırma" toplantımıza :)
Toplantımız 2 kısımdan oluşuyordu. Öncelikle ekipten herkes gibi, ben de eylülden beri LibreOffice için nasıl özellikler eklediğimden bahsettim. Bu çalışmamın bana Mozilla tarafında nasıl bir kapı açtığını anlattım. Ekip oldukça kalabalıktı(13 kişi) ama süre azdı malesef. İçimizden arayüz ile ilgilenenlerin ne yaptıklarını sunuma eklemiştik. Merak edenler  buradan bakabilir.

2.kısımda da temel 2 soru üzerine konuştuk: "Geliştirme için bizden başka neden kimse yok, bu sayıyı nasıl arttırırız" ve "LibreOffice kullanımını nasıl arttırabiliriz?" Toplantıya katılamayıp buradan okurken bir fikri olan okuyucular da düşüncelerini paylaşırlarsa seviniriz :)

Etkinlikte bolca sticker topladığım, bir tane LoL tişörtü ve bardak altlığı edindiğim bilgisini ekleyeyim :)


Yazıyı bitirmeden önce Chris Stephenson hocayı da gördüğüme çok sevindiğimi söylemek isterim. Hoş kalın :)

23 Mart 2016 Çarşamba

Mozilla Çalışmalarım 1


Herkese merhaba, bir miktar harikalı haber ile geldim :)

Bir önceki yazımda Mozilla'nın bir ürünü olan Balrog üzerinde çalıştığımdan bahsetmiştim.

Balrog, "backend server" ve "admin ui" şeklinde 2 bölümden oluşuyor. Admin-ui kısmı Github'da Balrog projesinin bir alt modülü şeklinde duruyor.

Ben de birkaç gün önce arayüz ile ilgili olan hata kaydıyla ilgili çalıştım. Kısaca istenen , Balrog'a eklenen kuralların  ID bilgisinin de arayüzde görünmesiydi.




İstediklerini yapıp Github'dan PR yolladım. Birkaç dakika içinde PR'in kabul edilmesinin yanında balrog-ui deposuna yazma hakkı da verildi. Arkasından da Balrog proje geliştiricisi tarafından onaylanıp, mozillian oldum.

Bu da halaya davet fotoğrafı ^-^



Mozilla tarafında işlerin benim açımdan hızlı ilerlemesinin en büyük kaynağının, öncesinde LibreOffice ve Linux Kernel gibi uluslararası projelere katkıda bulunmuş olmam olduğunu düşünüyorum.

Daha güzel haberler vermek üzere, hoş kalın :)

20 Mart 2016 Pazar

Balrog Nedir? Nasıl Çalıştırılır?

Balrog, Firefox'un ve diğer mozilla ürünlerinin kullandığı uygulama güncelleme servisi(AUS).  Veritabanı modeli "Rules(Kurallar)"  ve "Release(Sürüm)"  şeklinde 2 grupta toplanıyor. Bu 2 grubun da alabildiği tipler ve özellikler var. Burada çok güzel bahsedilmiş. Ben makinama nasıl kurup ayağa kaldırdım kısaca ondan bahsedeceğim.

Geliştiriciler github'ı aktif kullanıyor. Proje "backend server" ve "admin ui" olmak üzere 2 kısıma ayrılmış şekilde bulunuyor. Depoyu yerelimize çektikten sonra (" $ git clone https://github.com/mozilla/balrog")  ui ile ilgileneceksek alt modülü başlatıp ui kaynak kodunu da projeye eklemeliyiz.

$ git submodule init
$ git submodule update

Ayrıca ui için gerekli modülleri de indirmeliyiz.

$ npm install
$ npm install -g lineman

Son olarak Balrog'u ayağa kaldırmak için "docker-compose up" komutunu vermeliyiz. Bu komutla gerekli olan 3 conteiner (balrog_balrogdb_1, balrog_balrogadmin_1 vebalrog_balrogpub_1) oluşturulup başlatılıyor. uwsgi, dizinindeki run.py çalışırken kontrol çıktısının

 "balrogpub_1   | Python auto-reloader enabled

olduğunu görebildiysek "http://127.0.0.1:8080" den balrog admin sayfasını görebiliriz. Görüşmek üzere.


17 Mart 2016 Perşembe

Kaynak Koddan Firefox Kurulumu ve Firefox İçin Yama Göndermek

Özgür yazılım dünyasının 3 büyük projesinden(Linux Kernel, LibreOffice, Firefox) birisi de Firefox. Herkesin de bildiği ve kullandığı gibi Mozilla Vakfı tarafından geliştirilen özgür bir ağ tarayıcısı.
Geçtiğimiz cuma, biraz da Firefox ile ilgileneyim diyip kolları sıvadım :) Bu birkaç günde neler öğrendiğimi sizlerle paylaşmak istedim.

Büyük bir projeye katkı vermeden önce kaynak kodundan 1 defa derleyip o halini kullanmak, o projeye katkı vermeden önce yapılması mantıklı bir iş. Deponun geliştirilmekte olan halini kullanmak eklenen-çıkarılan kısımları görüp hatalı yerleri raporlama ya da bu kısımlarla ilgili ters giden yerleri düzeltebilme imkanı sağlıyor.

DERLEMEYE HAZIRLIK:

Derlemeden önce bağımlılıklar için geliştiricilerin yazdığı python dosyasını buradan çekip çalıştırmamız gerekiyor.
$ wget -q <link> && python bootstrap.py
ya da
$ curl -O <link> && python bootstrap.py

KAYNAK KODU YEREL DEPOYA ÇEKERKEN:

Firefox, mercurial sürüm takip sistemini kullanıyor. Git ile entegre çalışıyor. Ben öğreneyim diye mercurial ile depoyu çektim. Mercurial kullanımıyla ilgili buraya bakabilirsiniz.

$ hg clone https://hg.mozilla.org/mozilla-central


YAPILANDIRMA:

 Dilerseniz derleme sırasında bazı özellikleri etkinleştirmek/devre dışı bırakmak için "mozconfig" dosyası oluşturup içini istediğiniz şekilde yapılandırabilirsiniz:
ac_add_options --enable-debug
ac_add_options --disable-optimize
DERLEME: 
$ ./mach mercurial-setup
$ ./mach build 
ÇALIŞTIRMA:
$ ./mach run






YAMA YOLLARKEN: 
İlk aşamada yama yollarken mercurial ile bir yama dosyası oluşturup, hangi hata kaydı için düzeltme yaptıysanız *.patch dosyasını ekleyebilirsiniz.

Yama dosyası hazırlarken de kullanacağımız komut "$ hg qnew *.patch " ve değişiklikleri yama dosyasına eklemek için de "hg export . > *.patch" komutları. 


Yardımcı linkler:

- Derleme ile ilgili ayrıntılı bilgi için tıklayın.

- Kaynak kodda arama yapmak için tıklayın.

- Mozilla hata kaydı sayfası için tıklayın.


Güzel haberler vermek dileğiyle hoş kalın :)

15 Mart 2016 Salı

Mercurial vs Git

Bir proje üzerinde çalışırken, sürüm takip sistemi kullanmak projenin sağlığı açısından çok büyük öneme sahip. Kullanınca ne oluyormuş ya, diyenler için:

* Masaüstünüzdeki "proje_son.*", "valla_bu_son.*", "valla_son_v2.*" gibi dosyaların çoğalmasını engelleyip masaüstü arkaplanınızı net görebilmenize yardımcı olur.
* İşletim sisteminize birşey olsa da (bilgisayarınıza kahve dökseniz bile) projeniz uzak depoda da bulunduğu için içiniz bir miktar rahat olur.
* Projenin önceki versiyonlarına rahatça dönebilirsiniz.
* Dünyanın bir ucundaki proje ortaklarınız ile rahatça çalışabilirsiniz.

Kısacası yukarıda "Yıl olmuş 2016 sürüm takip sistemi kullanmayan mı kaldı" demek istiyorum.

Mercurial da bir sürüm takip sistemi aracı. Çok büyük kısmı Python ile yazılmış. GNU/Linux, Unix-benzeri sistemler, FreeBSD, Mac OS X ve MS Windows işletim sistemlerinde kullanılabiliyor.
 
Ben şimdiye kadar hep Git kullanmıştım. Git, dünyada çok yaygın şekilde kullanılan, oldukça marifetli bir araç. Linux çekirdek geliştiricileri kendi ihtiyaçları doğrultusunda geliştirmiş ve büyük bir kitlenin kullanıldığı bir araç hale gelmiş.

Mercurial'ı öğrenmek için belgelerini okurken şunu gördüm; eğer bir araç gerçekten ne işe yaradığını bilerek, iyi kullanılıyorsa, aynı işi yapan başka bir araca çok az zamanda uyum sağlanıyor. 

Ubuntu 15.04 mercurial kurulumu için: 

    $sudo apt-get install mercurial meld

GİT(git)                       MERCURİAL(hg)

git pull hg pull -u
git fetch hg pull
git reset --hard hg update -C
git revert <commit> hg backout <cset>
git add <new_file> hg add <new_file>
git grep <search> hg grep <search>
git commit -a hg commit
git commit --amend hg commit --amend
git blame hg blame or hg annotate
git blame -C (closest equivalent): hg grep --all
git bisect hg bisect
git rebase --interactive hg histedit <base cset>
git stash hg shelve
git merge hg merge
git cherry-pick <commit> hg graft <cset>
git rebase <upstream> hg rebase -d <cset>
git checkout HEAD hg update
git log -n hg log --limit n
git push hg push


Ayrıntılı karşılaştırmaya buradan ulaşabilirsiniz.
Görüşmek üzere :)
 

7 Şubat 2016 Pazar

AB2016 LibreOffice Development Workshop


This year "AB2016 (XVIII)" was organized in Aydın Adnan Menderes University. Attendees were trained on 34 different subject before the conference.

One such training was also about "LibreOffice Development Workshop". My friends (+Gülşah Köse , +Berk Güreken and +yeliz taneroğlu) and I have tried to help the participants to involve in development of Libreoffice for 4 days. The course was deeply about development and process of sending patches for LibreOffice. There were 11 attendies. Most of the participants were from Canakkale 18 Mart University.The training was so effective and fun. We have found lots of bugs and provided patches for them. All of the participants have provided patches. We sent patches and 14 of them are accepted in LibreOffice core repo.

The conference, which comes after the training, took 3 days. The conference topics can be found here.

The Conference began with +Mustafa Akgul's introductory speech. Akgül told about 16 years of the conference history :). This speech gave us more about how big the event is. There were 8 presentations in paralel.
There were 3 presentations from Kripton Team on the 2nd day of the conference. These were as below:

Except from that, It was so funny that I have spent a lot of time with people I like during the event :).

( +Kerem Hallaç  was there too :))

Thank you very much +Mustafa Akgul, +Necdet Yücel  also +Ahmet Can KEPENEK and +Özge Barbaros  for this great event.
See you again next year!

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

18.'si düzenlenen Akademik Bilişim, bu yıl Aydın Adnan Menderes Üniversitesi'nde yapıldı. Konferans öncesinde 4 gün süren 34 farklı konuda eğitim verildi.

Bu eğitimlerden biri de "LibreOffice Geliştirme Atölyesi"ydi. +Gülşah Köse, +Berk Güreken ve +yeliz taneroğlu ile birlikte 4 gün boyunca katılımcıların LibreOffice için yama yollama süreçlerine yardımcı olmaya çalıştık. Katılımcıların çoğunluğunu Çanakkale'de birlikte çalıştığımız ekip oluşturuyordu. Eğitim boyunca yolladığımız 14 yama LibreOffice core deposuna alındı. Bu 4 gün benim için çok keyifli ve verimliydi.


Konferans öncesi kurslar dönemiyle ilgili, üniversite tarafında eleştireceğim birkaç nokta var. Gelecek katılımcı/eğitmen sayısı biliniyor olmasına rağmen eğitimler için hazırlık konusunda eksiklikler vardı. Birkaç kişiyken sorun olmayan şeyler, yüzlerce insan biraraya gelince sorun haline geliyor. Eğitimlere hemen başlamak için piriz yetersizliği ve internet sorunu bunların en başındaydı. İnternet sıkıntısı atölye çalışmamızı çok yavaşlattı.

Eğitimlerden sonra gerçekleşen konferanslar ise 3 gün sürdü. Konferans konuları için ayrıntılı incelemeyi buradan  yapabilirsiniz.

Konferans, +Mustafa Akgul Hoca'nın giriş konuşmasıyla başladı. Akgül Hoca, Akademik Bilişim etkinliğinin nasıl başladığını, bu zamana kadar ne kadar yol katedildiğini anlattı. *Bu sunum dinlenirken, etkinliğin ne kadar büyük olduğu bir kez daha görülüp dinleyicileri bir titreme alabilir :)

Daha sonra Tübitak'tan Havva Cansu Sazoğlu'nun "Etkileşimli Tahta" sunumunu dinledim. Tahtanın şu an neler yaptığını, nelerin geliştirme aşamasında olduğunu anlattı. Ayrıca etkileşimli tahtada, birçok senaryo ile tahtanın yeteneklerini gösterdi. Fikirlerimizi de aldı. Bence ilerisi çok daha güzel olacak bir proje.

Konferansın 2.günü Kripton ekibi olarak bizim de 3 seminerimiz oldu. Bunlar:


Bunun dışında etkinlik boyunca sevdiğim insanlarla geçirdiğim vakitler çok keyifliydi :)

(Kerem de oradaydı :))

Son olarak şuna dikkat çekmek istiyorum. Eğitmen mail listesinde gözlemlediğim kadarıyla böyle büyük bir etkinliğin sorunsuz ilerlemesi için arkada gerçekten büyük fedakarlıklarla çalışılıyor. Kurs kayıtları, katılımcı/eğitmen konaklamaları, yemek, yol sorunları ile tek tek ilgileniliyor. Bu büyük etkinlikte emeği geçen başta  +Mustafa Akgul  hocama ve +Necdet Yücel  hocama, ayrıca +Ahmet Can KEPENEK ve +Özge Barbaros 'a çok çok teşekkür ederim.

Görüşmek üzere.