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

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

4 Mayıs 2014 Pazar

Yazılım Mutfağı -05 (İş Görüşmeleri ve Yapılması Gerekenler)

















       Bu yazımızda bir yazılımcının eğer bir yazılım firmasına dahil olarak çalışmıyorsa yapması gereken işlerden biri olan iş görüşmelerinden bahsedeceğiz. Bu işin püf noktalarını yine kitaplarda yazmayan hayat tecrübelerinden sizler için derleyemeye çalışacağım.

       Bir yazılımın hayat döngüsünü oluşturan unsurları tam olarak anlatan bir kitaba daha henüz rastlamadım. Son on yıl içerisinde “Yazılım Mühendisliği” başlığıyla sayısı bir elin on parmağını geçmeyen eser belki vardır. Bunların en popüler olanını incelediğimizde ise anlaşılması için “uzaylı Türkçesi” ni iyi bilen kişilerin anlaması için yazılımış eserler olduğunu görürüz. Yani hiçbir halt anlaşılmaz. Metodolojilerden bir başlarsınız ve diğer anlamsız ve faydasız gereksiz bilgi çöplüğünde bu işin kitabını nasıl anlasamda bu işi nasıl iyi yapsam endişesiyle kıvranır durursunuz. Batı bu işi çözmüş. Fakat bizde 1930~1940 lı yıllarda yapılan dil devrimi (arapça kelime ayıklama, öz hakiki türkçeye dönüş saçmalığı) gibi faysdasız işlerden dolayı maalesef bir işin kitabını yazmak ve onu okumak işkence halini almakta. İngilizce,Almanca, Fransızca vs. diller bilenler bu konuda biraz daha şanslı olmakta. Çünkü bu dilin sahipleri bizimkiler gibi saçmalıklar yapmamışlar. Neyse bu konuyu uzatmadan diğer hususlara geçiyorum. 

       Öncelikle öğretim görevlisi Gürhan Ustali arkadaşımın anlattığı şu anıyı sizlerle paylaşmak istiyorum. Bilirsiniz Türkiyedeki yazılım konusunda en profesyonel kurumlardan biriside Havelsandır. Bir üniversite öğrencisine hocası ödev vermiş, git bir yazılım firması yazılımı nasıl geliştirir? Hangi metodolojileri kullanır? Hangi iş-süreç vs. çalışmasını yapar diye öğrencisini doldurup salmış piyasaya. Tabi üniversite öğrencisi bakar bu işi Türkiyede en profesyonel yapan yer Havelsan, hemen bir randevu alır ve Yazılım Geliştirmenin başındaki sorumlu kişiyle görüşmeye gider. Öğrencimiz elinde kağıt kalemiyle yetkili kişiye sorularını sormaya başlar. İlk sorusu ise “Efendim siz yazılım geliştirirken en çok hangi metodolojiyi kullanıyorsunuz?” Adamın cevabı ise ilginçtir; “Kardeşim biz program yazıyoruz ne metodolijisinden bahsediyorsun sen?”. Zavallı öğrencimiz aldığı cevapla kuyruğunu kıstığı gibi alır oltasını ve bir an önce dayak yemeden sıvışır :). Tabi bu anlattığımdan herşeyin saçmalığı sonucuna varmayınız. Elbette bir UML tasarım konusu önemli bir konudur. Bunların tabiki öğrenilmesi lâzım. Ancak en önemli olan şey gerçek hayattaki geçerli olan şeyleri öğrenmek. 

        İlk bilinmesi gereken şey Algoritma. Bir akış planını (Flow-chart) çizebilmek size çok şeyler katacaktır. Ancak bundan daha önemli olanı ise bu akış planını kafanızın içinde çizebilmektir. Yani programı hayal edeceksiniz. UML ile ilgili konularda biraz kitap okuyun ve pratik yapın. Şekiller çizin. Bir kullanıcı temsil etmek için bir cin Ali çizin. Kullanıcının yazacağınız yazılımın hangi modüllerine müdahale ettiğini cin aliden çıkan oklarla çizerek gösterin. Basbayağı bildiğiniz ve anlayacağınız karalamaları bol bol yapın. Bunlar size pratik kazandırır. Şimdi gelelim şu iş görüşmeleri meselesine.

        İş görüşmeleri tüm işi tek başına göğüslemesi gereken yazılımcının yapması gereken en önemli aktivitelerden biridir. Öncelikle eğer okuldan yeni mezun oldunuz ve bu işi öğrenme aşamasındaysanız bilmeniz gereken kural fiyat seçimliliği yapmadan önünüze gelen basit işler olmak kaydıyla her işi almak. Zaten yeni biriyseniz size bir tanıdığınız vasıtasıyla iş ayarlanır ve sizde birşeyler yapmaya çalışırsınız. Bir aceminin kendi acemiliğini gizlemenin en iyi yolu görsel tasarıma/makyaja ağırlık vermesidir :) Çünkü program ne kadar süslü görünürse kullanıcının dikkati pek performansla ilgili olmayacaktır. Tabi bu da kişiden kişiye değişir. İlk ticari işiniz size çok şeyler öğretir. Ama bundan sonra bir kuruma iş görüşmesi için çağrıldığınızda artık profesyonel olmanın zamanı gelmiştir. Öncelikle bir ajanda ve yazan bir kalem almayı unutmayın. Kılık kıyafetinizi düzgün seçin. Maalesef müşterinin ilk bakacağı şey sizin kürkünüzdür. Paçoz vaziyette çıkmayın. İyi bir karşılma selamlaşma faslından sonra müşterinizi iyi bir şekilde dinleyin. Onun size derdini anlatmasına fırsat tanıyın. Adeta bir psikiyatrist olun. Uzunca bir koltuğa sırt üstü yatırsanızda olur :) (bu kısım şakaydı). O anlatırken siz elinizde kalem ve kağıtla onun isteklerini bir taraftan listeleyin. Diğer taraftan da cin ali şekilleri yani UML çizimlerini kendi anlayacağınız şekilde çizmeye başlayın. Bu esnada siz müşterinin talebi olan programı kağıt üzerinde planlıyorsunuz aslında. Müşterinin anlattıklarından anlamadığınız yerleri detaylandırmasını isteyin. Size yaptırmak istediği yazılımın tüm detayları belli olduktan sonra işin son ve can alıcı kısmına gelmiş bulunmaktasınız. Tabi firma sahibi insanların bütün gününü size hikaye anlatarak heba edeceğini düşünürseniz yanılırsınız. Bu da duruma göre değişkendir. Baz müşteri sizden hemen bir cevap ve fiyat ister. Bunları çok çabuk bir şekilde %90 doğruluğu olan bir tahminle karar vermelisiniz. Yani yapacağınız yazılıma kaç saat çalışacaksınız?, Bu iş kaç günde bitecek? Ve ne kadar paraya malolacak? En pis görüşme şeklide budur. Her şey görüşme sonundaki 5 dk içinde cevaplanması gerekebilir. Bazen sonraya bıraktığınızda işi alma şansınız kalmayabilir. Aynı zamanda işbitirici bir olduğunuzu karşınızdaki insana güven vererek hissettirmeniz gerekir. Burada yapılacak şey tahmini kaç saatlik bir çalışma yapacağınızı biraz fazla zaman koyarak hesaplarsınız. Saatlik geliştirme ücretini atıyorum 10 dolar koyarsınız. (Çalışma Saati X 10 dolar) + Lisans ücretleri = Yazılım Fiyatı. En basit formul bu olabilir. Tabi bu örnek olması açısından söylenen bir formul. Geliştireceğiniz yazılımı Ücretsiz geliştirme araçları (örneğin lazarus, code block, zeoslib, firebird) ile yaparsanız müşteriyi lisans ücretlerinden kurtarırsınız. Şansınız varsa işi kaparsınız.

       Bazende özel istek üzerine çağrılarak gidersiniz. Bu aşamaya geldiyseniz artık şöhret olmuşsunuz ve methinizi tüm alem öğrenmiş demektir. Bu şartlarda nazlanma hakkı sizde demektir :) Böyle bir görüşmeye daha rahat bir ruh haliyle gideceğiniz malumdur. İstediğiniz kadar ön görüşme yapabilir, dilediğiniz zaman sonra fiyatınızı verebilirsiniz. Ancak şunu unutmayın, yapamayacağınız şeylerin sözünü asla vermeyin. Örneğin adam sizden şirketinde kullanacağı masaüstü bir yazılım geliştirmenizi isterken daha sonrasında cep telefonuyla da bu yazılıma bağlanıp raporlar almak isteyebilir. Siz tabi yaparız abi deyip, sonrasında kullandığınız veritabanı sisteminin cep telefonu ile erişiminin kaf dağına ulaşmaktan zor bir hâl aldığını öğrenip, abi bu iş olmuyor derseniz tek kelimeyle “sıçarsınız”. Tutacağınız sözleri vermeye dikkat etmelisiniz.

         Bazı iş görüşmeleri de vardır ki çok sevdiğiniz bir arkadaşınızın hatrına kalkar görüşmeye gidersiniz. Fakat karşı tarafta sizinle görüşmek için bekleyen kötü niyetli bilgi işlem ekibiyle karşılaşma ihtimalinizde yok değil. Neden böyle peki? Bazen bilgi işlem servislerinde çalışan elemanlar aslında hiçbir halttan anlamayan, o makama torpil ve kayırma ile gelmiş kısacası bulunduğu yeri hak etmeyen bilgisiz çapsız tipler olabilir. Şayet bu tiplerin aklında işi vermek istediği başka bir “mefaatleneceği” yazılım firması varsa ve bunu da şirketin patronu bilmiyorsa o zaman yandınız demektir. Bu bilgi işlemcilerle yapacağınız iş görüşmesi fbi ya iş görüşmesinden daha sıkıntılı geçecek demektir. Size olmadık sorular sorarlar, bilginiz ölçme küstahlığında bulunurlar ve artık çileden çıkacak hale gelirsiniz. Yapılacak işle ilgili hiçbir şey konuşulmadığını, tamamem sizin ne bildiğiniz ile ilgili şeylerin konuşulduğunu görürsünüz. Bu durumu anladığınızda yapılacak şey ise amerikalıların deyimiyle “f*ck you” deyip o ortamdan uzaklaşmak olmalıdır. Çünkü böyle bir görüşmeden size asla iş çıkmayacaktır. Hatta ben yıllar böyle bir görüşmede o bilgi işlemcilerden “aferin sen bu işi bayağı biliyorsun” övgüsüne bile mazhar olmuştum :) Ama yine de o işi bana vermediler :)

        Bu konuda söylenecek çok şey var. Bu hususlarla igili yazdığım diğer yazılarda yer yer bahsediyorum. O yazılarıda okumanızı da tavsiye ederim. Sonrasında daha ne ilginç iş görüşmeleri olduki hepsini bir yazıda anlatmak zor olur. Başka bir yazıda görüşmek üzere hoşça kalı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



