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

Sadece cevap olarak "evet" ya da "hayır" almak istediğiniz durumlarda evet/hayır sorusu sorun

Bu sayfaya aşağıdaki biçimlerde bir soru sorduğunuz için gelmiş olmalısınız:

  • Biri … biliyor mu?
  • Biri … yapabilir mi?
  • … mümkün mü?
ve mantıksal olarak "evet" veya "hayır" cevabı alınca da şaşırdınız.

Bu böyle bir sürprize Sıkça Verilen Cevaptır.

Sadece cevap olarak "evet" ya da "hayır" almak istediğiniz durumlarda evet/hayır sorusu sorun. Eğer cevap olarak "evet" ya da "hayır"ı istemiyorsanız başka bir soru sormalısınız.

Eğer gerçekten birinin bilip bilmediğini öğrenmek istemiyorsanız Biri … biliyor mu? sorusunu sormayın.

Eğer gerçekten birinin yapıp yapamayacağını öğrenmek istemiyorsanız Biri … yapabilir mi? sorusunu sormayın.

Eğer başka bir şeyi bilmek istiyorsanız cevabı gerçekten istediğiniz şey olan soruyu sorun.

Örneğin:
Eğer bilmek istediğiniz şey "Win32 sistemde konsol I/O ekran görüntüsünün yakalanması" ise sorunuzu aşağıdakiler gibi sormayın:

  • Win32 sistemde konsol I/O ekran görüntüsünün yakalanmasını bilen biri var mı?
  • Win32 sistemde konsol I/O ekran görüntüsünün yakalanmasında bana yardım edebilecek biri var mı?
Her iki sorunun da cevapları "evet" ya da "hayır"dır. Win32 sistemde konsol I/O ekran görüntüsünün yakalanmasını bilen birileri ya vardır ya yok. Dünyada Win32 sistemde konsol I/O ekran görüntüsünün yakalamanıza yardım edebilecek biri ya vardır ya da yok.

Bunların yerine cevabı gerçekten sizin öğrenmek istediğiniz şey olan soruyu sorun:

  • Win32 sistemde konsol I/O ekran görüntüsünü nasıl yakalayabilirim?
Yazının İngilizcesini buradan okuyabilirsiniz.

13 Şubat 2016

Posted In: belge, Gezegen, soru

Sosyal Medyadan Nasıl Akıllıca Soru Sorulur

Bu yazıyı okumadan önce Nasıl Akıllıca Soru Sorulur belgesini okumanızı tavsiye ederim. Eğer sorunuzu eposta veya forum aracılığı ile göndermiyorsanız muhtemelen doğrusunu yapmıyorsunuz. Bir daha düşünün.

Yukarıdaki belgeyi okuduğunuz halde sorunuzu sosyal medyadan göndermek istiyorsanız devam edelim. Belgede geçen öneriler çok iyi yazıldığından onları tekrarlamayacağım, okumadıysanız lütfen okuyun.

Sosyal medyadan veya anında mesajlaşma servislerinden birini kullanarak tanımadığınız veya çok az tanıdığınız birine soru sorarken yanıt almanızın bir hak olmadığını aklınızdan çıkarmayın. İnsanların en değerleri şeyleri olan zamanlarını her soruya cevap yazarak harcamalarını beklememeli, cevap alırsanız bunu bir özveri olarak görmelisiniz. Soru soracağınız kişiyi tanımadığınıza göre onu gün içinde çok kısıtlı zamanı olan ve eski mesajlarına tekrar bakmayı unutacak biri olarak düşünmek çok yerinde bir davranış olacaktır. Uğraştığı işlerin arasında 10 dakikalığına sosyal medyayı açmış birine yazıyor olduğunuzu düşününce nasıl yazmanız gerektiği kolayca aklınızda şekillenecektir. Kısaca maddeler halinde dikkat edilmesi gerekler hakkında ipuçları yazmak istiyorum.
  • Sorunuzu eposta ile göndermeyi tekrar düşünün.
Eposta yazdığınızda hem daha çok ayrıntı verebilecek hem de sorunuzun kaybolup gitmesine izin vermemiş olacaksınız. Size cevap verecek kişi de alışkın olduğu iletişim yöntemini kullanabilecektir.
  • Zamanın çok kıymetli olduğunu unutmayın.
