Sayfalar

31 Ağustos 2010 Salı

code::blocks hakkında

Diyelim ki elimizde algoritmasını oluşturduğumuz ve Windows ortamında çalışmasını istediğimiz bir projemiz mevcut ve de kaynak bolluğu açısından da c/c++’ı tercih ettik. Şimdi bu algoritmayı geliştireceğimiz bir ortam lazım bize. Bilienen en büyük ve geniş ortam tabi ki de Microsoft Visual Studio. ve .NET platformu. Ancak yasal çalışmak istiyorsak ve maliyet açısından da sıkıntı çekiyorsak bize bedava olan bir derleyici lazım. Bu ihtiyacı karşılamak için de açık kaynak kodlu bir IDE olan Code::Blocks tercih edilebilir zira hem fonksiyonelliği hem de kullanışlığı yüksek bir arabirime sahiptir.

Seçimlerimizi yaptığımıza göre "Nedir bu Code::Blocks?" , "Özellikleri nedir?" , "Compiler, Debugger, Linker, IDE vb. terimlerin anlamları nedir?" bunlara el atalım.

Şimdi ilk önce Code::Blocks’un ne olduğu sorusuna geçelim. Code::Blocks içinde GCC paketini barındıran Cross-Platform bir IDE uygulamasına güzel bir örnektir.

Sıra bu süslü püslü bilgisayar terimlerinin ne olduğunda;
Cross-Platform : Birden fazla işletim sisteminde dağıtımı bulunan uygulamalardır diyebiliriz cross-platform için.
  • Windows 2000/XP/Vista/7
  • Linux 32-bit/64-bit
  • Mac OS X
platformlarında uygulamaları bulunduğu için Code::Blocks bir cross-platform uygulamasıdır.

IDE : Integrated Development Evironment ( Tümleşik Geliştirme Ortamı ) özelliği olan programlar içinde pek çok geliştirme ortamını barındırırlar. Tümleşik geliştirme ortamlarında olması gerekli en temel özellikler:
  • Programlama diline göre sözdizimi renklendirmesi yapabilen kod yazım editörü.
  • Kod dosyalarının hiyerarşik olarak görülebilmesi amacıyla hazırlanmış gerçek zamanlı bir dizelge.
  • Tümleşik bir derleyici, yorumlayıcı ve hata ayıklayıcı.
  • Yazılımın derlenmesi, bağlanması, çalışmaya tümüyle hazır hale gelmesi ve daha birçok ek işi otomatik olarak yapabilmek amacıyla küçük inşa araçları.

Peki Code::Blocks bir IDE ise bu şartları sağlıyor mu? Sırasıyla inceleyelim:

1. "Programlama diline göre sözdizimi renklendirmesi yapabilen kod yazım editörü. " ve "Kod dosyalarının hiyerarşik olarak görülebilmesi amacıyla hazırlanmış gerçek zamanlı bir dizelge."( Örnek Resim 01 )

2. "Tümleşik bir derleyici, yorumlayıcı ve hata ayıklayıcı. " ve "Yazılımın derlenmesi, bağlanması, çalışmaya tümüyle hazır hale gelmesi ve daha birçok ek işi otomatik olarak yapabilmek amacıyla küçük inşa araçları"

Örnek Resim 01
Code::Blocks;
  • Compiler ( derleyici ) olarak GCC ( GNU Compiler Collection ) paketini (C, C++, Objective-C, Fortran, Java ve Ada dillerini içerisinde barındırmaktadır.) kullanmaktadır.
  • Ancak programımızın çalışmasını istediğimiz platform olarak Windows’u seçtiğimiz içinGCC’nin Win32 uygulamalarını derleyen kısmı olan MinGW ( Minimalist GNU for Windows) ‘yi kullanmaktadır demek daha doğru olacaktır :)
  • Debugger ( Hata Ayıklayıcı ) olarak GNU’nun hata ayıklayıcısı olan GDB’yi kullanmaktadır ( GDB: The GNU Project Debugger ) . GDB; C,C++ Objective-C, Ada Pascal ve diğer dillerde yazılan kodlarda hata ayıklayabilir-miş sitesinde yazılana göre :)
  • Yorumlayıcı kısmına girecek olursak tam olarak Code::Blocks’un nasıl bir yorumlayıcı kullandığından emin değilim açıkcası :)ama kullandığı bir tane mevcuttur muhakkak ( Yorumlayıcı hakkında daha fazla bilgi almak için tıklayınız. )

Code::Blocks’un sitesinden de özellikleri hakkında bilgi sahibi olabilirsiniz. Şimdi sıra Code::Blocks’un kurulumunda. Devam etmek için "Code::Blocks’un Kurulumu " başlıklı yazıya devam edebilirsiniz.

Bu yazıda kullanılan siteler :
  • http://en.wikipedia.org/wiki/Integrated_development_environment
  • http://en.wikipedia.org/wiki/Linker_%28computing%29
  • http://en.wikipedia.org/wiki/Compiler
  • http://en.wikipedia.org/wiki/Debugger
  • http://gcc.gnu.org/
  • http://www.bilgisayarkavramlari.com/2008/01/04/yorumlayici-interpreter/

tarihçesi ile flash

