Şub 022017
 
5.105 views

Python ile Mozaik Resimler

Python, her alanda çok güçlü kütüphanelere sahip bir dil. Grafik kütüphaneleri açısından da aynı durum geçerli. Bunların başında is “matplotlib” geliyor.

Bu yazımda, sözünü ettiğim kütüphanenin “scatter” metodunu ele alacağım.

Python ile Mozaik Resimler

Angelina Jolie

Matplotlib kütüphanesi çok geniş ve kapsamlıdır. İstatistik veya derin öğrenme çalışmalarının görselleştirilmesinde yoğun şekilde kullanılır.

Yazıyı fazla uzatmamak için kodların ayrıntılı açıklamasına girmeyeceğim. Satır aralarına bazı ipuçları koydum. Diğer ayrıntıları da ilgili kütüphanelere ait açıklamalardan bulabilirsiniz. Bu kütüphanelerden etkin bir şekilde yararlanabilmek için onları kullanmak gerekir. Farklı parametreleri, farklı değerlerle denemekte yarar var.

Scatter metodundaki “marker” parametresini burada biraz açmak istiyorum:
Bu marker (işaret) grafik üzerindeki işaretleme biçimini tarif eder. İki tür “marker” bulunur.

  • 1- İçi dolu işaretler: ‘8><^vodDHh*ps'
  • 2- İçi boş işaretler: ‘,.1234 _x+’ 01234567

Tırnak içinde grup halinde gösterilen işaretlerin her biri tek olarak seçilip kullanılmalıdır. Örneğin: ‘8’, ‘o’, ‘x’. Boş işaretlerden bazıları da tırnaksız rakamlar halindedir.

Kodları Python 3.5.2 ile test ettim.

Parametrelerle oynayarak çok ilginç sonuçlar elde edebilirsiniz.

Matplotlib, pillow ve numpy kütüphanelerini Ubuntu 16.04 üzerinde aşağıdaki komutlarla kurmanız gerekir:

  • sudo apt install python3-matplotlib
  • sudo apt install python3-pil
  • sudo pip3 install numpy

Ahmet Aksoy

Not: Yukarıdaki kodlar için Christien Diener‘in github pyart sayfasında verdiği kodları temel alıp, biraz basitleştirdim.

Kaynaklar:

Tem 102016
 
2.862 views

Ubuntu 16.04 Hikayeleri No-03

Eski sistemlerimde yerel olarak genellikle MySQL veritabanı kullandım. PhpMyadmin ile kolayca işlem yapabilmek bende kalıcı bir alışkanlık yarattı sanırım. Bir başka alışkanlığım ise, yerel MySQL’i paralo vermeksizin kullanmak.
Bu, güvenli bir yöntem olmamakla birlikte işin kolayına kaçmak ağır basıyor.

MySQL 5.7 parolasız root bağlantısı kurmak

Lafı hiç dolandırmaya gerek yok. MySQL 5.7 sürümü, root için boş parola verdiğinizde işlem yapmanıza izin vermiyor. Ya da en azından zorluk çıkarıyor.

/etc/phpmyadmin/config.inc.php dosyasında

Ubuntu 16.04 Hikayeleri No-03

satırını düzenlediğinizde

komutuyla veritabanına sorunsuz erişebilirsiniz. Ama ne phpmyadmin, ne MySQL-workbench, ne de adminer ile veritabanına erişmek mümkün olmuyor.

Bu nedenle ben de en pratik çözümü uygulayıp MySQL 5.6’ya geri dönüş yaptım.

Şu anda veritabanıma phpmyadmin üzerinden parola girmeye gerek kalmadan sorunsuz girebiliyorum.

Ubuntu 16.04’e yüklü MySQL 5.7’yi kaldırmak pek te kolay bir iş değil. Öncelikle mevcut sürümü tamamiyle kaldırmanız gerekli. Aksi halde alt sürümü sağlıklı bir şekilde kurmanız mümkün olmuyor.

Benim kullandığım yöntem özet olarak şu şekilde. Sizin sisteminizde farklı işlemler yapmanız gerekebilir. Önemli olan eski sürümü tamamiyle temizlemeden kuruluma geçmemek.

Aklınızda bulunsun!

Ahmet Aksoy

Referans: ubuntuforums.org/showthread.php?t=2321196

Haz 152016
 
3.889 views

Ubuntu 16.04 Kurulumu

