Ağu 012017
 
2.134 views

30 Temmuz 2017’de Bolu’daydım. Önceki yıllarda olduğu gibi bu yıl da Linux Yaz Kampı Bolu Abant İzzet Baysal Üniversitesi yerleşkesinde yapılıyor. 21 Temmuzda başlayan kamp, 5 Ağustos tarihinde sona erecek. Kamp bünyesinde bu yıl 68 eğitimci ve 600 öğrenci yer alıyor. Derslikler 24 kişilik. Bu yılın eğitimlerinde uygulamaya öncelik verilmiş durumda.

İlk Linux Yaz Kampı 2010 yılında, Işık Üniversitesi Şile Yerleşkesinde yapıldı.

2011 yılındaki Linux Yaz Kampına ise Düzce Üniversitesi ev sahipliği yaptı.

2012 yılı ve sonrasındaki kamplar ise Bolu Abant İzzet Baysal Üniversitesinde düzenlenmektedir.

Kampların düzenlenmesine LKD (Linux Kullanıcıları Derneği) ve İNETD (İnternet Teknolojileri Derneği) öncülük etmektedir.

Bugüne değin yaklaşık 2000 öğrenci bu kamplarda çeşitli eğitimler almıştır.

Kurslar tamamen ücretsizdir. Katılımcılar sadece yol, konaklama ve yemek masraflarını karşılamaktadır. Bu konuda da olası en uygun koşulların sağlanmasına özen gösterilmektedir.

Eğitimciler tamamiyle gönüllülük esasına göre çalışmakta; onların yol ve konaklama giderleri kamp organizasyonu tarafından karşılanmaktadır.

Sabah 9.30’da başlayan dersler, üçer saatlik üç bölüm olarak gün içine yayılmıştır ve 21.30’da sonlanmaktadır. 12 saatlik bu zaman diliminin 9 saatlik bölümü derslerle doldurulmuş, araya dinlenme aralıkları serpiştirilmiştir.

Eğitmenler olağanüstü bir özveriyle çalışmaktadır.

Ben buraya misafir eğitimci olarak, bir günlüğüne geldim. Nisan ayında geçirdiğim ameliyatın nekahat dönemi hala tamamlanamadığı için daha fazlasını göze alamazdım. İyi ki öyle yapmışım, çünkü enerjim 3. ders bölümü için yetmedi. Konuları zaten ilk iki bölümde tamamladığımdan, 3. bölüm için düşündüğüm Python ile eğlenceli örnek ve uygulamalardan vazgeçebildim.

Derslerde işlediğim konular “Web ve Flask’a Giriş” olarak özetlenebilir. Sunum ve kod dosyalarını LINUXYAZKAMPI2017 adresinden indirebilirsiniz.

Linux Yaz Kampı yöneticilerini, destekleyen kuruluşları, eğitimcileri ve katılımcıları yürekten kutluyor, başarılarının devamını diliyorum.

Umuyorum ki bu tür gönüllü çalışmalar daha da yaygınlaşır ve gençlerimize katkıda bulunmaya devam eder.

Ahmet Aksoy

Şub 182017
 
2.314 views

TensorFlow ile herkes için makine öğrenmesi

2017 TensorFlow Dev Zirvesi 15 Şubat’ta izleyicileriyle buluştu. Etkinlik, aynı zamanda Mountain View üzerinden canlı olarak da yayınlandı. Bu yayına ait kayıtlara https://events.withgoogle.com/tensorflow-dev-summit/watch-the-videos/#content adresinden erişebilirsiniz. Sözkonusu yayının süresi 8 saat 17 dakikadır.

TensorFlow ile herkes için makine öğrenmesi

2017 TensorFlow Dev Summit

TensorFlow kendi web sayfasında: “sayısal hesaplama için akış grafiklerini kullanan açık kaynaklı bir yazılım kütüphanesi” olarak tanımlanıyor. “Grafik üzerindeki düğümler matematiksel işlemleri temsil ederken, kenarlar, bunların arasında iletişim gerçekleştiren çok boyutlu veri dizilerini (tensor) ifade etmektedir.”

Tensorflow kütüphanesi tek veya birden fazla CPU veya GPU üzerinden çalışabilmektedir. Şu anda kütüphanenin 1.0 sürümü yayınlanmış durumdadır.

Eğer bu kütüphane bilgisayarınızda daha önceden kurulmuşsa sürüm numarasını şu komutla sorgulayabilirsiniz:

TensorFlow kütüphanenizi en güncel (1.0.0) sürümüne yükseltmek istiyorsanız ya da tamamen yeniden kurmak niyetindeyseniz https://www.tensorflow.org/ adresindeki ilgili linkleri takip etmeniz yeterlidir.

