ReactOS: Özgür lisanslı Windows inşa etmek

Çoklu önyüklemeden WINE'a, özgür yazılım Windows uygulamalarını çalıştırmak için hep bir çözüm üretmeye çalıştı. Yine de bu çabaların sadece birkaçı Windows'un özgür lisanslı uyarlaması olan ReactOS kadar hırslı olabildi. Tasarı 2006'dan beri faal ve on yıllık zorlu ve ihtiyatlı geliştirmenin ardından Şubat 2016'da ilk alpha sürümü piyasaya çıktı.

Geliştirici Ziliang Guo'ya göre özgür lisanslı Windows 95 uyarlamasını hedefleyen FreeWin95 tasarısının başarısızlığından ReactOS meydana geldi.

“FreeWin95 hiçbir yere gelemedi çünkü insanlar işletim sistemini nasıl uyarlayacakları hakkında teknik tartışmalar yaptı ve çıkmaza sürüklendi. Kimse kodlamayı istemedi.”

Mesafe kaydedememenin bir sonucu olarak Jason Filby ve David Welch Windows NT'nin özgür sürümünü oluşturmak için yeni bir tasarı oluşturdular. Bir başka tasarı üyesi olan Jeff Know tasarıya ReactOS (React: tepki) adını önerdi çünkü bu çaba Microsoft'un masaüstündeki tekeline bir tepkiydi.

image

Geçmişten bir esinti: ReactOS üzerinde WinZip çalışıyor

Tersine Mühendislik ve Belgelendirme

Başlangıçta ReactOS zorluklarla karşı karşıya geldi. Tasarı başladığında bir çok Windows derleyicisi sahipliydi ve özgür olan bir kaçı ise acı verici şekilde yetersizdi. Gerekli araçları geliştirmekte büyük bir adım niteliğindeki MinGW‘den sorumlu ana geliştirici Casper Hornstrup'ı hatırlıyor Guo. Bu koşullar altında ReactOS'u çalıştırabilmek/önyükleyebilmek bile bir mihenk taşıydı. Guo'nun belirttiği gibi,

“Gerçekten bir işletim sistemini çalıştırabilmek insanların düşündüğünden daha karmaşık bir iş”

Bir diğer sorun ise Windows NT'nin iç mimarisi için yetersiz belgelendirme olmasıydı. Örneğin, çekirdek seviyesi API'leri üzerinde bilgi yetersizliği NT sürücü uyumluluğunu zorlaştırıyordu. Benzer olarak dahili birbirine bağımlılıkların geliştirilmesi gerekiyordu, sorun teknik zorluklara sebep olduğu gibi bu zorlukları artırıyordu.

“Takım eksik bir özelliği tamamlamak üzere olduğunda bazen varolan bileşenlerin içine geri dönüp hackleri silmesi gerekebiliyor, (bu süreç) diğer hacklerle bağlantılı hacklerin oluşturduğu bir tavşan deliğinde sonlanıyor ve tüm bu şey başarısız yollarda adeta çöküyor.” diyerek açıklıyor Guo.

Bugün durum bir miktar düzeldi. MSDN sitesi, Windows Internals, Inside Microsoft Windows ve Windows Graphics Programming gibi bir çok kitaba ek “Microsoft Windows hakkında bolca belgelendirme mevcut” diyor tasarı yürütücüsü Aleksey Bragin. Bu bilgiler özgürce kullanılabiliyor ama bilgiler hatalar içerebiliyor ve belgelenmemiş bölümleri olabiliyor.

Bir diğer avantaj ise WINE'ın Win 32API için uyumluluk katmanı. ReactOS bunu yeniden kullabilir fakat “Tabi ki takım bu API'lere güç sağlayacak Win32 altsistemini doğru bir şekilde tamamlamak zorunda.” diyor Guo.

Bu nedenle, bu avantaja karşın, ilerlemek için ReactOS üçüncü şahıslar tarafından yapılan tersine mühendisliğe bağımlı. Diğer zamanlarda, tasarı üyeleri karakutuculuğa (blackboxing) başvuruyor, farklı türde girdilere Windows'un verdiği cevapları sistematik olarak test ediyor ve içerde neler olduğunu anlamaya çalışıyorlar.

Malesef, tersine mühendislik çoğu kez hukuksal mayın tarlasına dönüşüyor.

“Tasarıda her zaman şu farkındalık oldu: Microsoft'un bizi stratejik tehdit olarak görebilir ve kapatmayı isteyebilir.” diyor Guo. Herhangi bir olası sorunu önlemek adına, ReactOS her zaman dikkatli davranıyor, öncelikle katkıların kısıtlı Microsoft kodundan elde edilmediğinden emin olunuyor. Örneğin, tersine mühendislikle oluşturulmuş ve ardından Assembly'den C'ye çevrilmiş kod kabul edilmiyor ama karakutuculuk kabul ediliyor.

Doğrusu, Bragin'e göre, ReactOS mümkün olduğu kadar tersine mühendislikten kaçınmayı tercih ediyor. Tersine mühendislik kaçınılmaz olduğunda katkıcılardan GNU Kodlama Standartları'nın 2.1 maddesini uygulamaları, sahipli yazılımlara -özellikle Windows'a- atfı önlemeleri bekleniyor. Buna göre tüm kod mümkün mertebe özgün olandan farklı olmalıdır.

Yine de, tersine mühendislik bir gri alan gerektiriyor. Guo bunu hatırlatıyor, bir noktada, tasarı geliştiricileri lekesiz kodu neyin oluşturduğu hakkında farklı yorumlarla konu üzerinde tartıştı. Bu tartışma bazı geliştiricilerin çıkmasına sebep oldu ve tasarı kodlarının iç denetimiyle sonuçlandı. Neyse ki lekeli kod bulunmadı ve tasarı nihayet yoluna devam edebildi.

Önündeki Zorluklar

Alpha sürümü 0.4'ün piyasaya sürülmesi yıllar süren kitke kaynaklı çalışmayla, sınırlı başarının ardından geldi. Yeni sürüm Canlı CD olarak mevcut, Windows NT olarak tanıtılıp VirtualBox'a kolayca kurulabiliyor. Çağdaş donanım üzerinde yirmi yıllık sistemleri öykündüğü için işletim sistemi saniyeler içinde önyükleniyor. Winzip, özgür yazılım olan LibreOffice, bir kaç eski ve basit oyun gibi çeşitli yazılımları çalıştırabiliyor.

image

ReactOS kendi Solitaire sürümünü çalıştırıyor.

Yine de zorluklar sürüyor. Her zaman olduğu gibi nitelikli geliştiriciler ender:

“Halihazırda Microsoft için çalışmayan NT çekirdek uzmanlarının sayısı çok az.” diye not ediyor Guo. Mevcut donanımı desteklemek oldukça zor olabiliyor, Guo değişken donanım standartlarının bir problem olduğunu söylüyor ve “Microsoft bile bunlarla sıfır sorun yaşamıyor.” diyerek ekliyor.

Bir diğer sorun ise, son sürümlerdeki kullanılırlık üzerinde yapılan geniş çalışmaların ardından, Guo'nun sözleriyle:

“Geçmişte çok çok daha az olan kullanıcının görebileceği, büyük değişikliklerle yere yakın olan birçok meyve toplanmış oldu.”

Bu bazı temel sorunları hatırlatıyor. Örnek olarak öncelikler hakkında soru üzerine Bragin şöyle dedi:

“En önemli açık hafıza yönetimi ve önbelleklemeye bağlı sistem kararlılığında. Diğer sorunlar da var elbette ama gerçekten kararlı çekirdeğe sahip olmak tasarı için büyük başarı olur.”

Diğer baskı yapan sorun ise oyunlar için DirectX desteği. ReactOS WINE'ın DirectX uyarlamasına sırtını yaslamayı umuyor. Bragin oyun desteğinin önemli olduğunu çünkü hafızayı, dosya sistemini ve ağı kullanmaları “işletim sisteminin kendisi için güzel bir test” olduğunu vurguluyor.

İlk alpha sürümü dikkate değer bir mihenk taşı. ReactOS halihazırda yeterince gelişmiş, Bragin onu işletim sistemlerini öğretmek için kullanıyor.

“Ama gerçekten ReactOS'un bir kullanım senaryosunda Windows'un yerine kullanılabilecek güçte olduğu anı görmek istiyorum. Bu an kesinlikle önümüzdeki beş yıl içinde yaşanacak.” diyerek bir öngörüde bulunuyor.

Genel Dağıtıma Doğru

Sahipli geliştirmeyle etkileşime giren diğer özgür yazılımlarda olduğu gibi ReactOS da Microsoft'un kendi API'lerindeki daimi değişimin daima gerisinde kalacağa benziyor. Ancak bu durum ilk çıktığındaki kadar kasvetli olmayabilir.

ReactOS her Windows sürümünün tüm özelliklerini yeniden çoğaltmakla ilgilenmiyor.

“Biz güzel özellikler üretmeye çalışıyoruz, örneğin çeşitli temalar arasında geçiş yapmamızı sağlayan kullanıcı arayüzü tasarlayıcımız gibi. Yine de, Microsoft'un her eklediği güzel değil. Örneğin, Metro Arayüzü ya da diğer yeni API'ler yeterince popüler olmadıkça bunlara fazlaca vakit ayırmaya gerek yok. Eğer birisi gerçekten isterse bir Windows 8 Metro Teması yapabilir. Yine de böylesi bir arayüzü seven çok kişi olduğundan emin değilim. Windows 10 ya da Windows 8'e eklenmiş çok fazla değer görmüyorum.” diyor Bragin.

Her neyse, alpha sürümüyle birlikte ReactOS ivme kazanmışa benziyor. Hedefi hala zoruluklarla karşı karşıya.

