26 Ağustos 2007 Pazar

Sayfadaki bilgiyi değiştirmede yeni yaklaşımlar

Sitede kayıtlı bir bilginizi değiştirmek için, uzun profil formundaki ilgili metin kutusunu bulup değiştirmek yerine artık yeni yaklaşımlar geliyor.

Bir web sitesine üyesiniz. Mesela profil sayfanızdasınız. Adınız, soyadınız, e-posta adresiniz vs sayfada görünüyor. Sayfadaki örneğin adınızı değiştirmek istediğinizde şu anda şuna benzer işlemler yapmanız gerekir; Bilgilerimi Güncelle düğmesini tıklatırsınız. Tüm profil bilgilerinizin yer aldığı kalabalık bir form açılır. "Ad Soyad" metin kutusunu bulur değiştirirsiniz ve Kaydet düğmesine basarsınız. Bilginiz sisteme kaydedilir. Site sizi anasayfa yönlendirir. Siteyi gezerken en son hangi sayfada kaldığınızı unutursunuz. Tarayıcının Geri düğmesini kullanarak kaldığınız yere geri dönersiniz... Bir bilginizi güncellemek işkence halini almıştır.

Sistemdeki bilgilerinizi güncellemek için web sektöründe yeni yaklaşımlar çıkıyor. İşte bazıları.

Yerinde Düzenle

Profil sayfanızdasınız. Sayfada adınız yazıyor. Adınızı çift tıklatıyorsunuz. Adınız metin kutusuna dönüşüyor. Adınızı değiştirip Enter tuşuna basıyorsunuz. AJAX sayesinde sayfa yenilenmeden yeni adresiniz sisteme kaydediliyor. Yapmanız gereken başka hiç birşey yok.

Onu Düzenle

Bu yaklaşımda, profil sayfasındaki adınızı çift tıklatıyorsunuz. AJAX ile bir iç popup açılıyor. İç popup'ta sadece bir tane metin kutusu var: "Ad Soyad" kutusu. Kutuyu doldurup Enter tuşuna basıyorsunuz. Yeni adresiniz sayfa yenilenmeden sisteme kaydediliyor. Yapmanız gereken başka hiç birşey yok.

Sonuç

Açılan kalabalık formlarla kıyaslandığında, bu yaklaşımların hepsinin işlevsel tasarım açısından daha başarılı yaklaşımlar olduğu kesindir. Bilgiyi kaydetmek kolay olduğundan; kayıtlı olmayan bilgiyi vermek teşvik edilmiş olur, bilgilerden eski olanların güncellenmesi teşvik edilmiş olur vs...

Tarayıcıların sunmaya başladıkları olgunlaşmış Javascript destekleri, başarılı Javascript frameworkleri ve AJAX sayesinde, Web sayfaları masaüstü yazılımlarının sunduğu işlevselliği yakaladı da geçiyor bile. Birkaç yıl içerisine, bu araçların birleşip ortak yaklaşım ve konseptlere hizmet eder hale gelmeleri gelecekleri görünüyor.

18 Ağustos 2007 Cumartesi

Web 2.0 nedir?

AJAX, SOA, bıcır (widget) gibi teknolojik terimlerle açıklanmaya çalışılan Web 2.0 gerçekte bir akımdır. Teknolojik araçlar, bu yaklaşıma hizmet edecek yardımcı araçlardan ibarettir.

Web 2.0, web hizmetini iyileştirmek amacıyla ziyaretçilerin siteye katılımını (participation) sağlamak, yine aynı amaçla diğer sitelerle ve ziyaretçilerle işbirliği (collaboration) yapmak fikrine dayanan bir akımdır. Haberdar olmayı ve katılımı kolaylaştırmak amacıyla AJAX, bıcır (widget), RSS... gibi teknolojiler kullanılabilmektedir. Siteler kendi aralarında işbirliği yapmak amacıyla SOA, XML, WebService gibi teknolojiler kullanabilmektedirler.