Örneğin benim bir önceki TensorFlow sürüm numaram (0.11.0) idi. Bu sürümü yeni sürüme yükseltmek için Ubuntuda sadece şu komut yeterli oldu:

Yeni sürümüm: tensorflow (1.0.0)

Bir çok kütüphanenin yeni sürümüyle ilgili çalışan örnek bulmak çoğu zaman biraz problemlidir. TensorFlow 1.0.0 konusunda şanslıyız. Hemen kodlayıp çalıştırabileceğiniz kodlarla dolu bir github sayfası var: https://github.com/aymericdamien/TensorFlow-Examples. Bazı kodlarda artık kullanılmayan bazı metodlarla karşılaşabilirsiniz. Endişelenmeyin. Hata mesajını araştırdığınızda yanıtlarını hemen bulabiliyorsunuz.

Örneğin, tf.neg() metodu yeni düzenlemede tf.negative() şeklini almış. Yani sadece küçük isim değişiklikleriyle baş etmek zorundasınız.

Kütüphane, örnek veri setlerine de sahip. Elle yazılmış rakam görüntülerinden oluşan “mnist” veri seti, örneklerde yoğun şekilde kullanılıyor. Örneklerin bir çoğunu 8GB belleğe sahip, 4 CPU’lu i5 makineye kurulu Ubuntu 16.04 üzerinde, Python-3.5.2 ile test ettim. Sorunsuz çalışıyorlar.

Eğer bilgisayarınızda GPU kullanma imkanınız varsa, verilen örneklerin sonuçlarını çok kısa sürede alabilirsiniz. Benim gibi sadece CPU kullansanız bile, kodların çalışma süresi aşırı uzun değil.

TensorFlow, “herkesin makine öğrenmesini kolayca uygulayabilmesini” hedefliyor. Bunda da başarılı olacak gibi.

Eğer siz de makine öğrenmesi konularıyla ilgileniyorsanız, TensorFlow’la bir an önce tanışmayı programınıza alın.

Ahmet Aksoy

Kaynaklar:

Kas 112016
 
5.114 views

Python ile Harflerden Resim Kodlamak

Python ile çok farklı alanlarda çalışmak mümkün. Örneğin herhangi bir görüntüyü alıp, onu sadece ASCII tablosunda yer alan bazı işaretleri kullanacak şekilde kodlamak mümkün. İngilizcede bu tür çalışmalar “ASCII Art” terimiyle ifade ediliyor. Dilimizde somut bir karşılığı yok.

Aşağıdaki görüntü, günümüzün popüler dizilerinden birindeki Defne karakterini canlandıran sanatçı Elçin Sangu‘ya ait.

Resim Kodlamak

Bu kodlamayı gerçekleştiren küçük pyhon betiğini https://gist.github.com/cdiener/10491632 adresinden indirebilirsiniz.

Bu betik aslında doğrudan komut modunda çalıştırılmak üzere hazırlanmış. Ben, onun yerine belli bir resmi kullanacak şekilde küçük bir değişiklik yaptım.

chars dizisinin içeriği ile oynayarak tonlamalarda farklı sonuçlar elde etmek mümkün. Benzer şekilde SC, GCF ve WCF parametreleriyle de oynayabilirsiniz.

Kodlar şöyle:

Kullandığım orijinal resimdeki renkler ve gölge kontrastları, yapılan dönüşüm için çok uygun değildi. Siz, kontrastı daha güçlü görseller kullanarak daha çarpıcı sonuçlar elde edebilirsiniz. Parametrelerle de oynamak gerekebilir.

Yapay zeka çalışmalarıyla günümüzde olağanüstü görseller elde edilebiliyor artık. Biz de şimdilik “çöp adam çizer gibi” bir ucundan başlayalım dedik. İleride daha kapsamlı çalışmalar da yapabiliriz fırsat bulursak.

Ne dersiniz?

Deneme sonuçlarınızı lütfen benimle de paylaşın!

Yukarıdaki kodları Ubuntu 16.04 üzerinde, Python 3.5.2 ile çalıştırdım.
Sisteminizde hazır değilse PIL ve numpy kütüphanelerini öncelikle kurmanız gerekeceğini unutmayın.

Ahmet Aksoy

http://gurmezin.com/python-ile-harflerden-resim-kodlamak

