Delphi etiketine sahip kayıtlar gösteriliyor. Tüm kayıtları göster
Delphi etiketine sahip kayıtlar gösteriliyor. Tüm kayıtları göster

10 Ocak 2015 Cumartesi

Ubuntu Linux üzerinde Delphi7 çalışırmı?

Bu soruyu merak etmiştim. Delphi7 Enterprise sürümünü kurup sizin için denedim. Bilmeyenler için söyleyim, Bir windows programını linux tabanlı bir işletim sisteminde kurabilmek ve çalıştırabilmek için wine isimli ara yazılım platformuna (öykünücüye) ihtiyaç vardır. Bende ubuntu işletim sistemi üzerinde wine platformunu kullarak Delphi7 yi sizin için kurup denedim. Aşağıdaki görüntüde olduğu gibi bir sıkıntı yaşamadan kurup başarılı bir şekilde çalıştırdım. Meraklısına duyurulur. ;)

Resmin üzerine tıklayara daha geniş boyutta görebilirsiniz.



11 Mayıs 2014 Pazar

Firebird Veritabanı için Alias Kullanımı ve Lazarus Örneği

      Eski Delphi kullanıcıları hatırlayacaklardır BDE üzerinde Alias kullanımını. Açıkçası BDE üzerinden paradox ve interbase kullandığım zamanlar bilinçli veya bilinçsiz alias kullanım alışkanlığı oluşmuştu. Yıllardır nedense pek kullanma gereği hissetmedikmi nedir Firebird veritabanında alias kullanmadan veritabanına erişimi tercih ettim. Galiba kendimizi anlamsız bir şekilde veritabanına doğrudan yolunu yazarak erişmenin daha sağlam olduğunu düşündük. Aslında kısmen bu yersiz düşüncenin doğruluk payı olabilir. Şayet veritabanınız geliştirme aşamasında sürekli dizin değiştirme gibi bir işleme tabi tutuluyorsa biraz anlamlı olabilir. Ancak yine de yersiz bir düşünce.
Alias kullanımı firebird veritanımıza erişimde bize rahatlık sağlayacaktır. Verierişim bağlantı nesnelerinde (TIBconnection, Tdatabase vs.) uzun uzun veritabanı adı yazmak yerine sadece aliası yazmamız bize büyük bir pratiklik sağlayacaktır. Ayrıca veritabanımızın sırf fantezi olsun diye yerini değiştirip duruyorsak sadece “aliases.conf” dosyamızdaki aliasın veriyolunu değiştirmemiz yeterli olacaktır. Verierişim bağlantı nesnelerinde sadece alias olarak tanımladığımız kelimeyi veritabanı yolu + ismi yerine bir kere yazmamız sunucuda yeri zırt pırt değişsede veritabanı dosyamızın bizim erişimimize bir zarar vermeyecektir. Dolayısıyla bir ölçüde kararlı erişim sağlar diyebiliriz. Bu işin nasıl yapılacağını örneklemekte fayda var.

 Benim bilgisayarımdaki örnek firebird veritabanı dosyam
