12.02.2010

Katalog, 2009, Banu Cennetoğlu


Katalog, 2009, Banu Cennetoğlu. 53. Venedik Bienali’nde Türkiye Pavyonu.

Ayrı ayrı çekilen fotoğrafların derlenip tek bir ürüne girmesi ve dijital kopyalanmaya açık tutulması (bkz KATALOG websitesi). Venedik’te ayaküstü başkalarının seçktileri fotoğraflardan başka kataloglar yapılabileceğini konuşurken Banu “olabilir, merak ediyorum” demişti. Orjinal sanat eserinin türevleri olmasına, başka başka sürümleri olabilmesine açık olmak.

Bu yazının geri kalanını okuyun »

22.08.2009

Çakma İşler Veritabanı

Farketmeyeceğimizi mi Sandınız?” blogunda kopya işler orjinalleriyle yan yana. “İki defa kopyalanmış, bir de ben kopyalayım” diyenler için. Başlıklarıyla tuttuğum bir kaç çakma…

cakma-isler-veritabani-0
Urban Outfitters bu sefer Thrasher Magazine’den yürütüyor…

Bu yazının geri kalanını okuyun »

28.02.2009

Veritabanı İndeksleme İpuçları

Yeni bir web servisi açtınız, arkadaşlarınıza davetler gönderdiniz, yavaştan ziyaretçileriniz ve kullanıcılarınız artmaya başladı. İlk hafta günde 50 tekil ziyaretçi, ikinci hafta 100, sonra 300, 500, 1000 derken sunucular gerildi CPU/RAM oranı tavana vurdu, site gelmiyor. İlk yapabileceğiniz veritabanı yeterince optimize çalışıyor mu kontrol etmek.

İyi yapılmış veritabanı indeklemesi web servisinizin performansını %70-%80 arttırabilir. Bunu bilenler için yeni bir konu değil ancak bilmeyenler için çok hayati bir bilgi.

Hemen her veritabanı sistemi  bir tabloda bir kolonu “uniqe” tutar ve otomatik indeksler. Ancak özellikle birden fazla tabloyu birleştirerek yaptığınız sorgular için tablolar arası kurduğunuz bağlantıları da indekslemeniz gerekir. Bu indeksleme gerçektende tüm servisin %70-%80 daha hızlı çalışmasını sağlayabilir.

Hangi kolonları indeksleyebilirm?

  • JOIN için kullandığınız her kolon –foreign keys (Rails’de _id uzantılı kolonlar)
  • ORDER BY için kullandığınız her kolon (tarih, status gibi kolonlar)
  • GROUP BY için kullandığınız her kolon (yine status, ve benzeri kolonlar)
  • Tekil olduğunu kontrol ettiğiniz her kolon (mesela kullanıcı adı ve email adresi)

* Bu yazıyı taslaklar arasında buldum, yaklaşık bir yıldır bekliyormuş.

02.02.2008

Sosyal Ağ Programlama Arayüzü

Haberleri duydunuz, Google Social Graph API denilen bir sosyal ağ programlama arayüzü çıkararak internet işletim sistemini gerçeğe dönüştürme yolunda önemli adımlar attı. Nedir bu? Google internet’de yayınlanmış arkadaşlık göstergeçlerini toplayarak indeksliyor ve bu ilişkileri programatik olarak sorgulamanızı sağlıyor. Sonuçta “her isteyen” Google’a girip size ait bir websitesini girebiliyor ve tüm arkadaşlarınızın listesini alabiliyor. İsterseniz kimlere bağlısınız hemen deneyip görebilirsiniz.

social-graph-api.png

Nasıl çalışıyor?

Öncelikle kendi web sitenizde veya blogunuzda bir arkadaşınıza bağlantı verirken rel="friend" veya kendinize ait başka sitelere bağlantı verirken rel="me" yazıyorsunuz. Örnek:

<a href="http://flickr.com/photos/arikan" rel="me">Flickr fotolarım</a>

<a href="http://darakilicoglu.com" rel="friend">Arkadaşım Dara</a>