12 Mart 2014 Çarşamba

Ubuntu üzerinde FlameRobin ve Firebird Veritabanı İşlemleri




Resmi sitesi http://www.flamerobin.org/ olan bu yazılım firebird veritabanı işlemlerini yapabilmemiz açısında küçük olmasına karşı çok güçlü ve işlevselliği olan bir yazılım. Adeta isviçre çakısı. Tüm linux dağıtımlarına uygun olmasının yanıda IOS, windows işletim sistemleri için de çalıştırılabilir hali mevcuttur. Üstelik Açık kod olmasıyla birlikte hiçbir lisans bedeli ödemeniz gerekmiyor. Çok sevdiyseniz geliştiricilerine “Donate” başlığı altında gönlünüzden geçen bir miktarda bağışta bulunabilirsiniz.:) Kurulumu gayet basittir. Uçbirim (Terminal) pencesini açtığınızda programı kurmak için şunları yazın :

 sudo apt-get install flamerobin

 Bu kadar basit. Daha sonra çalıştırılabilir programlar kısmından görebileceksiniz. Çalıştırdığınızda ilk önce bir mesaj kutusu ile hiç ayarlı bir veritabanı bulunmadığını falan söyleyecek. Tamam deyip geçin.



Gördüğünüz gibi gayet sade görüntüsüyle veritabanı yönetim aracımız açıldı. FlameRobin ile ilgili yapılabilecek çok şey olmasına karşın biz burada sadece örnek olması açısında Firebird Veritabanı oluşturmasını ve bir adet tablo oluşturmayı göreceğiz.
İlk olarak localhost sunucumuz üzerinde fareyi sağ tıkladığımızda “Create new database” seçeneği aşağıda görüldüğü gibi gelmekte.


