16.04.2010

DK02: Melez Kamusal Mekan (video)

Düğümküme Toplantıları 02: Melez Kamusal Mekan” video dökümantasyonu. 2 saat, arka arkaya 5 parça. İlk video giriş, sonra sırayla konuşmacılar Can Altay, Akın İdil (Valensas), Mücteba Kılıç (Genç Siviller), ve son olarak tartışma (tüm videolar yukarıdaki tek oynatıcı içinden izlenebilir).

Videoların tümünü yüksek çözünürlükde archive.org’dan indirebilirsiniz:
http://www.archive.org/details/Dk02HybridPublicSpace

Videolar Orton Akıncı, Boran Güney, Deneb Kahraman, ve Devrim Kadirbeyoğlu desteğiyle yapılmıştır.

Düğümküme Toplantıları, odağında sanat, çevresinde sivil toplum ve teknoloji olan bir tartışma dizisidir. Güncel sanat ile hayatımıza yeni gerçeklikler getiren güncel teknolojileri ve ilgili sivil toplum konularını karşı karşıya getirmeyi amaçlar.

13.11.2008

Yeni Formlar: Reaktif Müzik

Tamamıyla emprovizasyona açık, bulunduğunuz ortama ve o anki ruh halinize göre şekillenen bir müzik türü hayal edin. Her dinlediğinizde farklı deneyimlediğiniz, bu deneyimlerinizi kayıt edebildiğiniz ve paylaşabildiğiniz playlistleri düşünün. Belirli bir süre içerisinde bitmeyen, sonsuza kadar çalan şarkılar, parçalar, mırıltılar ve gürültüler gibi. Siz ona eşlik ettikçe gelişen tamamıyla dinamik kompozisyonlar, bugüne kadar deneyimlemeye alışkın olduğunuz müziklerden oldukça farklı olaylar… Şu an iPhone’lar için piyasaya sürülen ve iTunes’dan bedava indirebildiğiniz RJDJ adlı uygulama yeni bir kategori tanımlıyor: Reaktif Müzik.

RJDJ dünyasında şarkılar ‘scene’ adını alıyorlar. Sceneler sanatçılar tarafından yazılmış programlar. Scene’leri indirip RJDJ playerınıza yüklediğiniz etkişimli müzik parçaları olarak düşünebilirsiniz. Çalarken, ona eşlik ederken deneyimlediğiniz şeyi, onu tasarlayan sanatçı ile ortak çalışmanız gibi görebilirsiniz.

Pure Data ile Hello World örneği

RJDJ için kendi scenelerinizi oluşturabiliyorsunuz (ve iTunes’da satabiliyorsunuz.) RJDJ aslında Pure Data patchlerinin iPhone’da kullanılmasını sağlıyor. Pure Data, 1990 yılında Miller Puckette (Max/MSP) tarafından yazılmaya başlanmış açık kaynaklı ses, video ve grafik işleme programı. Pure Data diğer görsel programlama dillleri gibi objeleri birbirine ipler ile bağlayarak programlama yapmanıza imkan veriyor. Basitçe frekans düzleminde aklınıza ne geliyorsa Pure Data ile yapabilirsiniz.

Amen Shake” adlı RJDJ scene’ini iple çekiyorum.

RJDJ platformu, etkileşimli jeneratif üretim temelleri üzerine kurulu ve bunu müzik bağlamında gerçekleştiriyor. Eski müzik medyası ile yeni dinamik medyayı harmanladığı için hem tanıdık ama garip bir şekilde bir o kadar da değişik bir deneyim sunabiliyor. RJDJ dünyasında yine sanatçılar, albümler ve parçalar mevcut. Kulaklık ile dinliyorsunuz. RJDJ’in sunduğu şey geçmişte deneysel olarak defalarca denenmiş veya sanatsal bağlamda sergilenmiş birşey olabilir ama insanların yanında taşıyabildikleri bir aygıta uygulanması, scenelerinin iTunes’dan satılmaları ile yakın gelecekte oldukça popüler olacağına inandığım ’reaktif müzik’ etiketli bir kategoriden bahsediyor oluyoruz.

 