“D:\Components Delphi\Demo Databaseler\Demodatabase.fbd” şeklinde bulunmakta.

      İlk yapmam gereken bu veritabanı dosyasının uzun yoluna ve ismine karşılık bir Alias tanımlamak. Bunun için benim firebird 64bit sunucumun kurulu olduğu (windows için) “C:\Program Files\Firebird\Firebird_2_5\” dizini içindeki aliases.conf dosyasına ulaşıp Notepad ile düzenlemek üzere açarız.


















    






      Yukarıda gördüğünüz gibi “DEMODATA” isimli alias'ımı tanımladım. Bu pencereyi kaydet menüsüne tıklayarak kapatalım. Artık uzun veritabanı yolunu ve adını erişmek için yazmama gerek yok. Hadi buna birde Lazarus üzerinden yazacağımı basit verierişimi yapan bir uygulama ile örnek verelim.



      Lazarus formu üzerine bir adet Ibconnection1 isimli bir veri bağlantı nesnesi ekledim. Bu nesnenin kullanıcı adına 'SYSDBA' ve password kısmına 'masterkey' verilerini girdim. Connected kısmını true yaptığımda hata vermeden veritabanına bağlandığını gördüm. Bu veritabanı benim local (yerel) makinamda olduğu için dikkat ettiyseniz hostname parametresine hiçbirşey yazmadığım halde sıkıntı çıkarmadı. Bu veritanının başka bir sunucu üzerinde konuşlandığı ihtimalini göz önüne alırsak o zamanda hostname kısmına sunucunun adını yazmamız yeterli olacaktır. Diğer türlü çalışma anında veritabanı bilgisini girmemiz durumunda ise yazacağımız şey şu olacaktır:

'Sunucum:DEMODATA'

Diğer türlü olsaydı dosyanın sunucuda hangi klasörün altında hangi isimle tutulduğunu bilmemiz gerekecekti. O zaman şöyle yazacaktık :

'Sunucum:D:\Components Delphi\Demo Databaseler\DEMODATA.FDB'

       
Düşününki veritabanını farklı bir yere farklı bir isimli backup-restore yaptınız. Şayet alias kullanmıyorsanız yandınız demektir. Bu durumda bu veritabanına bağlanan tüm client(istemci) makinalarda yeni veritabanı yolunu ve ismini teker teker düzenlemeniz gerekecektir. Halbuki alias kullanmış olsanız istemci makinanın o veritabanın isminin ve yolunun değiştiğinden haberi bile olmayacaktır. Bir sürü istemcide veritabanı bağlantı betiğini(scriptini) değiştirmek yerine sadece suncudaki aliases.conf dosyasında tek satır düzenlemeniz yeterlidir. Umarım Alias (rumuz) kullanımının faydasını bir nebze olsun anlatabilmişimidir. “Kolaylaştırınız güçleştirmeyiniz.”

Ek Not: Bazı internet sitelerinde alias kullanımının performansı olumsuz yönde etkileyebileceği belirtilmiş. Nadirende olsa alias kullanımının faydalı olacağı da söylenmiş. Sonuçta deneme yanılma yapmakta fayda var derim.

Başka bir yazıda görüşmek üzere Hoşçakalın.

Durali Kiraz
Yazılım Geliştirici
duralikiraz.blogspot.com

15 Nisan 2014 Salı

Yazılım Mutfağı – 02 Yanlış bileşen seçimi : Fibplus !

Yanlış bileşen seçimi : Fibplus !



Bu yazımda sizlere yanlış yazılım aracı seçiminin sonuçlarından bahsetmeye çalışacağım. Yazının ilk serisinde yazılım araçlarından, ücretsiz geliştirme araçlarından biraz bahsetmiştik. Tabi bu işin birçok parametresi var. Ticari bir iş yapıyorsanız taşıdığınız yük bir kat daha artacaktır. Hele hele para hesabı yapan bir yazılım geliştiriyorsanız aşırı paranoyak olmanız gerekmekte. Çünkü böyle bir yazılımda yapacağınız hata sizin ticari hayatınıza malolabilir. Bu yazılarımı geliştirici ekibinin tek kişi olması varsayımıyla yazıyorum. Zaten profesyonel bir yazılım geliştirme kadrosunda en başta Yazılım mühendisinden tutunda veritabanı geliştiricisi, kodlayıcılar, analistler , beta test ediciler gibi bir çok ekip üyesi sayılabilir. Her neyse biz tek başına bir ordu olabilecek cahil cesareti gösterebilen kahramlardan bahsedelim (övdümmü yerdimmi bende anlamadım :) ).