Akabinde gelen ekran ise aşağıdaki şekilde boş olarak gelir. Ben burada Display Name (görünen ad) , veritabanı yolu, kullanıcı adı, şifre ve “Charset” kısımlarını doldurdum.



Burada en çok dikkat edilecek kısım Charset kısmıdır. Normalde windows ortamında eskiden biz burayı “win1254” değerini verirdik. Ve bu Türkçe karakterleri göstermemizi sağlardı. Ancak win1254 verirseniz lazarus ide de bu veritabanındaki karakterlerin bozuk gözüktüğüne şahit olursunuz. Bu sizi sunucunuzu windows platformuna mahkum eder. Windows sunucularının fiyatını da düşünecek olursak, ücretsiz ve kararlılığı dünyaca ispatlanmış linux sunucusu yerine koymak pak mantıklı bir seçim olmayabilir. Tabi .NET gibi platformlarda windows seçmeniz kaçınılmaz olabilir. Üstelik win1254 seçeneği sizi tablo içerisindeki verilerinizde sadece Türkçe karakter kullanımına izin verir. Bu veritabanını kullanacak işletmenin Uluslar arası yazışmalar ve faturalandırma yapacağını düşünürseniz, örneğin Arapça, Çince, Rusça (kril alfabesi) gibi alfabetik gösterimleri yapamazsınız. Dolayısıyla veritabanı dizaynında yapacağınız bu yanlış seçim ileriki dönemlerde bir yazılım geliştirici olarak başınızı ağrıtacaktır (maalesef tecrübeyle sabittir). Kısacası her taraftan aynı şey gözüksün istiyorsanız UTF8 sizin için en mantıklı seçimdir. Üstelik utf8 seçiminde sunucunuzun windows yada linux tabanlı olması sizi endişelendirmez. UTF8 seçiminde veritabanı dosyanızın boyutunun biraz daha arttığını farkedersiniz. Bu da “at ile deve” değildir zaten. Charsetimizi UTF8 seçtikten ve veritabanı yolumuzu ve adınıda belirledikten sonra “Create” butonuna tıklarız. Şöyle bir ekranla karşılaşırsanız şaşırmayın :



