Archive for the “genel” Category


Tabloda tek bir veri saklayacagimi bilsem dahi butun tablolarima ID alani muhakkak eklerim.
Birkac gun once karsima bir tablo cikti ve mukerrer kayitlarin silinmesi gerekiyor. Isin ilginc tarafi tabloda id alani olarak kullanilabilecek bir alan mevcut degil.

Bircok veritabani tarafindan desteklenen RowID ozelligiyle ya da distinct ile yapilan bir select ifadesinden donen degerleri insert ile baska bir tabloya yazarak problemi kolayca cozebilecegimi dusunsemde db2 ‘ da rowid ozelligi bekledigimden farkli calisinca biraz ugrasmak zorunda kaldim. Yeni bir tablo olusturmadan tek bir sql ile isi cozmek kolayima geldiginden ufak bir arastirmayla db2 da ki row_number fonksiyonu ile isimi cozebildim.

TEST3 //tablo adi
===============
TCNO //field adi
11111111111
22222222222
33333333333
11111111111
11111111111
33333333333
33333333333
22222222222
22222222222

delete  from
(SELECT
ROW_NUMBER() OVER (ORDER BY TCNO ASC) AS rownumber , TCNO
FROM TEST3 ) AS TEST_SIL
where TEST_SIL.rownumber >
(select min(TEST_SIL2.rownumber) from (SELECT
ROW_NUMBER() OVER (ORDER BY TCNO ASC) AS rownumber , TCNO
FROM TEST3 ) AS TEST_SIL2 WHERE  TEST_SIL.TCNO = TEST_SIL2.TCNO);

sorguyu calistirdiktan sonra ki tablonun yeni hali.

TEST3
===============
TCNO
11111111111
22222222222
33333333333

Comments No Comments »

Hangisinin daha once cikacagi , ne zaman cikacagi gibi sorular henuz muallakte olsada bugun biten Delphi Live adli etkinligin sonucunda ortaya cikan bilgiler su sekilde.

Codegear es zamanli olarak 4 tane farkli delphi versiyonu uzerinde calisiyor. Her versiyonun kendine belirledigi birkac miheng tasi mevcut. Bu versiyonlardan hangisinin once hangisinin sonra cikacagi hakkinda bir bilgi mevcut degil. Tek bildigimiz Weaver adli projenin sene ortasinda cikacak olmasi. Digerleride sanirim 2-2,5 yil icinde bizlere sunulmus olur.

Nedir bu versiyonlar sorusuna ise soyle cevap verelim

1-Project Weaver
Bir onceki yazida bundan bahsetmistik. Daha sorunsuz , hatasiz bir ide nin pesindeler bu versiyonla ve araya da bazi ek ozellikler serpistirilmis.

    SVN destegi
    Windows 7 destegi
    Firebird destegi
    Soap 1.2 destegi
    .Net teki Attribute destegi vs.

2-Project X
Bu surum cross platfrom delphinin ilk surumu olacak. Mevcut kodun tamami olmasada sanirim temel vcl siniflari ile yazdiginiz bir programi hem windows hem linux hem de mac icin derleyebileceksiniz.

3-Project Chromium
Bu surumde yine iyilestirmeler uzerine olacak sanirim cunku kalite uzerine epey bir vurgu yapilmis. Bunun yaninda yeni ozellik olarak gordugum en buyuk madde yeni data binding mantigi. Bu surumden sonra sadece veri bilincli olan nesneleri degil (dbEdit, dbGrid vs..) her turlu nesneyi veritabanlarina baglayabilecegiz.

4-Project Commodore
Delphinin 64bit destegini saglayan surum olacak.

Cok parcaya ayrilmis bu yeni surumlerin bize ulasmasi uzun zaman alacakk gibi gorunsede bu surumler uzerinde codegearin zaten es zamanli olarak calismasi sureyi kisaltacak gibi. Benim tahminimce 2-2,5 yil sonra butun surumler piyasaya cikmis olur.