Not: Tercümeyi tek seferde bitirme inadım sonucunda bir ya da iki cümleyi anlamakta epey zorlandığımdan anlam bütünlüğünü bozmayacak şekilde yazıdan çıkardım, yine bir kaç cümlede birebir çeviriden sakındım.
Lisans: Bu metin CC by-SA 4.0 ya da sonrası altında dağıtılan “ReactOS: Building a Free-Licensed Windows” metninden tercüme edilmiştir. Özgün metin Bruce Byfield tarafından yazılmıştır. Tercüme CC by-SA 4.0 ya da sonrası altında tekrar lisanslanmıştır.

31 Mart 2016

Posted In: Açık kaynak, free software, linuxgezegeni, microsoft, open source, Özgür yazılım, reactos, röportaj, tercüme, windows

ReactOS: Özgür lisanslı Windows inşa etmek

Çoklu önyüklemeden WINE’a, özgür yazılım, Windows uygulamalarını çalıştırmak için hep bir çözüm üretmeye çalıştı. Yine de bu çabaların sadece birkaçı Windows’un özgür lisanslı uyarlaması olan ReactOS kadar hırslı olabildi. Tasarı 2006’dan beri faal ve on yıllık zorlu ve ihtiyatlı geliştirmenin ardından Şubat 2016’da ilk alpha sürümü piyasaya çıktı. Geliştirici Ziliang Guo’ya göre özgür lisanslı Windows … Okumaya devam et "ReactOS: Özgür lisanslı Windows inşa etmek"

30 Mart 2016

Posted In: Açık kaynak, free software, linuxgezegeni, microsoft, open source, Özgür yazılım, reactos, röportaj, tercüme, windows

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

28 Mart 2016

Posted In: bilgi, etkinlik, free sofware, istanbul, libreoffice, mozilla, oylg2016, Özgür yazılım

Müziğe Evet, Yağlı Saçlara Hayır

Aydınlanma
 Her şey, yeni bir eve taşınmamla başladı. Önceden iş yerine varmam 5 dakika sürüyordu. Bu süre, bir anda 45 dakikaya çıkınca aydınlanma yaşadım ve bazı insanların neden müzik olmadan yapamadığını anladım: bu yol (ve bazen de hayat), başka türlü çekilecek gibi değildi.

Aydınlanma sürecim, daha önce anlam veremedim bir çok şeyi de anlamamı sağladı. Örneğin "yolu bilmek ile yolda gitmek" aynı şey değildi. Bu koduğumun yolu, git git bi türlü bitmiyordu ama yolu bilmek için Google Map'e bakmak yeterliydi. Ayrıca o bilgenin, Ferrari'sini neden sattığını da artık çok iyi anlamıştım.

Neyse, bu yeni hayatımda artık müziğe daha çok yer verecektim. İşyerinde bilgisayar ile çalışırken de radyo dinlemeye karar verdim ve yoldayken dinlediğim Radio Slow Time'ın Internet üzerinden yaptığı yayını buldum. Artık bilgisayar başına oturunca bir konsol açıyor ve şu komutu çalıştırıyordum:


mplayer http://46.20.7.104/

Ama hayat bu kadar basit değildi ve yeni zorluklar beni bekliyordu.

Yağlı Saçlar
 İnsanlığın en büyük sorunu ile yüzleşmem de bu vesile ile oldu. Radio Slow Time, reklam kuşaklarında çağımızın vebası "yağlı saçlar" konusunda bilinçlendirici yayınlar yapıyor, bunun bir son olmadığını, hala bir umut olduğunu anlatıyordu.

Önceleri çok önemsemedim. "İnsanlar, o mucize şampuanı nasıl olsa alır, yağlı saçlar sorunu da kısa sürede çözülür" diye düşündüm ama cahil halkımız, her zamanki tavrı ile bu sorunu da görmezden geldi. Israrla o mucize şampuanı almadılar.

Artık önümde iki seçenek kalmıştı. Ya o mucize şampuanı ben alıp milletin yağlı saçlarını zorla yıkayacaktım ya da reklam kuşağı başladığında mplayer'ın sesini kısacaktım. Birinci yöntem bana pek pratik görünmedi.

Sessizlik
mplayer'ın sesini kapatmak için işimi yarım bırakıp mplayer'ın açık olduğu masaüstüne geçmek, sesi kapatmak ve tekrar çalıştığım masaüstüne dönmek iyi bir çözüm değildi. Bir kısayolla bu işi halletmem gerekiyordu.

Biraz araştırma yapınca mplayer'da slave mod diye bir şey olduğunu öğrendim. Slave moddayken mplayer, input noktasına gönderilen komutları algılıyor ve gerekli işlemi yapıyordu. Yani artık mplayer'ı şu şekilde başlatacaktım:

mkfifo /tmp/mplayer.pipe
mplayer -slave -input file=/tmp/mplayer.pipe http://46.20.7.104/