Düğümküme Arşivinden:
Sanat ve Tasarım Odaklı Programlama

İlgili Bazi Diğer Projeler:
Ambient Addition
RJDJ Hack

10.08.2008

Google App Engine Üzerinden YouTube'a Nasıl Erişilir?

Bu yazıda Google App Engine kullanarak Türkiye’den erişilebilen YouTube proxy uygulaması nasıl oluşturulur, onu öğreneceğiz. Bu, ucuz reklamlar ve ‘ninja hakaretlerinin’ yer almadığı, sıfır maliyetli ve Google engellenmediği sürece varlığını sürdürecek basit bir uygulama olacak. İki tane çalışan YouTube uygulamasını şuradan (evet Türkiye’den de) görebilirsiniz:

Yazıya “Meet the Sniper” videosu eşliğinde devam ediyoruz :). App Engine YouTube uygulamanın nasıl çalıştığını merak ediyorsanız, okumaya devam edin.

Google App Engine Nedir?

Bildiğiniz gibi Google bir süre önce çok şık bir hareket yaptı, ve muhteşem altyapısının bazı parçalarını Google App Engine adıyla paketleyerek kamuoyuna sundu.

Google App Engine, Google mimarisinden faydalanarak web uygulamaları geliştirmenizi ve yayınlamanızı sağlayan bir platform. Üstelik bedava.

Bu sayede mesela kullanıcı zaten Google üyesi ise, bu kişiye ait kullanıcı adı, email gibi bilgileri kullanabiliyorsunuz, hatta Google Query Language (GQL) ile de erişebildiğiniz bir veritabanınız, imaj işlemleri yapabilmenizi sağlayan Images API‘ınız ve üstüne mail falan da yollamanızı sağlayan Mail API cabası.

Google App Engine sayesinde Google’ın hem CPU gücünden, hem depolama gücünden, etinden sütünden herşeyinden faydalanabilirsiniz. Bu henüz ilk sürüm, ileride bunu bir çeşit iş modeli haline getireceklerine kuşku yok. Hatta Users API ile uğraşırken, Google’ın internetin “kullanıcı veritabanı” olması gerektiğine bile karar verdim. Kesinlikle kullanıcı işini bu adamlar halletmeli. Bırakalım e-mailleri falan Google toplasın.

Google App Engine, arkasında Guido Von Rossum gibi bir idolün de bulunduğu, ‘internetin framework’ü olabilecek potansiyelde, Google ile birlikte nefes alan bir platform :).

Daha detaylı bilgi ve dökümantasyon için, http://code.google.com/appengine/docs/ adresine gözatın.

Hangi programlama dilleri destekleniyor

App Engine servisi şimdilik sadece Python ile kodlayabiliyorsunuz, ama Ruby, PHP gibi dilleri de implemente etmeleri an meselesi. (Bunun gibi bir Ruby on Rails servisine de heroku.com adresinden ulaşabilirsiniz.)

Görülen o ki, bir takım limitler koymuşlar. Mesela boyutu 1mb den fazla olan HTTP responselar bloklanıyor, günlük 2GB trafik limitiniz ve toplam 500MB dosya depolama izniniz var. Yine de appengine küçük ve orta ölçekli işler için uygun. Hatta büyük ölçekli işlerde de yardımcı bir backend olabilir.

App Engine YouTube uygulamsına başlamadan önce

Bu yazı zaten ‘derdinizi anlatacak kadar’ Python bildiğinizi ve bir appengine uygulaması kurmuş ve çalıştırmış olduğunuzu varsayarak yazıldı. Eğer bu konularda hiç bir fikriniz yoksa, önce Google App Engine indirin. Sonra 10 adımda nasıl appengine uygulaması çalıştırılır öğrenin ve buraya dönün. Bu işlem yaklaşık 20 dakikanızı alacak.

Python’a bir kaç saat içinde güzel bir başlangıç yapmak isterseniz, bedava dağıtılan “A Byte of Python” kitabına göz atabilirsiniz.

Başlıyoruz…

