Python ve Raporlama Araçları

Bir kaç haftadır üzerinde çalıştığım maliyet programı için bir raporlama aracına ihtiyaç duyuyordum. Daha önceleri PyQt arayüz kütüphanesinde raporlama ve yazıcıdan çıktı alma gibi işlemleri html sayfalar üreterek yapmaya çalışıyordum fakat bu yöntem bir yerde tıkanıp kalıyor. Özellikler birden fazla sayfası olan ve Sayfalarda Başlık (Header) ve sayfa sonu (footer) bölümleri olması gerekiyorsa bu yöntem tam bir fiyaskoya dönüşebiliyor. Bende Python ile kullanabileceğim iyi bir raporlama aracı arayışına koyuldum ve gördümki Python'u direk destekleyen doğru dürüst bir raporlama aracı yok... Desteklediğini söyleyen araçlarda, anlaşılmaz dökümanlar ve C kaynak kodlarıyla dağıtılıyor olması benim gibi Python'dan başka bir dil bilmeyen biri için oradan koşarak uzaklaşma sebebi.
Neyse derdimi anlatmayı başardım sanırım. Şimdi gelelim asıl konuya... Uzun araştırmalar sonucunda Python ile kullanabileceğim iki tane raporlama aracı buldum. Bunlardan biri CrystalReports diğeri ise NCreport... Bu raporlama araçlarının ikiside ücretli. CrystalReports'u .Net programcıları iyi bilirler. NCreport ise Qt kütüphanesi ile yazılmış ve C++ ile kullanılabilen ve ayrıca Linux ve Mac platformlarındada kullanabileceğiniz çok kaliteli bir raporlama aracı... NCreport download sayfasında python modülüde bulunuyor fakat C++ ile yazılmış bu modülü ben derlemeyi başaramadım.
Bu yazıda bu iki raporlama aracını nasıl kullandığımı anlatmaya çalışacağım.

Öncelikle NCreport'tan başlayalım;
NCreport'un windows için son sürümünü http://www.nocisoft.com/index.php/downloads.html?file=tl_files/download/ncreport/public/current/NCReport2.6.0_win32_mingw_eval.exe adresinden indirebilirsiniz. Programı kurduğunuzda şöyle bir görüntü ile karşılaşacaksınız
.

Grafik kabusum ve image'ların laneti

Yazılım konusunda ne kadar tecrübeli olursanız olun, eğer tasarım konusunda kötüyseniz malesef yaptığınız işlere karşıdan bakıldığında çokta taktir edici tepkilerle karşılaşmayacağınız aşikardır.
Kod yazmayı çok seviyorum benim için bir iş veya bir hobiden çok yaşam tarzı haline geldi. Gel gelelimki en büyük korkum resim dosyaları onların pozisyonları, hele hele ki gimp veya photoshop ortamında bir resim dosyası oluştumam gerekiyorsa elim ayağıma karışıyor. Bu aslında ressamlık gibi bişey sonradan kazanılamıyor sanırım. İnsanın genlerinde olmalı bu yetenek ve hayal gücü.
Bu konuda en son blogumun header kısmındaki Python logosunu yaparken sıkıntıya düştüm. Saatlerce acaba oraya ne koysam diye düşündükten sonra bir python logosu koymaya karar verdim.Netten bir python logosu buldum. Açtım gimp'i başladım kurcalamaya... İşim bittiğinde bir şaheser yapmış olmanın gururuyla blogumun baş köşesine koydum logomu. Hemen msn'i açıp bir dostun fikirlerini almaktaydı sıra. O günkü talihli sevgili dostum Murat TİKİL oldu. (Bu arada kendiside web tasarımı ve grafik konusunda iyidir) Murat logoyu yorumlamakta fazla zorlanmadı "Berbat" kelimesi herşeyi anlatıyordu :))
Saolsun sonra kendisi gimp ile bir logo çalışması yapmış bana mail yoluyla göndermiş hotmail adresimi hiç kullanmadığım için ancak 2 gün sonra tesadüfen gördüm ve hemen logoyu ait olduğu yere yerleştirdim. Buradan Murat'a sevgi ve saygılarımı gönderiyorum.

Yeniden V-edit



Uzun zamandan sonra V-edit projesine devam etme kararı aldım. En son 2008 yılında python ve tkinter kullanarak yaptığım acemice bir işti. O günden bugüne köprünün altından çok sular geçti. V-edit programı daha görsel ve daha yetenekli bir hal almak üzere. İlk V-edit'i python ve tkinter kullanarak yazmıştım. İkinci sürümde ise arayüzü Pyqt ile tasarladım. Proje daha çok yeni hatta tam olarak kafamda şekillenmedi ama video editörleri arasında oldukça popüler olan Total video converter programının yeteneklerini örnek alıyorum. Belkide ona açık kaynak bir alternatif olur ileride kim bilir ;)
Hiç iyi bir blog yazarı değilim ama artık ciddi ciddi programlamaya dair paylaşımlarda bulunmayı düşünüyorum. V-edit'in gelişim süreci ile alakalı adımlarıda buradan paylaşmayı düşünüyorum değerli yorum ve tavsiyeleriniz benim için çok önemli. şimdilik kalın sağlıcakla...

MySQL'den sqlite3'e veri aktarma

Buaralar bir sözlük uygulaması ile uğraşıyorum. Bulduğum sözlük veritabanı MySQL üzerinde çalışıyordu. Bende uygulamamda MySQL üzerine yoğunlaştım ama sonradan gördüm ki MySQL hernekadar performanslıda olsa bu iş MySQL ile olmaz. Çünkü sözlüğü kullanabilmek için birde bilgisayara MySQL kurulumu yapmak gerekiyor ve tablo oluşturup veritabanı dosyasını yüklemek gerekiyordu. Buda bir son kullanıcının içinden çıkamayacağı işlerdi. Bende farklı çözümler aramaya koyuldum. En mantıklı çözüm sqlite kullanmaktı fakat daha önce hiç çalışmadığım bir veritabanı ve performansı nasıldır acaba diye düşünürken birde MySQL de bulunan tabloyu sqlite veritabanına nasıl aktarayım sorusuyla başbaşa kaldım.
Biraz düşünüp biraz kaşındıktan sonra şöyle bir kod yazdım:




V-edit ses ve görüntü düzenleme programı.



V-edit'i tasarlarken kolay kullanımlı basit bir arayüze sahip ve yaptığı işten maksimum verim alabilmeyi hedefledim.

V-edit'in arayüzünün genel görünüşü resimdeki gibidir.

V-edit'in genel özellikleri:

1- çeşitli ses ve video formatları arasında dönüşüm yapabilir.

2-ses ve video dosyalarını istenilen süreler arasında kırpabilir.

3-video dosyalarının içine altyazı dosyalarını gömebilir.

4- mux özelliği sayesinde avi formatındaki medya dosyalarının ses kanallarını silip üzerine yeni bir ses kanalı ekleyebilir. (dublaj).