19 Kasım 2007 Pazartesi

Desktop, Web, AJAX ve Yahoo! Pipes

Web dünyası bilgiyle ve veriyle dolu. O kadar çok bilgi kaynağı mevcut ki, sadece onlardan gelen bilgileri yayınlayarak bile ciddi ziyaretçi kitlesi yakalamak mümkün. Bunun en güzel örneklerinden biri: news.google.com

Bu bilgileri online derlemek, bir araya getirmek, filtrelemek ve uygun kitlelere sunmak çok önemli. Web uygulamalarının User Interface olarak yetenekli olması bu noktada çok önemli. Web uygulamaları bu noktada desktop uygulamalardan daha fazla imkan sunar hale geldiler. İşte size bunun en güzel örneklerinden biri: Yahoo! Pipes Yahoo! ID'niz ve parolanız ile uygulamaya giriş yapabilirsiniz. Uygulamada, sürükle-bırak yöntemiyle ekrandaki kutular arasında borular ("pipe") oluşturulabiliyor. RSS kaynaklarını ekranınızda birleştirebilir, kendi filtrelerinizi yapıp, bilgileri derleyebilirsiniz.

Yahoo! Pipes devşirilerek backoffice uygulamalarında User Interface olarak kullanılabilir. Belki birileri yapmıştır bile. Kim bilir?...


Yahoo! Pipes tanıtım videosu: http://www.jumpcut.com/fullscreen?id=594F555C568011DC9D24000423CEF5B0&type=movie

18 Kasım 2007 Pazar

Adobe, Eclipse ve JSEclipse

Web'in, desktop uygulamaların sunduğu imkanları sunmaya başlamasıyla birlikte, desktop uygulamaların yerini Web uygulamaları almaya başladı. Web'in mecburi dili olan Javascript artık çok daha önemli. Web uygulamanızı geliştirmek için hangi Uygulama Sunucusunu (ColdFusion, .Net, Java vs) kullanıyor olursanız olun, Javascript dili, kullanmanız gereken bir dil durumdadır. Geliştiricileriniz bu dili az yada çok bilmek zorundadır. Zengin web uygulamaları geliştirmek için kalabalık Javascript kodları yazmanız gerektiği göz önüne alındığında, artık Uygulama Sunucunuzda hazırladığınız kodları yazarken gösterdiğiniz özen ve kaliteyi, Javascript kodlarınıza da göstermeniz gerekiyor. Bu noktada, kullandığınız Bütükleşik Geliştirim Ortamının (IDE) Javascript kodlarken geliştiricilerinize yardımcı olması ve onların işlerini kolaylaştırması çok önemlidir.

Adobe, hem ColdFusion geliştirim ortamı için hem de Javascript geliştirim ortamı için IDE olarak Eclipse'i seçmiş durumdadır. Adobe'nin Eclipse için hazırladığı JSEclipse eklentisi, Javascript kodlamayı kolay hale getiriyor. Adobe bu eklentinin Eclipse'e kattığı özellikleri göstermek için bir video yayınladı. Bu video, JSEclipse ile ileri seviye kodlama yapmanın ne kadar kolay hale geldiğini gözler önüne seriliyor. Söz konusu video, JSEclipse eklentisinin özelliklerini göstermek için hazırlanmış olsa da, giriş seviyesindeki bir Javascript geliştiricisine Javascript'te nasıl Nesne Yönelimli Programlama yapıldığını gösterdiği için aynı zamanda bir Javascript eğitim videosu halini almış durumda.

Adobe'ye, Eclipse'i seçtiği için ve bu videoyu hazırladığı için teşekkürler.

16 Kasım 2007 Cuma

JSON

JSON nedir ne değildir. JSON hakkında yanlış bilinenler. Avantajları.

JSON nedir?

JSON (Javascript Object Notation) veriyi ifade etmek için (notation: gösterme) kullanılan bir yazım tarzıdır (syntax); tıpkı XML ve CSV gibi. Adında "Javascript" olsa da, JSON yazım tarzını, Javascript dışındaki dillerde de kullanabilirsiniz: ColdFusion 8+, Java, PHP, Python...

Örnekler:

ÖRNEK JSON VERİ VERİYİ KULLANMA
students = [
{id: 18, name: 'Eşref Atak'},
{id: 19, name: 'Saliha Atak'}
];

// "Eşref Atak"
a = students[0].name;

// 19
a = students[1].id;

students = [
{is_member: true, childeren: [
{id: 132, name: 'Yunus'},
{id: 472, name: 'Damla'}
]
},

{is_member: false, childeren: [
{id: 932, name: 'Yunus'},
{id: 472, name: 'Damla'}
]
}

];
// "Damla"
a = students[1].childeren[1].name;