Bu akımda, içeriğin sınıflandırılmasından (etiketleme-tagging) zenginleştirilmesine kadar (Örn: Wikipedia) her türlü büyük-küçük katkı teşvik edilir ve memnuniyetle karşılanır. "Bilgi sağlayıcı" konumuna yükselmiş olan ziyaretçilerin sağladıkları taraflı-tarafsız bilgi, sitede doğrudan yayınlanmaya başladığından, gelişmekte olan ülkelerde hukuki sorunlar yaşanabilmektedir (Wordpress'in yayını, mahkeme kararıyla engellendi).

Wordpress'in yayını, mahkeme kararıyla engellendi

Wordpress'in anasayfasına ve binlerce blogtan herhangi birine girmeye çalışıldığında, aşağıdaki mesaj görüntüleniyor:

"Bu siteye erişim mahkeme kararıyla engellenmiştir.

T.C. Fatih 2.Asliye Hukuk Mahkemesi 2007/195 Nolu Kararı gereği bu siteye erişim engellenmiştir.

Access to this site has been suspended in accordance with decision no: 2007/195 of T.C. Fatih 2.Civil Court of First Instance. "

İnternetteki bu türlü yasakları, çok faydalı buluyorum. Zira; internetin hukukta bir mecra olarak kabul edilmesi, bu mecranın hukukçular tarafından ele alınmasına ve yasalarda gazete, TV, radyo vs mecraların yanında bu mecradan da bahsedilmesine vesile oluyorlar. İnsanoğlunun hiçbir yasağı sonsuza dek sürmedi, sürmez. Tıklatın ve siteye girin. Bakalım yasak kalkmış mı: www.wordpress.com


13 Ağustos 2007 Pazartesi

İşlevsel tasarım hataları ve SQL Server Management Studio

İşlevsel tasarım, hayatın her aşamasında var ve önemli. SQL Server 2005 client'ı SQL Server Management Studio'daki ufak bir işlevsel tasarım hatasının, onlarca sitenin durmasına nasıl neden olduğunu okuyun.

Olay: "New Query" düğmesiyle bir pencere açıldı ve bir SQL yazıldı. Bir tablodan diğerine

INSERT INTO ... SELECT FROM....

...ifadesiyle kayıt aktarıldı. "New Query" ile yeni bir pencere daha açıldı. Bu kez, doldurulan tablodaki kayıt sayısı

SELECT count(*) FROM ...

ile saydırılmak istendi. Fakat, bu SQL hiç cevap vermedi. Birkaç kez "Execute" edilir ama işe yaramadı. Bu arada, SQL Server'ı kullanan ColdFusion siteleri tamamıyla kapandı. ColdFusion hizmet veremez hale geldi.

Soru: Sizce sorun nedir?

Yanıt: Açılan ilk New Query penceresindeki INSERT ifadesini "commit" etmek unutulmuştur. Commit edilmemiş bir TRANSACTION işlemi mevcut olduğundan, SQL Server, tabloda COUNT(*) işlemi yaptırmadı. Benzer şekilde, sitelerdeki SQL ifadeleri bekletildi. Çünkü, commit edilmemiş INSERT ifadesi için tablo kilitlenmiş ("lock") durumdadır. SQL Server yanıt vermediği için, hem SQL Server'da hem de ColdFusion'da açık connection sayısı artar, artar, ColdFusion kilitlenir.

Çözüm: Açılan ilk Query penceresinin kapatılması gerekiyor. Zira; pencere kapatılmadığı sürece, TRANSACTION'nun commit edilmesi mümkün değildir; "commit edeyim mi" diye tek onay mesajı pencere kapatılırken görüntülenmektedir, hiçbir yerde "Commit" düğmesi yoktur. Pencereler kapatılmış, TRANSACTION'lar commit edilmiş, sorunlar ortadan kalkmıştır.

SQL Server 2005 client'ındaki diğer bir işlevsel tasarım sorunu, yanlış veritabanında işlemler yapmanıza neden olabilir!:

Sorun: Client'ın araç çubuğunun sol kısmındaki New Query düğmesini kullanırsanız, "rastgele" bir veritabanına bağlantı kurulur ve bir SQL penceresi açılır. Eğer, bağlantının hangi veritabanına kurulduğunu kontrol etmezseniz, yanlış veritabanında işlem yapmanız işten bile değildir!

Çözüm: Araç çubuğundaki New Query düğmesini oradan kaldırın. Veritabanında bir SQL çalıştırmak için, veritabanını sağ tıklatın; New Query komutunu verin. Böylece; seçtiğiniz veritabanına bağlantı kurulacaktır.

11 Ağustos 2007 Cumartesi

ColdFusion 8 yeni özellikler ve AJAX desteği

Abobe.com'da ColdFusion 8 yeni özellikler sayfası. Başarılı bir sayfa. cfdiv etiketi YouTube videosu. cfajaxproxy etiketi YouTube videosu.

ColdFusion 8'in yeni özelliklerini anlatan çok iyi bir sayfa var Adobe.com'da. Tüm geliştiricilerin okumasında fayda var. Adobe'ye geçişten sonra, ColdFusion belgelendirmeleri daha ayrıntılı ve daha iyi hale geldi:

http://www.adobe.com/products/coldfusion/features/

etiketi:

http://www.youtube.com/watch?v=whjPKSqPl6c

etiketi:

http://www.youtube.com/watch?v=JkQuW285qtM