04 Aralık 2007 Salı

Mashup

Müzik ve eğlence dünyasından ilham alan Web sektörü, baş döndürücü bir User Experience deneyimine hazırlanıyor: Mashup Web Applications

"Mash" (karışım) kelimesinden türemiş olan "mashup" kelimesi, farklı müziklerin bir araya gelmesiyle oluşan müziği tanımlamak için kullanılıyor. Aynı terim daha sonraları videolar için de kullanılmaya başlandı. Terim son zamanlarda Web dünyasında da kullanılıyor: Mashup Web Applications. Bu yeni akımda farklı web uygulamalarının sunduğu imkanlar bir araya geliyor. Mashup uygulamaların sayısı o kadar arttı ki artık mashup yapmak için editörler bile var: Mashup Editors. Web dünyasının büyüklerinden biri olan Yahoo!, Mashup Editor'lerden en iyisini sunuyor: Yahoo! Pipes (http://pipes.yahoo.com/ ). Bu editörü kullanarak, farklı sitelerden derleyeceğiniz içerikleri istediğiniz kriterlere göre sınıflandırabilir ve anlık olarak kendi sitenizde yayınlayabilirsiniz. Google da mashup editör hazırladı (http://code.google.com/gme/) ama hem Yahoo! Pipes kadar eğlenceli değil hem de bir araya getirme özellikleri yetersiz. Microsoft'un mashup editörünü (http://www.popfly.ms/) kullanmak için bilgisayarınıza özel bir yazılım kurmanız gerekiyor ve hiç de keyifli bir kullanımı yok (UI).

Web dünyasının bu en yeni akımında aktörler sektörün en son teknolojilerini kullanmak için birbirleriyle yarışıyorlar: AJAX, Drap&Drop, RSS, UI... Bu akım aktörlerin adeta gövde gösterisine dönüşmüş durumda. Arkanıza yaslanın ve büyüklerin bu kıran kırana müsabakasından nemalanmaya çalışın.

Her yeni akım, Web dünyasını daha iyi ve daha verimli hale getirirken, yeni iş fırsatlarını da beraberinde getiriyor.

03 Aralık 2007 Pazartesi

ColdFusion ile RSS feed hazırlamak

İnternette konuyla ilgili olarak tam tekmil bir kod örneği yok. Belki ilk örnek bu olacak. En yalın, en basit kod bu olabilir. Kod herşeyi anlatır.


Feed hazırlarken:

* W3C denetleme aracını kullanarak, feed'inizdeki hataları öğrenebilirsiniz. Aracı sabırlı kullanın. Bazen gereksiz yere hata verebiliyor. Sık sık Yenile yapın. W3C Feed Validator: http://validator.w3.org/feed/

* <?xml satırından önce XML'de boş satır olmasın.
* Eğer enter karakterinin de olduğu HTML'ler içeren bir paragraf yayılayacaksanız, <![CDATA[]]> içerisine alın.

Örnek CFML kod:

<cfcontent reset="yes" type="text/xml; charset=utf-8">

<cfoutput><?xml version="1.0" encoding="utf-8" ?>

<rss version="2.0">

<channel>

<title>Zeytinburnu Belediyesi - <cfswitch expression="#e.kanalId#"><cfcase value="42">Haberler</cfcase><cfcase value="44">Basın Bültenleri</cfcase></cfswitch></title>

<link>http://www.zeytinburnu.bel.tr</link>

<language>tr</language>

<copyright>Copyright © 1999 - 2006 Zeytinburnu Belediyesi. Her hakkı saklıdır.</copyright>

<description><![CDATA[Zeytinburnu Belediyesi RSS]]></description>

<cfloop query="e.qryIcerikler">

<item>

<guid>http://www.zeytinburnu.bel.tr/bel_haberler/index.cfm?IcerikId=#e.qryIcerikler.ID#</guid>

<title><![CDATA[#e.qryIcerikler.BASLIK#]]></title>

<description><![CDATA[#e.qryIcerikler.ALT_BASLIK#]]></description>

<link>http://www.zeytinburnu.bel.tr/bel_haberler/index.cfm?IcerikId=#e.qryIcerikler.ID#</link>

</item>

</cfloop>

</channel>

</rss>

</cfoutput>

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.