2009 ‘ un ortasinda (temmuz-agustos gibi) Weaver cikar
2010′un basinda (subat - mart gibi) Project Commodore cikar
2010′un ortasinda (temmuz - agustor gibi) Project Chromium cikar
2011 gibi de Project X cikar.

# Project Weaver
    * Main Themes
          o User Experience
          o Enhance Connectivity
          o Documentation
    * IDE usability
    * Team Productivity
    * Touch
    * IDE – Insight (easy Keyboard access to almost everything)
    * Improvements to DataSnap
    * Firebird Support
    * .NET AOP
    * SCM Support
    * Enhanced RTTI Support
    * Attribute Support
    * Seamless .NET <> Native communication
    * Windows 7 APIs and Direct 2D
    * Full Support of SOAP 1.2 Clients

# Project X

    * Cross-platform Windows, Mac OS, and Linux
    * Cross-platform component library
    * DataSnap on all platforms

# Project Chromium, Quality, Quality

    * Quality, Quality, Quality
    * Pascal Code Formatter
    * Documentation of the OTA
    * New Data binding model allowing binding to almost any property on a control
    * More integration with the database tools.

# Project Commodore

    * 64 Bit native
    * Full compiler, RTL and VCL support for 64 native
    * Multi-Core. Multi-threaded applications.

Comments 9 Comments »

Codegear’in Tiburondan sonra cikartacagini duyurdugu Commodore kod adli 64bit destegine sahip yeni Delphi versiyonunu beklerken bir sabah aniden kucagimizda Delphi Weaver i bulduk.  Delphi.org dan haberini aldigimiz bu yeni delphi versiyonun ne gibi yenilikler icerdigi su an icin mechul durumda ama 64bit destegini icermedigini rahatlikla soyleyebiliriz. Yine ufak bazi ipuclarindan yola cikarak bazi tahminlerde bulunmak gerekirse birkac yazi once bahsetmis oldugumuz anket sayfasinda ki sonuclardan yola cikarsak -ki eski Delphi urun yoneticisi  yeni Ar-Ge yoneticisi Nick Hodges , “bu anketi dikkatle izliyoruz” demisti- CodeGear in bu yeni surumde hangi ozellikleri bizlere sunacagini ogrenebiliriz.

Anket seceneklerinden Started , Under Review, Planned olarak isaretlenen seceneklere dikkat edelim. Isaretsiz secenekler ise malesef su an icin CodeGearin gundeminde olmayan secenekler. Bunlar arasinda bizim ekledigimiz RIA Development ve Compact Framework gibi cok onemli maddeler yer aliyordu. Bu ozellikleri delphide gormek icin sanirim epey bir sure daha beklememiz gerekecek. Ar-Ge yoneticisi olan Nick Hodges ten artik bu islere biraz hiz vermesini bekliyoruz…

Biz gelelim Started olarak isaretlenen seceneklere…

64Bit support: 64Bit uzerinde calisiyorlar. Bu zaten bildigimiz bir ozellikti ve Delphi Weaver da olacagini sanmiyorum zira bu ozellik Commodore adli delphi surumunde cikacak.

Web Service support : Web servislerinin iyilestirilmesi. Delphi Weaverda karsimiza cikabilecek muhtemel iyilestirmelerden bir tanesi bu olabilir.

More stability. Nothing worse than D2009 + Update 1 crashing: Bu iyilestirmeler zaten her surumde var. Delphi Weaver de de bu iyilestirmeler muhakkak olacaktir.

Better Help and Documentation: Bir ustte ki madde de soylediklerimiz bu madde icinde gecerli..

Update VCL : Bir ustte ki madde de soylediklerimiz bu madde icinde gecerli..

Improved RTTI : Bir ustte ki madde de soylediklerimiz bu madde icinde gecerli..

Mevcut durum sunu gosteriyor. Delphi Weaver agirlikli olarak VCL ve RTL bazli iyilestirmeler iceren bir surum olacak. Kararlilik olarak delphi aleminde en tepede duran Delphi 7 yi tahtindan indirecek bir surum adayi Delphi Weaver. Iyilestirmeler yaninda CodeGear in urunu satabilmek icin gelistiricilere ne gibi cazip ozellikler sunacagi ise simdilik mechul. Hep birlikte bekleyip gorecegiz…

