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.


20 Mart 2016

Posted In: aus, balrog, firefox, gnu/linux, hacking, mozilla, ubuntu

Linux’ta Bu Hafta – 2

Yeni güvenli ve dağıtık ses, görüntü ve mesaj iletme platformu Ring Beta yayınlandı: GPL sürüm 3 lisansı altında geliştirilen ve Skype alternatifi olan Ring Alpha mertebesinden Beta mertebesine yükseldi. Papineau sürümü bir çok yenilik ve iyileştirme ile birlikte geliyor. Değişiklikler şöyle: yüzlerce hata giderildi, video grup aramaları, sesli görüşmenin dışında mesajlaşabilme özelliği geldi. Video kalitesi … Okumaya devam et "Linux’ta Bu Hafta – 2"

18 Mart 2016

Posted In: Açık kaynak, grub, haber, kernel, krita, linux, linuxgezegeni, open source, Özgür yazılım, qt, raspberry pi, ring

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

17 Mart 2016

Posted In: compile, firefox, gnu/linux, mozillian, source code

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

16 Mart 2016

Posted In: git, gnu/linux, hg, mercurial, ubuntu

Yeni Tasarım Yeni Blog

Merhabalar

Uzun zamandır blog yazmıyordum. Bunun en büyük sebebi iş hayatı vs dışında yeni bir yapıya geçmek istememdi. Bu yüzden öncelikle öncelikle hem tasarımı hem de blog altyapısı değiştirdim. Yoğunluğun da verdiği etki yüzünden gecikmeli de olsa bugün yeni tasarımı yayınladım.

İlk blogumu 2008 yılında yayınlamıştım. O zamanlar bloglar popüler olmaya başlamıştı. Bense sadece kendim için bir web sayfası oluşturmak istedim. Daha sonra yazılım mühendisliği ile ilgilenmem ve üniversite ile birlikte birçok içeriği çöpe atıp tekrar tekrar yeni yazılar yayınladım. Bu arada birçoğunun tasarımını da kendim yapıp front-end implementasyonlarını da kendim yaptım. Bu blog da öyle :)

Önceki tasarımı yaptığım zamanlar, mobil cihazlar popülerleşmeye başlasa da mobil siteler henüz popüler değildi. Bootstrap CSS framework’u o zamanlar hatırlıyorum. Fakat genelde kendi stillerimi oluşturmayı tercih etmiştim. Benim ilk front-end’le uğraştığım zamanlarda tablo ile yapılan sitelerin sayısı az değildi. Mezun olduktan sonra o temayı yeniledim fakat yine mobil cihazlar için uygun değildi. Önceki temayı geliştirdikten sonra tamamen back-end teknolojilerle ilgilendim. Uzun bir aradan sonra tekrar front-end e girdim. Normalde daha koyu renkleri seviyordum bu tasarımda Sadık’ın da baskısıyla daha açık renkleri tercih ettim. Yine aynı şekilde sade bir tasarım tercih ettim. Tamamen yazıyı okuma odaklı bir tasarım oldu. İlk defa bir CSS framework’u Semantic UI’yu tercih ettim. Artık günümüzde bu araçlar başarılı ve kesinlikle kullanılması gerekiyor.

Bu değişimde altyapı da değişti. Şu an bu web sayfası tamamen statik dosyalardan oluşuyor. Evet Wordpress kullanmayı bıraktım. Bir daha da kullanmayı düşünmüyorum. Php ile ilgili tek bağım da ortadan kalkmış oldu. Statik dosyalardan oluştuğu için birçok yerde host edebilirim. Şimdilik github ile devam edeceğim. Bu arada gitlab’ın da bu konuda başarılı olduğunu ve ücretsiz private depo verdiğini de söylemeden geçmeyeyim. Bu arada statik sayfaları üretmek için de hugo kullandım.

Bu arada içeriklerin bir kısmını da restore ettiğimi söylemeliyim. Bazı yazıları tamamen kaldırdım. Bazıları ise yenilenmek üzere bekliyor.

Bu benim yeni blogumda ilk yazım. Bundan sonra yazılımla ilgili birçok konuda paylaşımda bulunacağım. İlerde video da paylaşmayı düşünüyorum. Çok yoğun bir insanım ama zaman buldukça paylaşım yapmaya devam edeceğim. Aynı şekilde bu tasarımda farklı farklı değişikliklere uğrayabilir.

Bir sonraki yazıda görüşmek üzere

15 Mart 2016

Hangi Masaüstü Ne Kadar Türkçe Konuşuyor? -8-

Arada bir durum tespiti yapmak ve bir avuç gönüllüyle yürütülen büyük özgür yazılım projelerinin çevirilerinin ne durumda olduklarını görmek iyi oluyor diye düşünüyorum. Bu yazılarla neredeyse kimseyi çekebildiğimiz yok ama en azından haber vermiş oluyoruz ;)

KDE: geçen yıl kde4 için %90, kde5 için ise %88 oranında olan çeviriler şimdi kde4 için %95, kde5 için %94 oranına yükselmiş durumda. Yardım içeriği çeviri oranı ise maalesef %7.