Son günlerde, özellikle çocukların ve gençlerin ilgisini çekebilecek, tutarlı ve kullanıcı dostu bir linux sürümü arıyordum. Bana Debian Jessie sürümünü önermişlerdi.

Bu sürümü bulup ISO kodlarını indirdim. Ama kurulumu gerçekleştirebilmek için elde Ubuntu 15 veya GNU/Linux işletim sistemi olması, ya da iki ayrı flash disk birden kullanma gereği ortaya çıkınca mecburen vazgeçtim.

Debian Jessie yerine kullanabileceğim bir başka seçenek olup olmadığına bakınırken Edubuntu diye bir dağıtıma rasladım. Aslında bu da ubuntu; ancak, değişik yaş gruplarına ve öğretmenlere yönelik bazı uygulama paketlerini bu dağıtıma eklemişler ve adına da edubuntu demişler.

ubuntu

Image credits: jongtegal.blogspot.com

Bunun üzerine edubuntu 14.04 LTS dağıtımını kurmaya karar verdim.

İlk önce harici diskimde bu kurulum için yer açmam gerekiyordu. Bazı dosyaları silip, bazılarını da başka disklere aktararak yaklaşık 100GBlık bir alan yarattım. Mevcut disk ntfs formatlı olduğu için dosyaları birleştirme ve yeni bir bölüm oluşturma işlemlerini Windows üzerinden yaptım.

Bu işlemler için EaseUSPartition Manager isimli programdan yararlandım. İşlemler kesintisiz 13.5 saat sürdü.

Edubuntu kurulumu sıfırdan yapılmak zorunda değil. http://edubuntu.org sitesinde bu dağıtımla ve nasıl kurulacağıyla ilgili ayrıntılı bilgiler mevcut.

Ben, en geniş kurulumu tercih ettim.

Kurulum yarım saat içinde tamamlandı.

Bilgisayarımı yeniden başlattığımda ubuntu yerine edubuntu yazıyor. Kapatırken de öyle.

Ne yazık ki edubuntu ile ilgili inceleme çalışmalarına başlama fırsatı bile bulamadan sistemimi Ubuntu 16.04 LTS sürümüne yükseltme ihtiyacı doğdu. Bunun en önemli sebebi, sürüm 14.04’te python 3.5.1 kullanarak idle programını bir türlü çalıştıramamış olmamdı. Oysa yapacağım bir belgeleme çalışmasında mutlaka bu uygulamayı kullanmam gerekiyordu.

Facebook üzerindeki grup yazışmaları, çok kesin olmamakla beraber ubuntu 16.04’ün bunu gerçekleştirdiği şeklinde bilgiler içeriyor. Bu nedenle ben de yeni kurduğum edubuntu (aslında ubuntu) 14.04 sistemimi 16.04’e yükseltme kararı aldım.

http://www.tecmint.com/upgrade-ubuntu-14-04-to-16-04/ adresinde bu işlemlerin nasıl yapılacağı ayrıntılı olarak anlatılıyor. Ben de bu belgeden yararlandım. Uyguladığım işlemler sırasıyla şu şekilde:

Bu işlemler bilgisayarınızın durumuna bağlı olarak bir kaç saat sürebilir. Benim yükseltme işlemim 2.5 saat sürdü.

Şimdi bilgisayarımın sistem penceresinde, Ubuntu 16.04 LTS olduğu belgeleniyor. Ama açılış ve kapanış ekranlarında hala edubuntu yazıyor.

Elbette ilk yaptığım şeylerden biri idle programını kontrol etmekti. Bir uçbirim açıp “idle3” yazdım ve enter tuşuna bastım. Sonuç aşağıda:

Idle3

Yaptığım yükseltmenin ne kadar verimli olduğunu ancak zaman içinde öğreneceğim.

Ancak bu arada önemli bir ayrıntı dikkatimi çekti: bilgisayarım 64-bitlik olduğu halde, ubuntu 16.04 sürümüm 32-bitlik. Daha önce kurduğum edubuntunun 32-bit mi, yoksa 64-bit mi olduğunu anımsayamıyorum. Büyük olasılıkla 32-bittir. Bu durumu düzeltmenin fazla zor olacağını sanmıyorum. Belki de edubuntunun kurduğu bazı uygulamalardan vazgeçmem gerekecek. Ya da şimdilik böyle kullanmaya devam edeceğim.

Ahmet Aksoy