Günümüz oyun ve reklam sektörü başta olmak üzere, gerek internet ortamında, gerekse de mobil uygulamalarda çok sık karşılaştığımız veya kullandığımız flash; kolaylığı, erişebilirliği ve görselliği sayesinde vazgeçilmezler arasına yerleşmiş bulunmaktadır.

Sevgili Ayşen KARAMETE hocamızın bize ikinci sınıfta dediği gibi; "Flash ile yapılabilecekler sizin hayalgücünüzle sınırlı." Bu söze katılmamak elde değil zira Flash’ın en sonki dili olan Action Script 3 ile artık hayallerimizi gerçekleştirmemize bir adım daha yakınız.

Neden böyle pazarlamacı gibi konuşuyorum diyecek olursak? Şöyle ki; AS3 ile birlikte artış gösteren esneklik, verimlilik ve erişebilirlik beraberinde geliştirilen ek kütüphaneler ile 3D uygulamalarını web ortamında daha rahat gösterecek düzeye getirdi. Böylece artık daha interaktif web safyalarına sahip olup, 3D oyunları oynayabilecek düzeye geldik ve daha yenilikçi etkileşimlerde bulunup, daha farklı reklam politikaları izleyen şirketler gördük.

Bu yenilikçi dil için geliştirilmiş kütüphanelere örnek vermek gerekirse "Away3D" kesinlikle çok güzel bir örnek olacaktır. Zira piyasada "Papervision3D" isim yapmış durumdayken, "Away3D" güzel bir alternatif niteliğindedir. Bu iki kütüphane de 3D uygulamaları rahatça gerçekleştirmenize yarayan ortamı ve desteği sağlayacak fonksiyonlara sahip gelişmiş kütüphanelerdir.

İşler sadece bu 3D kütüphaneleri ile bitmiyor tabi. Yeni bir reklam yöntemine mi ihtiyacınız var? Yine AS3 için geliştirilmiş olan “Flartoolkit” tam ihtiyacınız olan şey. Gerek bir resim, gerek sabit bir video gerekse de bir webcam sizin kaynağınız olsun. Bu kaynağınızın beyaz üzerine siyah kalemle çizilmiş özel bir kareyi gördüğü zaman; o karenin yerinde olmasını istediğiniz 3D modelin gelmesini sağlayabilecek bir ortam söz konusu artık. bu 3D modeliniz sizin ürününüzün reklamını yapan bir karekter de olabilir, bir içeriğin anlatımını yapan bir materyal de olabilir.

Dahası da var :) “touchlib” kütüphanesinin AS3 için geliştirilmiş kısmı sayesinde evde yapabileceğiniz bir aygıt ile ( ki bu aygıtın maliyeti 20-30tl eder en kötü ihtimalle ) çoklu dokunma desteği olan uygulamalar geliştirebilir, web ortamında yayınlayabilir, gerekli kod bilgisine sahipseniz de oyunlar bile yazabilirsiniz.

Bu noktada eleştirel yaklaşmak gerekirse; AS3 ve kütüphaneleri halen geliştirilmektedir ve verimliliğinin artışı üzerine çalışmalar yapılmaktadır. Halen bazı noktalarda istikrarsız davrandıkları olabilmektedir. Action Script yapısı itibariyle insana yakın nitekilte bir dildir ve makineye yakın diller gibi bazı noktalara direk erişimi söz konusu değildir. Dolaylı yollardan erişime sahip olmasından dolayı da performans açısından her zaman verimli olmayabilir. Ancak bu; gelişme sürecinde, en istikrarlıya ulaşılması için kat edilmesi gereken bir adımdır.

Konuya devam edersek; bu ve benzeri kütüphaneleri ile giderek gelişmekte olan flash peki nasıl çalışmakta hiç merak ettiniz mi? İlk sürümünden itibaren aynı mantıkla çalışmakta olan Flash’da çizdiğiniz her bir eğri, doğru, açık veya kapalı şekilbir fonksiyonda tutulmakta. Çizdiğiniz şeklin konumu da değişse, boyutu da değişse bozulmamasının nedeni bu fonksiyonun temelinde sabit kalması. sadece içine girilen değerler değişmekte. Sabit bir tanım aralığında f(x)=y+2 fonksiyonu bir doğru çizecektir koordinat sisteminde.+2 değerini değiştirmek doğrunun y eksenindeki konumunu değiştirecektir. y’nin önündeki katsayıyı değiştirmek ise de doğrunun açısını değiştirecektir. Olayın mantığı bu şekilde işlemektedir benim verdiğim naçizane bir örnektir, flash’ın arkasındaki mantığı anlatmak amaçlıdır. Flash için bu çalışma mantığı ile vektörel bir programdır diyebiliriz. Zira bugün freehand desteği kesilmiş olsa da gerek freehand’de gerekse de illustrator, fireworks ve photoshop’ta da bu şekilde vektörel çizimler mevcuttur.

Burada noktada şunu da belirtmem gerekir ki Flash’ın yaratıcısı olan “Jonathan Gay”e bir teşekkür borcumuz vardır. Zira onun hayal gücü bugünkü ortamın oluşmasında ektili olmuştur. Jonathan Gay ve Flash1′e kadarki izlediği yol hakkında ayrıntılı bilgi almak için:

http://www.flashdersleri.com/html_dosyalar/flash1.html

http://tr.wikipedia.org/wiki/Adobe_Flash