Yıl 2004. Bir ön muhasebe tipi bir yazılım çalışmasına başlamıştım. O zamanlar Firebird popularitesini iyice artırmış ucuz bir çözümdü. Başlangıcında hayır amaçlı başlamış yazılım projemde veritabanı olarak firebird bulunmaz bir seçimdi. Geliştirme ortamı Delphi IDE si. Standart interbase erişim bileşenlerinin yeterli olmadığı kanaatiyle veritabanı erişimi için bileşen arayışına girdim. O zamanlar şimdiki kadar çok seçeneğimizde pek yoktu. Araştırmalarımın sonucunda fibplus ismine rastladım. Tabi aldığımız duyumlar malum. Şöyle uçuyor, böyle kaçıyor vs. İşin garibi olumsuz tek kelime yoruma da rastlamadım. Ve projemde kullanmaya karar verdim. Derken bizim küçük amaçlı proje büyüdü ve talebi de arttı. Ama hala kararsız sürüm olarak işaretleyip geliştirdiğim bir proje halindeydi. Bir arkadaşımın şirketine de bu yazılımı kurduk. Ağ destekli bir yazılım olması, firebird'ün hız ve kararlılık gibi güzellikleriyle güzel çalışan bir yapısı vardı. Bir gün yazılımın çalışmadığı, verileri göstermediği şikayeti geldi. Koskoca şirket iş beklemez durumda. Hemen veritabanı dosyasının yedeğini alıp evde hata ayıklama çalışmalarına başladım. Tam 7 saat sonra hatayı düzeltebildim. Problem pozitif veri girişi olan bir yere alakasız bir şekilde negatif değerli bir veri girişi olmuş. Normal şartlarda bu mümkün değil. Fakat hata mı hata sana! Neyse bu problemi aştık. Fakat bir iki ay sonra stok girişlerinin yapıldığı bir ekranda örneğin miktar bilgisi 3 adet giriliyor. Transaction commit yapıldığında Tablo da 3 olması gereken kayıt 1 olarak kaydediliyor. Transaction ları kaldır, herşey manuele al ama nafile. Yapmadığım test, değişiklik kalmadı. O sene bu problemi bir türlü düzeltemedim. Hatanın veritabanındanmı? Bileşenlerdenmi olduğunuda anlayamadığım için projeyi askıya aldım. Yazılımı kurduğum firma sahibi hatasına rağmen kullanmak istediysede ben buna razı olmadım ve oradan da kaldırdım. Kendilerine de başka bir yazılım kullanmalarını önerdim.

Yıllar sonra hatalarına rağmen kullanan bir firma halâ vardı. Bu firma beraber çalıştığım bilgisayar firması olduğu için onlar kontrollü bir şekilde programı kullanmaya devam ettiler. Bir ara üzerimdeki programa ilgili yılgınlığı attıktan sonra fibplus bileşenini değiştirmeye karar verdim. Sadece stok girişi modulündeki veritabanı erişimini fibplus tan devart interbase bileşenine çevirdim. Neredeyse tek satır kod değiştirmeden programı derlediğimde gözlerime inanamadım. Hata kaybolmuştu. Ve fibplus'ın en yeni güncel sürümünü indirip kurup denememe rağmen aynı problem yine vardı. Yaklaşık 5 yıl aradan sonra karanlıklara gömülen yazılımım nihayet gün yüzüne çıkabilmişti. Sonradan yaptığım bir araştırmada fibplus'ı geliştiren firmada sıkıntıların olduğu, hataların düzeltilemediği yönünde tevatürler(dedikodular) ortatalıkta çalkalanmaktaydı. Bu saatten sonra altın olsa sizin anlayacağınız fibplus kullanmam!. Umarım bu hikaye sizlere bileşen seçiminin ne denli bir önem arz ettiğini göstermeye yetmiştir. Bir proje başladıktan sonra bileşen değiştirmekte öyle kolay bir iş olmuyor arkadaşlar. Resmen bazı kısımları programın yeniden yazmanız gerekebilir.