Comments No Comments »

Ozcan Acar’in Firat Universitesinde ki sunum videosu.
Diger sunum ve dosyalar için http://www.kurumsaljava.tv/

Comments No Comments »

Http 302 internette karsimiza bolca cikan ama bizim farkina bile varmadigimiz yararli bir durum kodu. Istekte bulundugumuz bir web sayfasi artik baska bir adreste yayin hayatina devam ediyorsa sunucu geriye 302 durum kodu ile birlikte sayfanin yeni adresini bize gonderir ve gunumuzde kullandigimiz browserlarin tamami 302 durum koduyla karsilastiklari zaman bizi otomatik olarak yeni sayfaya yonlendirme becerisine sahip olduklarindan zavalli 302 tam bir gorev adami olarak sohretten yoksun bir sekilde isini sessiz sedasiz yapmaya devam eder.

Biz bu makalede TIdHTTP ile 302 durum kodunu hangi sekillerde yonetebilecegimizi kiyisindan kosesinden anlatmaya calisacagiz. Ise baslamadan once 302 durum kodu gonderen bir sayfa bulmamiz gerekiyor. Ben bunun icin FeedBurner servisini kullanan Yemek Tarifleri adli siteyi kullanmayi uygun buldum. Ne de olsa Delphiciler midelerine duskun olmakla aleme nam salmislar :)
(more…)

Comments 1 Comment »

Delphi, dilin adımı yoksa Object Pascal kullanarak yazılım geliştirmemizi sağlayan IDE nin adı mı, Object Pascal’ın bir dialekti mi tartışmaları süre dursun biz biraz Delphi ile Java arasındaki yazım kurallarını irdeleyelim. Hazır Delphi derleyicisinin yeniden yazılma kararı alındığı şu günlerde belki bizim yazımızı da dikkate alanlar olur. :) Tabi öncelikle şu yazıyı bitirip hayırlısıyla Publish düğmesine basmam gerekiyor zira yazının sonuna ekleyeceğim Google Translate linkinden dolayı normalde pek az kullandığım türkçe karakterlere ve imla kurallarına biraz daha fazla dikkat etmem gerekiyor. Çevirisi pekte başarılı olmayan Google ‘a birazcık yardımcı olmak lazım.

Delphi ve Java arasındaki iyi kötü tarafları söylemeden önce şunu belirtmek istiyorum. Her iki dilinde ortak bir çok yanı bulunmasına rağmen aralarında kullanıldıkları sektör açısından oldukça büyük farklar bulunmaktadır. Delphi daha çok Win32 tabanlı masaüstü programlamada kullanılmaktadır Java ise web tabanlı kurumsal projelerde daha çok tercih edilmektedir. Kısaca bu yazının amacı, uzmanlık alanları farklı olan bu iki dil hakkında Delphi Javadan iyidir ya da Java Delphiden iyidir konusundan daha çok her iki dilinde bana göre artılarını ve eksilerini burda dile getirip her iki dil içinde gelecekte daha programcı dostu bir dil olabilmelerine katkı sağlamaktır.