Ek açıklama: Yukarıda kodlarını paylaştığım yazarın satırlarına gist.github.com üzerinden ulaşmıştım. Buradaki kodların arasında ayrıntılı lisans bilgileri mevcut değildi. O yüzden sadece kodların orijinal linkini vermekle yetinmiştim.
Ancak yazarın github sayfasında aynı kodlara ilişkin lisans bilgileri de mevcut. Etik olarak bu satırları da sayfaya eklemenin daha doğru olacağını düşünüyorum.
Sonuç itibariyle etkin kod satırlarımızın sayısında bir değişiklik olmayacak zaten.

Kas 032016
 
1.882 views

Türkçe Kelime Köklerinin Sayısal Dağılımı

Türkçe kelime köklerinin içerdiği harf sayısı bir ile yirmi bir arasında değişmektedir. Bu değişimi sayısal olarak grafikleştirdiğimizde karşımıza aşağıdaki gibi bir tablo çıkmaktadır.
Türkçe Kelime Köklerinin Sayısal Dağılımı

En kısa Türkçe kelime kökü “o”dur. Tek karakter uzunluğundadır. (C, I, L, V, X gibi Romen rakamlarını ve tek karakterli bazı atomik işaretleri bu listeye katmıyorum. Onlar da aslında yaşayan Türkçenin bir parçasıdır ama, onları ayrı bir kategoride işlemekte yarar var.)

Harf sayısını ikiye yükselttiğimizde yalın kök sayısı 110 adedi bulur. Güncel kısaltmaları da bu listeye ilave edersek anlamlı kök sayısı 187’ye kadar yükselir.

Kısaltmaları dikkate almadığımızda elde ettiğimiz 2 harfli kökleri şu şekilde listeleyebiliriz:

ad, af, ah, al, an, ar, as, at, ay, az, aç, ağ, be, bu, da, de, do, ed, eh, ek, el, em, en, er, es, et, ev, ey, ez, eğ, eş, fa, ha, he, hu, hı, ıh, ıs, il, im, in, is, it, iv, iz, iç, iğ, iş, ki, la, le, mi, mu, mü, mı, na, ne, nü, od, of, oh, ok, ol, om, on, ot, ov, oy, oz, öc, öd, öf, ök, öl, ön, öp, ör, öt, öv, öz, öç, pi, re, si, su, sü, şu, ta, te, ti, uc, uç, ud, uf, um, un, ur, us, ut, uy, uz, üç, ün, üs, üş, üt, üz, ve, ya, ye

Harf sayısını üçe çıkardığımızda, kök sayısı 936’ya yükselir.

Dört harfli kelime sayısı 3015 olur.

En yüksek sayı 6 harfli köklerdedir: 8232

Bu sayıları bir tablo haline dönüştürelim.

Harf sayısı Kök sayısı
1 1
2 110
3 936
4 3015
5 8224
6 8232
7 8082
8 7172
9 4374
10 2662
11 1340
12 659
13 330
14 164
15 66
16 29
17 7
18 4
19 2
20 1
21 1
22 0

Yukarıdaki rakamları Python diliyle yazdığım betiklerle elde ettim. Grafik içinse matplotlib kütüphanesinden yararlandım.

En uzun köklerimizi de örnekleyelim:

18 harfliler:
elektrokardiyograf
elektrokardiyogram
karıncayiyengiller
yılanyastığıgiller

19 harfliler:
elektroansefalogram
elektrokardiyografi

20 harfli
elektroansefalografi

21 harfli
barbaroshayrettinpaşa
(Bir yer ismi olan bu sözcük aslında bitişik yazılmayabilir. O zaman en uzun kelime kökü 20’de kalmış olur)

Dikkat ederseniz, en uzun Türkçe sözcük köklerinin çoğu aslında Türkçeye dışarıdan girmiş birleşik sözcüklerdir. Ama onları gündelik yaşamımızın içinde kullanmaya devam ediyoruz. Onların ifade ettiği kavramlara karşılık gelen -öz-Türkçe sözcüklerimiz olmadıkça, bizler de bu sözcükleri ister istemez kullanmaya, onları sahiplenmeye devam edeceğiz.

Bu yazı, onaylanmış bir akademik çalışma değildir. Daha çok bir deneme niteliğindedir. Dolayısıyla bazı eksik ve hatalar içerebilir. Eğer böyle bir eksik veya hata tespit ederseniz, lütfen benimle de paylaşın. Sorunları birlikte yorumlayalım. Doğrularını üretelim.

Ahmet Aksoy

May 212016
 
1.104 views

Örnekleriyle Türkçe Sözcüklerde Yapım Ekleri

Türkçede pek çok sözcüğün gövdesi, kök sözcüklere ulama yapılarak oluşturulmuştur. Bu tür eklere “yapım ekleri” denir.