Durali Kiraz

duralikiraz.blogspot.com

Yazılım Mutfağı – 01 Başlangıç ve Kararlar


Nasıl bir yol izlenmeli? Nereden başlanmalı? :

Okulu bitirmiş ve artık bir iki program yazayım para kazanayım diyorsunuz. Ama bu işe nerereden başlamalı?, nasıl bir metodoloji izlenmeli?, Hangi dili öğrenmeli? vs. bir sürü soru aklınıza takılmakta. İşte bu soruların bazılarını bu yazı dizisinde (sonra arkasını getirebilirsem) cevaplar bulmaya çalışacağım.
Bizim buralarda bir atasözü vardır; “At köpeği denize yüzme öğrensin”. İşin anahtar noktasında burada yatmakta. Bu yazılım işinde seviye atlamanın yolu öğrendiklerin ile hemen yazılım geliştirmeye başlamaktır. Tabi şunu da diyenler olabilir; önce bir iki kursa git MSCE sertifikalarını al, okulunu bitir, diplomanı al, yazılımla ilgili bir yerde staj yap vs. vs. Kısacası ölme eşeğim ölme. Eğer imkanları buna müsait olan cebi dolu olan arkaşlara bir şey diyeceğim yok. Varsa imkanın MIT' de bilgisayar eğitimi al derim :) Sonuçta bu işin orta yolu alabiliyorsan eğitimini al ama mutlaka pratiğe geçmen lazım. Öyle veya böyle belki sana ilk etapta yahu bana hesap kitap programı yaz diyen olmayabilir fakat sen bilgisayar başına geç ve kendine yazacak programlar icat et. Kalbini de biraz düzgün tutar, Allah'a tevekkül edersen merak etme iş senin ayağına bile gelir :)

Hangi dili seçmeliyim ? :

İşte herkesin merak ettiği ve kıvrım kıvrım kıvrandığı bir konu :) Delphi mi?, C#?, Phyton mu?, C/C++ mı?, Lazarus mu?, PHP mi?, Java mı?, Fortran mı(o kadar da değil) ? Gibi soruların yeni yazılımcıların kafasını kurcaladığı doğrudur. Bu soruyu cevaplamak için başka bir soru sormak gerekiyor. Sen masaüstü yazılımmı geliştireceksin yoksa internet uygulaması mı? Cevap internet ise PHP, Asp.Net/C#, Java gibi seçenekler ön plana çıkacaktır. Yok masaüstü ise Delphi/pascal, C/C++, Lazarus, C# + .Net Framework-Mono, Phyton gibi seçenekler ön plana çıkar. Tabi ben burada bu dilleri örnek olsun diye sıraladım. Yoksa yüzün üzerinde yazılım dili mevcut. Kısaca sen ne yapmak-yazmak istiyorsun arkadaş? Sorusunun doğru cevabını yine sen vereceksin.

Kısa yolsan para kazanmak istiyorum, beni yönlendir! :

Olur yönlendirelim. Günümüz piyasasında para kazanmanın en cazip yolu veritabanı yazılımı eksenli bir geliştirme yapmaktır. Yani stok-fatura yazılımları gibi yazılımlar geliştirmektir. Şunu diyebilirsin; “abi piyasa yıllardır yazılmış yüzlerde fatura stok cari programı var, biz zor ekmek yeriz”. Bu düşünce kısmen doğru olmasına rağmen aynı zamanda da yanlış bir düşüncedir. Temel kural : yazılan her yazılım yüzde yüz mükemmel bir yazılım değildir. Bu yüzden müşterilerin tam ihtiyacını karşılamadığı için yeni yazılım geliştirtme arayışına girmektedir müşteri. Kısacası iyi bir yazılımcıya her zaman ekmek vardır. Bu iş beni kasar daha kolayı yok mu bu işin derseniz, web sayfası geliştirme işi tam size göre. Kolaydır ve kısa zamanda para kazanırsınız. Zaten çoğu geliştiricinin tercih ettiği yolda bu yoldur. Açıkçası hiç web işiyle uğraşmadım. Sebebi ise bir türlü sevemedim web geliştiriciliğini. Tabi bu sizinde sevmeyeceğiniz anlamına gelmez. Bu sadece bir tercih meselesi.