GNOME: geçen yıl %93 olan çeviri oranı şimdi %96 seviyesinde. Bu kadar büyük bir masaüstü ortamının çevirisinin bu sevilerde olması elbette çok büyük emek istiyor. Yardım içeriği neredeyse hiç çevrilmemiş durumda.

LXDE: böyle bir masaüstü ortamının çeviri için kullandığı sunucunun sorunlarını bir yılı aşkın zamandır çözememiş olması inanılmaz bir durum. İşin garibi çeviri ekipleri hala ümidini kaybetmemiş durumda. LXDE'ye son bir yıldır eklenen hiç bir şey çevrilemedi maalesef.

Enlightenment: çeviri oranı %78'de idi ve hala aynı durumda. Aslında çevirilecek metinler çok fazla olmamasına rağmen çeviri için çok az kişinin uğraşması yüzünden tamamlanamıyor.

XFCE: çevirisi neredeyse tamamlandı diye yazdığım xfce çevirileri %100'e ulaşmış durumda. XFCE'nin tamamen çevrildiği 10 dilden biri Türkçe.

LibreOffice: en büyük özgür yazılım ofis paketi olan LibreOffice arayüz ve Yardım içerikleri %100 iken çok hızlı geliştirilen bir yazılım olması ve biz çeviri ekibinin tempoyu aksatmamız yüzünden arayüzü %100'de tutmuş olmamıza rağmen yardım içeriğinde %84 seviyesine gerilemiş durumda. Bir sonraki yazıya kadar yine %100 olur diye umuyorum.

OpenOffice: Apache OpenOffice için neredeyse tek başına çalışan Burak Yavuz arayüz çevirisini %100, yardım içeriğini ise %37 seviyesinde tutmaya devam ediyor. LibreOffice ile karşılaştırılabilecek bir yoğunluğu olmadığını da eklemek lazım elbette.

Calibre: en önemli e-kitap yönetimi aracı olan calibre %97 oranında Türkçeleştirilmiş durumda. Bu çeviri oranıyla calibre'nin en çok çevrildiği dördüncü dil Türkçe oluyor.

11 Mart 2016

Posted In: calibre, Çeviri, Enlightenment, Gezegen, Gnome, kde, libreoffice, Lxde, openoffice, Xfce

Yazdığınız kodu GPLv3 ile nasıl lisanslarsınız

Bir program geliştirdiğinizde onu bir özgür yazılım lisansıyla lisanslamanız kamunun ondan en büyük faydayı sağlamasına imkan verecektir. Özgür yazılımlar kullanımı, dağıtımı, değiştirilmesi ve değiştirilmiş halinin dağıtılması konusunda kısıtlama getirilemeyecek yazılımlardır. Son zamanlarda yazılımlarını GPL ile lisanslamak isteyen ama bunu nasıl yapacağını pek bilemeyenlerin sayısının hiç de az olmadığını görüyorum. Aslında yapılacak işlem basit olmasına rağmen bir programın GPLv3 ile nasıl lisanslanacağını kısaca özetlemek istiyorum.

En güvenlisi aşağıdaki ifadelerin her kaynak dosyanın başlangıcına eklenmesi:

   (programın adını ve ne yaptığını özetleyen bir satır.)
Copyright (C) (yıl) (yazarın adı)
   This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation; either version 3 of the License, or
(at your option) any later version.
   This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.
   You should have received a copy of the GNU General Public License
along with this program; if not, write to the Free Software Foundation,
Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA

Birden çok dosyadan oluşan programlar için lisanstaki "this program" ifadesini programın adıyla değiştirmek ve lisans bilgisinin başlangıcına “This file is part of NAME” ifadesini eklemek daha uygun olacaktır. Her kaynak dosyanın en azından "copyright" ifadesini içeren satırı ve diğer uyarı mesajlarının nerede bulunacağı bilgisini içermesi gerekir. Kaynak kodla birlikte COPYING veya LICENSE isimli bir dosyada GNU Genel Kamu Lisansının bir kopyasını dağıtmanız gerekmektedir. Geliştiriciye ulaşmak için bir eposta adresi eklenmesi de son derece önemlidir. Yazdığınız program konsoldan kullanıcıyla etkileşime giriyorsa ilk çalıştırıldığında aşağıdaki gibi bir uyarı mesajı vermelidir:
   Gnomovision version 42, Copyright (C) yıl  yazarın adı
Gnomovision comes with ABSOLUTELY NO WARRANTY; for details type `show w.
This is free software, and you are welcome to redistribute it
under certain conditions; type `show c' for details.
Buradaki show w ve show c ifadeleri yerine programda uygun karşılıklar nelerse onların yazılması gerektiğini de vurgulamış olalım. Eğer programınız bir grafik arayüze sahipse bu bilgileri Hakkında bölümünde görüntülemelisiniz. GNU Genel Kamu Lisansı programınızın sahipli bir yazılımın içinde kullanılmasına izin vermez. Eğer yazdığınız kod sahipli yazılımların da bağlanmasını istediğiniz bir kitaplık ise onu GNU Kısıtlı Genel Kamu Lisansı ile lisanslamayı düşünebilirsiniz.

1 Mart 2016

Posted In: belge, Gezegen, gpl, Lisans, Özgür yazılım

WP Twitter Auto Publish Powered By : XYZScripts.com