Öncelikle uygulamanıza ait dosyaları koyacağınız klasörü oluşturun, benimkinin adı “itube” olacak.

Başlangıç için bu itube klasörü altında “app.yaml” adinda bir dosya oluşturuyorum, bu dosya içerisinde uygulamam ile ilgili bir takım önemli bilgileri ve URL Handler ları tanımlıyorum.

app.yaml

application: itube
version: 1
runtime: python
api_version: 1

handlers:
- url: /assets
  static_dir: assets
- url: /.*
  script: itube.py

application kismini kendi uygulamanızın ID si ile değiştirin. /assets klasörü altındaki dosyalar statik dosyalar, geri kalan herşey itube.py dosyasının kontrolünde olacak.

Bakalım itube.py ne yapıyor.

itube.py

from google.appengine.ext import webapp
from google.appengine.ext.webapp.util import run_wsgi_app
from google.appengine.api import urlfetch
from urlparse import urlparse
import re

class MainPage(webapp.RequestHandler):

    def get(self):

        self.response.headers['Content-Type'] = 'text/html'

        baseurl = "http://www.youtube.com"
        requrl = urlparse(self.request.url)
        url = baseurl + requrl.path + "?" + requrl.query

        result = urlfetch.fetch(url, allow_truncated=True)

        if result.status_code == 200:
            s = result.content

            # regex işlemlerini şimdilik sadece video izleme sayfasında yapıyoruz
            if requrl.path == '/watch':

                # Video dosyasının gerçek adresini bulabilmek için uygulanan işlem
                yt_video_id = re.search("\"video_id\": \"((.*))\", \"l\"", result.content).group(1)
                yt_t = re.search("\"t\": \"((.*))\", \"hl\"", result.content).group(1)
                # Bu bilgi "assets/base.js" dosyasında, flashVars olarak atanmak üzere JS olarak da tanımlanıyor
                # swfArgs tanımlanmazsa SWF Object hata veriyor
                s = re.sub("swfArgs(.*)", "swfArgs = {};\nvar ytVideoId = '"+yt_video_id+"';\nvar ytT = '"+yt_t+"';\n", s)

                # YouTube'un kendi playerına harici FLV dosyalarını oynattıramayacağımız için,
                # YouTube playerı yerine kendi playerımızı yüklüyoruz
                s = re.sub("swfUrl(.*)", "swfUrl = 'http://itube.appspot.com/assets/player.swf';", s)

                # Aynı işlemi JS dosyası için de yapıyoruz ki, bu dosya üzerinde rahatlıkla hareket edebilelim
                # YouTube çoğu işlemi Ajax numaralar ile yapıyor, login falan yapılabilmesi için Javascript'e ince ayar çekmek gerekecek
                s = re.sub("type=\"text/javascript\" src=\"(.*)\"></","type=\"text/javascript\" src=\"http://itube.appspot.com/assets/base.js\"></", s)

            # Sonucu göster
            self.response.out.write(s)
        else:
            print 'ofmg'

application = webapp.WSGIApplication([('/', MainPage), ('/.*', MainPage)], debug=True)

def main():
    run_wsgi_app(application)

if __name__ == "__main__":
    main()

Önemli detayları kod üzerinde yorumlarla yazdım, itube.py dosyası kısaca, kendisine gelen tüm GET requestlerini aynı şekilde YouTube’a sorgulatıp sonucu dönüyor. Bu sırada eğer video izleme sayfasındaysak, gelen sonuç biraz değişiyor.