Masaüstü yazılımcılığı, Veritabanı temelli geliştiricilik :

Bu konuda benim en iyi önerebileceğim seçenek Delphi olacaktır. Eğer linux platformu düşünürseniz alternatifi Kylix dir. Neden Delphi/Kylix sorusunun cevabı kısaca; kolay geliştirilebilirlik, kaynak bolluğu, desteğinin çok olması, bileşen alternatiflerinde neredeyse rakipsiz olması, IDE (geliştirme ortamı) kararlılığı sayabileceğim sebeplerden bazılarıdır. Ama lisans parası yeni(fakir) bir yazılımcı için biraz tuzludur. Gerçi yaptığın işe göre eğer batı standartlarında bir ücretle geliştiriyorsan lisans parası devede kulak kalır. Delphi de yazılım geliştirecekseniz component(bileşen) kullanımı hayati bir önem arz edecektir. Delphinin standart bileşenleriyle de yazılım geliştirebilirsiniz, bu konuda sıkıntı yok. Ancak biraz daha kompleks işlemler yapmanız gerektiğinde bileşenler işinizi kolaylaştıracaktır. Devexpres gibi bileşen markaları bunlardan sadece bir tanesidir. Ayrıca veritabani erişimlerinde bileşenlerin varlığı daha bir önem kazanmaktadır. Bu konuda önerebileceğim en iyi bileşenlerden biride Devart markasıdır.

Ücretsiz araçlarla yazılım geliştirme :

Yine aynı şekilde Delphi yerine Lazarus IDE sini öneririm. Bana bundan 10 yıl önce sorsanız bu soruyu delphi dışında hiçbir yapıyı önermezdim. Ama artık görüyorum ki Free Pascal derleyicisini kullanan Lazarus IDE si bayağı bir yol katetmiş. Bu konuda Boreasın Günlüğü sitesinde Emre Öz kardeşimin yayınladığı Otel yazılımı tamamen lazarus ile geliştirilmiş. Yazılım gayet iyi çalışmakta. Bu da bize Lazarus IDE sine güvenebileceğimizi göstermekte. Bununla birlikte delphi için geliştirilen bileşenlerin yanında artık lazarus içinde bileşen paketleri hazır gelmekte.

IDE seçimi konusunda fikir verdikten sonra gelelim ücretsiz bileşenlere. Şayet lisans derdi olmayan ve güvenilir, hızlı bir veritabanı diyorsanız Firebird kesinlikle bir numara bir tercih olacaktır. Çünkü interbase 6.0 Open source kod üzerine geliştirilmiş ve interbase'ın tüm güzelliklerini de bünyesine katmış, hız olarak rakiplerini asfalta yapıştırmış bir veritabanı sistemidir. Lazarus ile birlikte gelen bileşenlerin SqlDb sekmesinde firebird/interbase için veri erişim bileşenlerini bulabilirsiniz. Biraz daha profesyonel olsun derseniz zeoslib bileşenlerini de önerebilirim. Ancak zeoslible bir deneme yapmadım. Bu saydıklarım kesinlikle ücret ödemeden kullanabileceğiniz yapılar.

Başka bir yazıda görüşmek üzere hoşça kalın.


Durali Kiraz
Yazılım Geliştirici
duralikiraz.blogspot.com



25 Şubat 2014 Salı

Delphiden --> Lazarus'a ve Windowsdan --> Ubuntu'ya bir yol vardır elbet..

