Haz 112016
 
4.448 views

Python için Yeni bir Çalışma Çerçevesi Kivy

Python‘un bana göre en zayıf tarafı, doğrudan desteklediği güçlü bir görsel çalışma çerçevesi (framework) olmamasıdır. TkInter bu konuda oldukça zayıf kalmaktadır. Qt tabanlı diğer çözümler ise, hem dolaylı hem de zordur.

Kivy bu boşluğu doldurmaya aday bir girişim. Henüz yeterince kullanıcı dostu olduğunu söylemek kolay değil. Ama, hiç olmazsa yeni bir seçenek sunuyor. Üstelik bu seçenek, mobil cihazlara yönelik çalışmalara da açık.

Bu yazımda size Ubuntu 14.04 LTS işletim sistemi üzerinde, Python 3.5.1 sürümü için Kivy 1.9.2 kurulumunun nasıl yapılacağını anlatacağım.

Pythonun son sürümünün bilgisayarınızda zaten kurulu olduğunu varsayıyorum. Ayrıca virtualenv de kurulu olmalıdır. (Virtualenv uygulaması, sistemden bağımsız sanal bir yapı oluşturur. Genel işleyişi etkilemeden bu ortamda istediğiniz herşeyi yapabilir. İşiniz bittiğinde de geride hiç bir çöp bırakmadan yaptıklarınızı silip temizleyebilirsiniz.)

Kurulumumuzu “sanal ortam” (virtualenv) ile yapılandıracağız.

Python için Yeni bir Çalışma Çerçevesi Kivy

Kurulumumuzu tamamladık.

Şimdi de klasik “Merhaba Dünya” kodlarımızı hazırlayalım:

Şimdi de çalıştıralım:

merhaba.py

Elbette kivy’nin tek yaptığı bu değil.

https://kivy.org anasayfasını incelerseniz, örnek kodlar ve açıklamalar bulabilirsiniz.

Bir sonraki yazımda, daha kapsamlı kivy kod örneklerine yer vereceğim.


Ahmet Aksoy

Not: Eğer kodlarınızı çalıştırdığınızda aşağıdaki gibi hata mesajları alırsanız, aldırmayın. Bu tür mesajlar sizin bilgisayarınızda mevcut (aktif) olmayan giriş-çıkış cihazlarından kaynaklanıyordur:
PermissionError: [Errno 13] Permission denied: ‘/dev/input/event5’

Not2: Yukarıdaki yazıyı, Kivy konusunda uzman olduğum için değil, kendi bilgisayarıma kurarken harcadığım deneme-yanılma sürelerini sizlerin de harcama olasılığını azaltmak amacıyla yazdım. Ne yazık ki Kivy hakkında yeterince aydınlatıcı doküman bulmak kolay değil. Ama bu şekilde deneyimlerimizi birbirimizle paylaşırsak, daha kolay ve hızlı çözümler elde edebiliriz.

Nis 062016
 
3.403 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.768 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