Türkçede 4 tip yapım eki bulunur:

1- Addan ad üreten yapım ekleri
2- Addan fiil üreten yapım ekleri
3- Fiilden ad üreten yapım ekleri
4- Fiilden fiil üreten yapım ekleri

1- Addan ad üreten yapım ekleri:

cağız/ceğiz: adamcağız, çocukcağız, hayvancağız, kadıncağız, kızcağız, yavrucağız, köyceğiz, kızancağız
ca/ce/ça/çe: Türkçe, İngilizce, Arapça, Farsça, Almanca, Portekizce
cı/ci/cu/cü/çı/çi/çu/çü: sanatçı, gözcü, izci, sözcü, yolcu, simitçi, alaycı
cık/cik/cuk/cük: adacık, adamcık, anacık, dalgacık, ihtiyarcık, kapıcık, meydancık, beyincik, bebecik, sözcük, tomurcuk
cıl/cil/cul/cül: insancıl, evcil, bencil, merkezcil, yosuncul, ölümcül, öncül, bütüncül, kötücül
daş/deş/taş/teş: yurttaş, sırdaş, çağdaş, arkadaş, paydaş, vatandaş, yandaş, yoldaş, ülküdaş, özdeş, kardeş, kökteş, gönüldeş
ımsı/imsi/umsu/ümsü: acımsı,ekşimsi, tatlımsı, siyahımsı, masalımsı, beyazımsı, kadınımsı, esmerimsi, fiilimsi, mavimsi, morumsu, öykümsü
ımtırak/imtrak/umtırak/ümtırak: yeşilimtırak, sarımtırak, beyazımtırak, mavimtırak, siyahımtırak, ekşimtırak, morumtırak
ıncı/inci/uncu/üncü: birinci, ikinci, üçüncü, dördüncü, beşinci, altıncı, dokuzuncu, onuncu
ıt/it/ut/üt: yaşıt, bağıt, yazıt, özüt, dikit, somut, gömüt
lı/li/lu/lü: şehirli, paralı, akıllı, ağaçlı, kültürlü, evli, devamlı, fiyakalı, cilalı, efkârlı, cesaretli, emniyetli, güllü, hüzünlü
lık/lik/luk/lük: odunluk, kömürlük, sabahlık, kitaplık, tuzluk, fidanlık, ağaçlık, gelinlik, askerlik, aksilik, abonelik, bademlik
man/men: uzman, Türkmen, kocaman, toraman, katman, yazman, ataman, evcimen, gökmen, küçümen
sal/sel: kimyasal, anıtsal, anlamsal, açısal, hukuksal, kalıtımsal, fiziksel, bedensel, belgesel, çözümsel, geleneksel
sıl/sil/sul/sül: varsıl, dişsil, yoksul, damaksıl
sız/siz/suz/süz: susuz, parasız, vicdansız, ilkesiz, yersiz, yurtsuz, evsiz, barksız, kültürsüz, hükümsüz, güçsüz, çözümsüz
şın: akşın, karaşın, sarışın
tay: danıştay, kamutay, kurultay, sayıştay, yargıtay

2- Addan fiil üreten yapım ekleri

a: ada, boşa, kana, yaşa
al/el: azal, çoğal, daral, kısal, kocal, sağal, ufal, yoğal, dikel, dincel, düzel, incel, körel, sertel, seyrel, yönel, yücel
ar/er: ağar, bolar, bozar, kabar, kızar, sarar, yeşer
at/et: boşat, boyat, kanat, kocat, yaşat, gözet, yönet
da/de: cayırda, cazırda, cırılda,cızırda,çağılda, çatırda, çıngılda, hışırda, horulda, kıkırda, zırılda, gümbürde
ık/ik: acık, ayık, birik, gecik, gözük
ımsa/imse: anımsa, ayrımsa, azımsa, kaçımsa, sayrımsa, benimse, mühimse
kır/kir/kur/kür: fışkır, haykır, hıçkır, höykür, püfkür, püskür, sümkür
l: doğrul, eğril, sivril
la/le: alala, ayala, cilala, çapa, ıslıkla, kolala, rahatla, sırala, sula, tamamla, taşla, tavla, tıkla, tuzla, uğurla, zorla, gölgele, dizle
lan/len: akıllan, aklan, allan, avlan, aydınlan, coşkulan, duygulan, hoşlan, kanatlan, bilgilen, dertlen, hüzünlen
laş/leş: abanozlaş, ahmaklaş, aklaş, fenalaş, inatlaş, telefonlaş, aktifleş, cimrileş, çölleş, dertleş, gençleş, zenginleş
sa/se: çoksa, ıraksa, kapsa, susa, yakınsa, benimse, garipse, mühimse, önemse, örnekse, özümse