Buraya kadar yaptığımız işlem sonucunda, text/html dosyaları appengine üzerinden nasıl proksifiye edeceğimizi gördük. Eğer uygulamayı appengine üzerinde çalıştırırsanız, videoları izleyemediğinizi göreceksiniz :( Bunun sebebi YouTube’un video playerının dosyaları youtube.com üzerinden açmaya çalışması. Elimizde bu flash playerın açık kodu olmadığı için gerekli kısımları değiştiremiyoruz. O halde yeni bir player yazmak durumundayız. İşimizi görecek kadar özelliği olan bir flex video player kodunu itube kaynak kodunda assets klasörü altında bulabilirsiniz (assets/player.mxml)

Flash Video Oynatıcı nasıl çalışıyor?

Bu dosyayı incelerseniz FLV dosyalarının başka bir proxy sitesinden çekildiğini göreceksiniz. Bu aşamada böyle bir proxy sitesi desteği almak gerekiyordu. Zira appengine’ın limitlerinden bahsetmiştik. Appengine üzerinden video/flv dosyalar da indirmek mümkün, ama bu dosyaları YouTube’dan request edecek methodun çalışma süresi 10 sn olarak kısıtlanmış, eğer 10 sn içinde dosyayı alamazsa hata veriyor. 10 sn içinde alsa bile response limit 1048kb. Yani 1Mb ın üstünde videoları bu şekilde indirmek mümkün değil. Belki bir takım yöntemleri var, ama uygulamanın da en azından biraz kalıcı olmasını istediğimden video dosyalarının yükünü bir proxye aktaracağım.

Proxy nasıl dağıtık çalışıyor?

Bunun için tek bir proxy sitesini hedef almak yerine, genel olarak kullanılan bir “Proxy sitesi oluşturma sistemi” ni kurban seçmek daha akıllıca olurdu. Bu günlerde Glype adında PHP ile yazılmış sevimli bir proxy sitesi yapma uygulamasıyla tanıştım. Glype ile oluşturulmuş hakkaten çok-çok fazla proxy sitesi var mı bilemiyorum, ama bunların bir listesi var.

player.mxml dosyasında görecekleriniz bunlardan ibaret. Bu dosya aynı zamanda SWF derlenmiş olarak kaynak kod içerisinde bulunabilir (assets/player.swf)

Yeni video oynatıcımızı derledikten sonra, sıra bunu doğru değerlerle sayfaya yerleştirmeye geldi. Bunun için YouTube’un base javascript dosyasında bazı değişiklikler yapmak gerekiyor. Bu dosyayı daha iyi kontrol edebilmek için, daha önce kaydettim ve kaynak kod da “assets/base.js” altında bulunabilir. Orjinal dosya ile tek farkı 1575. satırdan başlayan writeMoviePlayer() fonksiyonu. Bu fonksiyonu, video player ile uyumlu olsun ve FLV dosyasını bulabilmek için gerekli bilgileri sağlasın diye şu şekilde değiştirdim:

function writeMoviePlayer(player_div,force){
var fo = new SWFObject(swfUrl,”movie_player”,”480″,”385″,”7″,”#000000″);
fo.addParam(‘flashvars’,'ytVideoId=’+ytVideoId+’&ytT=’+ytT);
fo.addParam(“allowfullscreen”, “true”);
player_written=fo.write(player_div);
return fo;
}

Gördüğünüz gibi bu işlemi de yaparken, YouTube’un SWFObject‘ inden faydalanmış olduk.

Uygulamayı nasıl çalıştıracaksınız?

Tüm bu aşamaları atlattıysanız, uygulamanızı appengine’e yüklediğinizde YouTube izleyebileceksiniz.

Henüz oldukça eksiği var, mesela POST requestlerine hiç yanıt vermiyor, bu yüzden Login falan olunamıyor. Ama Users API ile de login olma olasılığı var gibi. Hatta sırf YouTube’a özel bir API çıkarırlar diye düşünüyorum. Ajax fonksiyonların adam akıllı çalışabilmesi bir takım düzenlemeler yapılması gerekiyor. Bazı videolarda HTML yapısı da değişiyor, ona bakmak gerek.

Bana sadece “videoları aratayım bulayım ve izleyeyim” yettiği için, bir süre bu kadarıyla yetineceğim.

App Engine YouTube uygulaması kaynak kodu

Geliştirmek isterseniz kaynak koda http://code.google.com/p/itube-appengine/ adresinden ulaşabilirsiniz.

Eğer böyle bir işe kalkışırsanız bu başlığa bir yorum sallayarak, beni de gelişmelerden, isteklerden haberdar ederseniz sevinirim.

http://sansursensin.com/watch?v=hkb3r9filcM

İyi seyirler :)

Konuyla ilgili önceden düğümküme’de yazılanları hatırlayalım:

11.07.2008

iPhone Pazar Yeri Açıldı

Önümüzdeki bir kaç gün içinde iPhone haberlerinden bıkmış olacaksınız muhtemelen. iPhone neden bu kadar heyecan yaratıyor? Dokunmatik ekran internet bağlantılı akıllı telefon olması mı? Bu özellikleri zaten geçen sene ilk çıktığında aklımızı almıştı. iPhone geldi, iPhone nasıl kırılır?, iPhone Türkiye’de çalışır mı? gibi yazılar Düğümküme’de yüksek trafik alan yazılar olmuştu. Şimdi telefona GPS eklenmesi ve 3G hızlı internet bağlantısı tabii ki telefonu daha da kullanışlı kılıyor. Ancak bu yeni heyecanın esas sebebi iPhone’un bir mobil platforma dönüşmesi.

iPhone sadece bir cep telefonu değil akıllı telefon uygulamaları için bir pazar. Bir zamanlar nasıl Microsoft Windows işletim sistemi PCler için pazar oluşturduysa, nasıl Facebook platformu sosyal uygulamalar için bir pazar oluşturduysa, iPhone da üzerinde uygulama geliştirmeye açık platformuyla akıllı cep telefonları için bir pazar oluşturuyor. Daha çıkmadan yüzlerce uygulamanın promosyonu yapılmaya başlandı. 1 dolardan 20 dolara kadar fiyatlandırlımış, reklamlı reklamsız bedava uygulamlar daha iPhone çıkmadan iTunes üzerinden satılmaya başladı. iPhone App Store‘da en çok satanlar arasında SuperMonkeyBall oyunu, OmniFocus üretkenlik arttırıcı, iLoveControl uzaktan kumanda, YellowPages ilanlar, Twitterrific, BigTipper bahşiş hesaplayıcısı, ShopIt alışveriş listesi, ShoutIt uzaktan sessiz bağırma, Metro Haritaları gibi tek fonksiyonlu uygulamalar var.


En çok satan SuperMonkeyBall 9.99 dolar ve şu ana kadar yaklaşık 12 bin satmış, 120 bin dolar gelir elde etmiş. En pahalı uygulama Omnifocus 19.99 dolar, şu ana kadar yaklaşık bin tane satmış, 20 bin dolar gelir elde etmiş. Bu satışlardan uygulama sahipleri %70 kazanırken Apple %30 kazanıyor. Yani SuperMonkeyBall yapımcısı Sega oyun şirketi 84 bin dolar, OmniFocus yapımcısı Omni Group şirketi 14 bin dolar kazanmış.

Çok satan uygulamalar sahiperine bir gün içerisinde 3-5 bin dolar kazandırırken Apple aynı sürede 50 bin dolardan fazla yapıyor. İngilizce iş alemlerinde “win win” denilen bir durum gerçekleşiyor.


Pinch Media iPhone uygulamaları istatistklerine göre fiyat dağılımı.

iPhone analitik programı Pinch Aanalytics‘in 650+ iPhone uygulaması üzerinden tuttuğu istatistiklere göre bir iPhone uygulamasının ortalama fiyatı 5 dolar. Ancak yukarıdaki grafikde görüldüğü gibi 10 dolar seviyesi de oldukça tutuyor.

Bedava uygulamalardan bazıları reklamlı. Mesela Iconfactory şirketinin geliştirdiği Twitterrific Premium 9.99 dolar iken bedava olanı reklamlı. Aynı şekilde iPhone Flickr uygulaması Exposure reklamsız 9.99 reklamlı bedava. Bu iki uygulamanın reklam dağıtımı ve gösterimi daha önce Reklam Federasyonları Nasıl Kurulur? yazısında bahsettiğimiz The Deck federasyonu ile yapılıyor. Daring Fireball blogundan John Gruber bu iki uygulamanın premium ve bedava sürümlerinin indirilme sayılarını çıkarmış:

Exposure 3,638
Exposure Premium 76
Twitterrific 13,638
Twitterrific Premium 322

Bedava ile premium arasındaki oran, premium/reklamlı yaklaşık 1/40, zamanla değişecektir kesin ama bugün iPhone uygulaması geliştirmek isteyenler veya geliştirmeye başlamış olanlar için ürünlerini iPhone pazarında nasıl konumlandırabileceklerine dair fikir veriyor.

iPhone App Store uyguluması ile direk iPhone üzerinden bu ürünleri satın alıp indirebiliyorsunuz. Bilgi çağında ticaret adına herhalde bugüne kadar yapılmış en büyük gelişmelerden bir tanesidir. Cebimde kullanacağım ürünleri, cebimden alıyorum. Çoğu web ürünlerinde, Facebook uygulamlarında olduğu gibi, alışveriş ile kullanım ortamı aynı…

iPhone bu haliyle bir pazar yerine dönüşüyor. Bir yanda uygulama geliştirenler platform’un sağladığı özellikler üzerinden (gps yer bilgisi, internet bağlantısı, hareket algilayıcıları vs.) çeşit çeşit uygulamalar geliştiriyorlar. Bir yanda iPhone kullanıcıları ihtiyaçlarına göre bu zengin uygulama çeşitlerinden istediklerini satın alıyorlar. Diğer yanda Apple platform’u hızlı, kullanışlı, ve hatasız tutmaya çalışıyor. Kapitalizmin temel kuralı rekabet ortamı daha gelişmiş uygulamlar çıkmasını sağlıyor. Teknolojik platform oluşturma stratejisi Microsoft Windows’dan öğrendiğimiz, yıllar sonra Facebook Platformu ile tekrar karşımıza çıkan, ve şimdi de iPhone plafromu ile tekrar akılları almaya başlayan çok kuvvetli bir kapital stratejisi.

iPhone uygulaması geliştirmek istiyorsanız iPhone Developer Center‘daki belgeleri okuyarak başlayabilirsiniz.

12.03.2008

YouTube Platformu ile Yeni Nesil Televizyonculuk

youtube_logo_july07.pngBu sabah –Silikon Vadisi’nde*– Youtube Platformu çıktı. Yeni YouTube API ile videolarınızı programatik yükleyebiliyorsunuz. Yani kendi web servisinizde kullanıcılarınızın yüklediği videoları otomatik (programatik) olarak yükleyip YouTube’da barındırabiliyorsunuz. Bu platformla YouTube’un sahibi Google webdeki tüm videoları barındırmayı hedefliyor. Google’un “dünyadaki tüm bilgiyi” düzenleme stratejisine son derece uygun bir hareket.

Kendi servisinizde video gösterip trafikten arttırıyorsunuz ve reklamdan para kazanıyorsunuz. YouTube ise video’nun içindeki reklamların gelirini alıyor, bunu paylaşmıyor. Yeni YouTube API bilgi yüklemek için her türlü fonksiyon içerirken gelir dağılımı ile ilgili en ufak bir fonksiyon içermiyor. API’nin genel özellikleri şöyle:

  • Video ve video cevap yükleme
  • Kullanıcı ve video metaveri (başlık, tanım, oy, yorum, favori, arkadaş, vb.) ekleme ve düzenleme.
  • RSS besleme toplama ve erişim
  • 18 yerel bölge için özel sorgu desteği
  • Video oynatıcı özelleştirmesi

Yeni YouTube APIyi şimdiden kullananlar YouTube Partners programı dahilindeki kurumlar. Bu kurumlar Electronic Arts (oyun videoları), Berkeley Üniversitesi (eğitim videoları), Animoto (müzik videoları), Tivo (etkileşimli TV) ve daha bir çok Silikon Vadisi şirketleri sağladıkları içerik karşılığında reklamlardan gelir elde ediyorlar. Ancak bu sadece partner programına dahil şirketlerle sınırlı, YouTube’daki içeriği esas oluşturan kitle, yani siz, biz, Türkiye’den televizyon dizilerini, maçları, müzik videolarını yükleyenler, türlü türlü video sosyal imleme servisleri, İspanya’daki gitarcı, Brezilya’daki webcam kızı, Çin’deki sebest film yapımcısı yani dünyanın geri kalanı verdiği emek karşılığında gelirden pay alamıyor…

YouTube videolarınızı “barındırmak karşılığında” tüm video reklam gelirini kendine alıyor. Bu karşılığa biraz daha yakından bakalım. Bir web servisim var, servisi kullanan kişiler video yükleyebiliyor, bu videolar hem benim servisimde hem YouTube’da gösteriliyor. Kendi sitemde bu video’ya bakan kişilerin yarattığı trafikden reklam geliri elde ediyorum. Ancak kendi servisim içinde gösterilen video reklamından geliri YouTube (yani sahibi Google) alıyor. Bu durumda YouTube 3+1 yerden reklam geliri kazanıyor.

  1. Video benim servisimde gösterilirken video içi reklamdan
  2. Video youtube.com’da gösterilirken video içi reklamdan
  3. Youtube.com içinde benim videolarımın bulunduğu sayfalardaki reklamlardan
  4. Video kopyalanıp yüzlerce siteye dağıtıldığında video içi reklamlardan

Google’un senin kendi sitende reklam göstermesi ve onca yerden senin videoların üzerinden reklam geliri yapması karşılığında sen sadece video barındırma servisi alıyorsun, bu sence adil mi?

İlgili Düğümküme Yazıları

* Neden yazılarımda “Silikon Vadisi sabahı”, “Amerikan Interneti” gibi tamlamalar kullanıyorum? Çünkü bu yazılarda bahsedilen üretim tamamiyle Silikon Vadisi’nde yapılıyor ve dolayısıyla hayatımıza bir Kaliforniya gerçekliği (yeniden hortlamış Kaliforniya ideolojisi) katıyor. Özellikle Türkiye’de teknoloji çok az ya da hiç geliştirilmiyor dolayısıyla ortaya çıkan gerçekliklerin ithal edilmiş gerçeklikler olduğuna dikkat çekmek istiyorum.

Güncelleme: Telekomünikasyon İletişim Başkanlığı Ankara 1. Sulh Ceza Mahkemesi tarafından Atatürk’e hakaret içeren videoların yer alması nedeniyle alınan karar doğrultusunda, youtube.com sitesine hem IP, hem de alan adı yönünden erişimi durdurdu. Türkiye’de yaşayan ve YouTube’da video yayınlayan yüzbinlerce kişinin ifade özgürlüğü hiç bir suçları olmadığı halde Türkiye Sulh Ceza Mahkemesi tarafından sınırlandırılmıştır.

21.03.2007

Açık Kaynaklı Telefon Platformları

FIC-neo1973_small.jpgCep telefonunuzda kullandığınız yazılımları kim oraya koydu? Yeni bir bilgisayar aldığınızda üzerine istediğiniz programı kurabilirken neden bugünün telefonlarında tüm programlar yüklenmiş geliyor? Aslında cep telefonunuza istediğiniz programı yükleyebilirsiniz ama zaten “ihtiyacınız olan her program” orada! Adres defteri, film gösterici, fotoğraf albümü, sms programları vs. vs. sizin için önceden düşünülmüş. Yani telefon cebinizde ama fonksiyonlarını seçme hakkınız yok.

Televizyonun üstündeki dantelli örtü gibi telefonlar bugün duvar kağıdı ve melodi gibi dekorasyondan ibaret şeylerle özelleştiriliyor. Oysa içinde küçük bir bilgisayar olan cep telefonunuzda bir çok program çalıştırabilirsiniz. Bırakın falanca telefon şirketinin yazılımlarını, arkadaşınızı yazdığı bir programı ya da sevdiğiniz bir tasarımcının işini hergün telefonunuzda kullanabilirsiniz. Ayrıca bir yanda cep telefonları giderek bilgisayara dönüşürken diğer yanda hayatında bilgisayar kullanmamış insanlar bilgisayar kadar gelişmiş telefonları kullanmaya başlıyorlar.

Cep telefonu için program geliştirmenin pek çok yolu var. Bunlardan açık kaynaklı olanları, yani hemen şimdi kullanmaya başlayabileceğiniz projeler şunlar:

Openmoko

Açık kaynaklı bir telefon yazılımı geliştirme platformu. Standartlaşmanın tepeden inme (konsorsiyumlar tarafından) değil tabandan yukarı (toplum tarafından) olduğuna inanıyorlar. Openmako geçenlerde ilk anonsunu yaparak kullanıma açıldı. Şu anda Tayvanlı bir şirketin ürettiği Neo 1973 telefonunda çalışıyor ama zamanla yayılacaktır.

Processing Mobile

Java ile çalışan açık kaynaklı bir telefon yazılımı tasarlama ve geliştirme ortamı. Processing projesinin bir uzantısı olan bu ortamda üzerinde Java çalışan her cep telefonu için skeçler yapıp kendi yazılımınızı geliştirebilirsiniz.

MobiLenin

Python ile yazılım tasarlama ve geliştrime dersleri. Jurgen Scheible tarafından hazırlanan bu dersler çok basitten karmaşığa bir çok python örnek kod içeriyor. Üzerinde python çalışan her telefonda (Nokia serileri) kendi yazılımlarınızı geliştirebilirsiniz.

Flash Lite

Adobe/Macromedia Flash’ın telefonlar üzerinde çalışabilen versiyonu. ActionScript kullanarak kendi yazılımlarınızı tasarlayıp geliştirebilirsiniz. Flash şu anda bir çok cep telefonu üzerinde çalışıyor.

Ayrıca mobil telefonlar için uygulama geliştirme wiki makalesinde bir çok platform hakkında karşılaştırmalı olarak bilgi alabilrisiniz.

ceptel-deconstruction.png

Neler yapılabilir?

Bu açık kaynaklı uygulama geliştirme ortamları ile örneğin şunları yapılabilirsiniz:

  • Kendi telefon arayüzünüzü tasarlayabilirsiniz.
  • SMS atan programlar yazabilirsiniz.
  • Ses kaydedebilirsiniz ve kaydettiğiniz sesi kullanan bir oyun yapabilirsiniz.
  • Metinden sese veya sesden metine çeviri yapabilen kütüphaneler ile sesli arayüzler yapabilirsiniz.
  • Telefonun kamerasını kontrol edip çekilen resimleri anında arkadaşlarınıza MMS ile gönderen programlar yazabilirsiniz.
  • Kendi mobil sosyal ağ sisteminizi kurabilirsiniz.
  • Takvim yazıp duruma göre sağa sola SMS ile haber veren programlar yazabilirsiniz.
  • Türkcell gibi şirketlerin sağladığı bas konuş vs. servisleri kullanıp şehir bazında oynanan yeni kentsel oyunlar başlatabilirsiniz.

Ne gibi fiziksel özellikleri var?

Telefon dediğimiz makinanın her fiziksel özelliğini ayrı ayrı veya bir arada değerlendirebilirsiniz.

  1. Mikrofon
  2. Hoparlör
  3. Kamera
  4. Ekran
  5. Klavye ve düğmeler
  6. Herkes her an cebinde taşıyor

Bu özellikleriyle telefon-bilgisayar masaüstü-bilgisayardan faklı bir şey ve dünyada çok daha fazla insanın cep telefonu sahibi. Yani yazacağınız programlar bir anda milyonların kullandığı bir uygulama haline gelebilir. Daha önce düğümküme’de “Mobil Servislerin Geleceği” diye yazdığımız EPROM projesi de telefon programlamasını yeni nesil bilgisayar programlaması olarak görüp bilgisayar bilimlerinde yeni bir alan yaratmaya çalışıyor, bu konuda dersler organize ediyor.

Ok. Şimdi cep telefonunuzu elinize alın, bir bakın içinde ne gibi programlar var. Ne gibi başka programlar olmasını isterdiniz?

EK: Apple iPhone satışa çıktı. New York Apple Dükkanı önündeki uzun iPhone kuyruğundan canlı canlı fotoğraflar ve videolar çektik.