Nis 072016
 
3.455 views

Lazarus ve Python Entegrasyonu

Lazarus ve Python entegrasyonu için çok basit bir örnek yapalım.

Python, vereceğimiz tam sayıların faktöryellerini döndürsün. Bunun için Python ile birkaç satırlık bir kod oluşturalım hemen:

Kod dosyamızın adı lazarus_test.py olsun.

Lazarus tarafında ise hem istediğimiz tam sayıyı seçebilelim, hem de Python’dan dönen yanıtları sergileyebilelim.

Lazarus kodlarımız da şöyle olsun:

Form1 görüntüsü:

lazarus ve python

Bu da 50 faktöryel hesaplanmış hali.

Lazarus ve python entegrasyonu

Gördüğünüz gibi mekanizma çok basit bir şekilde çalıştırılabiliyor. Lazarus, python ile elde edilen sonuçları sergileme açısından pratik ve görsel bir araç olarak kullanılabilir.

Elbette ben eski bir Delphi kullanıcısı olmanın avantajlarını yaşıyorum. Ama siz Delphi veya Pascal ile daha önceden tanışmadıysanız, yeni bir dil öğrenmenin size ne kadar yük ve yarar sağlayacağını ayrıca dikkate almalısınız.

Konuyla ilgili sorularınız olursa, yorum alanından bana yöneltebilirsiniz.

Lazarus önünüzde yeni ufuklar açabilir. Deneyin, görün!

Ahmet Aksoy

Nis 062016
 
3.546 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.874 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