Soruyu sormadan önce sanki karşılıklı konuşuyormuşsunuz gibi davranmayın. Örneğin "selam" diye yazıp karşılık almayı beklemeyin. Böyle yaparsanız yazdığınız kişi mesajınızı sizin çevrimiçi olmadığınız bir zaman okuyacak ve yukarıda bahsettiğim o tek 10 dakikasında size sadece "merhaba" diyebilecek. Benzer şekilde eğer sadece sohbet etmek için yazmıyorsanız "merhaba, nasılsınız?" diyerek beklemeyin. Madem bir şey sormak, danışmak istiyorsunuz bunu hemen yapın, "uygunsanız bir şey sormak istiyorum" demeyin. Cevap vermesini istediğiniz kişinin mesajınızı görünce size ne yazmasını istiyorsunuz? Gün içinde alabileceğiniz tek cevap "buyrun sorun" da olabilir, sorunuza aradığınız yanıt da. Seçim sizin.
  • Kullandığınız mecrada açıklanabilecek şeyleri sorun.
Facebook'ta özel mesajla veya twitterda birine hangi gnu/linux dağıtımını seçmeliyim ya da programlama öğrenmeye hangi dille başlamalıyım diye sormayın. Bu tip soruları bence hiçbir mecrada sormayın ama birinin 140 karakter sınırında veya facebook'un küçücük alanında size bu konuları açıklamasını beklemeyin. Elbette basit bir google aramasıyla bulunabilecek şeyleri kendiniz bulmanız gerektiğini yukarıdaki belgede okuduğunuz için ben tekrarlamıyorum.
  • Sorguya çekmeyin.
Zaten soru sorduğunuz kişiyi tanımıyorsunuz bir de üstüne "openstack'in gelişmiş özelliklerine hakim misiniz?" veya "daha önce silinen bir dosyayı geri getirdiniz mi?" gibi sorularla kendinize karşı olumsuz bir tutum geliştirilmesine neden olmayın. Siz sorunuzu sorun karşınızdaki bilmiyorsa zaten bilmiyorum diyecektir.
  • Kibar olun.
Sorunuza olumlu/olumsuz bir yanıt alınca teşekkür edip konuşmayı sonlandırmak iyi fikir olacaktır. Tabi gereksiz nezaket faydasız olduğu gibi olumlu bir şey de değildir.
  • İzin almadan konuşmaları halka açmayın.
Aslında bu eposta ile yapılan iletişimde de geçerli bir konu ama sosyal medyada her şey halka açık diyerek özelden yazılan şeyleri de böyleymiş gibi varsaymayın. Bahsedilen mevzu gizli bir şey değil diyerek kendiniz karar vermeyin. Böyle bir şey yapmak istiyorsanız bunu açıkça belirtin, izin isteyin.
  • Küsmeyin.
Mesajınıza cevap alamadığınızda veya istediğiniz cevabı alamayınca küsmeyin. Bir sosyal medya hesabı olan herkes sürekli orasını kontrol etmiyor. Ettiği zaman da mesajlara bakmıyor olabilir. Bir ihtimal de sorunuzu okuyup cevap yazmaya fırsat bulamamış olması ve sonra unutması olabilir. Acaba eposta göndermek daha mı iyi olurdu?

12 Şubat 2016

Posted In: belge, Gezegen

Nasıl daha iyi hata raporu hazırlayabilirsiniz?

Bir özgür yazılımı kullanıyorsunuz, geliştiricisi onu size özgürce kullanma, dağıtma, değiştirip dağıtma haklarını vermiş ama yolunda gitmeyen bir şeyler var. Yazılım böyle bir şey zaten; mutlaka daha iyisi, daha az hatalısı yazılabilir. Belki bir hatayla karşılaşmadınız da yazılımda şu da olsa dediğiniz bir şey var. Bu durumda başka bir yazılımı kullanmayı deneyebileceğiniz gibi kullandığınız yazılımın hatasının giderilmesine veya ihtiyacınız olan özelliğin eklenmesine yardımcı olabilirsiniz. Özgür yazılım projelerinin çoğunun birer hata takip sistemi oluyor, olmayanların geliştirici listeleri var, o da yoksa geliştiricisine doğrudan yazabilirsiniz. Bunlardan birine bir hata kaydı göndermek sizin çok az zamanınızı alacak ama karşılığında istediğinize daha yakın bir programı kullanabileceksiniz.