Google aramada olduğu gibi bir örümcek program bütün web sitelerini tarıyor, bunları yazdıysanız sizin arkadaşlarınızı ve diğer sosyal web servislerinde bulunan profilierinizi kendi veritabanında depoluyor, ve dünyaya sunuyor. Bu biçimde yazım çoktan WordPress, MovableType gibi pek çok blog yazılımında hali hazırda kullanılıyor, ve tabii ki şu anda Twitter, Flickr, Jaiku, MySpace, YouTube, Vimeo vs. gibi çoğu sosyal web servisi arkadaşlık ilişkilerini bu şekilde bağlantılar ile belirtiyor.

Social Graph API kesinlikle sosyal web endüstrisini ileri taşıyacak bir sistem, ama bu işi dağıtımlı ve açık yapmak varken Google’un bunu merkezi bir veri tabanında toplaması insani değil.

Kimi nasıl etkiliyor?

  • Kullanıcılar – Yeni bir sosyal web servisine kayıt olduğunuzda şöyle bir uyarı alacaksınız: “12 arkadaşınız bu sistemi kullanıyor, onları da arkadaş olarak ekleyin.” Artık burda kimler varmış diye aramaya gerek kalmıyacak.
  • Servis sağlayıcılar – Yeni kullanıcıları arkadaşlarıyla daha hızlı bağlayarak daha fazla bağlam yaratıyor olacaksınız. Başka hangi servisleri kullanıyor bileceksiniz, başka nelerle ilgileniyor görebileceksiniz. İlgi alanlarına göre reklam gösterebileceksiniz.
  • Google – Ana biriktirici olarak Google, bütün arkadaşlık ilişkilerini ve dağıtımlı kimlikleri topluyor olacak, ve tüm dünya boyutunda dev bir sosyal güven ağının sahibi olacak (bkz diğer bağlantı tipleri, günde 50,000 sorgu limiti).

Google Social Graph API girişiminin Facebook gibi kapalı sistemlere göre kullanıcıya çok daha fazla kontrol verdiğine katılıyorum (Google yayınlanmış olan verileri topluyor). Ancak Google bu sistemle hassas olan insani ilişkilere kaba kuvvetle girişmiş oluyor. Hepimiz biliyoruz ki FOAF ve XFN verileri toplanabilir ve açık bir şekilde sunulabilir, ancak bütün dünya seviyesinde verileri depolamak ve indeksleyip sunmak çok fazla para gerektirir. Bu durumda oturup Google’u yaptığı için alkışlamak mı gerekir yoksa açık ve dağıtımlı bir sosyal ağ programlama arayüzü nasıl kurulur buna mı odaklanmak gerekir.

Ben sömürüldüğümün farkındayım, buna karşıyım, ama biliyorum ki buna sadece karşı olmak bir şey değiştirmez, o yüzden sömürüyle deneysel yollardan uğraşıyorum. Bu sebebple MYPOCKET projesiyle çoktan dünyaya finansal bilgilerimi açtım ve “MACHINE READABLES” başlığıyla kendi sitemde bütün arkadaşlık ilişkilerimi ve kendime ait sosyal web servisi profillerimi makina okunabilir hale getirdim. Bunun ne demek olduğunun farkında değilseniz kendinizde denemenizi tavsiye etmem.

17.01.2008

Internet’te Açık Kimlik Yayılıyor

openid.gifOpenID açık kimlik sistemi dev internet servislerinin de benimsemesiyle giderek yaygınlaşıyor. Bugün Yahoo! yaklaşık 250 milyon kullancısı için resmen OpenID sisteminin hazır olduğunu açıkladı. 30 Ocakt’ta kullanımına başlıyor. Bir yıl kadar önce Düğümküme’de açık kimlik sistemlerinin ayağa kalkması için Yahoo Google Amazon gibi dev Internet servislerinin de bunu benimsemesinin önemli olduğundan bahsetmiştik. Bugün Yahoo’nun attığı adımı Google ve Amazon gibi devler ve hatta Facebook ve MySpace gibi sosyal ağlı servisler de takip edecektir.

http://openid.yahoo.com

Daha önce Düğümküme’de Internet’te Açık Kimlik Sistemi diye anlattığımız OpenID Internet servislerine tekrar tekrar kimlik bilgilerinizi vererek üye olmadan girebilmenizi sağlıyor. Yani artık mesela Yahoo’ya girmek için üye olmanız gerekmiyor. Açık kimlik nasıl çalışıyor daha detaylı öğrenmek için önceki yazdığımız OpenID yazısına bakmanızı tavsiye ederim.