Yaklaşık 18 yıldır Delphi tabanlı uygulamalar geliştirmekteyim. Tabi bu geliştirmeler el-mahkum Windows programları olmaktaydı. Evet Windows kullanıcı dostu bir İşletim Sistemi olması hasebiyle dünyada en çok tercih edilen bir sistem olmuştur. Buna zaten kimsenin bir itirazı olamaz. Ancak yazılım geliştirdiğimiz kullanıcı ve kurumların lisansız yazılım kullanmaları da beraberinde birçok sorunu da taşımaktadır. İşini cezai ve yaptırımsal kısımları ayrı bir dert, Fıkıh boyutu da hala bir tartışma konusudur. Sonuç olarak ya parayı basıp lisanları alınmış yazılımlar kullanacak ve içiniz rahat edecek, yada bu işin alternatif yollarını bulmaya başlayacağız.

İşte bende tam bu noktada çoktan beridir Özgür platformlarda, lisans derdi olmayan İşletim sistem sistemleri ve Delphi IDE gibi Tümleşik geliştirme ortamlarının Lazarus gibi bir alternatifinin çıkmasını hep beklemişimdir. Bir iki sene önce baktığımda bayağı bir sıkıntıları vardı. Ancak şimdiki son denememde bayağı yol aldığını görmek beni heyecanlandırdı. Ve Neden şimdi olmasın? Zaman belkide gelmiştir.

Alternatif yazılım geliştirmeyi benim gibi düşünüp de kararsız kalan kardeşlerim faydalansınlar diye bunları yazıyorum. Öncelikle İşletim Sistemini seçelim. FreactOS birebir windows kopyası ve çok çok hızlı çalışan bir OS. Ancak yolun başında ve eksikleri var. Bu ileride bir alternatif olabilir. Benim naçizane tavsiyem Ubuntu Linux İşletim Sistemi olacaktır. Yeni bir makineniz varsa 64bit Ubuntu yu kurun derim. Yok benim makine 5-6 senelik 512 MB Ram Belleği var diyorsanız 32 bit XUbuntu yu kurun. 512 MB Ram aşağısı ise LUbuntu yu kurun. Her makineye göre bir ubuntu vardır :)

İşletim sistemini hallettiğimize göre Lazarus un *.deb uzantılı paketini direkt Lazarus un sitesinden indirebildiğiniz gibi Ubuntunun yazılım merkezinden aratıp bulup tıklamanız yeterli. Herşey otomatik. Lazarus kurulumunda kafa karıştırıcı bir şey yok.


Geldik ticari uygulama yazabilmemiz için sağlam veritabanı seçimine. Bu konuda iki önerim olacak. Firebird ve MySQL. İkiside tamamen ücretsiz veritabanı sistemleri. Parasız olması aklınıza kötü olduğu gibi bir kanıya kapılmanıza sebep olmasın. Zinhar Firebird'un hızına yetişebilecek bir veritabanı tanımadım daha!. Bu konuda SQL Server ile yapılmış karşılaştırmalarını görünce ne demek istediğimi anlayacaksınız. Diğer bir seçeneğimizde internet üzerinde kullanımıyla verimliliğini fazlasıyla ispatlamış MySQL, gözümün çiçeği :). Bildiğim kadarıyla bu iki veritabanının fikir babası aynı kişi.

Geldik en başta olması gereken Yazılım Mühendislerinin Projelendirme yapabilmesi kullanacağı yazılıma. Bu günlerde Open Source alternatiflerini inceleme fırsatı buldum. "OpenProj" gördüğüm kadarıyla işini en iyi yapan yazılım. ProjectLibre, GanttProject gibi yazılımlardan açıkçası pek haz etmedim. Bilmiyorum belkide ben kullanamamışımdır.

Bu saydıklarım Özgür yazılımlarla bu proje geliştirmek için benim düşündüklerimdir. Umarım birilerine faydası olmuştur.