Sesi açıp kapatmak için de input noktasına (yani named pipe'a) şu komutu göndermem yeterliydi:

echo mute > /tmp/mplayer.pipe

Bu komutu, bir kısayola bağlayınca düşündüğüm oldu ama hala yolunda gitmeyen bir şeyler vardı.

Özgür İrade, Aslında Bir Yanılsama mı
"Hayatımızı reklamlar yönetiyor" derlerdi de inanmazdım. İnsanın aklı vardı, neden duyduğu bir şeyden bu kadar etkilensindi ki... Ama geldiğim duruma bakar mısınız? Reklam kuşağından kurtulacam derken farkında olmadan Pavlov'un köpeğine dönmüştüm. Reklam başlayınca otomatik olarak kısayola tıklıyordum.

Bu insanlık dışı durumdan kurtulmam gerekiyordu. Özgürlüğümü yeniden kazanabilmek için daha çok bilgi sahibi olmalı ve öğrendiklerimi eyleme dökmeliydim. Yeniden araştırmaya başladım.

mplayer çıktılarını inceleyince kanalın, yapılan yayınla ilgili bazı bilgiler gönderdiğini gördüm. mplayer çalışırken şu şekilde çıktılar geliyordu:

ICY Info: StreamTitle='"YASMIN_LE - "NO TENGO';StreamUrl='&artist=
A:1464.9 (24:24.8) of 0.0 (unknown)  0.8% 40%
ICY Info: StreamTitle='"","Title" - V1","Code"';StreamUrl='&artist=
A:1479.3 (24:39.2) of 0.0 (unknown)  0.8% 40%
ICY Info: StreamTitle='"SAM_SMITH - RITING'S O';StreamUrl='&artist=
A:1751.3 (29:11.3) of 0.0 (unknown)  0.8% 40
ICY Info: StreamTitle='"Reklam","","":';StreamUrl='&artist
A:2003.0 (33:23.0) of 0.0 (unknown)  0.8% 40%


Çıktıdan da görüleceği gibi StreamTitle kısmında yayınlanacak şarkı ile ilgili bazı bilgiler vardı. Reklam başlayacağı zaman da bu kısımda Reklam yazıyordu. Reklam yazısını gördüğüm anda mute komutunu otomatik tetikletirsem artık özgürdüm.

Konsolun Kalbine Giden Yol, Borudan Geçer
Konsolla aranız iyi ise "|" (yani pipe, Türkçe'siyle boru) ile herhangi bir komutun çıktısını, başka bir komuta girdi olarak gönderebileceğinizi biliyorsunuzdur. mplayer çıktısını bir while döngüsüne yönlendirilsem ve bu döngü içinde bazı kontroller yapıp uygun anda mute komutunu tetiklersem bu iş olabilirdi. Komutu hazırladım:

mplayer -quiet -slave -input file=/tmp/mplayer.pipe http://46.20.7.104/ | \
while read line
do
   echo $line
   [ "$(echo $line | grep -v StreamTitle)" ] && continue

   title=$(echo $line | cut -d '"' -f2)
   [ -z "$title" ] && continue
   [ "$title" = "Reklam" ] && echo mute > /tmp/mplayer.pipe
done


mplayer çıktılarını alan while döngüsü kısaca şunu yapıyordu:
  • Satırda StreamTitle kelimesi geçmiyorsa bu satırla bir işi olmadığında bir sonraki satıra atlıyordu.
  • StreamTitle kelimesi geçiyorsa şarkı adını alıyordu.
  • Şarkı adı belirlenemediyse (bazen boş geliyor) bir sonraki satıra atlıyordu.
  • Şarkı adı olarak Reklam yazıyorsa sesi kapatıyordu.

Obsesyon (Takıntı)
Israrlı bir şekilde sürekli aklımıza gelen, bir türlü engel olamadığımız, beynimizi bir tahta kurdu gibi sürekli kemiren sinir bozucu düşünce...

Yapılan klinik deneyler, düzgün çalışmayan yazılımların obsesyona sebep olduğunu ve yazılımcıların %93.27'sinin sinir bozucu (amiyane tabirle gıcık) olduğunu göstermekte... Bu son örnek de bunu doğruluyordu.

Reklam başlayınca, ses otomatik olarak kapatılıyordu ama reklam bitince otomatik açılmıyordu. Reklamın bittiğini farkedip manuel olarak sesi açmak gerekiyordu. Dolayısı ile ses kapatıldıktan bir süre sonra beynimi, "acaba reklam bitmiş midir, sesi artık açsam mı" gibi sinir bozucu düşünceler kaplıyordu. Bir yazılımcı olarak kendi sinirlerimi de bozmayı başarmıştım.

Komutu biraz düzenlemem gerekiyordu. Reklam bittiği zaman da sesi otomatik olarak açtıracaktım. Yalnız dikkat edilmesi gereken bir nokta vardı: ses zaten kapalıyken sesi kapatmaya, ses zaten açıkken de sesi açmaya kalkmamalıydım. Yoksa her tetiklendiğinde modu tersine çeviren (yani on ise off, off ise on yapan) mute komutu, yanlış çalışacaktı. Dolayısı ile mute durumunu takip etmek gerekiyordu.

Komut artık şu şekli almıştı:

MUTE=false
[ -e /tmp/mplayer.pipe ] || mkfifo /tmp/mplayer.pipe

mplayer -quiet -slave -input file=/tmp/mplayer.pipe http://46.20.7.104/ | \
while read line
do
   echo $line;
   [ "$(echo $line | grep -v StreamTitle)" ] && continue

   title=$(echo $line | cut -d '"' -f2)
   [ -z "$title" ] && continue

   if [ "$title" = "Reklam" ]
   then
     $MUTE || echo mute > /tmp/mplayer.pipe
     MUTE=true
   else
     $MUTE && echo mute > /tmp/mplayer.pipe
     MUTE=false
   fi
done


 Değişen kısımlar:
  • Named pipe (/tmp/mplayer.pipe) henüz oluşturulmamışsa mkfifo ile oluştur.
  • Reklam kelimesi yakalandıysa ve mute modunda değilse, sesi kapat.
  • Bir şarkı adı yakalandıysa ve mute modunda ise sesi aç.
Fiber Internet
Reklamları bir türlü anlayamıyorum. Mesela bi tane firma var, "fiber Internet" diye garip bir şeyin reklamını yapıyor. Reklamı yapıldığı için ben de satılan bir şey sandım, "şundan eve alalım" dedim. Firma ile görüştüm ama bizim eve getiremiyorlarmış, bize satmadılar. Halbuki sokağın başındaki laz bakkal, avokado bile getiriyor. Avokadonun bile gelebildiği bir yere, fiber Internet nasıl gelemiyor anlamadım.

Bizim iş yeri de o şeyden satın almak istemiş ama onlara da satmamışlar. O nedenle Internet bağlantım, über süper değil. Über süper bir bağlantı olmayınca sanırım mplayer, müziği kesintisiz verebilmek için buffer kullanıyor. Buffer olunca da gelen bilgi ve müzik arasında bir süre farkı oluyor. Yani "Reklam" bilgisi geldikten 5-6 saniye sonra reklam başlıyor. Oysa ki ben komutu, 21. yüzyılda çalışacak şekilde tasarlamıştım ve gecikme olacağını hesaba katmamıştım.

Durum böyle olunca İlber Ortaylı Hoca'ya hemen bi telgraf gönderdim. "Osmanlı döneminde Internet kullanımı" ile ilgili temel bilgileri aldıktan sonra bu gecikmeyi de hesaba katacak şekilde komutu düzenledim. Artık komut şu hale gelmişti:


MUTE=false
WAIT=5
echo $WAIT > /tmp/mpwait
[ -e /tmp/mplayer.pipe ] || mkfifo /tmp/mplayer.pipe

mplayer -quiet -slave -input file=/tmp/mplayer.pipe http://46.20.7.104/ | \
while read line
do
   echo $line;
   [ "$(echo $line | grep -v StreamTitle)" ] && continue

   title=$(echo $line | cut -d '"' -f2)
   [ -z "$title" ] && continue

   if [ "$title" = "Reklam" ]
   then
     $MUTE || (sleep $(cat /tmp/mpwait); echo mute > /tmp/mplayer.pipe) &
     MUTE=true
   else
     $MUTE && (sleep $(cat /tmp/mpwait); echo mute > /tmp/mplayer.pipe) &
     MUTE=false
   fi
done


Bu seferki farklar:
  • Gecikme süresi, komut çalışırken istenirse değiştirilebilsin diye, /tmp/mpwait dosyasına kaydediliyor.
  • Ses açılıp kapatılacağı zaman bu gecikme süresi kadar beklenip ondan sonra mute komutu tetikleniyor.
Mutlu Son
Sonunda istediğim olmuştu. Artık rahat bir şekilde müzik dinliyebiliyordum ama kafama takılan bir şey vardı: o mucize şampuandan ben de almalı mıydım?

28 Mart 2016

Posted In: linux, lkd, mplayer

Okullarda Kodlama Dersi – 1

Bilim, Sanayi ve Teknoloji Bakanlığı’nın resmi Twitter hesabından yapılan paylaşımda kodlama dersinin ortaokul ve lise müfredatına alınması için Milli Eğitim Bakanlığı ile birlikte çalışılacağı duyuruldu:

Kodlama Dersi Geliyor

Kodlama Dersi Geliyor

Bilim, Sanayi ve Teknoloji Bakanlığı’nın Twitter sayfası “üreten bir ülke olmak”, “bilişim vadisi kurmak”, “dünyaya yeni teknolojiler sunmak” gibi güzel mesajlarla dolu. Fakat,

…dar anlamda bilim ve teknoloji politikası, kısaca ilk ortaya atıldığı zamanki terimiyle bilim politikası, her türlü bilimsel, teknolojik ve yenilikçi [innovative] faaliyetlerin toplumsal bir amaç ya da amaçlar doğrultusunda yönlendirilmesi ve denetlenmesi için farklı düzeylerde politikalar tasarlanıp uygulanmasıdır. Firma düzeyindeki bir şirket stratejisi [corporate strategy] içinde yenilik çalışmaları ve buna bağlı Ar-Ge hedeflerinin saptanmasından bir ülkenin ve hatta bir ülkeler topluluğunun bilim ve teknoloji politikasının oluşturulup uygulanmasına değin çok geniş bir yelpazede yer alan bu politikalar da, zorunlu olarak diğer politikalarla eklemlenmek durumundadır. Örneğin, eğitim politikası, iktisat politikası, vergi veya gümrük politikası, banka mevzuatı vb, yerine göre, her düzeydeki yenilik faaliyetlerini etkiler ve tüm politikalar belli bir mantık içerisinde birbirleriyle eklemlenmezse, dar anlamda ‘salt’ bir bilim ve teknoloji politikasının başarısı azalır. (Türkcan, 2009, s.205)

Bu bağlamda, kodlama dersinin müfredata eklenmesi ya da bir bilişim vadisi kurulması yönündeki çalışmalar tek başına yeterli olamayacaktır. En başta yıllardır yapboz tahtası haline getirilen eğitim sistemi, bilim ve teknolojideki hedeflerle uyumlu değildir. Biraz hafızamızı tazeleyelim. Yıllar önce de ülkemizdeki bilişim çalışanlarının yetersiz olduğundan yakınılıyordu. Sonra Türkiye’nin dört bir yanına, neredeyse her üniversiteye, yeterli öğretim üyesi ve altyapı olmadan bilgisayar mühendisliği bölümü açıldı. Böylece bir zamanlar “popüler meslekler arasındaki bilgisayar mühendisliği, akademik başarısı düşük öğrencilerin tercih ettiği bölümler”den biri oldu (http://www.aksam.com.tr/yazarlar/ismi-havali-ama-tercih-eden-yok/haber-305135). Bilgisayar mühendisi sayımız arttı ama bu artış bilişim alanında bir atılım yapmamıza değil, yedek iş gücü ordusuyla bilişim çalışanı ücretlerinin düşürülmesine neden oldu. Hukuk ve Tıp’a getirilen taban puanı uygulamasının diğer bölümler için de gerekli olduğunu söyleyen, “MEB’in eğitim fakültelerine, mimar ve mühendis odalarının da mühendislik fakültelerine daha nitelikli öğrenci alınması için yüksek taban puan baskısı yaratmasının, daha iyi öğretmen ve daha iyi mühendis yetiştirilmesi konusunda çok yararlı olacağı vurgusu yapan” YÖK Başkanı Yekta Saraç’ın sözleri bilim ve teknoloji politikamızın bütünlükten yoksun olduğunun bir başka göstergesi. Başta bilgisayar mühendisliği olmak üzere, bu kadar mühendislik bölümünü kim, neden açtı?

Bilim Teknoloji ve Sanayi Bakanlığı diğer ülkelerdeki girişimlerden etkilenmiş gibi görünüyor. Barack Obama örneğinde olduğu gibi hükümetler en üst düzeyde bu konuyla ilgileniyor, yapılan etkinliklere katılıyor (https://www.whitehouse.gov/blog/2014/12/10/president-obama-first-president-write-line-code). Başta İngiltere olmak üzere birçok Avrupa Birliği ülkesi, çocukları bilgisayar programlamayla erken yaşlarda tanıştırmak için yoğun çaba gösteriyor (http://www.euractiv.com/section/digital/infographic/infographic-coding-at-school-how-do-eu-countries-compare/). Avustralya ilkokul müfredatında tarih ve coğrafya dersleri yerini kodlamaya bıraktı (http://www.techtimes.com/articles/86669/20150921/australia-replaces-history-and-geography-with-coding-in-new-primary-school-curriculum.htm). Bu müfredat değişikliklerinde ülkelerin özgün ihtiyaçları belirleyici oluyor. Estonya’nın filizlenen teknoloji endüstrisi daha çok programcıya gereksinim duyduğundan programcılık öğretimine daha çok vurgu yapıyorlar; bazı okullarda programcılık eğitimi altı yaşında başlıyor. Danimarka ise büyük firmalarının çıkarları doğrultusunda kullanıcı arayüzü tasarımının ve dijital teknolojinin topluma etkisinin öğretilmesine ağırlık veriyor. Aarhaus Üniversitesi’nden Michael Caspersen, müfredatın sadece ileride bilgisayar bilimlerini tercih edeceklere değil, tüm öğrencilere faydalı olmasını istediklerini söylüyor (The Economist, 2014). Türkiye’nin nasıl bir eğitime ihtiyacı olduğunun tartışılıp tartışılmadığını bilmiyorum.

Farklı ülkelerdeki uygulamalar önemli dersler de içeriyor. Bir karar almadan önce bu örneklerin Türkiye’nin koşulları da dikkate alınarak incelenmesi gerekiyor. Yoksa yeni bir Fatih Projemiz olabilir. Yukarıdaki örneklerde görüldüğü gibi ülkeler kısa süreli hedeflerle hareket etmiyorlar. 6 yaşındaki çocuğun okuyup çalışma hayatına katılması için önünde uzun yıllar var. Örneğin İngiltere, 2014 yılında kodlamayı ilk ve orta öğretim müfredatına dahil ederken en azından sonraki 10 yıl için ayrıntılı bir plan yapmış durumda. İngiltere’de kodlama öğretimi müfredat değişikliğinin sadece bir parçası; asıl değişim okullardaki bilişim teknolojileri kullanma eğitiminin yerini bilgisayar biliminin alması. Daha 2011 yılında Google’ın Başkanı Eric Schmidt, yazılımı kullanmayı öğreten ama onun nasıl yapıldığı hakkında bilgi vermeyen İngiliz eğitim sistemini eleştirmekteydi (The Economist, 2014). İngiltere Eğitim Bakanı Michael Gove da 2014 yılında yaptığı konuşmada bu eleştiriye hak vermektedir. Bilişim teknolojileri eğitiminin öğrencilere sadece bilgisayar okuryazarlığı verdiğine, derslerde tekrar tekrar kelime işlem programlarının nasıl çalıştığının anlatıldığına ve öğrencilerin kimi zaman modası geçmiş yazılımları öğrenmek zorunda kaldığına vurgu yapan Gove, bunu teleks göndermeyi ya da zepline binmeyi öğretmeye benzetiyordu. Gove, yeni eğitim müfredatıyla öğrencilere kodlamayı, var olan programları çalıştırmak yerine kendi programlarını geliştirmeyi öğreteceklerini söylüyordu (https://www.gov.uk/government/speeches/michael-gove-speaks-about-computing-and-education-technology). İngiltere’nin 2014 yılında uygulanmaya başlanan yeni eğitim müfredatı bu doğrultuda geliştirildi. Müfredat değişikliğiyle öğrencilerin:

  • soyutlama, mantık, algoritmalar ve veri temsili de dahil olmak üzere bilgisayar biliminin temel kavramlarını anlayıp uygulayabilmesi
  • problemleri berimsel (computational – bkz. https://tr.wikipedia.org/wiki/Berim) terimlerle analiz edebilmesi ve bu tip problemlerin çözümü için gerekli beceriyi edinebilmesi
  • problemleri çözebilmek için yeni ya da aşina olmadıkları da dahil olmak üzere bilişim teknolojisini değerlendirip uygulayabilmeleri
  • bilişim ve iletişim teknolojisinin sorumlu, yetenekli, kendinden emin ve yaratıcı kullanıcıları olmaları

hedeflenmekte.

Dört bölümden oluşan müfredat, 5 ile 16 yaş arasındaki tüm çocukları kapsamakta (bkz. http://bit.ly/1f7PIFU , http://www.theguardian.com/technology/2014/sep/04/coding-school-computing-children-programming ).

Birinci bölüm, 5-6 yaşındaki çocuklar için. Bu bölümde, çocuklar algoritma kavramı ile tanışacaklar. Çocuklar algoritma kavramını gündelik hayattan örneklerle ve oyunlarla tanıyacak. Örneğin algoritmayı açıklamak için sabah yaptıkları rutin işler adımlara bölünerek anlatılacak. Basit programların oluşturulup çalıştırılmasının yanı sıra bu programların arkasındaki mantık da gösterilecek. Bilişim teknolojilerinin daha sorumlu ve saygılı kullanımı, kişisel bilgilerin mahremiyeti ve internet ya da herhangi bir bilişim teknolojisi ile ilgili bir sorun yaşadığında nereye başvurabileceği bu bölümde öğretilmeye başlanacak. Sonraki bölümlerde de bu konular üzerinde öğrencinin yaşı göz önünde bulundurularak tekrar durulacak.

İkinci bölüm, 7-11 yaşlarındaki ilkokul öğrencileri için. Öğrencilere, programlamanın temel yapıtaşları olan sıralama (sequencing), seçme (selection), döngü (repetition), değişken (variable) kavramları öğretilecek. Bu bölümde, bilgisayarın ve programların çalışma mantığının öğretilmesinin yanında bilişim teknolojilerinin nasıl daha yaratıcı kullanılabileceği üzerinde durulacak.

11-14 yaşında olanlar için tasarlanan üçüncü bölümde ise öğrenciler, gerçek dünyadaki problemleri ve fiziksel sistemleri soyutlamayı, tasarımı ve programlama dilleri ile gerçekleştirimi öğrenecekler. Bölüm sonunda öğrencilerin, en az iki programlama dilini öğrenmiş olması beklenmekte. Öğrenciler, bu bölümde Boole cebirini devre ve programlarda kullanacaklar, basit arama ve sıralama algoritmalarını öğrenecekler. Müfredat yalnız yazılım bilgisi ile sınırlı değil. Bilgisayarın donanımsal bileşenleri ve bilgisayarlar arası iletişim de bu bölümün konuları arasında yer alıyor. Önceki iki bölümde olduğu gibi bu bölümde de öğrencilere var olan teknolojileri kullanmayı öğretmek gibi bir hedeften çok öğrencilerin yaratıcı bir şekilde yeni çözümler geliştirmesi, var olan teknolojiyi kendi ihtiyaçlarına göre uyarlaması veya farklı teknolojileri belirli bir amaç doğrultusunda bir araya getirmesi ön planda olacak.

Dördüncü ve son bölümde ise öğrenciler, merak ve yetenekleri doğrultusunda bilgisayar bilimleri, bilişim teknolojileri veya dijital medya konusunda daha derinlemesine eğitim alabilecekler.

Bu ayrıntılı müfredata karşın İngiltere’de eğiticilerin eğitimi konusunda yeterli hazırlık yapılmadığından geçiş döneminde en büyük zorluğu öğretmenler yaşamakta. İki büyük sorun var. Birincisi, bilişim teknolojisi öğretmenlerin çoğunun ne programlama konusunda tecrübesi ne de berimsel kavramlar hakkında bilgisi var. Hükümetin öğretmenlerin eğitimi için ayırdığı fonlar tüm iş gücünün eğitimi için yetersiz, bir çok öğretmen çareyi web’deki ücretsiz eğitimlerde arıyor ve zaten fazla olan işlerine bir yenisini eklemek zorunda kalıyor. İkincisi, öğretmenlerin çoğunluğu kendilerini bu alanda yeterli görmüyor ve özgüven sorunu yaşıyor (http://www.computerworlduk.com/careers/coding-in-british-schools-review-of-first-term-3595505/). The Economist (2014), İngiltere’nin müfredat değişikliğinde fazla aceleci olduğunu belirtiyor. İsrail’in 1000, Bavyera’nın ise 700’den fazla öğretmenine gerekli eğitimleri verdikten sonra müfredat değişikliği için gerekli adımları attığına işaret ediyor .

Yanlış anlaşılmasın. Bilim, Teknoloji ve Sanayi Bakanlığı’nın önereceği müfredat değişikliğine karşı değilim. Excel’de tablo yapmayı, Power Point’te sunum yapmayı öğretirken yukarıdaki gibi bir müfredat hazırlamak gerçekten olağanüstü. Son yıllarda, kişisel bilgisayarlar yerini tablet ve akıllı telefonlara bırakırken kullanıcıyı salt tüketiciye indirgeme eğilimi vardı. Şimdi ise kullanılan teknolojilerin yeniden programlanabilirliği öne çıkaran bir yaklaşım öneriliyor. Bu nedenle, çocuklara yönelik programlama eğitimini destekliyorum. Ama amaç bilişim teknolojileri alanında ileri bir ülke olmaksa bu müfredat değişikliğinin yeterli olamayacağını, bilgisayar mühendisliği kontenjanlarının artırılmasındaki gibi kendimizi kandıracağımızı düşünüyorum. Yetişmiş iş gücü konusunda İngiltere’dekine benzer (ve belki daha ağır) sorunlar yaşanacaktır; bu aşılabilir. Ancak asıl sorun söz konusu müfredat değişikliğini yapan ülkelerin birkaç yıl değil, en az on yıl sonrasını dikkate alıyor olmalarıdır. Eğitim sistemi sürekli değişiyor ve nitelik giderek düşüyor… Daha büyük korkum ise bilişim teknolojileri eğitiminde yapılanın tekrarlanması, okulların belirli bir şirketin ürünlerini kullanmaya zorlanması.

Hükümetlerin ya da uluslararası şirketlerin programlama eğitimine bu kadar önem vermesinin en büyük nedenlerinden biri neredeyse yarım asırdır devam eden yeterli ve nitelikli yazılım eksikliğinden kaynaklı yazılım krizi (https://en.wikipedia.org/wiki/Software_crisis). Programcı sayısını artırmak da krizi aşmak için uygulanan stratejilerden biridir. Yalnız programcı sayısını artırmakla kalmayacaklar, yedek iş gücü ordusuyla bilişim çalışanları üzerindeki baskı daha da artacak, ücretler düşecek. Elbette ki bunun farkındayım.

Buna karşın desteğimin ise üç nedeni var. Birincisi berimsel okuryazarlık (literacy) önümüzdeki yıllarda yaygınlaşacak. Kaliteli bir eğitim verileceği konusunda şüphelerim olsa da hiç yoktan iyidir. İkincisi, günümüz dünyasında Lessig’in (2006) de vurguladığı gibi “Kod Kanundur”. Bunu kavramadan, gözetime ve sansüre karşı mücadele etmek, internette ifade özgürlüğünü savunmak giderek zorlaşıyor. Üçüncüsü ise programcılık, fazla mesai olarak karşınıza çıkmadığı veya ne yapacağınıza kendiniz karar verdiğiniz sürece eğlencelidir. Her yaştan insana tavsiye ederim.

Berimsel Okuryazarlık (Computational Literacy)

Programlamayla okuryazarlık arasında bir paralellik kurulması yeni değildir. Bilgisayarların programlanmaya başlandığı ilk günlerden beri vardır. 1960’larda birçok programcı, programlamayı okuryazarlık ile ilişkilendirmekte, hatta bir bilgisayar bilimcisi olan Alan Perlis okullardaki zorunlu kompozisyon dersi gibi programcılığın da lisans öğrenciler için zorunlu bir ders olması gerektiğini savunmaktadır. 1960’larda John Kemeny ve Thomas Kurtz’in Basic programlama dilini tasarlama amaçları programlamayı öğrenciler ve uzman olmayanlar için daha kolay hale getirmektir (Vee, 2013). Sovyet bilimci Ershov (1981) da programcılığı okur yazarlık ile karşılaştırmakta, daha 1980’lerde programcılığın ikinci okuryazarlık olacağını duyurmaktadır. Mozilla Vakfı’nın başkanı Mark Surman’a göre ise kodlama, okuma, yazma ve aritmetikten sonra dördüncü okuryazarlıktır (https://code.org/quotes).

Özgür yazılımdaki özgürlüğün, konuşma özgürlüğü (free speech) ile anlatılması da bilinçli bir tercihtir. Özgür Yazılım Hareketi, free software’deki free kelimesinin yazılımın ücretsiz olduğunu değil, özgür olduğunu anlatırken “free as in free speech not as in free beer” der. Kodlamanın gündelik dil gibi bir ifade biçimi olduğu savunulur. Buna göre, insan dili, programcının yazdığı kaynak kodu ve derleyicinin çevirdiği nesne kodu düşüncenin farklı biçimlerde temsilidir. Düşünce önce belirli bir dilde (Türkçe, İngilizce, Almanca vs) temsil edilir; bir programlama dili ile kaynak kodu haline getirilir ve yazılımsal araçlarla nesne koduna çevrilir. Her biçim özgündür ama bir süreklilik vardır. Bundan yola çıkarak yazılımın konuşma özgürlüğü gibi ABD Anayasası’nın 1. Ek Maddesi kapsamında değerlendirilmesi gerektiği öne sürülmektedir (http://www.2600.com/dvd/docs/2001/0126-speech.html).

Peki okuryazarlık nedir? Literacy, kelimesini Türkçe’ye okuryazarlık olarak çevrilmekte ve basitçe okuma ve yazma yetisini ifade etmektedir. Vee’ye (2013) göre bir çok çalışmada okuryazarlık, yanlış bir biçimde, genel olarak becerileri (görsel okuryazarlık, oyun okuryazarlığı, tasarım okuryazarlığı vb) anlatmak için kullanılmaktadır. Bu kullanımlara göre pekala araba okuryazarlığından da söz edilebilir.

Vee (2013) okuryazarlığı, sembolik ve altyapısal teknolojiyi (örneğin metinsel yazma sistemi gibi) yaratıcı, iletişimsel ve retoriksel amaçlar için kullanma becerisi olarak tanımlamaktadır. Okuryazarlık insanlara düşüncelerini metin olarak ifade etme (yazma) ve başkalarının metin olarak ifade ettiği düşünceleri yorumlama (okuma) imkanı sağlar. Bunun yanında, herhangi bir teknolojinin iletişim için kullanımını basitçe okuryazarlık kapsamında değerlendirmez. Okuryazarlıktan bahsedebilmek için birinci olarak söz konusu teknolojinin toplumun iletişim pratiklerinin merkezini veya altyapısını oluşturması gerekmektedir. Gündelik hayatta belirleyiciliği olmayan bir teknoloji okuryazarlık kapsamında değerlendirilemez. İkinci olarak da bu teknolojiyle elde edilen oluşturma ve yorumla yeteneğinin kolay ve toplumda yaygın olması gerekir. Bu iki durumun eş zamanlı olarak ortaya çıkması gerekmediği gibi herhangi bir öncelik sırası da yoktur, toplumdan topluma değişebilir. Örneğin İngiltere’de okuma ve yazma becerilerinin yaygınlaşması yazının merkezi, belirleyici ve düzenleyici bir rol üstlenmesinden yüzyıllar sonra gerçekleşmiştir. Amerika’da ise tam tersi yaşanmıştır. Okuma ve yazma becerilerinin yaygınlaşması, okuryazarlığın belirleyiciliğinin ve düzenleyiciliğinin önünü açmıştır. Vee (2013), okuryazarlığın basitçe teknik bir süreç olmadığının, toplumsal ve ideolojik etkenlerle biçimlendiğinin de altını çizer.

Programlama da insanların sembollerden oluşan bir teknolojiyle düşünceleri temsil etme ya da yorumlama becerisidir. Sonraki bölümde tartışacağım gibi programlamanın yarattığı kodun gündelik hayattaki belirleyiciliği ve düzenleyiciliği giderek artmaktadır. Ancak program kodunu okuma ve yazma becerisinin yaygınlığını değerlendirdiğimizde okuryazarlıktan söz etmek için henüz erkendir. Programlama yalnız bilgisayar bilimcilerin ve ilgili mesleklerin işi olmayıp diğer meslekler (gazetecilik, tıp, biyoloji vb.) arasında yaygınlaştığında okuryazarlıktan söz edilebilecektir (age).

Vee (2013), bilgisayar okuryazarlığı yerine berimsel okuryazarlığı tercih etmektedir. Berim (compute), bilgisayarın yaptığı iştir. Ama bilgisayar teknolojisi hızla değişmekte, geleneksel bilgisayarlar yerini daha farklı teknolojileri bırakmaktadır. Bu gelişme, yazı teknolojisindeki gelişmelere benzetilebilir, okuma yazma sabit kalsa da kullanılan teknoloji (papirüs, kağıt, matbaa) değişmektedir. Dolayısıyla Vee (2013), somut bir teknolojiye bağlanmak yerine soyut berimsel okuyazarlık kavramını tercih etmektedir. Berimsel okuryazarlık, berimsel düşünmeyi ve soyutlamayı gerektirmektedir. Berimsel düşünme ile bütün parçalara ayrılmakta ve programlama dili aracılığı ile bilgisayarın anlayabileceği şekilde yeniden bütünleştirilmektedir. Programlama dillerinin tarihsel gelişimine bakıldığında zaman içinde daha kullanıcı dostu, ileri düzeyde bilgi ve yetenek gerektirmeyen dillerin geliştirildiği görülür. Hatta bu durumu, programlamanın ileri bir tarihte gereksizleşeceğinin, programlamada gündelik dile yakın dillerin kullanılacağının ve böylece programlama becerisine gerek kalmayacağının göstergesi olarak yorumlayanlar vardır. Vee (2013) bu basitleştirmenin tam tersi bir sürece yol açtığını belirtmektedir; programlama dilleri basitleştikçe daha farklı alanlara yayılmakta ve yaygınlaşmaktadır. Ayrıca hükümetlerin yeni eğitim politikaları da geçmiş yıllardaki okuryazarlık kampanyalarını anımsatmaktadır. Dolayısıyla son yıllardaki gelişmeleri ve girişimleri dikkate alarak oluşum halindeki bir okuryazarlıktan söz edebiliriz.

Kod Kanundur

Lessig’e (2006) göre insanların davranışları, yasa, norm, piyasa ve mimari tarafından düzenlenmekte ve sınırlanmaktadır. Lessig bu düzenleyicileri açıklamak için sigara içme örneğini verir. Nerelerde sigara içilip içilemeyeceği yasalarla düzenlenmiştir. Belirli bir yaşın altında olanlara sigara satılması yasaktır. Özel bir araçta sigara içmeniz yasalarla engellenmemiştir ama normlar diğer yolculardan izin almamızı gerektirir. Piyasa da bir düzenleyicidir. Sigara fiyatlarının artması, ucuza kaçak sigara bulabilme ihtimali, farklı kalite ve fiyatta sigaraların satılması yasa ve normlar gibi düzenleyici ve sınırlayıcı bir etkiye sahiptir. Sigara örneğindeki mimari ise sigaranın nasıl tasarlandığı ve yapıldığı ile ilgilidir. Dumansız bir sigara kullanıyorsanız sigara içebileceğiniz yerler daha fazladır. Ağır aromalı sigaralar, sigaradan rahatsız olanların sayısını artırabileceğinden sigara içmenizi sınırlayabilir. Ya da kullandığınız sigaranın fazla nikotinli olması içeceğiniz sigaranın sayısını etkileyebilir.

Bu düzenleyicilerden her birinin farklı etkisi ve yaptırımı vardır. Yasaklanmış bir ortamda sigara içerseniz ceza ödemek zorunda kalırsınız. Normlara aykırı davranırsanız ayıplanırsınız. Fazla nikotinli bir sigaradan çok içerseniz sağlığınıza zarar verirsiniz. Sigara fiyatının artması cebinizden çıkan parayı artırır. Ayrıca tüm bu düzenleyiciler ayrık çalışmazlar, birbirlerini de etkilerler. Mimari bazen normları ve yasaları güçlendirebilir bazen de zayıflatabilir. Piyasa çıkarlarından kaynaklı düzenlemeler farklı mimarilere neden olabilir.

Bu düzenleyicilerin her birinin ayırt edici nitelikleri ve çalışma prensipleri vardır. Mimarinin düzenleyiciliğinin en önemli niteliği ise kesinliği ve uygulandığı zaman aşılmasının zorluğudur. Aşağıda Lessig’in (2006) mimarinin insan davranışları üzerindeki düzenleyici etkisini göstermek için verdiği örneklerden bazıları yer almaktadır:

  • Fransız Devrimi’nde devrimcilerin Paris’in dar ve dolambaçlı sokaklarına kurdukları barikatlar onlara önemli bir üstünlük sağlamış ve şehrin kontrolünü ele geçirmelerini kolaylaştırmıştır. Bunun fakında olan III. Napolyon Paris’i geniş bulvarlarla yeniden inşa eder.
  • Bazı Avrupa ülkelerinde yürütme ve yasamanın baskısına maruz kalmamak için anayasa mahkemeleri özellikle başkentten uzakta inşa edilmiştir.
  • Amerika’daki bir otelin müşterileri asansörlerin yavaşlığından şikayetçidir. Otel asansörleri hızlandırmaz ama asansör kapısının yanına yerleştirdiği aynalardan sonra şikayetler sona erer.
  • Okulların veya parkların yanına yapılan kasisler sürücüleri yavaşlamaya zorlar.
  • Robert Moses’un Long Island’da inşa ettiği köprüler otobüslerin geçişine uygun değildir. Böylece daha çok toplu taşımayı kullanmak zorunda olan siyahların halk plajlarına gelişleri engellenmiş olur.
  • Bir Amerikan havayolu şirketinin yolcuları bagajlarının geç gelmesine öfkelenmektedir. Üstelik bekledikleri süre diğer yolcularınkinden fazla değildir. Şirket, uçakların iniş noktasını bagajlardan daha uzağa taşıyarak zaman kazanır. Böylece zaman kazanılır, yolcular bagaj için beklemek zorunda kalmazlar ve şikayetler biter.

Önceki bölümde de belirttiğim gibi başta internet olmak üzere dijital teknolojiler gündelik yaşamın önemli bir parçası haline gelmiştir ve gündelik yaşamdaki yaygınlıkları her geçen gün artmaktadır. Dolayısıyla internetin ilk günlerinde olduğu gibi hükümetlerin etkisinden muaf bir internet artık yoktur. Hükümetler insanların, özellikle kendi vatandaşlarının, internet üzerindeki davranışlarını düzenlemek istemektedir. Bu düzenleme arzusu kendini özellikle üç alandaki çatışmalarda kendini göstermektedir: Fikri mülkiyet, mahremiyet ve ifade özgürlüğü.

İnterneti düzenlemek isteyenlerin internetteki kişinin kim olduğunu, nerede olduğunu ve ne yaptığını bilmeleri gerekir. Lessig (2006), internetin ilk günlerdeki mimarisinin buna yönelik düzenlenmediğini ve farklı değerler içerdiğini belirtirken bu mimarinin mutlak olmadığının özellikle altını çizmektedir. Lessig’in kısaca kod olarak adlandırdığı internetin yazılımdan ve donanımdan oluşan mimarisi tarihin en düzenlenebilir alanlarını yaratmaktadır. Ayrıca Lessig (2006) internetin ticarileşmesinin hükümetlerin gücünü artıran bir gelişme olduğunu belirtmektedir. Böylece hükümetler maddi çıkarı olan şirketleri belirli düzenlemeleri yapmaya zorlayabilmektedir; doğrudan kodu değil, kodlayanları kontrol etmektedirler. Doğrudan internete ya da internete erişimde kullanılan cihazlara eklenen kodlar hükümetlerin interneti düzenlemek için sordukları sorulara yanıt verebilmektedir: kim, nerede, ne yapıyor?

İnternette düzenlemenin kendisi tamamen iyi ya da kötüdür denilemez. Ama günümüzde şirketler ya doğrudan kendi ya da hükümetlerin gereksinimleri doğrultusunda vatandaşları etkileyen bazı düzenlemeler yapmakta ve bu düzenlemeleri de ilgili teknolojinin doğası gibi sunmaktadır. Yasalar neyin yapılıp neyin yapılamayacağını çoğu zaman doğrudan söyler; bazı konular özellikle belirsiz ve yoruma açıktır. Vatandaşlar yasayla yapılan bir düzenlemenin bilgisine sahip olabilir. Aynı şeffaflık kodla yapılan düzenlemelerde de olmalıdır. İnsanlar kodla yapılan bir düzenlemeyi göremiyor, tartışamıyor ve eleştiremiyorsa sorun vardır. Şöyle basit bir örnek vereyim, bir kurum işe alacağı kişileri kura ile belirliyor. Adaylar karşılarındaki kocaman ekrandan kura sonucunu izliyor. Söz konusu kura ve bilgisayar olunca herkes susuyor. Ama kura koduna erişimimiz yoksa, kodun nasıl çalıştığını bilmiyorsak kodun gerçekten rastgele çalışıp çalışmadığını da bilemeyiz. Bu nedenle, hükümetin ya da kamu kurumlarının kodla yaptığı tüm düzenlemeleri vatandaşlarıyla paylaşması gerekmektedir. Yazılım geliştirenler, sizin yerinize bazı kararlar vermiş ve fikri mülkiyet, mahremiyet ve ifade özgürlüğü bağlamlarında hak ve özgürlükleriniz kısıtlanmış ise bunu bilmek her ortamda, herkesin hakkıdır. Bilişim ve iletişim teknolojilerini yalnız kullanmayı değil, onların nasıl çalıştığını ve çalıştırılabileceğini bilen, berimsel okuryazarlığa sahip insanların bu düzenleme sürecine daha aktif katılabileceklerini düşünüyorum. Dolayısıyla verilecek eğitim, sadece herhangi bir programlama dilini öğretmekle kalmamalı, bilişim teknolojilerinin hayatı nasıl düzenlediğini ve düzenleyebileceğini içermeli, bilişim teknolojilerin kullanımından öte onların çalışma ilkelerini göstermeli ve öğrencilerin yaratıcılığını öne çıkarmalıdır. Böylece öğrenciler, haklarını sınırlayan ya da sınırlayabilecek kodu daha rahat fark edebileceklerdir.

Bilgisayarlar, tablet, akılı telefon vb teknolojilerin ötesinde gündelik yaşamda kullanılan cihazlarda yaygınlaşmaya başladığında berimsel okuryazarlık daha önemli olacak.

Programlama Eğlencelidir

Para için değil, sadece eğlenmek için yazılım geliştiren çok sayıda programcı vardır. Programlama satranç ya da bulmaca çözmek gibi eğlenceli bir uğraştır. Zeka oyunlarından hoşlanan her yaştan insana tavsiye ederim.

Hiç bilmeyenlere programcılığın temellerini anlatan çok sayıda web ve tablet uygulaması var. Bu uygulamalar içinde en çok beğendiğim ve önerebileceğim code.org sitesindeki uygulamalar ve MIT’in (Massachusetts Institute of Technology) geliştirdiği Scratch (https://scratch.mit.edu/) adlı görsel programlama dili. İstediğinizi tercih edebilirsiniz ama önerim, hepsini tamamlamasanız da, önce code.org’taki dersleri takip etmeniz, daha sonra da Scratch ile ufak uygulamalar yazmanız.

code.org
2013 yılının ocak ayında Hadi ve Ali Partovi tarafından kurulan code.org herkesin kodlamayı öğrenebileceği iddiasıyla bilgisayar programlamayı herkes için erişilebilir yapmaya çalışıyor. code.org, kurulduktan bir ay sonra Mark Zuckerberg, Bill Gates, Jack Dorsey gibi bilişim dünyasının önemli isimlerinin yer aldığı bir video hazırladı. Videoda yer alan kişiler kodlamanın önemini vurguluyorlardı. Video internette hızla yayıldı. Video, bilişim şirketlerinin ve iş adamlarının da ilgisini çekti. İki hafta içinde yaklaşık 10 milyon dolar toplandı ve bu destek daha sonra da devam etti. code.org sitesinin bağışçıları arasında Google, Microsoft ve Facebook da var (https://code.org/about/donors).

code.org’un hedef kitlesi ilk başta sadece ABD’liler olsa da site kısa zamanda uluslararası bir nitelik kazandı. Şu anda 45’ten fazla dili destekliyor ve sitedeki eğitim materyali 180’den fazla ülkede kullanılıyor. Her okuldaki her öğrencinin bilgisayar bilimlerini öğrenmek için fırsatı olması gerektiğini savunan code.org, programlamayı merak eden ama hayatı boyunca kod yazmamış ve bundan çekinen her yaştan insana eğlenceli gelebilecek dersler sunuyor. Ayrıca daha çok beyaz erkeklerin işi olarak görülen bilgisayar biliminde çeşitliliği artırmayı da hedefliyor. code.org’a kayıtlı kullanıcıların %43’ü kız, %37’si siyah ya da İspanyol kökenli.

Kodlama nedir öğrenmek ve biraz eğlenmek istiyorsanız işe Starwars (https://code.org/starwars) ya da Minecraft (https://code.org/mc) ile başlayabilirsiniz. Buradaki alıştırmalar hoşunuza giderse yeni başlayanlar için dört farklı ders var (https://studio.code.org/). Birinci ders dört yaş üstü için tasarlanmış ve okuma becerisi gerektirmiyor. Dersin ilerleyen bölümlerinde programlamadaki kavramlar (bir değişkene değer atama, atanan değeri kullanma, döngü) öğretiliyor. İkinci ders, altı yaş ve üstü, okuma becerisi olanlar için. Bu derste, döngü konusu daha detaylı işleniyor, koşullama (if) kavramı öğretiliyor. Öğrenciler, örnek programlardaki hataları bulmaya çalışarak hata ayıklama alıştırmaları yapıyorlar. Üçüncü ders, ikinci dersi tamamlayan sekiz yaş üstü öğrenciler için. Bu bölümde öğrenciler önceki bölümlerde öğrendiklerini tekrar ediyor ve fonksiyon kavramını öğreniyorlar. Üçüncü dersi tamamlayanlar için hazırlanan dördüncü ders daha karmaşık alıştırmalar sunuyor.

Derslerdeki alıştırmalar aşağıdaki gibi, özellikle çocuklar için, son derece eğlenceli:

code.org

Ayrıca çözümün, javascript adlı programlama dilindeki karşılığını da görebiliyorsunuz:

for (var count = 0; count < 5; count++) {

moveForward();

}

Bu derslerde, çeşitli alıştırmalarla yukarıda belirttiğim gibi programlamadaki temel kavramları öğreniyorsunuz. Bu kavramları ve programlama mantığını tanıdıktan sonra Scratch’ta daha kolay uygulama geliştirebilirsiniz.

Scratch

MIT’nin 2000’li yılların başında 8-16 yaş arasındaki öğrenciler için tasarladığı görsel bir programlama dili olan Scratch’ın ilk sürümleri bilgisayara kurulmaktaydı. Şimdiki sürümünü ise web üzerinden, bilgisayarınıza herhangi bir yazılım kurmadan https://scratch.mit.edu/ adresinden kullanabilirsiniz. Scratch, ABD’de çeşitli okullarda kullanılıyor. Hatta “Her öğrenciye bir dizüstü” projesi kapsamında dağıtılan bilgisayarlar, Scratch kurulu bir halde dağıtılmış.

İnsanlar Scratch ile birbirinden farklı yazılımlar geliştirebiliyor: Hareketli masallar, oyunlar, tebrik kartları, bilimsel projeler, müzik projeleri, simülasyonlar vb. Grafik arayüzü oldukça kullanıcı dostu. Ana karakteri (varsayılan bir kedi) başka bir karakterle (dinozor, hayalet, balerin, basketbol topu vb yüzlerce karakter) değiştirebilir, farklı arka planlar ekleyebilirsiniz. Program kodunuzu yazdıktan sonra bu kodu saklama ve diğer kullanıcılarla paylaşma şansına da sahipsiniz. (https://download.scratch.mit.edu/scratch2download/sa/Getting-Started-Guide-Scratch2.pdf). Ayrıca başkasının paylaştığı kodu inceleyebilir ve onu iyileştirebilirsiniz. Dolayısıyla insanlar daha programlamaya adım atar atmaz kendini bir özgür yazılım topluluğunun içinde buluyor.

Program bileşenleri, code.org’ta olduğu gibi, Lego’lara benzer bir biçimde tasarlanmış:

scratch

Programcılığa yeni başlayanlar için en sinir bozucu durumlardan olan söz dizimi (syntax) hataları, kodların lego parçaları gibi birbirine eklemlenmesi ile ortadan kalkmış; uymayan parçaları birleştiremiyorsunuz. Hata mesajlarıyla uğraşmıyor, sadece yapmak istediğiniz işe odaklanıyorsunuz. Scratch zengin ve kolayca anlaşılan bir komut setine sahip. Bugün yazılım geliştirmede kullanılan bir çok programlama dili (Java, C, C++, C#, php, python, ruby) yapı olarak birbirine benzer. Bu dillerden birini biliyorsanız ikinciyi çok hızlı kavrayabilirsiniz. Scratch öğrenmenin de böyle bir faydası olacak. Günümüzde programlama eğitiminde yapılan en büyük hatalardan biri öğrenciye temel kavramları vermeden doğrudan dillerin söz diziminin ezberletilmesi oluyor. Bu nedenle birçok üniversite öğrencisi daha işin başında programlamadan uzaklaşıyor.

Scratch ile yaratıcılığınızı ortaya koyabilir, hoşça vakit geçirebilirsiniz. Yola devam etmek isterseniz, python dilini (https://www.python.org/) tercih edebilirsiniz.

İyi eğlenceler.

25 Mart 2016

Posted In: berimsel okuryazarlık, Bilgisayar Bilimi, e-devlet, ifade özgürlüğü, kodlama, Özel hayatın gizliliği, Özgür yazılım, Scratch

Veri Bilimi Bülteni — 32

Her cuma yayın­ladığım ‘Veri Bil­imi Bül­teni’ ile son 1 haf­tada veri ve veri bil­imi konusuyla ilgili okuduk­larım­dan dikka­timi çeken­leri pay­laşıy­o­rum. Bu bül­ten her yayın­landığında hab­er­dar olmak istiy­or­sanız “Haf­talık Veri Bil­imi Bül­teni” linkedin grubuna üye ola­bilirsiniz. İyi Okumalar. Bu haftaki özete bir makale ile başlayalım. Makale dökümanların özetlerinin çıkarılması başlığı altında yapılan bir çalışmadan Devamını Oku […]

25 Mart 2016

Posted In: Linux Gezegeni'nde Gözüken Yazılar, Veri Bilimi Bülteni

Linux’ta Bu Hafta – 3

Red Hat 2 milyar dolarlık açık kaynak şirketi oldu: 4 yıl önce 1 milyar dolarlık gelire sahip olan Red Hat*, bugün 2 milyar dolarlık gelire sahip. Diğer şirketlerin risk sermayesi üzerine oynamasına karşın Red Hat gelirini eski moda yoldan elde ediyor. Dördüncü çeyrekteki toplam geliri 544 milyon dolar olan Red Hat, bir önceki yılın aynı … Okumaya devam et "Linux’ta Bu Hafta – 3"

24 Mart 2016

Posted In: Açık kaynak, Gnome, guix, guixsd, haber, kde, linuxgezegeni, özgür yazılım ve linux günleri, red hat, rhel, toonz

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

23 Mart 2016

Posted In: balrog-ui, github, members, mozilla

Bir “Portal” üzerine…

Türkiye’de özgür yazılım katkıcılığı yapmak zor iş… Hatta katkıcılığı bırakın topluluk üyesi olmak bile pek kolay değil…

2007 benim için bu alanda bir milat, kişisel aydınlanma, özgür yazılımın alnımda çıkardığı 3. göz… Bu tarihi referans alırsam 2007 öncesi -topluluk/camia ne derseniz artık- aitlik süreci çok zordu. Bakıyorum da 2007 sonrasından ta ki hatırlamak istemediğim bir tarihteki Özgürlükİçin.org çöküşüne kadar gerçekten güzel zamanlar geçirmişiz… Bu çöküşten sonra ise, topluluk ve aidiyet dışında özgür yazılım dünyasıyla olan bağlarımız da zayıflamaya başladı… En büyük zorluk ise bir portal, bir ana gemi olmayışı.

Efsanevi Özgürlükİçin sitesi hayalet gemi gibi bant genişliklerinde seyretmekte...

Efsanevi Özgürlükİçin sitesi hayalet gemi gibi bant genişliklerinde seyretmekte…

Bu zorluğu kısaca masaya yatırırsak -aslında buna da çok zamanım yok- madde madde gidelim:

  • Özgür yazılım dünyasından haberler / sürüm duyuruları
  • Ortak bir paylaşım/yardımlaşma alanı – forum
  • Blog kardeşliği – gezegen
  • İncelemeler – özellikle oyun ve heyecan verici şeyler

Bu ve bunun gibi onca şeyi bir araya getiren harika bir şeye sahipmişiz; özgürlükiçin.org hatta o zman o kadar zenginmişiz ki bir de pardus-linux.org‘a sahipmişiz… ve cahilmişiz… bunların artık geride kaldığını kabul etmek gerekiyor…

Özgür yazılımda böyle “değerler” (bu kelimeyi kullanmayı da pek sevmiyoırum) ne kadar önemliymiş, onu düşünüyorum bir kaç gündür… Bunların eksikliği gerçekten özgür yazılım dünyasını takip etmekte insanı çok zorluyor… Hadi ben İngilizce biliyorum takip edebiliyorum… Ya ait olmak? Paylaşmak? Yardımlaşmak? Birlikte bir şeyler yapmak isteyip de o marşa basıp o enerjiyi boşaltabilmek? Yapabilmek? Bunlar yok…

Atlamadan bir de teknokedi.com vardı, o da bu açığı kapatmak için kendi öz amacı olmasa da alan yaratmak için katkı vermişti. Sevgili Ali Işıngör abimizin iyi niyetiydi…

Şu anda bu alan içice dağınık halde… Andoid, tabletler  ve mobil teknoloji birçok kişinin başını döndürdü ve masaüstü arka plana itildi, fakat şimdi GNU/Linux masaüstünün güçlenerek geldiğini görüyorum. Steam’in GNU/Linux’a gelmesi ve süpersonik oyunları Linux’a taşıması, Nvidia – Ati sürücülerindeki yenilikler + Vulkan vs, ve nihayetinde de Microsoft’un başlayan Linux aşkı(!) (hem Office’in potansiyel Linux sürümü beklentisi hem de Office 365)… Bunlar harika şeyler aslında… Masaüstünde Linux kullanımını kısıtlayan birçok sıkıcı bahane ortadan kalkıyor -konuyu uzatmamak adına özgür yazılım felsefesiyle kapalı yazılım tercihini kullanıcıya bırakalım… Yakında kendi adam akıllı dağıtımıyla pazara çıkacak masaüstü/dizüstü bilgisayarlar görmeyi umuyorum. (Dejavu değil…)

Konuya dönersek, şu anda bildiğim birkaç site arasında GNU/Linux dünyasına özel bir amiral gemi görebileceğim bir portal yok. Bildiğim siteler ise adeta kahramanca bir bireysel mücadele ile ayakta tutulmaya çalışılıyor, içerik sunmak için büyük emek ve zaman harcanıyor… Bunlardan bazıları:

  • getgnu.org – Fortran takma ismiyle adeta bir süperkahraman edasıyla paylaşılabilir bütün haberleri neredeyse tüm özgür yazılımla ilişkili forumlara ileten süper kişi. nasıl yaptığını hala çözebilmiş değilim.
  • linuxnotlari.com – Sevgili Mustafa Gökay’ın epeyce emek verdiği Linux Haber Platformu. OMG ubuntu tadında
  • acikgunluk.net – Sevgili Özgür Ilgın’ın günlüğü, özgür yazılım artı hobileri (özel ilgi alanı nostaljik ve avatür türk sineması)

* Başka bildiğiniz aktif sayılabilecek site varsa yorumlara yazarsanız sevinirim.

Yeni bir site?

Hayır, yeni değil, birleştirici, geniş ve yeni içeriği sunan bir site… Kolektif ve eğlenceli, hatta daha önce olmadığı kadar eğlenceli olmalı… Özgür yazılım caps galerisi dahi olsa olur…

Neden?

Çünkü ihtiyaç var

Peki gönüllü mü olacak, nasıl ayakta duracak?

Ticari bir proje olmalı. Para kazanmalı, en azından masraflarını çıkarmalı.

Özgür yazılım projeleri ve ticari amaç???

Böyle bir tabu var, ticari amaç güdülebilir. Özgür yazılım ürünleri dahi parayla satılabilir ki bu gibi işlerde “reklamsızlık” sanki bir bekaret kemeri gibi her projeye iliştiriliyor. Çok anlam veremiyorum…

Ticari amaç olmalı, diğer türlü hiçbir şekilde ayakta duramadı. Bağış kültürü bizim ülkemizde yok, şahsi fedakarlık bir yere kadar… Bir de bu işleri üstlenen kişiler sürekli rica minnet ile istekte bulunmak gerekiyor; damdan düştüm bilirim, yok bize sunucu, yok bize alan adı lazım diye aramaktansa parayı basıp almak en sağlıklısı.

Kim yapacak? Nasıl bir model?

Şu an bu işi hobi olarak yapan arkadaşlar ve böyle bir projeye girmek isteyen kişiler bir araya gelebilir, gelir paylaşımlı kolektif bir model üzerinde anlaşabilir. Dileğim de budur. Şayet onlar olmazsa, İngilizce bilen birkaç üniversite öğrencisi arkadaş böyle bir projeye girerse hem hobi, hem harçlık hem de ileriye yönelik belki de kendi işlerini kurabilirler.

Gelir yeterli olur mu?

Varsayalım Google Adsense ile yola çıktılar, Türkçe içeriğin reklam başı getirisi tabi ki İngilizce içerikten daha düşük olacaktır, ama akmasa da damlar, ileriye doğru hacim arttıkça tatmin edici bir gelir gelebilir.

Özellikle Steam sayesinde oyun inceleme ve tanıtım içeriklerinin ileride büyük potansiyeli olacağına inanıyorum.

Zorlukları?

Tahmin ettiğim bazı zorlukları var, bunun yanı sıra yukarıda bahsettiğim arkadaşların yaşayıp deneyimlediği zorluklar da vardır. Sonuçta protonların çarpıştırmayacakları için kolayca üstesinden gelebileceklerini düşünüyorum. Linus Torvalds’ın “Just for fun – Yanlızca Eğlenmek İçin…” sözüne yaslanıp eğlenceli bir yola girilebilir…

***

Yukarıdaki kendi kendime röportajım daha kısa bir yazı yazmak içindi, kendimi havaya sokmak için değildi. Epeydir bir şey karalamamıştım, lafı iyice uzatmak istemedim 😉

Dilerim bu yazım bir açık davet olur, en azından bir tartışma başlar ve şu üzerimizdeki ölü toprağını silkeleyebiliriz.

***

Bonus: “Var mı peki bu haberleri takip edebileceğimiz yabancı bir site?” diyenler özgür Ilgın’ın 10 sitelik listesine bakabilirler: En çok takip ettiğim 10 yabancı GNU/Linux haber ve blog

***

Son olarak, ben bu yukarıda yazdıklarımı düşünürken LKD‘den şöyle bir ileti de geldi. Katkı verebilceklerin dikkatine:

Merhaba,

Dünyada özgür yazılım ve ilgili alanlar (kişisel verilerin gizliliği, ifade özgürlüğü, telif hakları vs.) hakkında önemli gelişmeler yaşanmakta. Ancak bu gelişmeler hakkında yayımlanmış güncel haber ve yazılar yabancı dil (başta İngilizce) bilmeyen ilgililere ulaşamamakta. Bu nedenle, güncel haber ve yazıları Türkçeye çevirmek amacıyla bir çeviri grubu kuruyoruz. Çeviri grubu çalışmalarına LKD üyesi olsun ya da olmasın özgür yazılıma gönül vermiş herkes katılabilir.

Çevirisi yapılacak haber ve yazılar, LKD tarafından hazırlanacak bir sitede düzenli olarak yayımlanacak. Ayrıca aylık olarak da bülten haline getirilerek duyurusu yapılacak.

Çeviri grubuna katılmak için yk@linux.org.tr adresine, kısaca kendinizi tanıtan ve çalışma grubuna katılmak istediğinizi belirten bir e-posta atmanız yeterli olacaktır.

— 

ibrahim izlem GÖZÜKELEŞ

~DAVET~

Özgür Yazılım Günleri 2016: LibreOffice Geliştirme ve Yaygınlaştırma Toplantısı

Özgür Yazılım Günleri 2016: LibreOffice Geliştirme ve Yaygınlaştırma Toplantısı –

(twitter bağlantısını yapıştırınca yukarıdaki kendiliğinden çıktı, vay be!)

Fırsatınız varsa katılın, detaylı bilgi için: http://ozguryazilimgunleri.org.tr/2016/etkinlik-programi/

Mutlu günler.

Sonrası Bir “Portal” üzerine… Günlüğüm ilk ortaya çıktı.

23 Mart 2016

Posted In: Genel, Gezegen, gnu/linux, just for fun, lkd, Özgür yazılım, özgürlükiçin, pardus-linux.org, portal

Kitap Listesi

Merhabalar

Her yazılımcının olduğu gibi benim de bir kitap listem var. Bu kitap listesini sizlerle paylaşmak istiyorum. Yazılım konusunda kendini geliştirmek isteyenler bu kitapları okuyabilir. Bazı kitaplar Java teknolojilerine özgü bazıları ise genel kitaplar. Zaman zaman bu listeye yeni kitaplar ekleyip bazı kitapları çıkartabiliyorum. Böyle bir durumda bu sayfayı da güncelleyeceğim. Kitap listesini seviyeye göre sıralamaya çalışacağım. Bazı kitaplar için altta açıklamalar bulunmaktadır. Kitap listesine gelirsek:

  • Head First Java*

  • Head First Design Patterns*

  • JUnit in Action 2*

  • Test Driven Development by Example*

  • Clean Code*

  • Refactoring - Improving the Design of Existing Code*

  • Effective Java*

  • Pojo in Action*

  • Code Complete*

  • Domain Driven Design

  • Clean Coder

  • Effective Unit Testing

  • Java Concurrency In Practice

  • Working Effectively Legacy Code

  • Pratik Agile

  • Pratik Spring

  • Design Patterns Elements of Reusable Object-Oriented Software (GoF)*

  • Implementation of Design Patterns

  • Agile Software Development

  • Extreme Programmin Explained

  • Patterns of Enterprise Application Architecture

  • Functional Programming for the Object Oriented Programmer

  • Object Oriented Analysis and Design

  • Object Oriented Software Engineering

  • Structure and Interpretation of Computer Programs

  • Modern Operating Systems

Head First Java: Bu kitabı okumadım ama detaylı inceledim. Java’ya yeni başlayanlar için tavsiye ettiğim bir kitap.

Head First Design Patterns: Özellikle yeni başlayanlar için tasarım desenlerini akılda bırakan bir kitap. Mutlaka tavsiye ederim.

JUnit in Action 2: JUnit4, Mocking, stubbing gibi konuları güzel anlatıyor. İlerideki konuların teknolojileri eski kalmış olabilir. Neticede bir in Action kitabı.

Test Driven Development by Example: Yine yeni başlayanlara tavsiye edebileceğim bir kitap.

Clean Code: Her yazılımcının mutlaka okuması gereken bir kitap.

Refactoring - Improving the Design of Existing Code: Clean Code gibi bu kitap da herkesin okuması gerekenler arasında

Effective Java: Her Java’cının mutlaka okuması gereken bir kitap. Joshua Bloch tarafından yazılmış Java ile ilgili önemli detayları anlatıyor. Kitabın Java 8 için olan hatta Java 9 için bir yeni baskısı olsa güzel olurdu.

Pojo in Action: Chris Richardson tarafından yazılmış, tasarım ve mimariye giriş niteliğinde bir kitap. Kitap kullandığı teknolojilere göre eski kalsa da teorik bilgiler her zaman tazeliğini korur. Yine bu kitabı da herkese tavsiye ederim. Özellikle mimari konularında yeni olanların ufkunu açacaktır.

Code Complete: Bu kitabı okumaya başladığımda bu kadar iyi olacağını tahmin etmiyordum. Bir tavsiye üzerine okumaya başladım. Kitap çoğunlukla teorik bilgiler üzerine ve herkesin mutlaka okuması gereken bir kitap olduğunu düşünüyorum.

Effective Unit Testing: Ben bu kitabı bir AnkaraJUG etkinliğinde kazandım. Listemde ama henüz okumadım. AnkaraJUG ve Manning Pub.‘a teşekkürlerimi sunuyorum.

Design Patterns Elements of Reusable Object-Oriented Software(GoF): O meşhur Design Patterns kitabı, mutlaka herkes okumalı

22 Mart 2016

Twitter Auto Publish Powered By : XYZScripts.com