Bu ekran ubuntu üzerinde herşeyin kontrollü bir şekilde işlediğine bir göstergedir. Bu hata ekranı, veritabanını belirtilen dizin altına oluşturamadığını, Yetkisizlik yüzünden yapamadığını söylemekte. Endişe etmeyin, herşey yolunda.



Veritabanımızı barındırdığımız dizinin-klasörün üzerinde fare ile sağ tıklayıp özellikler alt menüsünü seçeriz. Karşımıza aşağıdaki görüntü gelecektir.



Yukarıdaki ekranda erişim seçeneklerini oluşturma ve silmeye açmanız gerekmekte. Belki değişik yetkilendirmeler yapılabilir, bunun dışındaki erişim seçenekleriyle veri güvenliğinizi artırıcı denemeler yapmanızı öneririm. Ben şimdilik bu ekranda tüm oluşturma ve silme yetkilerini veriyorum. Ayrıca en alttaki “Ekli dosyaların yetkilerini değiştirin” ekranı da aşağıdaki şekilde değiştirin. Dediğim gibi farklı yetkilendirme konbinasyonlarını yapmak size kalmış.



Önemli Not : Firebird Sunucumuz ubuntu sisteminde kurulu olduğu için dolayısıyla tüm denetimler linux güvenilirliği ilkeleri içerisinde sistem tarafından yapılacaktır. Yani veritabanı dosyanızı ubuntunun güvendiği bir dosya sisteminde yapmanız gerekir. Eğer veritabanı dosyanızı ext1,ext2,ext3,ext4 vs. dosya sistemlerinin dışındaki Fat, ntfs gibi dosya sistemleri ile biçimlendirilmiş bir diskin üzerinde oluşturmak isteseydiniz, ubuntu yetki ekranındaki yetkileri değiştirmenizi engelleyecektir. İsterseniz bir denemesini yapın. Bu yüzden linux un güvendiği dosya sistemlerinin biçiminde olan bir disk seçmeyi unutmayın. Ben burada ext4 biçimlendirmesine sahip sabit disk'i seçtim.