Geliştiriciler de sizin gibi insanlar olduklarından ne kadar iyi hata raporlarsanız hatanın düzeltilme süresini o kadar kısaltırsınız. Öncelikle hata raporlamanın geliştiriciler tarafından memnuniyetle karşılanacağını aklımızda tutalım. Hata raporunu alan geliştirici yazdığı yazılımın birileri tarafından kullanıldığını ve geliştirilmesi için istekte bulunulduğunu görmekten memnun olacaktır. Şimdi birlikte hata raporunu nasıl daha iyi hale getirebileceğimize bakalım.

Gerçekten bir hata var mı?

İlk bakışta size hata gibi görünen şey bir özellik olabilir ;) ya da belki siz ilk denemenizde istediğiniz şeyi yaptıramadınız programa. Kullandığınız program ne kadar çok iş yapıyorsa o kadar çok menüsü, ayar dosyası olacaktır, onların arasında istediğiniz şeyi bir bakışta görememiş olabilirsiniz. Kullandığınız programın varsa wiki sayfasına, kullanıcı listesi yazışmalarına, yardım dosyalarına bakmak bazen yapamadığınız/yaptıramadığınız şeyin kolay bir yolunu bulmanıza yardımcı olabilir. 'Şu işlem nasıl yapılıyor' şeklindeki ifadeler bir hata kaydı olarak kabul edilmeyecek ve istediğiniz sonuca ulaşamayacaksınız.

Sisteminiz güncel mi?

Yazılımlar çoğunlukla yaşayan birer varlık gibi gelişim halindedirler. Sizin kullandığınız sürümde sorunlu olan bir durum yazılımın son sürümünde güncellenmiş olabilir. Veya sorun yazılımdan değil de işletim sisteminden kaynaklanıyor olabilir. Bu güncellemeleri yaptıktan sonra sorun hala devam ediyorsa bir defa da yazılımın web adresine bakarak oradaki son sürümün size işletim sisteminiz tarafından sağlanan sürüm olup olmadığını kontrol etmek iyi olabilir. Uzun dönem desteği  (LTS) sunan dağıtımların yazılımların sürümlerinde radikal değişiklikleri dağıtma dahil ettiğini bilerek kullanıyor olduğunuzdan karşılaştığınız hatayı yazılımın geliştiricilerin değil de dağıtıma raporlamanız gerekebilir.

Her durumda yazılımlarınızı güncel tutmak iyi bir fikir olacaktır.

Hata kullandığınız yazılımdan mı kaynaklanıyor?

Örneğin ayağa kaldırmaya çalıştığınız sunucu servisine dışarıdan bağlanmaya çalışanlara engel olan olan bir güvenlik duvarı kuralınız olabilir. Kullanıcı izinleriniz o programı çalıştırmanıza yetmiyor olabilir. Bir programı kullanarak yazıcıdan çıktı alamıyorsanız denemeniz gereken şeyler şunlar olabilir: a) Bilgisayarınızdaki başka bir programla o yazıcıdan çıktı alabiliyor musunuz? b) (eğer varsa) başka bir yazıcıyla da aynı sorunu yaşıyor musunuz? c) (eğer varsa) aynı yazılımın başka bir işletim sistemindeki sürümüyle aynı sorunu yaşıyor musunuz? Bütün bu sorulara yanıtınız evetse (ya da deneyemiyorsanız) onu raporlamalısınız.

Hata raporlarken neler dikkat etmek gerekir?


Unutmayın hatanın düzeltilmesini isteyen sizsiniz. Ne kadar iyi bir hata raporu gönderirseniz onun düzeltilmesi olasılığı o kadar yüksek olur. Şimdi basit ama faydalı birkaç noktaya değinelim.

  • Hatayı doğru kanaldan bildirin