Bu girişten sonra madde madde aklıma gelen unsurları yazmaya başlayalım.

  • Parantez ve Begin - End
    C,C++,Java ve daha birçok programlama dilinde kullanılan parantezler bana gore hiçte programcı dostu unsurlar değildir. Pascal in kod bloklarını ayırmak için kullandığı Begin - End blogu bana göre çok daha anlaşılır ve kafa karıştırıcı olmaktan uzaktır.
    Pascal + , Java -
  • Sınıf tanımları
    Pascalda belkide en sevdiğim özellik budur. Sınıf tanımlarının ve bu sınıfa ait kodların ayrı ayrı yerlerde olması. Java da Sınıf tanımlaması ve bu sınıfa ait kodlar aynı yerde olduğundan bir bakışta sınıfın tamamına ait resmi görmek çok zordur. Sınıf biraz kalabalık bir sınıf ise imkansızdır diyebiliriz. Ancak Javadoc tarzı bir araç kullanılmışsa sınıfın bütün metodlarını ve değişkenlerini farenin scroll tuşunu kullanmadan görme şansınız vardır. Tanımlama ve gerçekleme bölümlerinin ayrı ayrı olması biz programcılar için daha iyi olduğunu düşünüyorum ve pascal ın hanesine bir + daha koyuyorum.
    Pascal + , Java -
  • For Döngüsü
    Javada yer alan for döngüsü her zaman bana daha kullanışlı ve zahmetsiz gelmiştir. Pascaldaki for döngüsü ise basit ve fazla işe yaramaz gelmiştir. Javadaki for döngüsünün pascala da kazandırılması gerekir diye düşünüyorum ve + yı javaya veriyorum.
    Pascal - , Java +
  • Nesnelerin oluşturulması
    Javanın ve benzer dillerin bana göre en mantıksız olayıdır bu. Nesnenin, kendisini yine kendisine ait olan bir metodun içinden oluşturması.

    public class Nesne {
        public static void main(String[] args) {
           Nesne BenimNesne = new Nesne();
        }
    }
    

    “Bunda garip olan ne var ki? Main statik metod olduğundan bir sorun çıkmaz.” Çıkmaz çıkmasına eyvallah ama bu kendi kendini doğurmak gibi geliyor bana hep mantık olarak. Statik metod kullanarak bu şekilde bir sınıfı yine sınıfın kendisine ait başka bir metod ile oluşturmayı pascalda da yapabilirsiniz ama bu pek tercih edilmez. Genelde bir sınıf başka bir sınıf vasıtasıyla oluşturulur ve bence mantıklı olan da bu şekilde olmasıdır. (Tabi delphi derleyicisinin Application nesnesini nerde ve nasıl oluşturduğunu saymazsak.)
    Pascal + , Java -

  • Extends , Implements vs YeniSinif=Class(TEskiSınıf)
  • Sınıf türetme ve bir sınıfın arabirim uygulama şekli javada çok daha anlaşılır bir şekildedir.

    Class Arac{...}
    Class Taksi Extends Arac {...}
    
    TArac = Class;
    TTaksi=Class(TArac)
    

    Extends sözcüğü çok açıktır, pascalda ise sınıf türetme tıpkı java da ki parantezler gibi kafa karıştırıcıdır.
    Pascal - , Java +

  • Tip mi önce olmalı değişken adı mı?
    Javada değişken tanımlanacağı zaman önce değişkenin tipi belirtilir ardından değişkenin adı belirtilir.

    DegiskenTipi DegiskenAdi;
    

    Pascalda ise tam tersidir. Önce değişken adı sonra değişkenin tipi belirtilir.

    DegiskenAdi:DegiskenTipi;
    

    Burda da bana java yine doğmamış bir çocuğa isim koymak gibi bir çabanın içerisinde gelmektedir hep. Önce bir değişkenin olsun tipini sonra belirlersin. Nedir bu acelen?
    Pascalın burda alacak olduğu + tamamen kullanım alışkanlığıma bağlı olabilir. Yıllardır Değişken adından sonra değişken tipini belirlediğim için bu şekilde bir kullanım bana daha anlaşılır geliyor olabilir. Bu sebeple burdaki + ve - dikkate alınmayabilir.
    Pascal + , Java -

  • || != vs And Or
  • Kelimelerin anlatım gücü işaretlerden çok fazladır. + direkt olarak pascalın hanesine yazılıyor.
    Pascal + , Java -

  • Nesnenin oluşturulması
  • Buton = new Buton();
    Buton := TButon.Create();
    Javanın söz dizimi daha anlamlıdır. new sözcüğü yeni bir butonun oluşturulduğunu çok daha etkili bir biçimde anlatabiliyor. + javaya gidiyor.
    Pascal - , Java +

  • Super , Inherited
    Javada ki Super kelimesi yaptığı işi tam olarak karşılamıyor gibi bir izlenim bırakmıştır bende hep. Oysaki pascaldaki inherited kelimesi yaptığı işi tam olarak karşılıyor bana göre.
    Pascal + , Java -
  • Garbage Collector
    Bir programlama dilinin programcısına her türlü kolaylığı sağlaması gerekir. Programcıların uğraşacakları yeterince problemleri vardır zaten. Bir de bunlara büyük / küçük harf probleminin eklenmesi , oluşturulan nesnenelerin yok edilmesi sorumluluğun verilmesi koca koca derleyicilere yakışmaz. Garbage Collector özelliğinin delphiye de bir an önce gelmesini temenni ederek + yı javanın hanesine yazıyoruz.
    Pascal - , Java +