Not: Kullandığım dizüstü bilgisayar 5-6 yıllık. Artık eskisine kıyasla daha çabuk ısınıyor. USB portları da aşınmış durumda. Neredeyse her gün ve günde 2 kez açılıp tekrar toplandığı için kaçınılmaz bir durum bu. O yüzden harici diskimle temas sorunları yaşayabiliyorum. Eğer siz de benzer sorunlar yaşıyorsanız, sisteminizin kontrol dışı kapanması nedeniyle oluşabilecek boot sorunlarına karşı bir kurtarma aracı olarak mutlaka boot-repair uygulamasını bilgisayarınıza kurun.

Çalıştırmak için terminalden “boot-repair” komutunu vermeniz yeterli.
Referans: help.ubuntu.com/community/Boot-repair

Nis 062016
 
3.619 views

Lazarus ile ilk programım

Lazarus ile ilk programımEvet, Lazarus ile önceki gün yazmaya başladığım programı bitirdim. Programın adı Depocu. Bu program, kişisel notlarımı tuttuğum küçük bir uygulama. Tekrar ihtiyaç duyabileceğim pratik bilgileri bu uygulamayla elimin altında tutuyor, onları depoluyorum.

Veri tabanım MySQL. Windows üzerindeki veritabanlarımı toptan yedekleyip Ubuntuya aktardım. Depocu veritabanı da böylece hazır bir şekilde yeni işletim sistemime aktarılmış oldu.

Aslında tuttuğum bilgiler aşırı korumaya ihtiyaç duyan şeyler değil. Bilgi miktarı da çok fazla sayılmaz. Yani veritabanımın MySQL olması bile gerekmiyor. Belki ileride SQLite3’e geçerim. Ama şu anda MySQL’le devam etmeyi tercih ediyorum.

Depocuda, MySQL veritabanına bağlanmak için önce Lazarusun ön tanımlı SQLdb bileşenlerini kullandım. Hiç sorun çıkmadı. Gerekli tabloya ve içindeki verilere kolayca eriştim. Ama iş verileri güncellemeye, yeni veriler girmeye gelince durum biraz değişti. Biraz zaman ayırsam, ona da mutlaka bir çözüm bulurdum. Ama, daha kolayını seçtim ve Lazarusa, Delphide de kullandığım ZEOSLib bileşenlerini yükledim.

Yeni veri giriş ve güncelleme sorunu da böylece ortadan kalkmış oldu.

Programda not almış olduğum bazı internet adreslerine tek bir tuşla erişim özelliği bulunuyor. Windows ortamında bunu özel bir fonksiyonla halletmiştim. Ubuntuda bu işin de kolayına kaçtım. İnternet bağlantı bileşenleriyle uğraşmak yerine, sistemde zaten yüklü olan firefoxu komut modunda tetikleyip istediğim adresi parametre olarak yüklemesini sağladım. Daha fazlasına ihtiyacım yok zaten!

Böylece neredeyse 48 saat içinde araştırmaları, testleri ve Facebook yazışmalarıyla birlikte programımı kullanılabilir hale getirmiş oldum.

Bu arada debug bilgileriyle birlikte 50 küsur MB tutan çalışabilir kod dosyasını, debug bilgilerinden arındırarak 3 MB’a düşürdüm. Daha da küçültme olanağı bulunduğunu biliyorum ama, şimdilik gerek yok!

Önümüzdeki günlerde Lazarusu Windows ortamına da kuracağım. Böylece linux altında geliştirdiğim kodları Windows ortamında da derleyip aynen kullanabileceğim. Delphi programım Windows 10 kazası yüzünden silinmişti. Aylardır yeniden kurmamı bekliyor ama, belki de bundan sonra ona hiç ihtiyaç duymayacağım.

Bu arada bir başka gelişme daha oldu! Python ile Lazarusu birlikte kullanabileceğim. Lazarusu belki de bir tür menü ve raporlama aracı olarak, pythonu da internet erişimi, veri madenciliği, karmaşık hesaplamalar, oyunlar vb için kullanacağım.

Henüz hayallerimi fazla zorlamıyorum. Ama biliyorum ki, güzel şeyler olacak!

Gelişmelerden haberdar olmak için, beni izlemeye devam edin!

Ahmet Aksoy

Nis 042016
 
2.914 views

Ubuntu ve Lazarus