Önce hatasını bildirmek istediğiniz projenin bir hata takip sistemi var mı diye kontrol etmek en doğrusu olacaktır. Eğer projenin bir bugzilla, redmine veya benzeri bir hata takip sistemi varsa burasını kullanın. Bazı projeler bu işlem için e-posta listesi kullanıyor olabilir. Bu projenin web sayfasında belirtilmişse elbette buraya yazmalısınız. Eğer projenin böyle bir kanalı yoksa geliştiricisine eposta gönderebilirsiniz. Uzun zamandır, yıllardır, yeni sürüm çıkarmamış bir projeye bir hata raporlandığında (hatta bir çeviri dosyası gönderildiğinde bile) projenin canlandığını görmek mutluluk verici bir şey olacaktır.

  • Önceden girilmiş hataları tekrarlamayın

İster bir hata takip sistemine, isterse eposta listesine yazacak olun öncesinde bir arama yapmak çok yerinde bir hareket olacaktır. Eğer karşılaştığınız hata daha önce raporlanmışsa duruma göre kendinizi hatayı takip edenler listesine ekleyebilirsiniz. Hata raporu yazılımın eski bir sürümüne aitse ve siz yeni sürümde de karşılaşıyorsanız hatayı tekrarlayabildiğinizi yorum olarak girmek de faydalı olacaktır. Kesinlikle mevcut bir hata raporunu tekrarlayan yeni bir kayıt açmayın.

  • Hata bildirim kurallarına uyun

Eğer bir hata takip sistemi varsa yazılımın uygun bileşenine gönderin hata raporunuzu. Geliştiriciler hatalar arasından seçsin diye beklemeyin. Hatanın düzeltilmesini isteyenin siz olduğunuzu aklınızdan çıkarmayın. Örneğin; kullandığınız yazılımın Türkçeye özgü karakterlerle ilgili bir sorunu varsa geliştiricisi muhtemelen bundan hiç haberdar olmadan ömrünü geçirebilir. Siz hata raporunu doğru yapabilirseniz işinizi görecek bir yazılımı kullanabiliyor olursunuz.

  • Gerektiği kadar ayrıntı verin

Bir hatayı raporlarken en öncelikli hedefiniz geliştiricilere nasıl bir hatayla karşılaştığınızı göstermek olmalıdır. Bunun için programı çalıştırdıktan sonra karşılaştığınız hatanın nasıl tekrarlanacağını adım adım yazmalısınız. Burada olayı hikaye etmeyin. Basit ve kısa adımlarla tarif edin. Bir işin birden çok yapılma yöntemi olacağını düşünerek siz nasıl yapıp hatayla karşılaşmışsanız onu yazın. Örneğin "servisi başlattıktan sonra" demek yerine "servisi /etc/init.d/bestserviceever start diyerek başlattıktan sonra" diye yazın. Programın bir kısayolunu kullanarak dosya açıyorsanız bunu belirtin. "Yeni dosyayı CTRL+O ile açmaya çalışırken" diye yazmak geliştiriciyi hatayı bulmaya zorlamaktan iyi olacaktır.

Kullandığınız işletim sisteminin adını ve sürüm numarasını, en son ne zaman güncellediğinizi mutlaka hata raporunda belirtin. Yazılımın sürüm numarası ve paket yöneticisinden mi kaynak koddan mı kurduğunuz bilgisi de çok önemlidir.

  • Gerekmeyen ayrıntıları hata raporuna yazmayın

Bu hatanın sizin için ne kadar önemli olduğunu, onu düzeltmezlerse başka bir yazılımı kullanmak zorunda kalacağınızı filan yazmayın hata raporuna. Hata raporu sadece gerektiği kadar ayrıntı içermeli ama gereken bütün ayrıntıları da içermelidir.

  • Her hata raporunda tek bir hatayı bildirin

Projelerin farklı bileşenlerinin farklı kişiler, hatta ekipler, tarafından geliştirilebildiğini düşünerek karşılaştığınız her hata için ayrı hata kaydı açın. Size çok yakın, ilişkili gibi görünen hataları bile bir raporda sakın birleştirmeyin.

  • Ne bekliyordunuz, ne oluyor?