Türkiye’de Açık Kimlik

5 ay kadar önce sosyal imleme servisimiz Bagcik.com‘da açık kimlik sistemine geçtik, ancak açık söylemek gerekirse benden başka kullanan yoktu. Sanırım ilk önce Türkiye’de açık kimlik kavramının ne olduğu ve nasıl kullanılacağı anlaşılmalı. Biz bu konuda ilk önce yazmaya başladık sonra uygulamasını da yaptık, eğer konuyla ilgileniyorsanız siz de internet’te açık kimlik kavramını blogunuzdan gazetenizden kendi dilinizle yazın çizin. Açık kimlik kullanımının artması güç odaklarını dağıtır ve daha demokratik bir internet ortamı sağlar.

02.01.2008

Yeni Nesil Internet Uygulamaları Yaratırken Dikkat Edilecekler

yeni-nesil-varis-sayfasi1.png

2008 yılında web, sayfalardan oluşan bir ağ yapısından çok bir kaynak-insan ağı olarak algılanacak. Web’in yaratıcısı Tim Berners-Lee bu gelişmeyi WWW (World Wide Web)’den GGG (Giant Global Graph)’e geçiş olarak tarif etmişti. Son zamanlarda kaynak-insan ağına odaklanarak geliştirilen yeni nesil internet uygulamaları artık farklı tasarım örüntüleri gösteriyor. Eskiden web sitesine sayfa tasarımından ve site haritasından başlanırdı, ancak bu alışkanlıklar yerini yeni tasarım yaklaşımlarına bırakıyor. Bunların farkında olmanız daha kullanışlı web servisleri yaratmanıza yardımcı olacaktır. Öncelikle yeni nesil internet uygulamları ile ne kastettiğimizi tekrar edelim.

İnsanların katkısını yani toplu zekayı uygulamanın gelişimi doğrultusunda kullanan sosyal bileşenli uygulamalar.

Bahsettiğimiz uygulamalar klasik portal, haber sitesi, dergi gibi merkezden-kitleye durağan modeller değil sosyal imleme, video paylaşımı, sosyal ağ servisleri gibi kitleden-kitleye etkileşimle büyüyen uygulamalar, popüler deyişle web 2.0 uygulamaları.

Bir web 2.0 servisi yaratırken dikkat edilecek noktalar şunlar:

  1. Internet’teki veri birikimine değer katıyor mu?
    Bu servisi kullanarak internet’ten yeni ne öğreniyoruz. Mevcut servislerin sağladığı bilgilerin üzerine ne tür yeni bilgiler katıyor.
  2. Servisi oluşturacak ana veri modelleri neler?
    Tasarıma sayfalardan değil veri modellerinden başlayın. Sayfa iki boyutludur, model çok boyutludur daha derin ve yalın kurgulamanızı sağlar.
  3. Adresler (URL) okunaklı, kalıcı, ve tahmin edilebilir mi?
    Veri yapısını yansıtan, veriler arası hiyerarşiyi gösteren adresler oluşturun. Adres yapısı alan adı kadar önemlidir, akılda kalıcı adresler servise erişimi arttırır.
  4. İçerik tekrar tekrar karıştırılıp yeni içerik oluşturulabiliyor mu?
    Servisi kullananlar mevcut içeriği kullanarak yeni içerik üretebilmeli ve uygulamayı oluşturan işlemler kullanıcı katkısıyla gelişebiliyor olmalı.
  5. Hem normal kullanıcılar, hem geliştiriciler, hem de makinaların anlayabileceği şekilde çalışıyor mu?
    İçerik XML, JSON, RSS, Microformats gibi veri standardları ile de sunulabiliyor olmalı. Böylece programatik kullanıma açık olarak dışardan sizin servinizin üstüne yeni servisler geliştirilebilmeli.

yeni-nesil-varis-sayfasi-ayrik.png

Artık bir web sitesinin içinde veya siteden siteye değil, kaynaktan kaynağa dolaşıyoruz.