Aslında daha yazacak başka farklarda mevcut ama birazcık yoruldum gibi. Şimdilik benden bu kadar diyerek sizlerinde düşüncelerinizi belirtmenizi rica eder sayfanın Google Translate linkini de ahan buraya koyarım :)

Comments 12 Comments »

Windows haricindeki diğer işletim sistemleri içinde kod yazmak her programcının olduğu kadar delphicilerinde rüyasıdır.  Bazıları bunu gerçekleştirirken delphiciler için bu bir takım denemelerden öteye geçemedi.

Kylix ile yapilan deneme basarisiz oldu ve Kylix bir daha geri dönmemek üzere tarihin tozlu sayfalarında yerini aldı. Bu basarisiz denemenin ardından Delphi için Cross Compilation olayinin üzeri bir daha açılmamak üzere örtüldü gibi oldu ta ki yayınlanan yol haritasında Cross-compilation to other operating systems ifadesini görünceye kadar.

Gerçi bu özellik ilerde delphiye eklenmesi düşünülen , henüz bir zaman dilimine oturtulmamış bir özellik olarak yazılmıştı oraya ama yinede geliştiricilerde ufak bir heyecanlanmaya neden oluyordu ya da belkide bu özelliğin delphiye eklenmesi hiçbir zaman düşünülmüyordu ve sadece “nasıl olsa ucu açık” bir ifade olduğundan maksat ortalık şenlensin diye de yol haritasına konulmuş olabilirdi.

Bir süre sonra Delphi Prism çıktı ve bazı bloglarda sorulan Cross-compilation olayindan ne haber? tarzı sorulara verilen “Prism çıktı ya işte! , Mono sayesinde windows, linux ve daha birçok işletim sistemi için program yazabilirsiniz?” tarzındaki cevaplar birçok programcının hevesini kursağında bırakmaya yetmişti.

Hal böyle olunca birçok delphicide bu rüyayı gerçekleştirmek için başka idelerin , kütüphanelerin , dillerin peşine düştü mecburen. Kimisi zaten yıllardır bu işi yapan Free Pascal Compiler ve Lazarusu tercih ederken kimisi Java gibi dillere yöneldi kimiside Qt gibi cross platform kütüpheneler kullanmaya başladı.

İçinde bulunduğumuz durum buyken Delphi 2009 ile dile eklenen Anonymous Method adlı bir özellik beni kıllandırmaya yetti. Bu özellik delphi topluluğundan her hangi bir talep yokken birdenbire dile eklenmiş bir özellikti. Sanki delphiyi geliştirenler delphi kullanan kişiler için değilde kendileri için eklemişlerdi bu özelliği dile. Güzel bir özellikti ama biz kullanıcılardan ziyade delphiyi geliştiren ekibin işine daha çok yarayacağı açıktı bu özelliğin. Sadece Anonymous Method değildi benim bu şekilde düşünmeme neden olan gelişmeler. DbExpress in cross platform bir yapıda olması , Delphi 2009 ile birlikte DataSnap teknolojisinin COM dan yani Microsofttan bağımsız hale getirilmesi, Delphinin yeni sahibinin çeşitli işletim sistemlerinde çalışan programlarının olması… Hepsi bir araya gelince ister istemez düşünmeden edemiyordum. Acaba CodeGear gizliden gizliye ciddi bir şekilde platform bagimsiz bir delphi için mi uğraşıyordu ?