Hata raporunuzda (eğer imkanı varsa elbette) bir ekran görüntüsü koymak çoğu zaman işleri çok hızlandıracaktır. Bu görüntü yazılımdan ne bekliyordunuz, neyle karşılaşıyorsunuz sorusuna cevap verecek nitelikte olmalıdır. Ekran görüntüsü alırken lütfen ilgisiz veya mahremiyetinizi tehlikeye atacak şeyleri göndermemeye çok dikkat edin. Tarayıcıda açık bulunan diğer sekmeler veya masaüstünüzde bulunan ve kimseye göstermediğiniz dosyaların ekran görüntüsü gibi şeyleri kamuya açık yerlere göndermeyin.

  • Hata raporuna eklediğiniz dosyaları temizleyin

Hatanın anlaşılması ve çözülmesi için eklemeniz gereken dosyalar varsa onları temizleyerek göndermek de dikkat edilmesi gereken konuların başında gelir. 50 sayfalık bir yapılandırma dosyasının tamamını göndermek yerine varsayılan halinden neyi değiştirmişseniz sadece o kısmı göndermek hatanın tekrarlanabilmesine imkan sağlayacaktır. Hatasını raporlayacağınız program sadece bazı dosyaları açarken, kayderderken (veya başka bir biçimde) hataya neden oluyorsa bu tipte bir dosya göndermek elbette iyi olur ama çok sayfalı bir belge diye doktora tezinizi veya yüksek çözünürlüklü bir imaj dosyası diye halka açık olmasını istemeyeceğiniz bir fotografı hata raporuna eklemeyin. İlla çok sayfalı bir metin gerekiyorsa elinizdeki dosyadaki bütün karakterleri x (veya uğurlu harfiniz varsa onunla) ile değiştirip farklı kaydedip onu göndermelisiniz.

Ek olarak göndereceğiniz dosyalardaki başlık bilgilerinin, varsa sürüm değişikliği bilgilerinin de temizlenmesi gerektiğini unutmayın. Bu bilgiler hata raporunuza eklendiğinde artık herkes tarafından kullanılabilir durumda olacaktır. Bir hatayı raporlayacağım derken kendinizi mağdur etmemeye büyük dikkat gösterin.

Açtığınız hata kaydını takip edin

Oluşturduğunuz hata kaydına geliştiriciler bir yorum yazıp sizden bilgi isteyebilirler. Bunlara mutlaka geri dönüş yapmalısınız.

Karşılaştığınız bir hatayı geliştiricilerine raporlayıp düzeltilmesine katkı verdiğiniz için kendinizle gurur duyabilirsiniz artık!

13 Ocak 2016

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

Latex ile Belge Hazırlama

Latex, işaretleme dili kullanılarak belge ya da sunum hazırlamak için kullanılan bir araç. Latex ile yazdığımız belgeleri pdf ve birkaç değişik biçime çevirebiliriz.

Latex'i ilk 2. sınıftayken Necdet hocanın önerisi üzerine kullanmıştım :). Latex ile belge hazırlarken matematiksel ifadeleri, şekilleri çok rahat sağlayabiliriz. .tex dosyalarını terminalden parametreler vererek istediğimiz biçime çevirebileceğimiz gibi, Latex için yazılmış arayüzleri, hazır şablonları da kullanabiliriz.

Bugünlerde cv hazırlamak için Latex kullanmam gerekti. Libre Office writer ya da Google Doc'da belge hazırlarken içeriğin yerleşimi zor oluyor ve uğraştırıyor. En ufak bir satır eklediğimizde içeriğin kalan kısmının yerleşimini bozuyor, aslında bunlarla uğraşmamak için Latex kullandım.

Latex'in birçok etiketinin ne olduğunu şimdilerde pek hatırlamıyorum :). 2. sınıftan sonra unutmuşum haliyle. Bu yüzden hazırladığım belgenin hepsini elle yazmadım, hazır şablonlardan birini seçip, beğenmediğim yerleri değiştirdim.

Latex'i ilk kullandığım zamanlarda konsoldan çalıştırıyordum. Ancak bu ara pek vaktim olmadığından, bir de çıktıyı hızlı bir şekilde görebilmek için texworks editörünü kullandım. Texworks çok güzel ve kullanımı rahat bir araç. Dosyada yaptığımız değişiklikleri yanda hemen görebiliyoruz.



Latex için hazır şablonlara buradan ulaşabilirsiniz.

6 Mayıs 2014

Posted In: belge, Gezegen, latex, libre office, tex, texworks

WP Twitter Auto Publish Powered By : XYZScripts.com