Web siteleri artık içine girilip dolaşılan bir yer olmaktan çıkıyor. Sitenin anasayfası değil sitenin içeriği internet’de dolaşırken uğradığımız noktalaradan bir tanesi. Yani artık sitenin içinde veya siteden siteye değil, kaynaktan kaynağa dolaşıyoruz. Bu gözlem bizi sayfa metaforundan veri modeli metaforuna taşıyor. Buna en güzel örnek Wikipedia sayfaları, bir kavramı sadece bir sayfa ve bir adres temsil ediyor ve buna herhangi bir yerde doğrudan bağlantı veriliyor.

Veri modellerini önce adres ile sonra yine sayfa ile temsil ediyoruz. Adreslerin veriyi en iyi şekilde yanısıtması, okunaklı ve akılda kalıcı olması mesela bloglardan veya hatta diğer servislerden bağlantı yapılabilmesini kolaylaştırıyor. Olay kaynak ve kaynağın adresine dönüşüyor. Bu durum birbirine bağlı bir kaynaklar ağının daha çabuk gelişmesini sağlıyor.

Bu yeni bakış açısına göre sayfa tasarımları da değişiyor. Veri modellerini temsil eden üç sayfa türü var:

  1. Varış Sayfası
    Ana içerik ve destekleyen ikinci derece bilgi. Mesela ana içerik video, fotograf, slayd şov, profil, kitap, çizim olabilir. Destekleyen içerik etiketler, yorumlar, oylar, içerğin sahibi, sahibinin diğer içerikleri olabilir.
  2. Liste Sayfası
    Ana içerikler arasında dolaşmayı sağlayan liste. Mesela indeks, arama sonuçları, kişiye ait belgeler olabilir. Listelenen içerik biribirne göre oranlı dizilebilir.
  3. Düzenleme Sayfası
    Ana içerikleri toplu düzenlemeyi ve karıştırmayı sağlayan arayüz. Mesela Flickr toplu photo edit ve YouTube video edit sayfaları buna iyi örnekler.

Özetle veri kaynağını temsil eden en önemli sayfa varış sayfası. Bu sayfaya herhangi bir web sitesinden bağlantıyla gelinebilir. Bir kişi bu sayfaya geldiğinde dikkatini nereye yönelendireceği tasarımınıza bakıyor. Vermek istediklerinizi önem sırasına göre dizip sayfa tasarımını ona göre düzenleyebilirsiniz. Yazıda kullanılan görseller varış sayfası dediğimiz sayfanın tasarımına dair web 2.0 / sosyal ağlı servisler üzerinde yapılan bir BBC analizinden alıntı, tasarımlarınıza örnek olabilir. Yine tekar edelim, varış sayfasını kaynak yapan şey kolay hatırlanacak bir adresi olması.

22.07.2005

CIA Dünya Gerçekleri Kitabı yenilendi

14 Temmuz 2005′de yenilenen CIA Dünya Gerçekleri Kitabı dunyadaki ulkeler hakkinda genel ve detayli bilgiler iceriyor. Bilgi gorsellestirmesi alaninda kullanmak icin onemli bir kaynak. Her ulkenin cografi, nufus, ekonomik, iletisim, ulastirma, ve askeri alaninda detayli bilgiler iceriyor. Bu bilgiler ozellikle baska bilgiler ile karsilastirilarak kullanildiginda cesitli bilgilerin ve anlamlarin aciga cikmasini saglayabiliyor. Ornegin internette kuresel boyutta gerceklesen bir olayi incelerken ulkelerin buna ne derecede katkida bulundugu CIA kitabindan ulkelerin internet kullanicilari sayisi ve nufusu kullanilarak aciga vurulabilir. Turkiye sayfasinda internet kullanicilari sayisi 5.5 milyon olarak gozukuyor.

Ayrica buradaki bilgilier bilgisayar tarafindan okunabilir bicimde bulunabiliyor, ornegin her bir ulke icin nufus, internet kullanicilari, askeriye yapilan harcama, dogum oranlari, havaalani sayisi, HIV/AIDS’den olenler, petrol uretimi, enflasyon oranlari gibi bilgiler metin ayrıştırıcı bir program yazilarak burdan alinip cesitli tasarimlarda kullanilabilir.