Ubuntu ve LazarusGeçen yıldan beri yazılım dili olarak Python ile uğraşıyorum. Özellikle veri madenciliği açısından olağanüstü olanaklar sunuyor. Pek çok alanda çok güçlü kütüphanelere sahip.

Ama bunca gücüne rağmen, Python, görsel programcılıktan uzak durmakta ısrarcı gibi. Doğrudan desteklediği neredeyse hiç bir görsel araç yok. Resmi olarak desteklediği belirtilen tkinter ise oldukça zayıf. Python programcıları ister istemez PyQt gibi harici çözümlere razı olmak zorundalar. Ve bu nedenle, ne kadar popüler olursa olsun, pythonun javayı yakalamada pek fazla şansı olmayacak gibi.

Pythonu komut modunda gayet verimli bir şekilde kullanabiliyorum. Bu açıdan bir sıkıntım yok. Ama öte yandan, uzun yıllar boyunca yazılım dili olarak Delphi-7 kullandım. Sadece kendim için yazdığım bir sürü ufak tefek uygulamalar var. Hatta bu uygulamalardan bazıları artık benim için “olmazsa olmaz!” hale gelmiş. İşte bu uygulamaları da Python ile yeniden yazabilmek istiyorum. Ama bir türlü aradığım araçları bulamıyorum.

Son günlerde yaşadığım bir başka önemli değişiklik te kullandığım işletim sistemi ile ilgili.

Bir kaç ay önce yanlışlıkla Windows 10 kurulumunu onayladığımdan bu yana bir türlü başım beladan kurtulmadı. Aynı gün içinde bilgisayarımın 5 – 6 kez çöktüğüne defalarca şahit oldum. Şu sıralar Windows “ehven-i şer” noktasına gelmiş olsa da, bu gelişmeler bana kesinlikle linuxa geçme kararı aldırdı. Bunu uygulamaya da soktum.

Şu anda dizüstü bilgisayarımda hem Windows 10, hem de Ubuntu 14.04 LTS yüklü. Birincil sistemim Ubuntu. Ancak çok gerekli olduğunda Windowsa geçiyorum.

İnternet bağlantılarımla ilgili hiç bir sıkıntı yaşamıyorum. Hatta çok daha rahatım. Gezgin olarak Chromium kullanıyorum.

Maillerimi Mozilla Thunderbird ile takip ediyordum. Ubuntuda da aynı programı kullanıyorum şimdi. Sadece fontlarla ilgili küçük sıkıntılarım var. Ama onu da kısa sürede çözeceğim.

Farklı Python sürümleri ve PyCharm elimin altında. Skype kurulu. Uzak erişim için TeamWiver kullanıyorum. Son dönemde ilgilenmeye başladığım Scratch 2 programı da kullanıma hazır bekliyor.

Evet, asıl eksikliğini duyduklarım, Delphi 7 ile kendim için yazmış olduğum o küçük programcıklar… Pythonun görsel araçlarına o yüzden ihtiyaç duyuyorum.

Ama iki gün önce önümde yepyeni bir sayfa açıldı: Lazarus.

Lazarus’un adını uzun zamandır biliyordum. Ama zaten lisanslı bir Delphi 7 kullanıcısı olduğum için pek te ilgilenmemiştim. İki gün önce GNU/Linux Türkiye grubuna sorduğum bir soruya cevaben bazı arkadaşlar Lazarus programını kullanmamı önerdiler. Hemen kurdum. Neredeyse bildiğim Delphi’nin aynısı. Hiç yabancılık çekmedim.

Elbette bazı ufak-tefek uyumsuzluklar çıkabilir. Buna hazırım. Ama bu kadar güzel bir çözüm bulabileceğimi hayal bile etmiyordum açıkçası.

Çok acelem yok ama, ilk programıma başladım bile. Eğer Delphide kullandığım bileşenlerin hepsi Lazarusta da mevcut olsaydı, Delphi kodlarını Lazarusa hemen dönüştürmek mümkün olacaktı.

Tamamiyle yeniden yazmam da en fazla bir-iki günümü alacak.

Gelişmeleri buradan duyurmaya devam edeceğim. Hatta bazı kodları buradan sizlerle de paylaşabilirim. Eğer bir Delphi kullanıcısıysanız ve linuxa geçmeyi planlıyorsanız, Lazarusun size Delphiyi pek fazla aratmayacağını rahatlıkla söyleyebilirim.

Ahmet Aksoy