Herşey düzgün yapıldığında görünecek ekran aşağıdaki gibidir. Bakmayın siz benim uzun uzun anlattığıma, bu işlemler bir iki dakika sürmeyecek kadar kısa işler. Yeterki bir kere olayı kavrayın. Ve Ubuntu-linux üzerinde rahatlıkla firebird sunucunuzu oluşturun, başınız ağrımasın.


Örnek olması açısından bir adet tablo uluşturalım. Localhost altında gözüken veritabanımız seçili vaziyetteyken fare ile sağ tıklarız. Önce connect tıklanarak veritabanı ile bağlantımızı yaparız ki, işlem yapabilelim.



“Create new” menü başlığını tıkladığımızda yukarıdaki gibi betik yazacağımız bir ekran gelir. Bu ekranda yazılacak betik ile ilgili bir şablonda hazır vaziyette sunulur. Bu ekranda ben sizler için basit bir tabloyu ve primary key birincil anahtarını oluşturacak betik(script) i yazdım. Ve bu betiği çalıştırmak için F4 tuşuna bastım. Sonuçta görülen ekran yukardaki gibidir. Alt kısımdaki bilgiler bize herşeyin yolunda gittiğini göstermekte. Eğer bir hata olsaydı ekranımız onu da bize bildirecekti. Bu vaziyette yapılan betik değişiklikleriyle muamelelerdeki(transactions) kalıcılığı sağlamamız için ok işaretine benzeyen “Commit Transaction(F5)” butonuna basarak yaptığımız işlemlerin kalıcılığını disk üzerine yazarak sağlamış oluruz. Arık nurtopu gibi bir veritanımız, bir tablomuz ve bir primary key indeksimiz var.
Ben yeniden veritabanına bağlandığımda aşağıdaki görüntüyü elde ettim.



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

Durali Kiraz
duralikiraz.blogspot.com

Ubuntu üzerine Firebird Veritabanı Yönetim Sisteminin Kurulumu




















Sunucu kurulumu için önce http://www.firebirdsql.org/ adresinden Downloads kısmına gelinir. Burada işletim sistemimiz ubuntu 64 bit sürümü olduğu için buna uygun indirmeyi seçmeliyiz. Linux Amd64 yazan bölüme geliriz. Buradan 64 bit superserver *tar.gz uzuntılı arşiv dosyasını bilgisayarımıza indiririz.


İsterseniz daha az bir istemciye sahipseniz bu durumda performans açısından “Classic Server” sunucu tipini seçmeniz daha isabetli bir seçim olabilir. Bu sizin seçiminize kalmıştır.


Bilgisayarımıza indirdiğimiz arşiv dosyasını bir dizin içine açtıktan sonra , kurulum için hazır gelen install.sh uzantılı betik dosyasını aşağıda görmektesiniz.











“Ctrl + Alt + T” tuş birleşimiyle hemen uçbirim(terminal) ekranını aktifleriz. Ben öncelikle install.sh dosyasının bulunduğu dizine uçbirim “cd” direktifiyle geçiş yaptım. Sonrasında root yetkisiyle “sudo sh ./install.sh” yazarak enter tuşuna bastım.














Sonrasında benden root yetkisini kullanabilmem için kullanıcı şifremi girmemi isteyecektir. Akabinde aşağıda da gözüktüğü gibi yükleme yapmam için Enter'a basmamı, yüklemeye onay vermemi istemekte. Devamında güncelleme uyarısını vermekte. Bu sistem başlangıcına firebird sunucusunu her ubuntu çalıştırılmasında otomatik çalıştıracağını söylemekte. Son olarak bizden sistemde firebird sunucusuna bağlanmakta kullanmak üzere SYSDBA şifresini belirlememizi istemekte. Bu normalde windows üzerinde “masterkey” olarak varsayılan şekilde gelir. Buraya ben masterkey yazarak kurulumu tamamladım. Hepsi bu kadar. Artık kullanabilirsiniz. Görüşmek üzere.













Not: Alternatif uçbirimden doğrudan kurulum yapmak mümkündür. Hatta burada anlatılandan daha az eforla yapılabilmektedir. Bunun için http://www.firebirdsql.org/manual/ubusetup.html bağlantısındaki yazıyı inceleyebilirsiniz.



Durali Kiraz

duralikiraz.blogspot.com