Cevabi şurdaki yazıda buldum. Delphi ürün yöneticisi Nick Hodges, Delphi takımının tamamen yeni bir cross-compilation teknolojisi üzerinde çalıştığını söylemiş.  Tüm delphiciler gibi bende heyecanla bu özelliğin ne zaman bizlere sunulacağını bekliyorum. Yakın bir zamanda yeni yol haritası yayınlanacak. Umarım ordan somut bazı bilgiler edinebiliriz.

Comments 3 Comments »

TIOBE siralamasinda delphinin gercek yerine ulasabilmesi icin Delphi ile ilgili blogunuza , web sayfaniza , forumunuza “Delphi programming” ifadesini eklemeyi unutmayin. Siralamalada tekrar yukselise gecen Delphiye sizde destek olun.

http://www.delphi.org/2008/10/the-many-faces-of-delphi/

Comments No Comments »

Cesitli platformlari(Dos, FreeBSD, Linux, Mac OS X, OS/2, Windows, Windows CE 32bit , 64bit) destekleyen Free Pascal Compiler (FPC) in yeni surumu 2.2.2 yayinlandi.

Compiler olarak FPC yi kullanan Lazarusun ise yakin zamanda 0.9.26 versiyonun yayinlanmasi bekleniyor.

Comments No Comments »

Burdaki yazimizin son bolumune CodeGear ‘in Delphi For .Net in gidisatindan pek memnun olmadigi icin radikal bazi degisikliklere gidecegini not dusmustuk hatirlarsaniz. CodeGear Urun Gelistirme ve Strateji Bolumu Baskani Michael Swindell ‘ in bazi bloglarda .Net hakkinda ki bir takim planlarindan bahsetmesi ortaligi alevlendirdi ve gelistirici bloglarindan Delphi for .Net spekulasyonlari ardi ardina gelmeye basladi. Akabinde Delphi Urun Yoneticisi Nick Hodges ‘ in .Net ile ilgili olarak yaptigi bir takim aciklamalar ile ortalik hepten bulanirken Data Abstract , RemObjects SDK , Hydra , AnyDac , Pascal Script , .Net ve Mono icin gelistirdikleri Oxygene adli compiler ile adindan soz ettiren Rem Object firmasinin kurucularindan Marc Hoffman, blogunda yazdigi 3 cumle ile bazi seylerin netlesmesini sagladi. “Kagitlar imzalandi , Oyun yeniden baslasin” ifadesi CodeGear ile Rem Object firmasinin arasindaki bir anlasmanin varligini acikca gosteriyor. Bu anlasmanin odak noktasinda Oxygene adli urunun oldugu ise cok net.

spekulasyonlarla ilgili bir kac blog adresi :
http://beensoft.blogspot.com/2008/08/speculating-on-net-plans-2.html
http://beensoft.blogspot.com/2008/08/tiburon-win32-only-speculating-on-net.html
http://beensoft.blogspot.com/2008/07/return-of-winforms-in-delphi-for-net-or.html
http://blog.marcocantu.com/blog/delphi_dotnet_plans_swindell.html

Delphi For .Net , Visual Studio icerisine yerlestirilecek , bu asamada temel olarak buyuk ihtimalle Oxygene alt yapisi kullanilacak. Akibeti mechul olan sey ise VCL.Net

***

Tiburon yeniliklerini iceren rusca bir yazi okumak isterseniz buraya tiklayabilirsiniz. Tiburon yeniliklerinin anlatildigi bu sayfada ilgili ozellikleri iceren diger bloglarada baglantilar mevcut. Zaten sitenin varligindan da o sekilde haberdar oldum. DataSnap ile ilgili yayinladigimiz videoya baglanti vermisler. :)

Comments 3 Comments »