3- Fiilden ad üreten yapım ekleri

acak/ecek: açacak, alacak, gelecek, giyecek, yakacak, verecek
ak: durak, kaçak, yatak, yutak
ar/er: gider, tutar
ca/ce: düşünce, eğlence, sakınca
ga/ge: bilge, bölge, süpürge
gı/gi/gu/gü: algı, askı, çalgı, duygu, saygı, sevgi
gıç/giç: bilgiç, dalgıç
gın/gin/gun/gün: bezgin, bilgin, bitkin, dalgın, solgun, yorgun, ölgün, süzgün
ı/i/u/ü: çatı, doğu, koku, ölü, sevi, yapı, yazı
ıcı/ici/ucu/ücü: alıcı, görücü, satıcı, yapıcı, yazıcı
ık/ik/uk/ük: açık, göçük, kesik, seçik, soluk
ım/im/um/üm: onarım, oturum, ölüm, ölçüm, sayım, seçim
ın/in/un/ün: akın, ekin, tütün, yığın
ıntı/inti/untu/üntü: akıntı, çarpıntı, çıkıntı, döküntü, kesinti, yığıntı, görüntü
ır/ir/ur/ür: yatır, gelir, okur
ış/iş/uş/üş: oturuş, sürüş, veriş, yürüyüş,
ıt/it/ut/üt: geçit, dikit, ölçüt, sarkıt, yakıt
kan/gan: çalışkan, kaygan, unutkan
ma/me: açma, gülme, kapama, konuşma, serpme, sevme, uyuma
mak/mek: açmak, gelmek, gitmek, kapamak, uyumak
ınç/inç/unç/ünç: gülünç, sevinç, basınç, erinç
tı/ti: belirti, karartı, kızartı, morartı

4- Fiilden fiil üreten yapım ekleri

ala/ele: durala, itele, kovala, tepele
dır/dir/dur/dür: açtır, astır, bezdir, bildir, buldur, çizdir, deldir, koştur, soktur, sordur, yazdır
l: atıl, ayrıl, bozul, gidil, sayıl, soyul, tutul, yazıl
n: aran, başlan, bilin, gerin, sürün, taran, taşın, yıkan
r: batır, çıkar, düşür, içir, kaçır, kopar, uçur
ş: atış, bekleş, dövüş, görüş, itiş, selamlaş, seviş, tartış, uçuş, yazış
t: acıt, akıt, anlat, arat, kızart, okut, yürüt

Ahmet Aksoy

Mar 292016
 
1.163 views

Python Pygame ve Thread Uygulaması

Python Pygame ve Thread Uygulaması

Al Sweigart tarafından Python 2 ve 3 için uyumlu şekilde yazılmış “threadworms” isimli bir uygulama var. Proje https://github.com/asweigart/threadworms adresinde paylaşılıyor.

Programın içinde ayrıntılı açıklamaların bulunması özellikle thread, pygame veya Python konusunda öğretici örnek arayanlar için onu daha değerli hale getiriyor.

Açıklamalar İngilizce. Ben de dil sorunu olan arkadaşlarımız için kodların arasına serpiştirilmiş açıklamaları büyük oranda Türkçeleştirdim. Kalan kısmını da en kısa zamanda halletmeye çalışacağım.

Tamamlanmamamış haliyle bile bu açıklamaların işe yarayacağını düşünüyorum.

Türkçe açıklamaları içeren dosyaya https://github.com/ahmetax/threadworms adresinden ulaşabilirsiniz. Orijinal kod dosyasının adı: threadworms.py. Türkçe açıklamaları içeren dosya adı ise: threadworms-tr.py. Her iki dosyadaki kodlar aynı. Sadece açıklamalar ve bazı parametreler farklı.

Bu program, thread kullanımı açısından da çok yararlı ve güzel bir örnek. Solucanların işgal ettiği hücrelerin çakışmamasını sağlayan kilit mekanizmaları adım adım açıklanıyor.

Solucan sayısını, kullanılan renkleri, hücre boyutlarını, yatay ve düşey hücre sayısını değiştirmeniz mümkün. Solucanların hızını da ayarlayabilirsiniz.

setGridSquares(squares) satırının başındaki # işaretini kaldırırsanız, squares değişkeni tarafından tanımlanan engeller ızgara üzerinde etkin hale gelir.

Thread ve/veya pygame konusunda kendinizi geliştirmek istiyorsanız, bu örneği mutlaka inceleyin!

Ahmet Aksoy