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