Örneklerde görüldüğü üzere, JSON içerisinde array, numeric, boolean... her tipte veri tanımlayabilirsiniz.Bu tipler, kullanmaya hazırdır. Kullanmadan önce dönüştürmek gerekmez (XML'in aksine).

JSON ne değildir?

JSON bir kütüphane (library) değildir: Elinizdeki bir CSV veya XML veriyi JSON'a dönüştürmek isteyebilirsiniz. Yada, JSON veriyi XML'e dönüştürmek isteyebilirsiniz. Bu gibi durumlarda dönüştürme kodları yazmalısınız. Dünyada, JSON dönüştürme işlemlerini yapan hazır ve kaliteli birçok kütüphane mevcuttur. JSON için hazırlanmış birçok kod kütüphanesinin var oluşu, JSON ile kütüphaneler arasında yanlış algılamalara neden olabilmektedir.

JSON bir framework değildir: Framework'ler çoğu zaman binlerce satır koddan oluşur. Bu nedenle, sağlam ve esnek temeller üzerine oturtulması gerekir. JSON, esnek ve sağlam bir temeldir ve framework'ler tarafından yoğun olarak kullanır. JSON ile framework'lerin bu iç içe geçmiş yapısı, JSON ile framework'lerin birbirine karıştırılmasına neden olabilmektedir. JSON bir yazım tarzıdır. Framework'ler ise, yazılımınızı kodlama biçiminizi tamamıyla değiştiren iskelet mimarilerdir.

JSON bir dil değildir: Dil ile iç içe geçmiş yapısı, onun bir dil olduğu yanılgısına sevk edebilir. JSON, dillerin yeteneklerini artıran, onları destekleyen bir yazım tarzıdır.

Avantajları

Büyük bir text veriyi ifade etmek için, XML gibi karmaşık ve Kilobayt olarak "ağır" etiketler yazmanıza gerek yoktur. JSON'un yazımı basittir, text yükü hafiftir.

Elinizdeki bir JSON ifadeyi, kodunuzun içine yapıştırıp bir değişkene set ederek direkt olarak kullanmaya başlayabilirsiniz.

XML'de olduğu gibi karmaşık ve ağır "parse" işlemlerine gerek yoktur.Kullanıma hazırdır.

Dünyadaki tüm diller tarafından desteklenen bir yazım tarzıdır: PHP, Java, .NET, ColdFusion 8+...

JSON ve XML

JSON, XML'in alternatifi değildir. İhtiyaçlarınıza göre ikisinden birini tercih edebilirsiniz.

Kaynaklar

http://www.developer.com/lang/jscript/article.php/3596836

http://www.json.org/json-tr.html

http://en.wikipedia.org/wiki/JSON


14 Kasım 2007 Çarşamba

AJAX request

Bu yazıda, AJAX XMLHttpRequest'lerine (XHR) değinilecektir. XHR ile ilgili yanlış algılamalara, XHR'da Javascript kodlarının neden çalışmadığı ve çalışması için neler yapılabileceğine değinilecektir.

IFRAME'lerin yaptığı request'ler gerçek bir request'tir. Bu sayede, çağrılan sayfadaki Javascript'leri çalıştırabilir, fonksiyonları sayfanızda kullanabilirsiniz. Fakat, AJAX request'leri (XHR) böyle değildir. Sayfadaki Javascript kodları çalışmaz. Çünkü, XHR'dan dönen içerik bir text olarak algılanır, Javascript'ler çalışmaz. XHR sayfa çağırmak için tasarlanmamıştır. BODY, SCRIPT gibi etiketler içermemelidir. Eğer içerikteki Javascript'ler sizin için önemliyse, bunu kendi başınıza halletmek zorundasınız. Yüzlerce satır kod yazmaya hazır olmalısınız. Birkaç Javascript kütüphanesi bu konuda yardımcı olmak için hazır özellikler sunar. Konuyla ilgili olarak Spry ve Ext kütüphaneleri aşağıda karşılaştırılmaktadır.

Spry

http://labs.adobe.com/technologies/spry/samples/htmlpanel/html_panel_two.html sayfasında anlatılan "evalScripts" özelliği kullanılarak, XHR'dan dönen içerikteki Javascript kodlarınızın ir defaya mahsus çalıştırabilirsiniz (request esnasında). Fakat, maalesef XHR içeriğinizdeki Javascript fonksiyonlarınızı sayfanızda kullanamazsınız.

Ext

XHR içerikteki Javascript kodlarınızı çalıştırabilir ve fonksiyonları sayfanızda kullanabilirsiniz. Ayrıntılı bilgiye http://extjs.com/deploy/dev/docs/?class=Ext.Updater adresinden ulaşılabilir.XHR içeriğindeki Javascript kodları konusunda dünyanın en iyi kütüphanesi Ext'tir. Esnek yapısı sayesinde IE'nin eval bug sorununun üzerinden atlayabilir ve ColdFusion CFFORM içeren sayfalarını bile XHR ile çağırıp kullanabilirsiniz. Ext geliştirici takımının Workcube için hazırladığı söz konusu work around'a http://extjs.com/forum/showthread.php?t=15629&page=3 adresinden ulaşılabilir.

28 Ekim 2007 Pazar

Mobil cihazlar için içerik üretmek ve Adobe Device Central

Cep telefonu, PDA gibi mobil cihazlar için içerik hazırlamak çoğu zaman zahmetli ve masraflıdır. Üretilen içerik bir cihazda güzel çalışsa, diğer bir üründe kötü çalışabilir. Adobe Device Central, bu konuda işlerinizi kolaylaştırabilir.

Günümüzde PDA'lerin pabucu dama atıldı denebilir. Tüketiciler tek bir ürün istiyorlar. Günümüzde, cep telefonlarının özellikleri ve ekran çözünürlükleri o kadar arttı ki, her cep telefonu bir PDA kadar çok özelliğe sahip durumda. Her ne kadar, PDA'ler yavaş yavaş kalkıyor olsa da, piyasada halen birçok farklı marka ve model cihaz var. Ürettiğiniz içeriğin piyasadaki mobil cihazlarda sorunsuz çalıştığını görmek ve içeriğinizi düzeltmek için, her marka ve modelden birer cihaz almanız gerekir. Adobe'nin, bu sorunu ortadan kaldıran, içeriğinizi cihazlar için uygun ve uyumlu hale getirmenize yardımcı olan bir ürünü var: Adobe Device Central.

Bu ürünü kullanarak, içeriğinizi piyasadaki en çok kullanılan mobil cihazlar için simülasyon tekniğiyle sınayabilir ve gözlemleyebilirsiniz.

Ayrıntılar: http://www.adobe.com/products/creativesuite/devicecentral/


23 Ekim 2007 Salı

AJAX dünyası ve Adobe

Adobe'nin, bir Javascript kod kütüphanesi olan Spry'ı hazırlamaktaki amacı nedir? Hedef kullanıcı kitlesi nedir? ColdFusion ve Spry ne kadar entegredir.

Resmî sayfasındaki (http://labs.adobe.com/technologies/spry/) kelimelerden de farkedebileceğiniz üzere, Spry Framework'ün hedef kitlesi web site tasarımcılarıdır. Dreamveawer eklentisini (http://www.macromedia.com/go/labs_spry_download) kullanarak, tasarımcılar hazırladıkları sayfalarda AJAX yetenek ve işlevlerinden istifade edebilirler. Dreamveawer'daki "Code" görünümüne hiç geçmeden, tamamıyla Design görünümünde kalarak AJAX kullanabilirler. Eklenti sayesinde, Properties kullanarak linkler "dinamik" hale getirilebilmektedir. Dreamveawer CS3 ilk kurulduğunda Spry kurulu gelmiyor. Sonradan kurulması gerekiyor. Spry'in sitesinden indirilip kurulabilir.

ColdFusion ve Spry

Tahmin edilenin aksine Adobe, ColdFusion 8'de Spry kullanmamıştır. CFWINDOW, CFDIV, CFLAYOUT vs gibi etiketler, Spry'ı kullanmamaktadır. Adobe, ColdFusion 8'de Ext JS kütüphanesini ve YUI kütüphanesini (http://developer.yahoo.com/yui/) kullanmıştır. Söz konusu kütüphaneler, zengin arayüzler hazırlamak ve AJAX işlevlerini sunmak için kullanılabilen çok başarılı kütüphanelerdir.

Ext JS

Şirketin resmî internet sitesine http://extjs.com/ adresinden ulaşılıyor. Şirket, performanslı Destek Takımı (http://extjs.com/deploy/dev/docs/), zengin dökümantasyonu ve imrendiren referans listesi (http://extjs.com/) ile göz dolduruyor. Topluluklar (community) tasarından hazırlanmakta olan ve dünyanın en esnek lisansı olan BDS lisansı (http://en.wikipedia.org/wiki/BSD_license) altında sunulan YUI kütüphanesini temel alarak ürün geliştirmeye başlayan şirket, bir iki yıl içerisinde çok başarılı bir ürün ortaya çıkarmış durumda. Adobe tarafından ilhak edilerek bünyeye katılacağı öngörülebilir.

Dreamveawer ve Visual Studio

Microsoft, son teknolojileri çok yakından takip etmekte ve çoğu zaman eğilimleri yönlendirmektedir. Bunun en belirgin göstergelerinden biri durumunda olan Visual Studio (http://msdn.microsoft.com/vstudio/), IDE (http://en.wikipedia.org/wiki/Integrated_development_environment) pazarının en bilinen ve en güçlü ürünlerinden biridir. AJAX "furyasının" başladığı ilk günlerden bu yana AJAX desteğini sürdürmektedir. Adobe Dreamveawer, bu ürünle kıyaslandığında, güncelliğini kaybetmiş durumdadır. Adobe, Spry Framework'ü hazırlamak suretiyle, bu eksikliğini kısmen gidermiş durumdadır.